Facebook Twitter Google Plus RSS Feed Email

    mercredi 29 octobre 2014

    [Tutoriel] Dessiner un graphe avec AChartEngine



    Introduction :

    Dans ce tutoriel , je vais décrire comment utiliser AchartEngine . C'est une bibliothèque pour Android qui vous aident à créer des graphiques. Elle prend en charge plusieurs types de graphique :

    • line chart
    • area chart
    • scatter chart
    • time chart
    • bar chart
    • pie chart
    • bubble chart
    • doughnut chart
    • range (high-low) bar chart
    • dial chart / gauge
    • combined (n'importe quel combinaison de line, cubic line, scatter, bar, range bar, bubble) chart
    • cubic line chart

    Cette bibliothèque vous aide dans tous les aspects lorsque vous créez un diagrammes vous n'avez donc pas besoin de rien d'autre pour créer tableaux intéressants .

    Télécharger la bibliothèque :

    Ceci le lien où on peut télécharger la bibliothèque .


    Conceptes à connaitre :

    Il y a certains concepts de base qui sont derrière cette bibliothèque et ils sont importants pour que vous puissiez l'utiliser :
    • Dataset : l'ensemble de données que vous avez à dessiner sur votre graphique
    • View : le type de graphique que vous souhaitez
    • Render : Il contrôle la façon dont la vue est appelée et certains paramètres que vous pouvez modifier tel que la manière dont les graphiques ressemble. Il existe deux types de render : celui qui contrôle le dataset et un autre qui contrôle la façon dont l'aspect principal du graphique va ressembler ( c'est-à-dire l'axe, étiquettes et ainsi de suite)
    • Chart factory : combine le dataset et les renders pour créer les diagrammes. Le diagramme peut être créée à l'intérieur d'une activité ou le chart factory peut retouner un view.

    Exemples de graphiques avec Android :

    Commençons par crée notre projet .


    Comme exemple, nous allons créer un Bar Chart . 

    Dans cette classe, on a créé une méthode qui va retourner  le dataset pour notre bar chart :


    Ceci est le code final de l'activité AchartEngineActivity :


    Ajoutez ce ligne à AndroidManifest.xml :

    <activity android:name="org.achartengine.GraphicalActivity" />


    Ceci est le résultat final :








    vendredi 8 août 2014

    Sécurisez le code de votre application Android



    Les langages de programmation semi-compilés (compilé en un code binaire interprété par une machine virtuelle) tels que Java et .NET rendent la ingénierie inverse plus aisée.

    A ce propos , on va parler de l'ingénierie inverse pour une application Android. Plusieurs outils peuvent etre utilisés pour ce faire à savoir  Dex2Jar qui est un outil pour l'ingénierie inverse. 
    De nombreux éditeurs de logiciels propriétaires incluent dans leurs CLUF des clauses interdisant l' ingénierie inverse. 

    RIIS a développé HoseDex2Jar qui est un nouvel outil qui empêche les pirates d'utiliser Dex2Jar pour avoir accès au code source. HoseDex2Jar est un outil simple qui ajoute des instructions dans le fichier classes.dex que Dex2Jar ne peut pas traiter. 

    L'outil de ProGuard rétrécit, optimise et obscurcit votre code en supprimant code inutilisé et en renommant les classes, les champs et les méthodes avec des noms sémantiquement obscures. Le résultat est un fichier APK de plus petite taille qui est plus difficile à désosser. Parce que ProGuard fait votre demande difficile à désosser, il est important que vous l'utilisez lorsque votre application utilise des fonctionnalités qui sont sensibles à la sécurité comme quand vous êtes licence de vos applications. 

    Pour mieux clarifier les choses on va répondre à ces questions :  
    1) Comment puis-je éviter complètement l'ingénierie inverse d'un APK Android? Est-ce possible? 

    Il n'y a pas de truc pour éviter complètement de l'ingénierie inverse. 
    Quoi que vous fassiez à votre code, un attaquant potentiel est capable de changer en aucune façon qu'elle ou il se trouve faisable. Vous pouvez tout simplement pas protéger votre application d'être modifié. Et de toute protection que vous mettez là-bas peut être désactivé / supprimé. 

    2) Comment puis-je protéger toutes les ressources de l'application, l'actif et le code source pour que les pirates ne peuvent pas pirater le fichier APK de quelque façon? 

    Vous pouvez faire différentes astuces pour rendre le piratage plus difficile cependant. Par exemple, utiliser obfuscation (si c'est le code Java). Cette ralentit généralement l'ingénierie inverse de manière significative. 

    3) Y a t-il un moyen de rendre le piratage plus difficile, voire impossible? Que puis-je faire pour protéger le code source dans mon fichier APK? 

    Comme tout le monde dit, et comme vous le savez sans doute, il n'y a pas de sécurité à 100%. Mais le point de départ pour Android, que Google a intégré, est ProGuard. Si vous avez la possibilité d'inclure les bibliothèques partagées, vous pouvez inclure le code nécessaire dans C ++ pour vérifier la taille des fichiers, l'intégration, etc Si vous avez besoin d'ajouter une bibliothèque native externe de dossier de la bibliothèque de votre APK sur chaque version, vous pouvez utiliser par la proposition ci-dessous. 

    Mettez la bibliothèque dans le chemin de bibliothèque native qui est par défaut «libs» dans votre dossier de projet. Si vous avez créé le code natif pour cible les «armeabi 'puis mettre sous libs / armeabi. Si elle a été construite avec armeabi-V7A puis le mettre sous libs / armeabi-V7A. 

    <projet> /libs/armeabi/libstuff.so


    mercredi 23 avril 2014

    [Tutoriel] Android : Quick Action pattern





    Bienvenue ,nous allons présenter dans ce tutoriel le Quick Action pattern .  Fondamentalement, il s'agit d'un menu contextuel qui ne couvre pas les données qui est donné suite. L'implémentation de ce modèle pourrait probablement rendre votre application plus interactive et intéressante. La boîte de dialogue Quick Actions n'est pas inclus dans le SDK Android standard, nous devons donc créer manuellement.

    samedi 19 avril 2014

    [Actualité] : Application ENIS Android Club sera disponible !


    Enfin ! L'application mobile d' ENIS Android Club sera prochainement disponible dans le store prés à télécharger. 

    [Tutoriel 2/2] :Communication Android avec MySQL+BONUS

    Bienvenue ,ceci est la deuxième partie du tutoriel précédant [Tutoriel] :Communication Android avec MySQL [PHP] [ Partie 1/2 ] .
    Notre objectif est de faire communiquer notre application Android avec une base de données MySQL et faire différents opérations (CRUD).
    Comme le titre indique il y a  un BONUS ;) . 

    vendredi 18 avril 2014

    [Tutoriel 1/2 ] :Communication Android avec MySQL [PHP]

    Bienvenue ,voici le nouvel tutoriel , après un retard, qui s'intéresse sur la communication avec  des bases de données sous Android pour stocker des données . On a vu la dernière fois l’utilisation du base de données interne d' Android SQLite ( Tuto ).
    Cette fois ci , on va voir comment utiliser une base de données externe (MySQL) .

    dimanche 6 avril 2014

    [Compétiton] SIB Sfax 2014 organise trois compétitions



     SIB Sfax est un évènement annuel de dimension internationale. Il annonce cette année 3 compétitions dans le domaine d'informatique .
    Parmi lesquelles une compétition de d"développement mobile .L'idée  de l'application sera sur SIB Sfax .
    Elle commence d'ici à 11 avril 2014 .
    Les participants peuvent gagnés des Tablettes  lors de clôture le 12 avril 2014.


    jeudi 27 février 2014

    [Compétiton] Africa Android Challenge 2014



    La compétition  Africa Android Challenge (AAC) 2014 viens de se lancer depuis le début du mois janvier 2014 et se termine le mois de mai 2014.

    L'Afrique Android Challenge est l'occasion de découvrir les meilleurs développeurs et experts Android sur le continent africain. Les candidats ont la possibilité de créer des applications innovantes et produire un contenu local "africain". Tout cet effort est axé sur la collectivité et est un moyen d'assurer le succès à long terme de développeurs africains investis dans l'environnement d'application Android. Nous espérons également que cette initiative mènera à la découverte de contenus et d'applications locales inattendu, riche et précieux. Quelques chiffres de l'AAC 2013 30 pays 200 soumissions 156 Approuvé 52 appareils répartis 16 GDG Barcamp événements pour célébrer le vainqueur de Tunis à Adis Abéba, Dakar etc ..

    Pour plus des détails veuillez visiter :    http://androidchallenge.org/





    jeudi 12 décembre 2013

    [Tutoriel] : Afficher des pages Web



    Bienvenue, nous allons dans ce tutoriel monter comment afficher des pages web dans le navigateur de votre mobile . Il pourrait vous prendre l'envie de montrer à votre utilisateur une page Web. Ou alors il se peut que vous vouliez faire une interface graphique à l'aide de HTML.

    Pour avoir une utilisation plus poussée de HTML, on va utiliser une nouvelle vue qui s'appelleWebView. En plus d'être une vue très puissante, WebView est commandé par WebKit, un moteur de rendu de page Web qui fournit des méthodes pratiques pour récupérer des pages sur internet, effectuer des recherches dans la page, etc.


    Charger directement du HTML

    Pour insérer des données HTML sous forme textuelle, vous pouvez utiliser void loadData(String data, String mimeType, String encoding) avec data les données HTML, mimeType le type MIME (en général text/html) et l'encodage défini dans encoding. Si vous ne savez pas quoi mettre pour encoding, mettez « UTF-8 », cela devrait aller la plupart du temps.

    package
    com.amine.webview;

    import android.app.Activity;
    import android.os.Bundle;
    import android.webkit.WebView;

    public class MainActivity extends Activity {
          private WebView mWebView = null;
         
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mWebView=(WebView) findViewById(R.id.webView1);
            mWebView.loadData("<html><head><meta charset=\"utf-8\" /></head>" + "<body>Hello Wolrd ! !</body></html>", "text/html", "UTF-8");
        }
    }


    Après le lancement de votre application sur l'émulateur, vous aurez le résultat suivant :


    Charger une page sur internet

    La première chose à faire est de demander la permission pour aller sur internet dans le Manifest :
    <uses-permission android:name="android.permission.INTERNET" />

    Puis vous pouvez charger le contenu avec void loadUrl(String url). Ainsi, avec ce code :

    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mWebView=(WebView) findViewById(R.id.webView1);
            mWebView.loadUrl("http://www.google.tn");
        }

    … on obtient la figure suivante :










    dimanche 24 novembre 2013

    [Tutoriel] :SQLite Android Tutoriel

    Bienvenue ,voici le nouvel tutoriel qui s'intéresse sur la création des bases de données sous Android pour stocker des données . En effet , plusieurs  application ont besoin de stocker des données. : La simple méthode c'est d'utiliser SQLite

    samedi 9 novembre 2013

    [Événement]: Atelier 5: SQLite

    Les DS sont finis , vous sentez fatigués ? Alors relaxez avec Android .

    EAC organise un atelier ce mercredi (13 Novembre 2013 à l'Ecole Nationale d'ingénieurs de Sfax) . Le sujet est : SQLite Smiley (+codage) . On va créer une simple application avec SQLite.


    ► Paricipation  :

    ► Objectifs :
    - Savoir utiliser une base de données SQLite dans une application Android

    ► Remarques : 
    - Apportez vos PC avec chargeurs
    - Environnement de développement installé
    - Explorez les anciens articles du  notre blog : http://www.enis-androidclub.tk
    ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
    Soyez Nombreux  et Ne ratez pas cette séance ;)

    ■ Groupe Enis Mobile Development: https://www.facebook.com/groups/enis.mobile.development
    ■ Page :https://www.facebook.com/ENIS.Android.Club


    SQLite est le moteur de base de données le plus distribué au monde, grâce à son utilisation dans de nombreux logiciels grand public comme Firefox, Skype, Google Gears, dans certains produits d'Apple, d'Adobe et de McAfee et dans les bibliothèques standards de nombreux langages comme PHP ou Python. De par son extrême légèreté (moins de 300 Kio), elle est également très populaire sur les systèmes embarqués, notamment sur la plupart des smartphones modernes : l'iPhone ainsi que les systèmes d'exploitation mobiles Symbian et Android l'utilisent comme base de données embarquée.
    * wiki


    mercredi 6 novembre 2013

    [Actualité] :Android 4.4 KitKat est là !




    Android 4.4 KitKat, la nouvelle version de l’OS mobile de Google est disponible maintenant .Voici quelques nouveautés qu’elle apporte: Smiley

    dimanche 27 octobre 2013

    Les ateliers seront suspendus!




    Les ateliers d'Enis Android Club seront suspendus pendant deux semaines en raison des DS à l'Ecole Nationale d'ingénieurs de Sfax. Nous reprendrons les activitées juste après (le mercredi 13 Novembre 2013) .
    Bonne courage dans les devoirs  Smiley. 


    Plusieurs surprises vous attendent.




    jeudi 24 octobre 2013

    [Tutoriel] : ListView Android



    Bonjour tout le monde , ce tutoriel va vous montrer qu'est ce qu'on vu la dérniére séance du Club (23/10/2013 : 4 éme Atelier ) : Les ListView .
    Comme son nom l'indique, une ListView est une liste de vue comprenant des items ;

    lundi 21 octobre 2013

    [Événement] : Atelier Développement Android 4



     EAC organise un atelier ce mercredi (23 Octobre 2013 à l'Ecole Nationale d'ingénieurs de Sfax)  Smiley .

    samedi 12 octobre 2013

    [Actualité] :Arab Mobile App Challenge




    'Arab Mobile App challenge' est le nom de la  nouvelle  événement organisé par l’Ecole Supérieure des Communications de Tunis (Sup’Com) en partenariat avec Silatech et l’ Institute of Applied Innovation, Berkley, USA.

    [Tutoriel] : Changement de vues sous Android (Intent)


    On va un peu plus loin la création et la gestion des vues sous Android. Dans ce tutoriel, vous allez apprendre à gérer le passage d’une vue à une autre dans votre application.
    Le passage d'une vue à une autre signifie qu'il y a un changement d'activités. Pour pouvoir essayer ce tuto , il faut voir ces deux articles : Notions de Base et Design&Tosat&AlertDalog .Smiley

    Nous allons créer un nouveau projet TutoIntentEAC ayant comme activité :  Activity1   (je vais travailler avec 2.2) .
    Tout simplement on va faire une formulaire d'inscription qui permet de passer d'une activité à une autre en passant des données entre les activités .


    Je pense que c'est facile maintenant de créer une telle interface Smiley . non !
    Téléchargement de ressources 

    Activity_1.xml :
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/RelativeLayout1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/back"
        android:orientation="vertical" >

        <EditText
            android:id="@+id/editTextNom"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="20dp"
            android:layout_marginTop="64dp"
            android:hint="Votre nom"
            android:inputType="textPersonName" />

        <EditText
            android:id="@+id/editTextPrenom"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/editTextNom"
            android:layout_centerHorizontal="true"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="20dp"
            android:hint="Votre prénom"
            android:inputType="textPersonName" />

        <EditText
            android:id="@+id/editTextMail"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/editTextPrenom"
            android:layout_centerHorizontal="true"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="20dp"
            android:hint="Votre mail"
            android:inputType="textEmailAddress" />

        <EditText
            android:id="@+id/editTextPassword"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/editTextMail"
            android:layout_centerHorizontal="true"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="20dp"
            android:hint="Votre mot de passe"
            android:inputType="textPassword" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/editTextPassword"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="30dp" >

            <Button
                android:id="@+id/button2"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:drawableLeft="@drawable/exit"
                android:text="Annuler" />

            <Button
                android:id="@+id/button1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:drawableLeft="@drawable/accept1"
                android:text="Enregistrer" />
        </LinearLayout>


    </RelativeLayout>

    Créons une autre activité maintenant Activity2.
    Sélectionner le projet (clic droite): > New > Other > Android > Android Activity 
    et nommer l'activité  Activity2 , et la layout activity_2.


    Activity_2.xml :
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/back"
    > 

    <TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="27dp"
    android:text="Large Text"
    android:textAppearance="?android:attr/textAppearanceLarge" />


    </RelativeLayout>

    Dans l'activité Activity1.java , on récupère les composants par leurs ID , et on ajoute un écouteur d’événement au deux boutons. 
    public class Activity1 extends Activity implements OnClickListener {

    EditText nom;
    EditText prenom;
    EditText mail;
    Button enreg;
    Button annuler;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //On charge l'interface (layout) activity_1
    setContentView(R.layout.activity_1);
    //récupération des composants  grâce à les ID
    nom=(EditText)findViewById(R.id.editTextNom);
    prenom=(EditText)findViewById(R.id.editTextPrenom);
    mail=(EditText)findViewById(R.id.editTextMail);
    enreg=(Button)findViewById(R.id.button1);
    annuler=(Button)findViewById(R.id.button2);
    //on applique un ecouteur d'évenemnt au clique sur les 2 boutons
    annuler.setOnClickListener(this);
    enreg.setOnClickListener(this);


    }

    Nous allons faire en sorte que lorsqu’un nouvel utilisateur clique sur le bouton “Enregistrer”, il soit redirigé vers une autre vue (Activité 2) en affichant les informations saisis dans la deuxième vue.

    Intent 

    Pour le passage d’une activité à une autre c’est facile. On crée un nouveau Intent (Les intents peuvent être considérés comme des messages utilisées par le système afin de communiquer avec des applications, activités …
      Le premier argument représente le contexte (facilement récupérable à l’aide de l’activité de départ) et le second représente l’activité d’arrivée.
        On utilise la méthode “startActivityForResult” avec comme argument l’intent crée précédemment et un code.Smiley
        Pour les actions de deux boutons on fait un onClickListener sur chaque bouton.
        Dans la méthode onClick :


        public void onClick(View arg0) {

        switch (arg0.getId()) {
        //selon le bouton :
        case R.id.button1:
        // bouton Enregister
        //On crée un nouveau Intent
        Intent i=new Intent(this,Activity2.class);
        this.startActivityForResult(i, 1000);
        break;

        case R.id.button2:
        //  bouton annuler
        //fermer l'app
        finish();
        break;
        }
        }

        Si vous testez le code , le passage vers l'autre activité s’effectue correctement mais les données d'utilisateur ne sont pas transmis Smiley .

        Passage de données d’une activité à une autre:

        Pour transmettre des données, il suffit de les ajouter à l’intent crée précédemment en leur spécifiant une clé permettant de les identifier. (comme si on transmet l'argent Smiley).
        Intent i=new Intent(this,Activity2.class);
        // envoyer les données vers l'autre activité
        i.putExtra("cleNom", nom.getText().toString());
        i.putExtra("clePrenom", prenom.getText().toString());
        i.putExtra("cleMail", mail.getText().toString());

        this.startActivityForResult(i, 1000);

         Il nous reste que recevoir les données par la deuxième activité.
        Dans la méthode onCreate() du Activity2.java , il faut tout d'abord vérifier qu'il y a des données transmis via Intent (Extras).Si oui , alors on récupère les donnés grâce au identifiant (Clé) .
        String s1 = null;
         if (this.getIntent().getExtras()!=null){ //recuperer le nom grace à l'identifiant cleNom                             s1=this.getIntent().getExtras().getString("cleNom");}
        la variable s1 contient donc la valeur du Nom saisis au premier activité , de même pour les autres variables transmises Smiley.
        On peut afficher le contenu de cette variable dans un Toast (ici) lors de lancement de la deuxième activité  dans onCreate() et après le code précédent on tape :

        Toast msg=Toast.makeText(Activity2.this.getApplicationContext(), "Bienvenue "+s1, Toast.LENGTH_LONG);                                                                    msg.show();



        Conclusion:

        Après ce tutoriel , vous êtes capable de construire une application à plusieurs interfaces graphique qui interagissent entre eux (avec Passage des données etc. ) Smiley.
        Voici le code source:(Android 2.2)



        Désolé pour les fautes d'orthographe mais n'hésitez pas à me les dire pour les corriger Smiley et n'hésitez pas de poser vos questions ainsi les commentaires .


        Sauvegarder le lien

        Twitter Delicious Facebook Digg Stumbleupon Favorites More

        Recherche

        Pages vues

        Articles populaires

        Notre page facebook

        Libellés

        Tutoriel (17) Android (12) Activite (10) Actualite (6) Event (5) 2014 (3) Compétition (2) MySQL (2) json (2) php (2) webservices (2) APK (1) Design (1) Formation (1) KitKat (1) SIB (1) Securité (1) sfax (1)
        Copyright © ENIS Android Club