I wanted to start writing an Android app. But I had a big decision to make: do I use Microsoft development tools (Visual Studio, Xamarin, .NET, C#, etc.) or Google development tools (Android Studio, Java, etc.)? I know the Microsoft tools pretty well. But I’d never used the Google tools. However, since I always like to learn new things , I decided to go Google! Here are some of my first impressions…
Disclaimer: I’ve only spent a few days on this app (and using these tools). I’m still learning a lot. So some of these impressions may change as I learn more.
- Android Studio seems to build and deploy faster than Visual Studio. I actually wrote the beginnings of the app in both Visual Studio and Android Studio. Android Studio seemed to be 2-3x faster. But it could just be my machine/installation. I’d be curious (sometime) to reinstall Windows and Visual Studio and try again.
- I miss “var” from C#. I really do. I understand that it’s in Java 10, but that hasn’t arrived for Android yet.
- I also miss NuGet. I wanted to find a library to help me do MVVM (“Model-view-viewmodel”) programming. In .NET, I could easily go to NuGet and find a popular one. But I haven’t found one for Android. So it either doesn’t exist (which seems unlikely due to the number of people writing Android apps?), or people don’t use that technique (which also seems unlikely?), or it’s just not as easy to find.
- RecyclerView just seems complicated to use (e.g., needing to write an adapter). I wish I could just bind it to a collection in one line like in MvvmCross (a .NET library).
- Before using Android Studio itself, I tried using IntelliJ IDEA. But I kept running into some weird problems. For instance, I always got an IDE error when trying to add a Library to my project. When I switched to Android Studio, everything worked perfectly.
- So far, I’m impressed by the “mockability” of Android. I tried writing a unit test that required a mocks of the Context and Cursor objects. It was much easier to do than I expected.
To be continued (when I have more time to work on the app)…