KOTLIN 0.101.2: The "Roadmap" of Becoming an Android Developer with Kotlin
The inspiration of the article: Lombard St. aka "The Crookedest Street in the World" / San Francisco, CA

KOTLIN 0.101.2: The "Roadmap" of Becoming an Android Developer with Kotlin

Before I start, I just want to explain what actually a road is by its definition.

A road is basically a route for traveling from the start to the end by vehicles, especially one that has been specially surfaced and made flat. It can be built a curved road like this above or straight as an arrow. It can be a wide road or a narrow road to pass by, maybe one car would be too wide for some roads. When you try to take a road, it can be so long that you want to stop many times to catch your breath, refuel your car and continue to step on the road. Or leave the road and turn back. Even worse, it can be so short that you realize you didn't feel that you passed by that road. Sometimes, it's just too complex to understand how to find your directions.

One of the most complex interchanges in the world: Takaosan Interchange / Tokyo, JP

What is the best road to pass by?

The best road to pass by is that you know or learn how to overpass. Sometimes, people can lose their directions, or they just don't know about the road itself. Then, people around would come along and help those people who lost their directions. There is a Turkish idiom that says "Baghdat can be found by asking people where it is." Finishing the process is that only matters.

Back to our topic, what is the best way of becoming an Android developer using Kotlin; we'll find out together.

Step 1: Setting Up the Development Environment

Setting up the development environment is the key of your building apps. If you don't have a proper setup, you won't be developing apps any. Android Studio is the best because it includes Android SDK on itself initially but personally I prefer IntelliJ IDEA for development using Kotlin. As a language created by JetBrains, Kotlin gives better result on IntelliJ IDEA for me but Android Studio is a serious option for Android app development (obviously). Which one will you use as an IDE is up to you, exploring both of them will help your productivity and flexibility as well.

Step 2: Learning the Fundamentals of Kotlin and Programming

If you want to develop Android applications, you need to understand the fundamentals of Kotlin first. You need to understand the essential syntax and features of this language such as variables, classes and functions. Don't forget that Kotlin interoperates Java so Kotlin also includes OOP concepts such as inheritance, polymorphism, and encapsulation on itself. These concepts are fundamental to Android app development and will help you write clean and organized code. Don't forget that writing clean and organized code will increase your productivity as a developer.

FAQ 1: To do so, which resources should I use?

I'll explain all of the steps detailed by time but if you want to give a head start for yourself, you can use books, courses that can be found on the Internet.

My personal recommendations are Kotlin in Action by Dmitry Jeremov and Svetlana Isakova and Atomic Kotlin by Bruce Eckel and Svetlana Isakova. Did you noticed that these two books share an author? Yes, indeed; Kotlin Developer Advocate Svetlana Isakova was the author of my personal two best books to learn Kotlin. Dmitry Jeremov was also on the Kotlin developer team so first book will be a better book for you but it's up to you if you like my recommendations or not.

Forward has been written by lead language designer of Kotlin, Andrey Breslav. Keep in mind.

Step 3: Learning and Mastering Android App Components

Android app development is not only a code-based procedure. You need to understand what should your application contain. To do so, you need to gain knowledge of the different components that make up an Android app such as activities, services, broadcast receivers, and content providers. Android Studio which also makes the most common Android app development IDE, provides tools like the Layout Editor to help you design your app's UI. Don't forget that most common design patterns of Android applications are "Model-View-ViewModel" and "Model-View-Intent" which means that when using mobile applications, users get their service mostly by their intentions, interaction between Model and ViewModel and the result which was presented by "states". Understanding how these components interact with each other will allow you to build more functional and interactive apps.

A diagram about "Model-View-ViewModel" /

FAQ 2: What is a "design pattern"? Why should I even learn about this stuff?

Considering that errors which occur on a program happens at "design" stage, software design and architecture is a topic that every developer should know a few about this. In software engineering, a design pattern is a general repeatable solution to a commonly occurring problem in software design. It is a description or template for how to solve a problem that can be used in many different situations. I'll explain more about design patterns on my future articles but if you want to give yourself a head start about this topic too, you can read books about software design and architecture. My personal recommendations are Clean Architecture by Robert C. Martin and Head First Software Design by Eric Freeman and Elisabeth Robson.

Step 4: Learning About UI/UX

User Interface (UI) and User Experience (UX) play a vital role in app development. A better looking application means better interaction on the market. In 2007, when describing iPhone, Steve Jobs said that new iPhone has a revolutionary UI because using the technology "Multi-Touch" is one of the processes that lead to the reinvention of cellphones. This should explain how much important UI/UX are.

Steve Jobs explaining about first ever iPhone's user interface at MacWorld 2007

To overcome this problem, you should study design principles, such as color schemes, typography, and layout, which can be written with XML or Gradle, to create visually appealing and user-friendly interfaces. And then, exploring different UI design patterns and best practises will help you become a master at creating intuitive and user-friendly apps. As a personal recommendation, learning about Jetpack Compose will help you develop UI's easily with less coding and better performance. I'll explain about Jetpack Compose on my future articles.

Homescreen about basic Jetpack Compose templates

Step 5: Diving Into Advanced Topics

Now that you've learned about most of Android app development, you can explore more about topics such as data store and management, networking, APIs, security, permissions, notifications and all other background tasks. You can familiarize yourself with libraries and frameworks commonly used in Android development, such as Retrofit for networking and Room for local data storage. There are lot more libraries and frameworks to explore. Android for Developers website will guide you much more about this step.

Step 6: Practicing and Starting to Build Apps

Now it is the longest and the most important part of becoming an Android developer. You need to assure your knowledge with practicing all of these steps as much as you can. You can start to build applications by building small, simple apps to practice your skills. These apps could include basic functionalities like displaying text, handling button clicks, and navigating between screens. As you gain proficiency, you can gradually increase the complexity of your projects.

Explanation of Modifier parameter in Jetpack Compose

Step 7: Building a Portfolio and Getting Into the Business

Now that you've started to build apps, you can build yourself a portfolio and start to getting recognized as an Android developer. You can create a showcase for your skills and experience to your potential employers and/or clients. Your GitHub and LinkedIn account will make it possible. Having a collection of functional and well-designed apps will demonstrate your capabilities as an Android app developer. You can also engage with the Android developer community for your recognition by joining online forums, discussion groups, and social media communities. Platforms like Stack Overflow, Reddit, LinkedIn and GitHub can provide support, learning resources, and opportunities for collaboration, thus helping your productivity. And in person, groups such as Google for Developers near you will lead you into better opportunities. For example, attending on DevFest organizations will definitely help you becoming a better developer.

After DevFest Istanbul 2023 with my fellow friends from GDG Istanbul: Behlül Ku?aslan, Erol Kaftano?lu, Hüseyin Kocag?z and Sinan Y?lmaz.

In conclusion

If you have questions about learning Kotlin and becoming an Android developer, I hope that this roadmap will help you achieve your goals. Remember, this roadmap is just a starting point, and there is always more to learn and explore in the world of Android development. Practice, hands-on experience, and continuous learning are keys to becoming an advanced Android developer.

On my next articles, I'll start to explain my roadmap step by step. See you soon!


Naitik Singhal

GEU'26 | Native Android developer | Open Source Contributor | Camera Enthusiast

4 个月

Is it a good choice to start both android and iOS development together ?

回复

要查看或添加评论,请登录

社区洞察

其他会员也浏览了