9. Configurações finais
Neste livro, você criou o aplicativo interativo Mini Calculadora. Discutimos as funcionalidades do aplicativo e, em seguida, você o testou para calcular a gorjeta e o total, com base no valor da conta.
Você construiu a interface gráfica (GUI) do aplicativo usando o editor de layout do Android Studio, a janela Component Tree e a janela de Properties. Além disso, você editou o XML do layout e os arquivos de tema e cores para personalizar as cores primária, primária escura e de destaque do tema DayNight, que foram configuradas pela IDE ao criar o projeto. Apresentamos o código da classe MainActivity, uma subclasse de AppCompatActivity (e uma subclasse indireta de Activity) que define a lógica do aplicativo.
Na interface gráfica do aplicativo, você utilizou um ConstraintLayout para organizar os elementos na tela com suas constraint (restrições) e espaçamento. Exibiu texto em TextViews e recebeu entradas de um EditText e um SeekBar.
A classe MainActivity exigiu diversos recursos de programação orientada a objetos em Kotlin, como classes, objetos, métodos, interfaces e herança. Explicamos o conceito de inflar a GUI a partir do arquivo XML para sua representação visual na tela. Você aprendeu sobre a classe Activity do Android e parte do ciclo de vida de uma atividade. Especificamente, você sobrescreveu o método onCreate para inicializar o aplicativo quando ele é iniciado. No método onCreate, você usou o método findViewById da Activity para obter referências de cada uma das visualizações com as quais o aplicativo interage programaticamente. Definiu uma classe interna anônima que implementa a interface TextWatcher para que o app possa calcular novas gorjetas e totais à medida que o usuário insere o valor da conta no EditText. Também definiu uma classe interna anônima que implementa a interface OnSeekBarChangeListener, permitindo que o app calcule uma nova gorjeta e total conforme o usuário ajusta a porcentagem da gorjeta movendo o controle deslizante do SeekBar.
Você editou o arquivo AndroidManifest.xml para especificar que a MainActivity oferece suporte apenas à orientação retrato e que o teclado deve sempre ser exibido. Também discutimos outros elementos que o Android Studio incluiu no manifesto ao criar o projeto.
Por fim, você incluiu persistência de dados ao aplicativo, com o salvamento de dados simples usando SharedPreferences. Também, aprendemos mais sobre os ciclos de vida de uma atividade, onStart e onPause, e entendemos como a funcionalidade de persistência de dados se encaixa nesse perfil.