Simplifiez le développement d’applications Android avec anko

conçu par JetBrains, l’organisation de Kotlin, Anko est une bibliothèque open source pouvant changer radicalement la façon dont vous créez des applications Android. Profitez de la syntaxe de Kotlin pour offrir une grande collection de fonctions d’aide qui vous aident à réduire la verbosité de votre code tout en améliorant votre performance.

ANKO est plié en tant que DSL, abréviation d’un domaine de langue spécifique, à créer Designs Android. En d’autres termes, vous pouvez agir comme une alternative sûre au type, dynamique et plus réutilisable des fichiers de conception XML, qui, comme vous le savez, ont tendance à être difficiles à gérer pour les grandes applications.

dans cette Tutoriel, je vais vous aider à démarrer Anko en vous montrant comment utiliser certaines de vos fonctions les plus populaires.

1. Configuration du projet

Pour pouvoir utiliser les fonctions principales d’Anko dans votre projet Android Studio, tout ce que vous avez à faire est d’ajouter le suivant implementación Dépendance sur le aplicación module de construction .gradote:

implementación 'org.jetbrains.anko: anko: 0.10.1'

Cependant, si vous voulez que Anko fonctionne avec des bibliothèques de support Android, vous aurez besoin des dépendances supplémentaires suivantes:

implementación 'org.jetbrains.anko: anko-appcompat-v7: 0.10.1' implementación 'org.jetbrains.anko: anko-design: 0.10.1' implementación 'org.jetbrains.anko: anko-recyclerview-v7: 0.10. 1 'implementación' org.jetbrains.anko: anko-cardview-v7: 0.10.1 '

2. Création de designs

Anko DSL a de l’aide aux fonctions de presque tous les widgets proposant des bibliothèques de SDK Android et d’ANDROI ré. Utilisez-les, vous pouvez créer vos conceptions par programme. Les noms des fonctions correspondent aux noms des widgets, mais commencent par une lettre minuscule. Par exemple, pour créer un Vista de texto widget, utilisez ANKO’s vista de texto() fonction. De même, pour créer un widget, vous pouvez utiliser la Botón de acción flotante () fonction.

dans les fonctions, vous allez avoir accès à toutes les propriétés et aux auditeurs d’événements des widgets associés. Par exemple, vous pouvez modifier la taille de texte d’un Vista de texto widget en mettant à jour la valeur de la tamano del texto propriété dans le vista de texto() fonction. De la même manière, vous pouvez ajouter un détecteur d’événement en cliquant sur le bouton méthode.

Pour mieux comprendre comment utiliser la DSL, voici ici Un exemple de conception pour une application de navigateur, qui contient un Editar texto widget et un WebView widget placé à l’intérieur d’un LinearLayout widget dont l’orientation est VERTICAL

Le code écrit dans l’anko dsl est très lisible Et intuitif, mais cela nécessite un certain temps pour s’habituer à, surtout si vous êtes déjà un développeur expérimenté Android. Vous n’avez plus besoin d’attribuer des identifiants à vos widgets ou d’utiliser la findViewById () méthode pour les mentionner, car les conceptions basées sur XML peuvent encapsuler la logique commerciale de votre application. Par exemple, vous pouvez voir que le Editar texto Widget défini ci-dessus a un OnEditorAction Détecteur d’événement qui appelle directement au loadUrl () méthode du WebView widget pour charger l’URL que l’utilisateur a écrit.

aussi, vous n’avez pas à appeler le MODE PROTECTION car ANKO l’appelle automatiquement dans votre Actividad Classe onCreate () Méthode.

Le DSL comprend plusieurs raccourcis que vous pouvez utiliser pour rendre vos conceptions plus concises. Par exemple, vous pouvez transmettre directement des chaînes à vos fonctions pour attribuer des étiquettes aux widgets. Souvent, vous pouvez également éviter de définir explicitement des paramètres de conception tels que des largeurs et des hauteurs, car il les gère automatiquement. Le code d’échantillon suivant vous indique comment créer une conception contenant deux Vista de texto widgets de manière très concise:

verticalLayout textView ("One") textView ("Two")

Par comparaison, c’est ainsi que la conception précédente ressemblerait si elle a été créée conventionnelle:

 

Enfin, ça vaut la peine de mentionner que le Les conceptions créées avec l’anko DSL ont tendance à être chargées plus rapidement que les conceptions normales car une analyse XML n’est pas requise.

3. Création de dialogues

Si vous pensez utiliser l’AlertDialog.Builder

La classe à créer des dialogues est beaucoup de travail, vous n’êtes certainement pas seul.Par exemple, voici comment il créerait normalement une boîte de dialogue simple qui affiche un titre, un message et un bouton « Accepter »:

AlertDialog.Builder (este @ MyActivity) .setTitle ("My Dialog") .setMessage ("Este es un mensaje de prueba") .setPositiveButton ("OK", null) .create () .show ()

Anko, la création de la boîte de dialogue précédente implique simplement un appel à la fonction alerta(), qui accepte le titre et le message de la boîte de dialogue comme arguments.

alerta ("Este es un mensaje de prueba", "Mi cuadro de diálogo") yesButton .show ()

Veuillez noter que vous ne devez pas passer un contexte à la alerta() fonction. Il prénave automatiquement le contexte ..

ANKO a des caractéristiques similaires avec des noms intuitifs pour vous aider à créer rapidement des grillements et des barres de snacks. Le code suivant vous montre comment créer un toast court et durable durable:

tostada ("Esta es una tostada corta") longToast ("Y esta es una tostada larga")

4. Créer des intentions

Chaque fois que vous devez démarrer un Nouvelle activité dans votre application, vous devez créer une intention. De plus, si vous souhaitez envoyer des données à l’activité, vous devez les inclure dans l’intention comme un ou plusieurs extras.

avec anko startActivity () fonction, vous pouvez généralement effectuer les deux tâches sur une seule ligne de code. Par exemple, le code suivant vous montre comment démarrer une activité appelée Mi actividad et transmettez deux extras, une chaîne supplémentaire appelée « personne » et un tout extra-entité appelé « âge », à ce sujet:

startActivity("PERSONA" a "Bob", "EDAD" a 25)

ANKO a également une aide pour diverses tâches communes basées sur des intentions. Par exemple, vous pouvez utiliser votre fonction pour ouvrir une URL dans l’application de navigateur par défaut de l’appareil. De la même manière, vous pouvez utiliser la fonction pour ouvrir l’application de courrier électronique par défaut et écrire un email ..

// Abrir navegador navegar ("https://tutsplus.com") // Abrir correo electrónico predeterminado de la aplicación de correo electrónico ("", "Hola", "Este es un correo electrónico de prueba")

5. Utilisation de bases de données SQLITE

Bien que toutes les applications Android puissent créer et utiliser des bases de données SQLITE sans dépendances supplémentaires, de nombreux développeurs choisissent des bases de données tierces comme royaume. Parce que? Eh bien, il se peut que l’API d’Android SQLite est extrêmement détaillée, de faible niveau et nécessite une bonne compréhension SQL. Heureusement, Anko a une aide SQLite fonctionne pour résoudre tous ces problèmes.

Disons que nous avons une base de données SQLite simple créée avec le code suivant:

val myDB = openOrCreateDatabase ("test.db", Context.MODE_PRIVATE, null)

avec ANKO, vous pouvez maintenant ajouter une table à la base de données précédente à l’aide de la crear mesa() fonction, ce qui attend le nom de la table avec un de plus ou Tuples spécifiant les noms et types de données de vos colonnes. Le code d’échantillon suivant crée une table appelée PERSONA qui comporte quatre colonnes, dont l’une sere comme une clé primaire:

myDB.createTable ("PERSONA", verdadero, "NOMBRE" a TEXTO, "EDAD" a INTEGER, "NET_WORTH" a REAL, "ID" a INTEGER + PRIMARY_KEY)

De plus, pour insérer des lignes dans la table, vous n’avez plus besoin de dépendre de la Valores de contenido () classe. Vous pouvez appeler directement à la fonction insertar() dans la base de données, spécifiez le nom de la table à laquelle vous souhaitez ajouter la ligne, puis transmettre les valeurs de colonne sous la forme d’un tupera.

// Agregue una fila myDB.insert ("PERSONA", "NOMBRE" a "Bob Martin", "EDAD" a 25, "NET_WORTH" a 2500.50, "ID" a 100) // Agregue otra fila myDB.insert (" PERSONA "," NOMBRE "a" Jane Flores "," EDAD "a 32," NET_WORTH "a 21500.80," ID "a 101)

Enfin, pour consulter la base de données, vous pouvez utiliser la seleccionar() fonction, suivie éventuellement suivie d’un Chaîne de fonctions nommées intuitivement, telles que dondeSimple ()orderBy (), et agrupar por(). Par exemple, pour répertorier les noms et les âges de toutes les personnes du tableau précédent dont la valeur nette est supérieure à 10000, vous pouvez utiliser le code suivant:

myDB.select ("PERSON", "NAME", "AGE") .whereSimple ("NET_WORTH>?", "10000.0"). exec // Más código aquí

Le résultat de la requête précédente sera, comme vous l’attendez, un Cursor objet. Convertissez-le en un Lista contenant des valeurs de colonne réelles de toutes les lignes est un peu plus compliqué car il implique la création d’un objet qui implémente le RowParser interface et le transmettant à la parseList () fonction.

« L’interfaceRowParser

a une seule méthode, la parseRow () méthode, dans laquelle vous aurez accès aux valeurs de colonne d’une ligne. Comment utilisez-vous des valeurs, bien sûr, dépend de vous. Pour l’instant, nous ne concrétisons et imprime que. Le code suivant montre comment le faire:

parseList (objeto: RowParseranular la diversión parseRow (columnas: Array): Cadena // Concatenar los valores de la primera y la segunda columnas, // que son NAME y AGE devuelven "$ columnas ($ columnas años)"). forEach println (it) // imprime los valores concatenados // El resultado es: // Jane Flores (32 años)

Notez que vous ne devez pas toujours créer un RowParser Objet manuellement. Si les résultats de votre requête ne contiennent qu’une colonne, vous pouvez utiliser l’une des nombreuses analyseurs intégrées Anko.

Les noms des analyseurs intégrés sont basés sur les types de données des colonnes. Par exemple, si le type de données est TEXTO, vous pouvez utiliser un StringParser. Ou si le type de données est ENTERO, vous pouvez utiliser un IntParser.Le code suivant vous montre comment utiliser un StringParser pour énumérer simplement les noms de toutes les personnes de notre base de données:

myDB.select ("PERSON", "NAME"). exec parseList (StringParser) .forEach println (it) // El resultado es: // Bob Martin // Jane Flores

Conclusion

Dans ce tutoriel, vous avez appris à utiliser les fonctions d’aide et de DSL d’Anko pour simplifier le développement d’applications Android. Vous avez également vu comment Anko simplifie les opérations liées à SQLite. J’espère que vous réalisez maintenant à quel point la bibliothèque …

À mon avis, si vous êtes déjà compétent à Kotlin, il n’y a vraiment aucune raison pour ne pas utiliser Anko Améliorer encore votre expérience d’efficacité et de développement. Pour en savoir plus à ce sujet, reportez-vous à votre wiki officiel.

Et pendant que vous êtes ici, consultez certaines de nos autres publications sur le développement des applications Kotlin et Android!

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *