Switching from iOS to Android Mobile app Development

Switching from iOS to Android Mobile app Development

·

0 min read

For the past 6 months or so, I've been working hard to create an iOS app (read about it here).

In that time, I learned Swift, learned about Views, ViewControllers, Assets, Delegates, and learned how NOT to do things. (BTW, Unfortunately I learned some things the hard way, and as a result, the code is a mess and pretty much needs a complete rewrite).

Now, I need to make the Android app. I've never really used an Android device before, nor had I done any Android development. But I was determined to learn.

This time, though, I wanted to design it right. I started by looking at the various HTTP libraries available to interact with my API. I tried Retrofit, but it wasn't flexible enough to accommodate my API (by that, of course, I mean my API code was too flexible).

I ended up settling on Volley.

I did all the boring work of setting up data models and caching systems, and in the end I had something much more pleasant to work with than the iOS version.

Any advice is welcome, but as of right now I'm planning on hooking up my Views to my models using LiveData.

I have to say, working with Android's UI setup has been like a breath of fresh air after iOS.

On iOS, you have two options for UI: Storyboards and doing it programmatically.

The storyboard files are actually just XML, but Xcode doesn't provide a nice way to edit the XML - you either have to work with a resource-heavy, somewhat confusing drag-and-drop editor or put all your layout in your code (making already large ViewController files even larger).

On Android however, they're much more flexible. It uses similar XML files for layout, and it's highly common to just edit the XML files directly. But if you want to, you can also use their drag-and-drop editor. You can even have them side-by-side and use them both at the same time!

And then, of course, you can still do it in the code like you can with iOS.

I think this highlights the differences between the two companies. Apple is very consumer-centric. Everything is always about the end users, so developers have to take the back seat a little bit.

Google, on the other hand, is a much more engineering-centric, developer-friendly company. They have APIs for many of their products. They have an entire business built on providing Cloud services to developers. And that shows up in Android's developer system.

I do have to mention that Apple has made a HUGE step forward with SwiftUI this past year, but I haven't been able to work with it much, so I didn't get to experience that. That just might level the playing grounds for me.