Android: what should beginners and experienced professionals do?
What are the top Android development trends? Where to start learning? What are the promising technologies you should pay attention to? Artem Bagritsevich, an Android engineer with ten years of experience, who now works at EPAM, answers these and other questions exclusively for Anywhere Club.
How to become an Android developer
— Of course, you can find a lot of sources of information these days: books, articles, lectures, documentation. Understandably, it can be difficult for a future developer to decide. My advice would be to start with an Android Developer Roadmap, but they come in all kinds. I like Stream's Roadmap: it's the most complete and logical.
There are also links to the company's blog, where each step is examined in detail.
There's also a roadmap.sh resource: they offer a slightly different path. The good side is that in addition to Android, you can also master version control systems: any developer needs to know and be able to use them. From my point of view, this roadmap is more accessible because it skips some deep topics that are difficult for a beginner to understand - HAL and the Linux kernel, for example.
Both sources suggest starting with programming languages, and here I recommend choosing Kotlin: all modern development is done with it. As for Java, you will still have to learn JVM basics, memory layout, and garbage collection (GC). The language's syntax won't be as important as understanding the basics because Kotlin runs on the JVM, and everything under the hood stays the same.
To learn the language, I highly recommend the free official course from its creators.
It will teach you the basics, data types, and object-oriented programming.
What to read and where to learn
As I said above, there are many sources available on the market, but, for example, books quickly become outdated: I would not recommend using them. Articles on the Internet also promptly lose relevance, so it is essential to pay attention to the date of their publication. Everything rapidly changes in IT and Android development; what we had ten or five years ago and what we see now are entirely different things: different tools, languages, libraries, and architectural approaches.
Many courses promise to make you a superstar from scratch in a few months. Don't be fooled by that. I have run a free course on Android development at Rolling Scopes (https://rs.school/) more than once, and I know that in a few months, students only begin to master the programming language and solve fundamental problems. To become an expert, you need to get hands-on experience, develop several complex applications using modern approaches, and learn the theory. Only after that comes the understanding of how the system works and what the capabilities and limitations it holds. On average, it took us a year to train a Junior specialist. Yes, everything depends on the specific person, motivation, and amount of time given. You can accelerate learning, but still, we are not talking about a few months.
Again: start with the study of Kotlin; even at this stage, you will understand whether you like development in general. And then, having basic knowledge, it is much easier to make up your mind.
Then you can go step by step by the roadmap: looking for and finding needed information is one of the critical skills for android developer.
I highly recommend the official documentation, as well as codelabs from Google.
After that, all you have to do is gain experience, write new applications, and keep up with changes in technology and updates. I bookmarked:
Top 3 sources to keep track of
- Android Broadcast has an excellent Telegram channel, it covers all the significant events in Android development, and they invite interesting guests to their YouTube channel. I can also recommend a course on Dagger 2 from the channel's author;
- Another source is, of course, the official Android Developers YouTube channel;
- I don't think any Android developer will miss the leading Google I/O conference. It reveals many of the things the company's employees have been working on all year;
- It's essential to attend the sessions on changes to the new version of Android - Google usually arranges them specially for developers. During the conference, there are also a lot of events, workshops, and other development and learning-oriented activities.
Android Developer Group on Discord
Nothing helps you grow like working on a real project. Or at least a learning project, but under a mentor's supervision. At our school, we always trust experienced developers to check assignments at the last stage and help junior android developers. Try to find yourself an experienced mentor: it will be much easier to learn. For example, you can join our group on Discord, where we are always ready to help.
What if I'm already an Android developer?
- All the same: be sure to review the roadmap; maybe there are gaps in your knowledge that can be filled by just taking a couple of codelabs. Keep an eye on technology developments, too. Plus, help new developers: that way, you'll get valuable mentorship experience, and you'll be able to remember some things you don't work with every day.
- The world of development is changing, and if everyone was praising MVPs a couple of years ago, now that approach is being criticized. It's time for UDF architectures and declarative UI, so I suggest everyone look at Jetpack Compose. I'm sure that it will become a standard in a few years - just as ConstraintLayout is now a standard. You shouldn't be afraid of these changes - you need to get used to them and learn new approaches.
- Another trend is cross-platform and code reuse. There are many cross-platform frameworks on the market, such as ReactNative, Xamarin, and Flutter: they've taken some market share from native development, but it's not that bad. Native apps still have advantages: UI/UX, performance, and platform integrations. Let's not forget that we can reuse code too. Kotlin Multiplatform Mobile is another thing that attention should be paid to: this technology is already popular on the market, and its capabilities are constantly growing.
- Multimodularity. Perhaps everyone is trying to get away from the monolith and split the app into smaller parts that are easier to maintain. If your app has more than a few screens, it's worth thinking about.
Join the Anywhere Club Discord channel, and feel free to discuss the article or ask your questions!