If you already have programming experience, e.g. with the web or other platforms, Android can surprise you with its complexity. The system itself was designed from the beginning primarily for optimal operation on limited hardware. The authors devoted significantly less time to being intuitive and easy to use for the creation of the application itself. As a result, Google and the community have developed helper libraries and best practices over the years, but they change frequently, and it's now a big challenge for a new developers to find out what's up to date.
Start creating something and only when you encounter a specific problem, look for a specific solution. Following all official recommendations can also make the application unnecessarily oversized and overly complicated without real benefit.
The development environment which is commonly used is Android Studio, which is a Google modified version of the famous Intellij IDEA. Android Studio, which already contains all the necessary tools you can download for free. Even if you don't have an Android phone, you can only run apps on the emulator. However, if you are serious about developing mobile applications, you will definitely miss a real phone, because many things will be easier for you to test and the emulator may not always work reliably. The only expense you'll need to pay is a one-time $25 fee if you choose to publish your app to the Google Play Store.
You can write applications in Kotlin or Java by default. At the moment, Google recommends Kotlin more and more, and some newer libraries are created purely in it. Both of these languages can be easily combined in the same project. You can also reach for alternatives like Flutter or React Native, which seem easier, but you can get into dead ends if you need to solve something more complicated or non-standard.
The skills you will have to master with common Android applications include at least a basic knowledge of working with SQL databases, working with asynchronous operations, performing http requests and especially the ability to Google 😄. As an Android developer, you really often come across non-intuitive behaviors, where only the ability to seek help elsewhere will help.
If you still think that Android application development is right for you, I have prepared a few articles from our team, which could help you not only in the beginning.
#goodroidtips is a regular series of useful and up-to-date tips for Android developers, prepared by our handy Android developer Peťo Šuly. You can find three parts of #goodroidtips on our blog so far, and more will definitely be added in the future! You can find in them, for example, news from Android Studio, Kotlin, Google Play or many other important topics from the world of Android development.
Constraint Layout Helpers are help classes that simplify the use of the Constraint Layout in cases where it would be necessary to embed multiple Views layers into each other to implement a drawn design. One of the main advantages of the Constraint Layout is that it helps maintain even complex "flat" layouts - without nesting. Each of the Constraint Layout Helpers can help maintain a flat layout structure in a slightly different way. The simpler ones include Group, Layer or Guidline, but if you are looking for more advanced you could be interested in Placeholder or Circular positioning.
Kotlin Coroutines are a handy tool for writing complex asynchronous operations easily, so that at first glance they look synchronous. Asynchronous code written using Callbacks is harder to read, harder to navigate. The biggest problem is when you get into a situation where you need to chain callbacks (the community has the term callback hell 👿). These problems with the use of Kotlin Coroutines are eliminated. Coroutines have the great advantage that you do not have to 100% understand them to use them in simple use cases.
Android application development has never been easy and it is becoming more and more chaotic to know all the possibilities. At the same time, it can be a good challenge for you and a way to learn a lot of new things. Who would have enjoyed it if it had been easy.
Do you like challenges? We are looking for a handy Android Developer!