A few thoughts on the switching from Android development to Java web development. There will be rather loose thoughts. I’ve shaped them on the basis of my own experience as a programmer who after 1.5 years abandoned Android to create a backend in Java. I encourage you to read this if you center your thoughts on such a change.
The first thing that comes to mind is the fact that Android developer, starting the adventure with a backend in Java, has an easier job with the switching. He probably moves freely in Java. I’m writing "probably", because Kotlin is becoming more and more popular. Additionally, it began to be quite a long time ago the official language of Android application development. It’s supported by Android and JetBrains – creators of IntelliJ IDEA and Android Studio, which are basically the same, because the second one is based on the first one. So maybe you’re one of those people who started the adventure with Android when programming in Kotlin. If that’s so, forget about this paragraph.
As I mentioned above – Android Studio is basically the same tool as IntelliJ IDEA, which is very popular for Java web development. In my opinion the best possible. In general, it works like this: IntelliJ can be used for Android programming, but vice versa is not possible. So as an Android developer, you either already use IntelliJ and you don’t have to switch to any other tool or you have to move from Android Studio, but you’ll still feel like a kid in a candy store.
Another thing that I want to mention is the fact that while working as an Android developer, you’re in touch with the developers who create the API for your application. Cooperation can be problematic. I often complained about the API maker, who didn’t provide me with the JSON I wanted. For example, something wasn’t sorted as it should in my opinion or after receiving the response I had to do some additional calculations that could be already done on the server. By showing these examples, I aimed to point out the fact that a Java developer experienced in Android development and previously cooperating with a backend has a big advantage. It’s because he’s looking at various problems from the perspective of a programmer who uses API and has the task to transfer it to UI. In other words, you’ll better understand the needs of frontend developers as a Java developer with Android experience.
For a Java developer recruitment, don’t hesitate to write in your CV any experience as an Android developer. It would be also a good idea to put some links to your applications on Google Play or to your GitHub account with Android projects. I guarantee that your chances of success will significantly increase. Also, thanks to what I mentioned in the previous paragraphs.
I took this step a year ago and I don’t regret my decision. I also strongly encourage you to do so. It doesn’t have to be that you’re 100% off Android. You can still create mobile applications after working hours as I’m trying to do ???? I don’t regret my decision for several reasons.
The first of them is, in my opinion, a greater self-development opportunity, because it’s more serious programming. I don’t want to offend anyone, but this opinion is from my experience. Working as an Android developer is sometimes great because it happens to be demanding. Unfortunately, more often it simply involves trivial activities such as changing/moving the image at the customer’s request, etc.
It’s different when creating applications on the server. The scale of these applications is incomparably greater than mobile applications. They often touch serious business-related issues, such as stock market applications. In such apps, a mistake in implementation can have an impact on customers losing their money. Backend creation requires you to have a much better knowledge of the business. In fact, often mobile applications are only a frontend.
Your versatility and potential readiness to work in both backend and mobile projects are also associated with appreciation by your employer (at least it should). The company can profit from your range of skills, e.g. by assigning you to short projects or single tasks in mobile in time between Java projects that are now your priority.
Besides, I don’t know how about you, but at the end of the period when I was still working as an Android developer, I felt uncertainty about how the closer and further future will look in the world of mobile applications. Of course, some may consider such a dynamic situation a plus. It’s because it’ll create the opportunity to learn other languages, etc., but others prefer to feel the ground underfoot.
Learning Kotlin was a pleasure for me. Right now when I’m playing with Android outside of working hours, I do it using Kotlin. But unfortunately, there’re some other things that have helped me with my moving decision. The first thing is the React, which is gaining popularity. There was a specter of learning it for me. Clients want to have applications written on both operating systems with the same code today’s times. Also, the uncertainty whether in the future there will be any need for native Android applications didn’t help at all.
When it comes to Java web development, of course, changing will require you to learn about different frameworks, tools and libraries, which you didn’t have contact with as an Android developer. As for the framework, I recommend the most popular Spring Framework which is end-to-end support for apps on the JVM. I recommend you to get acquainted especially with Spring Boot, which allows you to create Spring-based applications and requires a minimum initial configuration. For more, I refer to the Spring page. For me, it was fun to get to know some tools and libraries such as Kafka, Cassandra, Reactor, Swagger or Cucumber. Of course, I needed a lot of time for that and the beginnings were difficult, but now I feel like a real Java developer.
That’s all that came to my mind. If you have any questions or also want to share your thoughts, I strongly encourage you to write comments below this post.