Simplificați dezvoltarea aplicațiilor Android cu ANKO

Proiectat de Jetbrains, organizația din spatele Kotlin, Anko este o bibliotecă open source care poate schimba radical modul în care creați aplicații Android. Profitați de sintaxa lui Kotlin pentru a oferi o mare colecție de funcții de ajutor care vă ajută să reduceți verbozitatea codului dvs. în timp ce vă îmbunătățiți performanța ..

ANKO este îndoită ca un DSL, abrevierea domeniului de limbaj specific, pentru a crea Designuri Android. Cu alte cuvinte, puteți acționa ca o alternativă sigură la tipul, dinamic și mai reutilizabil pentru fișierele de design XML, care, după cum știți, tind să fie greu de manevrat pentru aplicații mari.

în acest sens Tutorial, vă voi ajuta să începeți Anko, arătându-vă cum să utilizați unele dintre cele mai populare funcții.

1. Configurarea proiectului

Pentru a putea utiliza funcțiile principale de Anko în proiectul dvs. Android Studio, tot ce trebuie să faceți este să adăugați următoarele implementación dependența de modulul aplicación Modul de construcție .gradote:

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

Cu toate acestea, dacă doriți ca Anko să lucreze cu Widget-uri de biblioteci de asistență Android, veți avea nevoie de următoarele dependențe suplimentare:

2. Crearea modelelor

ANKO DSL are funcții de ajutor pentru aproape toate widget-urile care oferă biblioteci de asistență Android SDK și Androi d. Folosind-le, puteți crea desenele dvs. programatice. Numele funcțiilor se potrivesc cu numele widget-urilor, dar încep cu o literă mică. De exemplu, pentru a crea un widget Vista de texto, utilizați funcția Anko vista de texto(). În mod similar, pentru a crea un widget , puteți utiliza funcția Botón de acción flotante ().

În cadrul funcțiilor, veți dori au acces la toate proprietățile și ascultătorii evenimentului widget-urilor asociate. De exemplu, puteți schimba dimensiunea textului unui widget Vista de texto prin actualizarea proprietății tamano del texto în interiorul vista de texto(). În același mod, puteți adăuga un detector de evenimente făcând clic cu butonul al hacer clic.

Pentru a vă ajuta să înțelegeți mai bine cum să utilizați DSL, aici este Un eșantion de design pentru o aplicație de browser, care conține un widget Editar texto și un widget WebView plasat în interiorul unui LinearLayout widget a cărui orientare este VERTICAL

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

Codul scris în ANKO DSL este foarte lizibil și intuitiv, dar necesită un anumit moment pentru a vă obișnui, mai ales dacă sunteți deja un dezvoltator Android cu experiență. Nu mai trebuie să alocați identificatorii la widget-urile dvs. sau să utilizați metoda findViewById () pentru a le referi la acestea, deoarece, spre deosebire de modelele bazate pe XML, modelele bazate pe DSL pot încapsula logica de afaceri a dvs. aplicație. De exemplu, puteți vedea că widgetul Editar texto widget definit mai sus are un detector de eveniment OnEditorAction, care apelează direct la loadUrl () Metoda widgetului WebView pentru a încărca adresa URL pe care utilizatorul a scris …

De asemenea, nu trebuie să sunați la METODE METODE, deoarece Anko o numește automat în interiorul dvs. Actividad Clasa onCreate ().

DSL include mai multe comenzi rapide pe care le puteți utiliza pentru a vă face desenele mai concise. De exemplu, puteți trece direct lanțuri la funcțiile dvs. pentru a atribui etichete la widget-uri. Adesea, puteți evita, de asemenea, parametrii de design explicit, cum ar fi lățimea și înălțimile, deoarece le gestionează automat. Următorul cod de eșantion vă arată cum să creați un design care conține două widget-uri Vista de texto într-un mod foarte concis:

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

Prin comparație, acesta este modul în care ar arăta designul anterior dacă ar fi fost creat convențional:

 

În cele din urmă, merită să menționăm că Proiectele create cu ANKO DSL tind să fie încărcate mai repede decât modelele normale, deoarece nu este necesară o analiză XML ..

3. Crearea de dialoguri

Dacă credeți că utilizați AlertDialog.Builder Clasa pentru a crea dialoguri este o mulțime de muncă, cu siguranță nu sunteți singuri.De exemplu, aici este modul în care ar crea în mod normal o casetă de dialog simplă care arată un titlu, un mesaj și un buton „Accept”:

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

Cu toate acestea, cu ANKO, crearea dialogului anterior implică pur și simplu un apel la funcția , care acceptă titlul și mesajul dialogului ca argumente sale.

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

Vă rugăm să rețineți că nu trebuie să treci un context la funcția . Infrează automat contextul ..

ANKO are caracteristici similare cu nume intuitive pentru a vă ajuta să creați rapid bare de toast și gustări, de asemenea. Următorul cod vă arată cum să creați toast scurt și de lungă durată:

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

4. Creați intenții

Ori de câte ori trebuie să începeți a Activitate nouă în cererea dvs., trebuie să creați o intenție. În plus, dacă doriți să trimiteți date activității, trebuie să le includeți în intenția de unul sau mai multe extras.

cu funcția Anko startActivity (), puteți efectua de obicei ambele sarcini pe o singură linie de cod. De exemplu, următorul cod vă arată cum să începeți o activitate numită Mi actividad și treceți două extras, un șir suplimentar numit „persoană” și un întreg numit „vârstă”, la aceasta:

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

ANKO are, de asemenea, funcții de ajutor pentru diverse sarcini comune bazate pe intenții. De exemplu, puteți utiliza funcția vistazo() pentru a deschide o adresă URL în aplicația de browser implicită a dispozitivului. În același mod, puteți utiliza funcția pentru a deschide aplicația de e-mail implicită și a scrie un e-mail ..

5. Utilizarea bazelor de date SQLite

Deși toate aplicațiile Android pot crea și utiliza baze de date SQLite fără dependențe suplimentare, mulți dezvoltatori aleg baze de date terță parte ca tărâm. De ce? Ei bine, poate fi pentru că API-ul Android Sqlite este extrem de detaliat, nivel scăzut și necesită o bună înțelegere SQL. Din fericire, ANKO are funcții de ajutor SQLite pentru a rezolva toate aceste probleme ..

Să presupunem că avem o bază de date SQLite simplă creată cu următorul cod:

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

cu Anko, acum puteți adăuga o masă în baza de date anterioară, pur și simplu utilizând funcția crear mesa(), care așteaptă numele tabelului împreună cu unul mai mult sau tuple care specifică numele și tipurile de date din coloanele dvs. Următorul cod de probă creează o masă numită PERSONA care are patru coloane, dintre care unul servește ca o cheie primară:

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

În plus, pentru a insera rânduri în masă, nu mai trebuie să depindeți de clasa Valores de contenido (). Puteți apela direct la funcția insertar() din baza de date, specificați numele tabelului la care doriți să adăugați rândul și apoi să treceți valorile coloanei sub forma unui 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)

În cele din urmă, pentru a consulta baza de date, puteți utiliza funcția , opțional urmată de a Lanțul de funcții numit intuitiv, cum ar fi dondeSimple ()orderBy () și agrupar por(). De exemplu, să enumerați numele și vârstele tuturor persoanelor din tabelul anterior a cărui valoare netă este mai mare decât 10000, puteți utiliza următorul cod:

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

Rezultatul interogării anterioare va fi, după cum vă așteptați, un obiect Cursor. Convertiți-l într-un Lista Valorile de coloană reale ale tuturor rândurilor este un pic mai complicat deoarece implică crearea unui obiect care implementează RowParserparseList ()parseList ().

Interfața RowParser are o singură metodă, parseRow (), în cadrul căruia veți avea acces la valorile coloanei unui rând. Cum utilizați valori, desigur, depinde de dvs. Pentru moment, ascundem și imprimăm doar. Următorul cod vă arată cum să faceți:

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)

Notă că nu trebuie să creați întotdeauna un RowParser Obiect manual. Dacă rezultatele interogării dvs. conțin doar o singură coloană, puteți utiliza unul dintre numeroasele analizoare ANKO integrat.

Numele analizoarelor integrate se bazează pe tipurile de date ale coloanelor. De exemplu, dacă tipul de date este TEXTO, puteți utiliza un StringParser. Sau dacă tipul de date este ENTERO, puteți utiliza un IntParser.Următorul cod vă arată cum să utilizați un StringParser pentru a lista pur și simplu numele tuturor persoanelor din baza noastră de date:

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

Concluzie

În acest tutorial, ați învățat să utilizați funcțiile Ajutor ANKO și DSL pentru a simplifica dezvoltarea aplicațiilor Android. De asemenea, ați văzut modul în care Anko simplifică operațiunile legate de SQLite. Sper că acum îți dai seama cât de bine gândit și util este biblioteca ..

În opinia mea, dacă sunteți deja competent în Kotlin, nu există nici un motiv pentru care nu ar trebui să utilizați Anko Pentru a îmbunătăți în continuare experiența dvs. de eficiență și dezvoltare. Pentru a afla mai multe despre acest lucru, consultați Wiki-ul dvs. oficial

și în timp ce sunteți aici, verificați unele dintre celelalte publicații despre dezvoltarea aplicațiilor Kotlin și Android!

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *