Simplificar o desenvolvemento de aplicacións de Android con Anko

Deseñado por Jetbrains, a organización detrás de Kotlin, Anko é unha biblioteca de código aberto que pode cambiar radicalmente a forma de crear aplicacións de Android. Aproveite a sintaxe de Kotlin para ofrecer unha gran colección de funcións de axuda que axudan a reducir a verbosidade do seu código ao mellorar o seu rendemento.

Anko está dobrado como DSL, abreviatura dun dominio de linguaxe específico para crear Deseños de Android. Noutras palabras, pode actuar como unha alternativa segura ao tipo, dinámico e máis reutilizable aos ficheiros de deseño XML, que, como vai saber, tenden a ser difíciles de manexar para grandes aplicacións.

Neste Tutorial, vou axudar a comezar Anko mostrándolle como usar algunhas das súas funcións máis populares.

1. Configuración do proxecto

para poder usar as funcións principais de Anko no seu proxecto Android Studio, todo o que cómpre facer é engadir o seguinte implementación de dependencia do aplicación módulo de construción. Grazote:

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

Con todo, se queres que Anko traballe cos widgets de bibliotecas de soporte de Android, necesitarás as seguintes dependencias adicionais:

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. Creación de proxectos

Anko DSL ten funcións de axuda para case todos os widgets que ofrecen bibliotecas de soporte de Android SDK e Androi d. Usalo, pode crear programáticamente os seus deseños. Os nomes das funcións coinciden cos nomes dos widgets, pero comezan cunha letra pequena. Por exemplo, para crear un widget Vista de texto, use a función vista de texto(). Do mesmo xeito, para crear un widget

, pode usar a función Botón de acción flotante ().

Dentro das funcións, o fará Ten acceso a todas as propiedades e os oíntes de eventos dos widgets asociados. Por exemplo, pode cambiar o tamaño do texto dun widget Vista de texto mediante a actualización do valor da propiedade tamano del texto dentro do vista de texto() Función. Do mesmo xeito, pode engadir un detector de eventos premendo co método .

Para axudarche a entender mellor como usar o DSL, aquí está Un deseño de mostra para unha aplicación de navegador, que contén un widget Editar texto e un widget

colocado dentro dun LinearLayout Widget cuxa orientación é VERTICAL:

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

O código escrito no Anko DSL é moi lexible e intuitivo, pero require un certo tempo para afacerse, especialmente se xa é un desenvolvedor de Android experimentado. Xa non ten que asignar identificadores aos seus widgets ou usar o método findViewById () para referirse a eles, porque a diferenza dos deseños baseados en XML, os deseños baseados en DSL poden encapsular a lóxica empresarial do seu Aplicación. Por exemplo, pode ver que o widget Editar texto definido anteriormente ten un detector de eventosOnEditorAction

que chama directamente ao loadUrl () método do widget WebView para cargar a URL que escribiu o usuario ..

Ademais, non ten que chamar a Método porque Anko chama automaticamente dentro do teu Actividad Class onCreate ().

O DSL inclúe varios accesos directos que pode usar para que os seus deseños sexan máis concisos. Por exemplo, pode pasar as cadeas directamente ás súas funcións para asignar etiquetas a widgets. Moitas veces, tamén pode evitar explicitamente establecer parámetros de deseño, como anchos e alturas porque os manexan automaticamente. O seguinte código de mostra mostra como crear un deseño que contén dous widgets Vista de texto de forma moi concisa:

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

Por comparación, así é como se vería o deseño anterior se se creou convencional:

 

Finalmente, paga a pena mencionar que o Os deseños creados co DSL de Anko tenden a cargarse máis rápido que os deseños normais porque non se require unha análise XML ..

3. Creación de diálogos

Se pensas que usa o AlertDialog.Builder A clase para crear diálogos é moito traballo, definitivamente non está só.Por exemplo, aquí é como crearía normalmente unha caixa de diálogo simple que mostra un título, unha mensaxe e un botón “Aceptar”:

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

Con todo, con Anko, a creación do diálogo anterior simplemente implica unha chamada á función alerta(), que acepta o título e a mensaxe do diálogo como os seus argumentos …

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

Teña en conta que non ten que pasar un contexto á funciónalerta()

. Infírese automaticamente contextual.

Anko ten características similares con nomes intuitivos para axudarche a crear rápidamente brindis e bares de merendas tamén. O seguinte código mostra como crear brindis curto e duradeiro:

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

4. Crear intencións

sempre que necesite iniciar un Nova actividade na túa solicitude, debes crear unha intención. Ademais, se desexa enviar datos á actividade, debería incluílos na intención como un ou máis extras.

con Anko , normalmente pode realizar ambas tarefas nunha única liña de código. Por exemplo, o seguinte código mostra como iniciar unha actividade chamada Mi actividad e pasar dous extras, unha cadea extra chamada “persoa” e un conxunto extra chamado “Idade”, a isto:

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

Anko tamén ten funcións de axuda para varias tarefas comúns baseadas en intencións. Por exemplo, pode usar a súa función vistazo() para abrir unha URL na aplicación predeterminada do navegador do dispositivo. Do mesmo xeito, pode usar o para abrir a aplicación de correo electrónico predeterminada e escribir un correo electrónico …

// 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. Usando bases de datos SQLite

Aínda que todas as aplicacións de Android poden crear e utilizar bases de datos SQLite sen dependencias adicionais, moitos desenvolvedores elixen bases de datos de terceiros como reino. Por que? Ben, pode ser porque a API de Android SQLite é moi detallada, de baixo nivel e require unha boa comprensión SQL. Afortunadamente, Anko ten funcións de axuda SQLite para resolver todos eses problemas …

Digamos que temos unha base de datos SQLite sinxela creada co seguinte código:

con Anko, agora pode engadir unha táboa á base de datos anterior simplemente usando a función crear mesa(), que agarda o nome da táboa xunto con un ou máis ou Tupla especificando os nomes e tipos de datos das túas columnas. O seguinte código de mostra crea unha táboa chamada PERSONA que ten catro columnas, unha das cales serve como unha chave primaria:

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

Ademais, para inserir filas á táboa, xa non tes que depender da clase Valores de contenido (). Pode chamar directamente á función insertar() na base de datos, especifique o nome da táboa á que desexa engadir a fila e despois pasar os valores da columna en forma de 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)

Finalmente, para consultar a base de datos, pode usar a funciónseleccionar()

, opcionalmente seguido por un Cadea de funcións nomeadas intuitivamente, como dondeSimple ()orderBy () e agrupar por(). Por exemplo, para enumerar os nomes e idades de todas as persoas da táboa anterior cuxo valor neto é maior que 10000, pode usar o seguinte código:

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

O resultado da consulta anterior será, como se podería esperar, un obxectoCursor

. Convertalo a un Lista que contén valores de columna reais de todas as filas é un pouco máis complicado porque implica a creación dun obxecto que implementa o RowParser interface e pasándoa á función parseList ().

A interface RowParser ten un único método, o parseRow () Método, dentro do cal terá acceso aos valores da columna dunha liña. Como usa valores, por suposto, depende de ti. Por agora, só oculamos e imprimimos. O seguinte código mostra como facelo:

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)

Teña en conta que non sempre ten que crear un RowParser Obxecto manualmente. Se os resultados da súa consulta conteñen só unha columna, pode usar un dos moitos analizadores de Anko integrados.

Os nomes dos analizadores integrados están baseados nos tipos de datos das columnas. Por exemplo, se o tipo de datos é TEXTO, pode usar un StringParser. Ou se o tipo de datos é ENTERO, pode usar un IntParser.O seguinte código mostra como usar un StringParser para simplemente listar os nomes de todas as persoas na nosa base de datos:

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

Conclusión

Neste tutorial, aprendeu a usar a axuda de Anko e as funcións DSL para simplificar o desenvolvemento de aplicacións de Android. Tamén viu como Anko simplifica as operacións relacionadas con SQLite. Espero que agora entendes o que pensas e útiles é a biblioteca …

Na miña opinión, se xa é competente en Kotlin, realmente non hai ningunha razón pola que non debes usar Anko Para mellorar aínda máis a súa experiencia de eficiencia e desenvolvemento. Para obter máis información sobre isto, consulte o seu wiki oficial.

E mentres está aquí, consulte algunhas das nosas outras publicacións sobre o desenvolvemento de aplicacións de Kotlin e Android.

Deixa unha resposta

O teu enderezo electrónico non se publicará Os campos obrigatorios están marcados con *