Over the past several weeks I have been working towards an . I already have both and Chrome Web Store
I loved the experience of developing an Android application. But first I will start with the only thing I could complain about, Gradle integration in Android Studio.
Now it could just be because it is beta-days, or because I did not know what I was doing, but Gradle just caused me problems. It is supposed to help as a build tool, but It only caused me issues when I tried to move my code-base between my computers through a git repo and Android Studio's import functionality. Luckily I got to a point where I was just able to ignore it and I just manually added the dependencies (through the View->Open Module Settings).
Now that I have got that out of the way I can head onto some of the greater aspects.
When it came to development, I was able to create my android application in my current operating system, which happens to be Linux. Google did not force me to use Windows or Mac, I was able to do my development where I felt most comfortable. Now to many of you this may seem like a minor point, and to some degree it is, but the fact I could develop an Android application inside my normal operating system and window manager is what made me write an Android app over an iOS app this time round.
Android Studio Design Preview
In Android Studio, when editing your layout files (user interfaces), you can use a drag and drop function to put your app together. This is very similar to iOS layout designs. However that is about where the similarities end. The properties editor in Android Studio is dynamic and has so many options that allow you to tweak how an item looks, functions and is laid out. Due to the responsive nature of of the design process in Android Studio, creating views that looked nice on anything from a phone through to a tablet was incredibly easy. I have to admit before starting android development this was one of my biggest fears. I would now stress to anyone hesitating due to this reason, to forget it and dive in. It is literally so easy to design Android layouts.
Remembering back to my iOS days, I had to create a view for each device, and for each orientation. So now that would be up to 8 layouts per view with the iPhone 4, iPhone 5, iPad and iPad Mini. As opposed to one responsive view for all Android devices.
There was only one case throughout my whole development that I had to have two layouts for a view, and that was the test screen view. I had one layout for portrait and one for landscape. Even then it was super easy to create a landscape view from the portrait view. I simple clicked a button on the design view and I was up and running, designing my landscape view that was based off the portrait view.
Programming in Java vs Objective C
Now this is an area that will be very unfair to compare, because Objective C was literally my second language I had learned (after C) and I have had almost 5 years experience programming before writing my Android app in Java.
That said, Java is a beautiful language, not only in terms of syntax, but also in terms of available libraries. Every class was in one file, as opposed to the .h and .m files that the Objective C spreads over. Development was just straight-forward. Creating my own classes was easy and everything just worked so nicely.
One odd approach to my application was how I stored the data. I simply created a JSON array and stored it as a Key-Value pair in the user preferences. It seemed like a good idea at first (since this was how I did my Chrome Web Store App), but now I consider it could have been on the slow side. Good thing is most of today's androids are so powerful that that few extra CPU cycles won't count for anything much. In the end I used a singleton class that managed the data so that every view was referring to the same data set. It worked quite nicely.
Submitting to the Play Store
Adding my app to the play store was down-right simple. I filled in all the information (description, promo text, icon, promo images, content rating, categorisation, etc) and pricing. Uploaded the signed APK (which also was very easy to do in Android Studio) and then published my app. No two week waiting period like in the iOS app store. It was live in the play store just several hours later (the play store just had to update its catalogue).
All I remember on iOS is having a nightmare trying to sign my applications with Apple's special certificate process. And even then they won't let me sell a damn thing on the iOS app store because I am under 18! None of that on the Google Play store. I didn't even need to lie about my age on the play store, I just had to agree to the tax agreements and add my bank account like any other Android developer.
Conclusion / tldr;
Android development was so easy and straightforward. It gave me the freedom to choose which operating system I wanted to work on. It also allowed to easily submit my paid application to the play store.