Android development: what to do with Lego and how not to "pull an owl on the globe"

Guests and presenters of the new episode of the Dry the Oars podcast discuss the specifics of development, new developments in the field and try to figure out which architecture to choose. Spoiler alert: any!







Artyom Kulakov and Roma Choryev are the developers of Redmadrobot and they record podcasts where they discuss various aspects of creating IT products. In the eleventh episode, guests share their experience and joke jokes - Dima Suzdalev, Android Tech Lead KODE , and Vasya Chirvon, Head of Android Practice at Redmadrobot SPB.



We attach a link to the latest release, timing and answers to several important questions.





  • 1:58 - Vasya Chirvon talks about how he got into Android development.
  • 03:25 - And now Dima Suzdalev about his path.
  • 14:52 - Where is the Android platform heading.
  • 25:05 - Is it difficult to develop applications for Android.
  • 34:30 - Is it harder to become a good Android developer than an iOS developer.
  • 58:01 - A bit about Jetpack Compose.
  • 01:02:02 - A little bit about Hilt.
  • 01:03:15 – : KMM/Flutter – ?
  • 01:20:02 – UI .
  • 01:27:14 – .


– Android-



Of course, there are difficulties and problems, but this is the same as in any profession.



Dima Suzdalev noted that the experience of an Android developer is about the fact that you know “where you don’t need to go”. Well, if you still came to the wrong place, then you know how to get around this “wrong place”.



But Roma compared Android development to walking in chains (heavy iron chains): you can go, but, so to speak, it hurts. As an example, he cited a situation familiar to any developer when an element from which you expect normal behavior suddenly stops working. Or, for example, this happens generally only on a specific device ("hello" to a fleet of thousands of Chinese devices).



Or here's how it happens: let's say Google has a bug in the API that it works in a specific way. You are already used to this, do not forget to make a workaround and live with it in all projects. But suddenly, at some point, Google fixes this bug, and now everything you did before breaks the application. And again you have to do something about it.



Development is similar to Lego - sometimes difficult, but cool! You sit and build. And you like it, because if you don't like Lego, then you won't play it;)


About new items in the field of Android development



Recently, almost every year, Google has presented various useful things for developers: Jetpack Compose, Navigation Component, Data Store and other Security Identity Credentials.



Dima said that he likes Google's approach to developing Jetpack Compose. He had already tried it out and especially noted the guides and excellent documentation, where everything is explained and there are code examples.



As for the Navigation Component, this library proves itself well as a tool for uncomplicated applications. With its help, you can quickly add navigation and manage it well. The guys noticed that it would be very good if Google added fast graph generation there.



Detailed discussion of Dagger / Hilt and Anvil from 01:02:02.



Not Google alone (Huawei can, but a little bit)



In the free Android world, there is not only Google, which was scolded in the studio. There is also the Huawei corporation, which has created an interesting precedent in the market.



Who doesn't know: Huawei has made its own analogues of Google services, in addition, the codelab interface has been copied almost one to one. The company invested heavily in marketing to cover the story. Bottom line - in sales of its smartphones Huawei entered the top, overtaking even the "giant giants" Apple and Samsung. However, this was mainly due to the Chinese market, Roma is sure.



It is worth noting that this situation opens up certain opportunities: it's good when there is a choice and there is not only Google. If other big companies start providing alternatives to Google Play Services, it will be useful for everyone. But this will inevitably add problems for developers, for example, with fragmentation. The emergence of the second, third, etc. services will make you know ten varieties of the same.



A few words about cross-platform development



Alongside Android and iOS development, a separate and fairly large world of cross-platform development is developing.



It contains both traditional approaches that are still working, and a couple of new products that have been very actively discussed within the community for the last two years. It's about Flutter and Kotlin Multiplatform.



How convenient and applicable are they? The guests in the studio unanimously decided that "Flutter lacks Kotlin". More details from 01:15:27.



Built and Built: Android Application Architecture



Today, to design an application, it is not enough just to take a traditional architecture; you need to look at specific business tasks and create it yourself from scratch.



“Of course, you need to keep general design approaches in mind, but“ you shouldn't put an owl on a globe, ”says Artem. If business tasks do not fit into the usual clean and MVVM, therefore, you do not need to use them. That's all.



It is important to understand that architecture is not a manual, but a set of solutions that can be applied at work. Vasya Chervon explained it this way: “You know that the slab must have a certain weight in order not to crush the walls, or the walls must be strong enough to withstand it. And to build, you need to keep these rules in mind. "



This is all a matter of experience, therefore, if the developer does not really understand what architecture needs to be done, then it is worth consulting with an older friend. But, of course, not with someone who says: "Do MVVM, that's cool."



For effective architectural solutions, you need to read many books on system design in order to understand in what situations which solutions can change and how to apply them. Read more about books from 01:35:06.



Useful materials





« »





Listen to us wherever it is convenient: YouTube , Soundcloud , Apple Podcasts , Google Podcasts



Let's discuss the episode in the Telegram chat .



All Articles