Semplificare lo sviluppo delle applicazioni Android con Anko

Progettato da JetBrains, l’organizzazione dietro Kotlin, Anko è una libreria open source che può cambiare radicalmente il modo in cui crea applicazioni Android. Approfitta della sintassi di Kotlin per offrire una grande raccolta di funzioni di aiuto che ti aiutano a ridurre la verbosità del tuo codice migliorando la tua prestazione ..

Anko è piegato come DSL, abbreviazione del dominio della lingua specifico, da creare Disegni Android. In altre parole, è possibile agire come un’alternativa sicura al tipo, dinamico e più riutilizzabile ai file di progettazione XML, che, come saperai, tendono ad essere difficile da gestire per le grandi applicazioni.

In questo tutorial, ti aiuterò ad avviare Anko mostrandoti come utilizzare alcune delle tue funzioni più popolari.

1. Configurazione del progetto

per essere in grado di utilizzare le funzioni principali di Anko nel tuo progetto Android Studio, tutto ciò che devi fare è aggiungere il seguente implementación dipendenza da aplicación Modulo di costruzione .Gradote:

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

Tuttavia, se si desidera che Anko funzioni con i widget delle librerie di supporto Android, è necessario le seguenti dipendenze aggiuntive:

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. Creazione di progetti

anko dsl ha funzioni di aiuto per quasi tutti i widget che offrono alle librerie di supporto Android SDK e Androi d. Usandoli, puoi creare i tuoi progetti a livello di programmazione. I nomi delle funzioni corrispondono ai nomi dei widget, ma iniziano con una lettera minuscola. Ad esempio, per creare un Vista de texto widget, utilizzare la funzione di ANKO vista de texto(). Allo stesso modo, per creare un widget, è possibile utilizzare il Botón de acción flotante () funzione.

Entro le funzioni, lo farai Avere accesso a tutte le proprietà e gli ascoltatori degli eventi dei widget associati. Ad esempio, è possibile modificare la dimensione del testo di un widget aggiornando il valore di tamano del texto proprietà all’interno del vista de texto() funzione. Allo stesso modo, è possibile aggiungere un rilevatore di eventi facendo clic con il pulsante al hacer clic Metodo.

Per aiutarti a capire meglio come usare il DSL, qui è Un esempio di esempio per un’applicazione del browser, che contiene un Editar texto widget e un WebView widget posto all’interno di LinearLayout widget il cui orientamento è VERTICAL:

linearLayout orientación = LinearLayout.VERTICAL var myWebView: ¿WebView? = nulo editText inputType = InputType.TYPE_TEXT_VARIATION_URI imeOptions = EditorInfo.

Il codice scritto nell’anko DSL è molto leggibile E intuitivo, ma richiede un certo tempo per abituarsi, specialmente se sei già uno sviluppatore di Android esperto. Non è più necessario assegnare identificatori ai tuoi widget o utilizzare il metodo findViewById () per riferirsi a loro, poiché a differenza dei disegni basati su XML, i progetti basati su DSL possono incapsulare la logica aziendale del tuo applicazione. Ad esempio, è possibile vedere che Editar texto widget definito sopra ha un OnEditorAction rilevatore di eventi che chiama direttamente a loadUrl () Metodo di WebView Widget per caricare l’URL che l’utente ha scritto ..

Inoltre, non è necessario chiamare il Altro metodo perché Anko lo chiama automaticamente all’interno del Actividad Classe onCreate () Metodo.

La DSL include diverse scorciatoie che puoi utilizzare per rendere i tuoi progetti più concisi. Ad esempio, è possibile passare direttamente catene direttamente alle funzioni per assegnare etichette ai widget. Spesso, è anche possibile evitare di impostare esplicitamente parametri di progettazione come larghezze e altezze perché le gestisce automaticamente. Il seguente codice di esempio mostra come creare un design che contiene due widget in modo molto conciso:

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

P> In confronto, questo è il modo in cui il design precedente sembrerebbe se fosse stato creato convenzionale:

 

Infine, ne vale la pena menzionare che il I disegni creati con Anko DSL tendono a essere caricato più velocemente dei normali progetti perché non è richiesto un’analisi XML.

3. Creazione delle finestre di dialogo

Se si ritiene utilizzare AlertDialog.Builder La classe per creare dialoghi è molto lavoro, non sei assolutamente da solo.Ad esempio, ecco come creerebbe normalmente una semplice finestra di dialogo che mostra un titolo, un messaggio e un pulsante “Accetta”:

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

Tuttavia, con Anko, creando la finestra di dialogo precedente implica semplicemente una chiamata al alerta(), che accetta il titolo e il messaggio della finestra di dialogo come argomenti ..

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

Si prega di notare che non è necessario passare un contesto a alerta() funzione. Defedisce automaticamente il contesto ..

Anko ha caratteristiche simili con nomi intuitivi per aiutarti a creare rapidamente pane tostato e snack bar. Il seguente codice mostra come creare pane tostato corto e duraturo:

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

4. Creare intenzioni

Ogni volta che è necessario avviare un Nuova attività nella tua applicazione, devi creare un’intenzione. Inoltre, se si desidera inviare dati all’attività, dovresti includerli nell’intenzione come uno o più extra.

con anko startActivity () funzione, è in grado di eseguire solitamente entrambe le attività su una singola riga di codice. Ad esempio, il seguente codice mostra come avviare un’attività chiamata Mi actividad e passare due extra, una stringa extra chiamata “Persona” e un nuovo intero chiamato “Age”, a questo:

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

anko ha anche le funzioni di aiuto per vari compiti comuni basati su intenzioni. Ad esempio, è possibile utilizzare la funzione vistazo() per aprire un URL nell’applicazione del browser predefinita del dispositivo. Allo stesso modo, è possibile utilizzare la funzione per aprire l’applicazione e-mail predefinita e scrivere un’e-mail ..

// 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. Utilizzo dei database SQLITE

Sebbene tutte le applicazioni Android possano creare e utilizzare i database SQLite senza dipendenze aggiuntive, molti sviluppatori scelgono i database di terze parti come regno. Perché? Bene, potrebbe essere perché l’API Android SQLite è estremamente dettagliata, di basso livello e richiede una buona comprensione SQL. Fortunatamente, Anko ha le funzioni di aiuto sqlite per risolvere tutti quei problemi ..

Diciamo che abbiamo un semplice database SQLite creato con il seguente codice:

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

Con Anko, è ora possibile aggiungere una tabella al database precedente semplicemente usando la funzione crear mesa() funzione, che attende il nome del tavolo insieme a un altro o tupla che specifica i nomi e i tipi di dati dalle tue colonne. Il seguente codice di esempio crea una tabella chiamata PERSONA che ha quattro colonne, una delle quali funge da chiave primaria:

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

Inoltre, per inserire righe nella tabella, non devi più dipendere dal Valores de contenido () classe. È possibile chiamare direttamente a insertar() Funzione nel database, specificare il nome della tabella a cui si desidera aggiungere la riga e quindi passare i valori della colonna sotto forma di a 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)

Infine, per consultare il database, è possibile utilizzare la funzione seleccionar(), opzionalmente seguita da A Catena di funzioni nominate intuitivamente, come dondeSimple ()orderBy () e agrupar por(). Ad esempio, per elencare i nomi e le età di tutte le persone nella tabella precedente il cui valore netto è maggiore di 10000, è possibile utilizzare il seguente codice:

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

Il risultato della query precedente sarà, come ci si aspetterebbe, un oggetto Cursor. Convertirlo in Lista contenente valori di colonna reale di tutte le righe è un po ‘più complicata perché comporta la creazione di un oggetto che implementa il RowParser Interfaccia e passandolo su parseList () Funzione “> .

L’interfaccia RowParser ha un singolo metodo, il parseRow () Metodo, entro il quale avrai accesso ai valori della colonna di una riga. Come usi i valori, ovviamente, dipende da te. Per ora, possiamo concedere e stampiamo solo. Il seguente codice mostra come farlo:

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)

Nota che non è sempre necessario creare un RowParser Oggetto manualmente. Se i risultati della tua query contengono solo una colonna, è possibile utilizzare uno dei tanti ancore anko integrati.

I nomi degli analizzatori integrati si basano sui tipi di dati delle colonne. Ad esempio, se il tipo di dati è TEXTO, è possibile utilizzare un StringParser. O se il tipo di dati è ENTERO, è possibile utilizzare un IntParser.Il seguente codice mostra come utilizzare un StringParser per elencare semplicemente i nomi di tutte le persone nel nostro database:

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

Conclusione

In questo tutorial, hai imparato a utilizzare le funzioni della Guida e DSL di Anko per semplificare lo sviluppo delle applicazioni Android. Hai anche visto come ANKO semplifica le operazioni relative a SQLite. Spero che ora ti rendi conto di quanto ben pensato e utile sia la biblioteca ..

Secondo me, se sei già competente a Kotlin, non c’è davvero motivo per cui non dovresti usare Anko Per migliorare ulteriormente la tua esperienza di efficienza e sviluppo. Per ulteriori informazioni su questo, fare riferimento al tuo wiki ufficiale.

E mentre sei qui, dai un’occhiata ad alcune delle nostre altre pubblicazioni sullo sviluppo delle applicazioni Kotlin e Android!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *