I have wanted to build an Android app for a while. I used Google Gemini and the latest Android Studio to build a simple app to call a REST web service. I believe Google Gemini made this app possible, where I would not have been able to finish, or would've gotten frustrated, in the past.
This is an app that I've wanted to build for a long time. Most of it was enabled by the new Android Studio Gemini integration. Generally, what I found is that Gemini, however imperfectly, allows me to get past the place where I was stuck in the past. It's not that Google Documentation is bad, but there's so much of it. Moreover, Google's always changing, and there are often more than one way of doing things. Additionally, Google often leaves up previous versions of its documentation, and keyword search is imperfect, so it's easy to get misled by basic search. A classic example is the traditional XML/view architecture, and in this case, Jetpack Compose. I did the first version of this application in the old view/XML format because I like XML. But then Gemini and I told me that there's less code required in using Jetpack Compose. This is true, however, it does require you to pick up on a whole bunch of intellectual baggage in the form of its architecture. Also, Kotlin has some really interesting, unique features. Like co-routines and the lambda functions, for instance. It's not just Java with a different syntax so Google doesn't get sued by Oracle, but I'm fairly sure that was a motivation. Nevertheless, including Gemini ensures that the language doesn't matter. As long as Gemini knows how to generate it, and you've learned at least one computer language of the Java C++ stripe, you'll be able to code in Kotlin.
As I mentioned above, I'm delighted with the results because they allowed me to get unstuck, especially in places where I probably would have given up before. It's important to realize that the goal here was to write an application, not get the exact right code in the exact right place everywhere. Much of the code you see is generated from Google Gemini, and that's OK. I am the one who performed multiple prompts to get Google Gemini to produce the code. And I believe that's OK. Mirrors the saying that people have these days, that AI will not take away your job, but someone who knows how to use AI will take away your job. The net effect of this is that mere mortals like me will now be able to code when they want to. I think this enhances the creative process for those of us who like to build apps in our spare time.
Google's warning on Gemini is appropriate. You need to pay attention to your answers from Gemini and make sure that you're asking the questions the right way. Remember it's trained on a lot of code of various vintages, and a lot of documentation. So, asking how to build an app, the best way, or the most current way, is often very different. So be careful out there.
Retrofit is a solid Library for doing asynchronous web service calls. That way, you don't block the interface. But it uses a lot of dependency injection, annotations, and features from Kotlin. I would not have been able to use it if Google Gemini hadn't generated the code for me.
Kotlin is a deep language. There's a lot to it, and a lot of features that are not obvious. The last time I got this feeling was in graduate school, working on a large C++ project and having the C++ annotated reference manual by my side. That said, focus on what you're trying to do, in this case, like m,e building an app. And don't worry about the more abstract features. They may get used to, but you can figure them out later. And most of this is like Java anyway.
In summary, the new feature of adding Gemini to Android Studio opens up a whole new area of creativity, and in my view, doubles the number of people who are now able to write Android applications. And that is a good thing.