article banner (priority)

The future of mobile development

This is a text-version of the video we published on YouTube.
If you asked me 8 years ago about the future of mobile development, my answer would be rather pessimistic. This was the time when a bunch of my close friends decided to become developers, and I recommended neither of them to start from Android or iOS. This was also the time when I moved from Android to backend myself.
Why? Because I could see a rise in web development. For most companies, it was and still is enough to write a full-stack application in a framework like Next js. Websites can provide an experience that isn’t far from native applications, you can write them once for all platforms, they don't require installation, and with declarative UI frameworks like React or Vue, they offer a nicer development experience than XML-based Android or iOS.
I spent the pandemic focused on backend development, but I quietly observed what was happening in mobile and saw a breath of fresh air that quickly became a tornado, completely changing mobile development.
Both Android and iOS have created their new declarative UI libraries that have become the new standard on those platforms. Those are Jetpack Compose and SwiftUI. I am much more interested in Compose, not because it is a library for my beloved Kotlin programming language, but also because it is a truly multiplatform solution.
Compose solved most of the problems I saw on mobile. It is extremely pleasant to use, and even complex UIs can be defined easily and distributed across Android, iOS, desktop, and web. At the same time, it solved many problems that remain unsolved in web development.
Its components are much easier to use than HTML and CSS-based React and Tailwind. It was designed to support responsive design easily. Honestly, even on big, costly websites, I can see strange behavior in specific dimensions. I do not see such problems on Compose applications, where the ease of supporting any screen size was among the highest priorities.
Compose also provides much powerful native support for animations, making its application pleasant and delightful. Not to mention that its native components look good, so you don’t need much effort to build a nice application.
Compose it also using Kotlin Coroutines, which makes cancellation effortless and provides greater predictability thanks to structured concurrency, offers native support for reactive streams, and more.
Compose also did something from the start that web frameworks still desperately crave for: it set good standards for project architecture and consistent best practices. Developers know how to separate UI and logic, as it is clearly described in the documentation. Projects have the same structure, so both new developers and AI can operate on them.
Of course, React or Vue has its advantages, like much greater maturity and a larger developer base. They have numerous tools and libraries for everything. Also, web development in Compose isn’t stable yet. Because of that, Compose isn’t yet a serious competitor to frontend frameworks. However, it made Android much fresher, and it completely changed the energy there. Six years ago, I was worried that mobile development would become irrelevant as web frameworks rose. Now, we feel that Compose might, in the future, compete and dominate web development.
Long way to go, but this game is on, and I am happy to be playing with Team Mobile again. I have observed and used Compose since its early days, but about 2 years ago, I started writing about it and teaching it. I haven’t yet published a book on Compose, as I have published books on coroutines and Kotlin. I post on social media about using Compose well. I also include many useful hints in the KT Academy mailing, and I organize two cohort courses on Compose. That might sound like making money, but honestly, I could likely earn more from contracts. I feel a mission to teach how to use good technologies well. I could see how helpful that was across other domains: how much Effective Kotlin transformed Kotlin development, and how much my take on Kotlin Coroutines has shaped modern standards. Not to mention all the projects made by my cohort course participants that I reviewed and promoted. I feel really good about doing that, and I receive a lot of great energy from the Compose community, so I am willing to contribute as much as I can.