Software development is constantly changing: New concepts, new libraries, and new recommendations come up every day.
It’s no different in the Android universe: we have Google I/O, Android Dev Summit, plus official videos every week with news. And that is just about official Google content, not to mention the hundreds of third-party publications and libraries that exist.
With so many sources, it is often difficult to track and extract the content that makes the most sense for us. The purpose of this article is to share tips, sources, and content I use to keep myself up to date.
1. Track social media
Social networks are a great place to follow news and interesting content on software development. Since social networking is easy to access, several networks have communities and Android influencers posting content regularly.
Note that the developers’ accounts are not linked to Google or the company they work for, so they can express their personal viewpoints and address issues that are not about technical content.
I also follow these networks:
- AndroidTM in Reddit
- Android Developers on YouTube
- Kotlin by JetBrains on YouTube
- AndroidTM Weekly
- Android Developers
2. Develop a personal application
There are several advantages of creating a personal application, and one of them is to keep up to date on what’s new in Android. It enables you to add alpha and beta libraries, upgrade versions, and replace dependencies in a controlled environment, without any concerns.
Another advantage is that it can create a more complex environment of studies, which more closely resembles the real world of development. Imagine we want to learn about Hilt and create a project to learn how to make injections. At some point we learn about ViewModel and SavedStateHandle, and we create another project. We develop our professional project and join the two concepts, then we learn they need some adjustments to work together. In a personal project we face these issues much faster, because all the concepts we study are interlinked.
At first it may seem that developing an application to study Android is quite troublesome. However, after initial stabilization, changes and additions of new tools become much simpler and more objective than creating a project for each study. And the application can be something very simple; in my case it’s a task manager.
3. Share knowledge
Another great way to keep up to date is to share your knowledge with the community. Write articles, record a video, or even propose a topic for discussion in your work group. Follow the saying, “By learning you teach; by teaching you learn.”
The act of sharing knowledge does not have to be linked to the fact that you are an expert on that subject. We may believe that there is no sense in sharing something if someone else has already published on that topic, that there is nothing more to be said on that subject. However, the way you share will most likely be different, and it may help other people who have had the same problems you have.
Here at Cinq, we have Guilds for Android as well as for other technologies. Guilds are regular meetings where developers gather and share knowledge, experience, news, and discussions. The most interesting thing about this format is that we can simply bring a topic, even if we don’t know much about it. Would you like to know which frameworks are best known and reliable before you start your studies? Just bring this issue to be discussed.
4. Chart a course
It is impossible to know how all new libraries and tools work in depth. One way to keep pace and not despair is to play a study goal.
For example, let’s assume we want to learn more about data persistence, so we’ll probably focus initially on the Room. Although the Room helps to greatly reduce complexity, we still need to study a bit about SQLite for more complex queries. Reading and writing in databases are costly operations, so it is recommended that they occur in a separate thread. For that we will need to use frameworks such as Coroutines or ReactiveX to assist us with asynchronous processing. Implementing unit tests with asynchronous libraries involves some specific rules, so we will need to refer to the documentation with examples. And so it goes.
In the example above, when we set our target in data persistence, several other questions were raised: Data persistence, SQLite, asynchronous processing, Coroutines, Rx, unit testing, asynchronous testing, etc. And this is normal, usually one subject will “pull” the other and, so it is so important to draw a master line of studies. Otherwise it is easy to get lost in so much available content.
5. Respect your time
At every new official Google conference a subject always pops up in the community: The anxiety of learning the flood of content at the event. The feeling that there are more things to learn than time to learn them haunts many of us. Unfortunately, this is something that escapes our control and will always occur in the software development profession.
We can prepare for this feeling by looking inward rather than outward. Some people have already had the feeling that “they don’t know anything else” after the launch of new libraries or that we became “outdated” quickly. It is good to take into consideration that all applications created up to now without such new tools are not inferior, and your experience is valuable, no new feature in a library will invalidate your knowledge.
Here is another thing to consider: Do I really need to take in everything that is being shown? Currently, many tools on a system as robust as Android are for solving very specific problems. One tip is to understand what the tool is for without diving into it. For example, it is interesting to know that WorkManager is a library for scheduling and executing tasks, or that the DataStore is a new alternative for managing SharedPreferences. But if you don’t need to implement them in your project yet, is it worth diving into it right away? Or is it easier to know its purpose and study it when necessary?
New content and tools emerge every day in the Android universe, and the sense of being left behind leaves many developers anxious. First of all, treat yourself with affection and respect your time, there is no need to rush into a new technology right after you see its ad.
This article attempts to help to create a repository of content and tips so that the entire learning process is more structured and gentle. Keep in mind that these are tips that work for me, and that each one has their pace and sources of research.
Remember that learning is a marathon rather than a race, and that this whole process can be much more cooperative than competitive.
By: Igor Escodro