Simplifique o desenvolvimento de aplicativos Android com ANKO


Projetado por JetBrains, a organização por trás de KoTlin, Anko é uma biblioteca de código aberto que pode mudar radicalmente a maneira como você cria aplicativos Android. Aproveite a sintaxe de KoTlin para oferecer uma grande coleção de funções de ajuda que ajudam você a reduzir a verbosidade do seu código enquanto melhora o seu desempenho ..

A Anko é dobrado como DSL, abreviação do domínio de idioma específico, para criar Designs Android. Em outras palavras, você pode atuar como uma alternativa segura para o tipo, dinâmico e mais reutilizável para arquivos de design xml, que, como você saberá, tende a ser difícil de lidar com grandes aplicações.

Neste Tutorial, eu vou ajudá-lo a iniciar Anko mostrando como usar algumas de suas funções mais populares.

1. Configuração do projeto

para poder usar as principais funções de ANKO no seu Projeto Android Studio, tudo o que você precisa fazer é adicionar o seguinte implementación Dependência do aplicación módulo de construção:

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

No entanto, se quiser que Anko funcione com os widgets de Bibliotecas de suporte do Android, você precisará das seguintes dependências 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. Criando desenhos

anko dsl tem funções de ajuda para quase todos os widgets oferecendo bibliotecas de suporte ao Android SDK e Androi d. Usando-os, você pode criar seus projetos programaticamente. Os nomes das funções correspondem aos nomes dos widgets, mas começam com uma carta minúscula. Por exemplo, para criar um widget Vista de texto, use a função vista de texto()da ANKO. Da mesma forma, para criar um widget , você pode usar a função Botón de acción flotante ().

dentro das funções, você ter acesso a todas as propriedades e ouvintes de eventos dos widgets associados. Por exemplo, você pode alterar o tamanho de texto de um widget Vista de texto Atualizando o valor do tamano del texto Propriedade dentro do vista de texto() Função. Da mesma forma, você pode adicionar um detector de eventos clicando com o botão al hacer clic Método.

Para ajudá-lo a entender melhor como usar o DSL, aqui está Um projeto de amostra para um aplicativo de navegador, que contém um widget Editar texto e um widget WebView dentro de um LinearLayout Widget cuja orientação é VERTICAL

O código escrito no DSL ANKO é muito legível e intuitivo, mas requer um certo tempo para se acostumar, especialmente se você já é um desenvolvedor Android experiente. Você não precisa mais atribuir identificadores aos seus widgets ou usar o método findViewById () para se referir a eles, porque ao contrário de designs baseados em XML, os projetos baseados em DSL podem encapsular a lógica de negócios do seu inscrição. Por exemplo, você pode ver que o widget Editar texto acima tem um detector de eventos OnEditorAction que chama diretamente para o loadUrl () Método do widget WebView para carregar o URL que o usuário escreveu ..

Além disso, você não precisa ligar para o setContentView () mais método porque o ANKO chama automaticamente dentro do seu Actividad Classe onCreate () método.

O DSL inclui vários atalhos que você pode usar para tornar seus projetos mais concisos. Por exemplo, você pode passar corretas diretamente para suas funções para atribuir rótulos a widgets. Muitas vezes, você também pode evitar definir parâmetros de design explicitamente, como larguras e alturas, pois os manipula automaticamente. O seguinte código de amostra mostra como criar um design que contém dois widgets Vista de texto de uma maneira muito concisa:

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

Por comparação, é assim que o design anterior pareceria se fosse criado convencional:

 

Finalmente, vale a pena mencionar que o Designs criados com o DSL ANKO tendem a ser carregados mais rápido do que os projetos normais porque uma análise XML não é necessária ..

3. Criando diálogos

Se você acha que usa o AlertDialog.Builder A classe para criar diálogos é muito trabalho, você definitivamente não está sozinho.Por exemplo, aqui é como normalmente criaria uma caixa de diálogo simples que mostra um título, uma mensagem e um botão “aceitar”:

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

No entanto, com ANKO, criando a caixa de diálogo anterior, simplesmente envolve uma chamada para a função alerta(), que aceita o título e a mensagem da caixa de diálogo como seus argumentos ..

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

Por favor, note que você não precisa passar um contexto para a função alerta(). Ele infere automaticamente context ..

ANKO tem recursos semelhantes com nomes intuitivos para ajudá-lo a criar rapidamente a torrada e lanchonetes. O código a seguir mostra como criar torradas curtas e duradouras:

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

4. Crie intenções

Sempre que precisar iniciar um Nova atividade em sua inscrição, você deve criar uma intenção. Além disso, se você quiser enviar dados para a atividade, você deve incluí-los na intenção de um ou mais extras.

Com a função ANKO , você geralmente pode executar ambas as tarefas em uma única linha de código. Por exemplo, o código a seguir mostra como iniciar uma atividade chamada Mi actividad e passe dois extras, uma string extra chamada “pessoa” e um todo extra chamado “idade”, para isso:

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

ANKO também tem funções de ajuda para várias tarefas comuns com base nas intenções. Por exemplo, você pode usar sua função para abrir uma URL na aplicação do navegador padrão do dispositivo. Da mesma forma, você pode usar a função para abrir o aplicativo de e-mail padrão e escrever um 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. Usando bancos de dados SQLite

Embora todos os aplicativos Android possam criar e usar bancos de dados SQLite sem dependências adicionais, muitos desenvolvedores escolhem bancos de dados de terceiros como reino. Porque? Bem, pode ser porque a API do Android Sqlite é extremamente detalhada, de baixo nível e requer uma boa compreensão SQL. Felizmente, Anko tem funções de ajuda sqlite para resolver todos esses problemas ..

digamos que temos um simples banco de dados sqlite criado com o seguinte código:

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

Com ANKO, você pode agora adicionar uma tabela ao banco de dados anterior, simplesmente usando a função crear mesa(), que aguarda o nome da tabela em conjunto com mais ou tupla especificando os nomes e tipos de dados de suas colunas. O seguinte código de amostra cria uma tabela chamada PERSONA que tem quatro colunas, uma das quais serve como uma chave primária:

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

Além disso, para inserir linhas na tabela, você não precisa mais depender da classe Valores de contenido () Você pode ligar diretamente para a função insertar() No banco de dados, especifique o nome da tabela à qual você deseja adicionar a linha e, em seguida, passar os valores da coluna na forma de um 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 o banco de dados, você pode usar a função seleccionar(), opcionalmente seguida por um Cadeia de funções denominadas intuitivamente, como orderBy () e agrupar por(). Por exemplo, para listar os nomes e idades de todas as pessoas na tabela anterior cujo valor líquido é maior do que 10000, você 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 você esperaria, um objeto Cursor. Convertê-lo em um Lista contendo valores de coluna real de todas as linhas é um pouco mais complicado porque envolve a criação de um objeto que implementa o RowParser interface e passando para a função parseList ().

a interface RowParser THE HOTE UM MÉTODO parseRow () Método, dentro do qual você terá acesso aos valores da coluna de uma linha. Como você usa valores, é claro, depende de você. Por enquanto, somente concordamos e imprimimos. O seguinte código mostra como fazê-lo:

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)

Observe que você nem sempre precisa criar um RowParser Objeto manualmente. Se os resultados da sua consulta conterem apenas uma coluna, você poderá usar um dos muitos analisadores ANKO integrados.

Os nomes dos analisadores integrados são baseados nos tipos de dados das colunas. Por exemplo, se o tipo de dados for TEXTO, você poderá usar um StringParser. Ou se o tipo de dados é ENTERO, você pode usar um IntParser.O código a seguir mostra como usar um StringParser para simplesmente listar os nomes de todas as pessoas em nosso banco de dados:

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

Conclusão

Neste tutorial, você aprendeu a usar as funções de ajuda e DSL da ANKO para simplificar o desenvolvimento de aplicativos Android. Você também viu como Anko simplifica as operações relacionadas ao SQLite. Espero que agora você perceba o quão bem pensado e útil é a biblioteca ..

Na minha opinião, se você já é competente em KoTlin, não há realmente razão para que você não use ANKO Melhorar ainda mais sua experiência de eficiência e desenvolvimento. Para saber mais sobre isso, consulte o seu Wiki oficial.

e enquanto você está aqui, confira algumas de nossas outras publicações sobre o desenvolvimento de aplicativos Kotlin e Android!

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *