O Android 12 nos trouxe uma nova funcionalidade para aprimorar a experiência do usuário, o suporte oficial a Splash Screens. Anteriormente, se o aplicativo precisasse desse recurso visual, seria necessário adicionar uma implementação customizada, levando a diferentes maneiras de se fazer. A mais recente versão do Android adiciona isso automaticamente para todos os aplicativos e permite personalizações usando simples parâmetros, mas infelizmente essa funcionalidade estava restrita apenas ao Android 12.
Entretanto, no dia 30 de junho de 2021 fomos introduzidos ao primeiro alpha da Core Splashscreen API, fornecendo compatibilidade com versões anteriores para as novas Splash Screen APIs. …
Android 12 brought us a new feature to improve the user experience, the official Splash Screen support. Previously, if the app wants this visual feature, it might need to add a custom implementation, leading to several different ways to do it. The latest version of Android adds it automatically for all apps and allows customization using simple parameters, but unfortunately this functionality was restricted only to Android 12.
However, on June 30, 2021 we were introduced to the first alpha of Core Splashscreen API, providing backward compatibility for the new Splash Screen APIs. …
No último Google I/O, várias novidades incríveis foram mostradas. A mais animadora na minha opinião foi a Unified Test Platform (Plataforma Unificada de Testes, em tradução livre — anteriormente conhecida como Nitrogen), que deu os seus primeiros passos ao publico durante o evento. A partir do Android Studio Bumblebee, nós podemos testar essas funcionalidades experimentais, tornando nossos testes mais confiáveis e escaláveis, principalmente para testes instrumentados automatizados.
Nós fomos apresentados ao Gradle Managed Virtual Devices (Dispositivos Virtuais Gerenciados pelo Gradle, em tradução livre), uma ferramenta que permite executar testes instrumentados com o Android Gradle Plugin. …
During the latest Google I/O, a lot of great new technologies were shown. The most exciting feature in my opinion was the Unified Test Platform (formerly known as Nitrogen), which first public steps were presented in the event. Starting from Android Studio Bumblebee, we can try experimental features for making our tests more reliable and scalable, specially for automated instrumented tests.
We were introduced to Gradle Managed Virtual Devices, a tool that allows running instrumented tests with the Android Gradle Plugin. …
Dynamic Delivery is one of my favorite tools in Android Development. With this serving model, it is possible to provide optimized APKs for your users creating smaller apps and also provide downloadable features even after your application is installed.
Before we get started, previously I wrote an article about how to create your own Dynamic Feature Module (DFM), with step-by-step explanation and code samples. Please, take a look on this article if you are not familiar with this concept.
If you want more information about Dynamic Delivery, please access the official documentation.
Recently I decided to port my whole application, Alkaa, to Jetpack Compose. In the first moment it was very challenging, specially because I had no previous experience with declarative UI toolkits. But after some trial-error (and a lot of help from the community), the development started to be easier and more intuitive in my mind. The intent of this article is to share the lessons I’ve learned during the process, as well as some references that helped me a lot during the development.
When developing an app, we need to carefully focus on the user experience, specially in the actions that may require a confirmation or possibility to revert the user decision. If we use
AlertDialog in every single interaction we need this behavior, it will easily annoy the user.
One way of solving this issue is using a component available in the Material Design, the Snackbars. It inform users about a process your app has performed or will perform without interrupting the user experience. The component also allows users to amend their choices.
Handling screen navigation is a complex task in any framework. Luckily we already have a great tool for helping in this flow, but some different scenarios may need more attention. One of these scenarios is opening the application on a specific Composable in Jetpack Compose.
The Jetpack Navigation Compose is an awesome tool: it uses a solid base from the default Jetpack Navigation for View System with the flexibility needed to handle Composable.
Jetpack Compose is right around the corner and testing your components is a very important part of the development cycle. There are several test examples in the official Jetpack Compose Samples repository to help you out but they cover simpler scenarios.
The basic syntax for testing in Jetpack Compose is pretty straightforward. Let’s take a look in our example:
In the test above we create a test to validate if the title is displayed in our Composable. For more information about different types of tests, please access the official documentation.
However, sometimes we want to test the same Composable…
Jetpack Compose is right around the corner. After the recent announcement that it is now in Beta, now is a good moment to start learning this great new framework. And to do so, I decided to rewrite my personal application, Alkaa using it.
My first decision was to get rid of
LiveData and starting using the new observables available in Kotlin. Once the repository returns a
Flow<List<Task>>, the first attempt was to use the
StateFlow, which at a first glance seems like a great alternative for
The updated ViewModel and Composable from