Today, I Became an Android Developer

Okay. Perhaps that’s a bit of an overstatement. However, I did create my first Android app today!

Now if you’ve been following any posts on this blog, you might remember my dabbles in iOS development. Perhaps you might now see this recent venture as me being a traitor…or a quitter. I assure you that I am no quitter, though I suppose I can’t keep Apple diehards from calling me a traitor.

In truth, I seek to know all the things. I’m not necessarily looking to be proficient in all things, but rather gain enough knowledge to be dangerous. I’m a classic nerd of all trades, if you will.

I will learn about…ALL THE THINGS!

Which brings be to today: I’m currently the Program Manager for Mobile Content at Udacity, and while my position doesn’t necessarily require me to be knowledgable in iOS and Android programming…I’m an insufferable know-it-all. So I installed Android Studio, and got a third of the way through Udacity’s Android Development for Beginners course. In that time, I built a birthday card app (which really just consisted of writing some XML to create a view), but I ended my session feeling pretty accomplished nonetheless.

And conveniently, my sister’s birthday is next week.

First Impressions: Android vs. iOS

While I am nowhere near far enough in my journey to make any informed claims about the pros and cons of developing for iOS vs. Android, I do have some initial thoughts. Which I will now share with your inquiring minds.

1. I feel like a hardcore developer already.

I know, I know, I only wrote a bit of XML, and haven’t even scratched the surface of Android development. But Android Studio has a way of making you feel like you’ve already pulled out the big guns. Xcode is great, clean and simple, quintessential Apple…but Android Studio makes me feel like I’m back in my college lab hacking away on embedded systems. It’s an IDE packed with features and configurations, and I feel more connected to the device hardware than I even did in Xcode.

2. XML grows on you.

At first, I was yearning for Storyboard. I wanted the simplicity of dragging items onto the screen and setting constraints to keep them in place. What was this nonsense of making me type eight lines of code just to get my TextView to appear in the proper location?

But as time went on, I grew to love the control XML gave me over my views. I could put them exactly where I wanted and not have to worry about conflicting constraints, or things getting wonky in landscape view and different sized screens. Though I might change my tune again when I get to more complex views.

3. Android Studio is kind of slooooooooow.

I’ll give this to Xcode, it’s fast and communicative. When building and running an app on my phone or via the emulator in Android Studio, I was often left wondering if the build actually succeeded or if it was still processing. And on the whole, the entire build process seemed to take significantly longer in Android Studio than it did in Xcode-especially emulation.

Speaking of emulation, I also had to install separate SDKs in order to emulate different phones and Android versions, and then set them up as a virtual device. Xcode, on the other hand, had every device I might want to build for preloaded. I imagine this is a result of Android having a wide variety of hardware options, and not wanting to bog down your system with unnecessary options, but it would be nice to just have a few standard devices pre-loaded.

4. Xcode is prettier.

Boy that sounds like a disgustingly girly thing to say…but it is true. As I mentioned before, Xcode is clean and simple. In true Apple style, it’s elegant and easy to navigate. Android Studio, on the other hand, has the look and feel of a program developed for Windows and force-fit onto a Mac. Though this look & feel is what gives me my “hardcore developer” feels, so I don’t mind too much.

In all, I’ve really been enjoying my experiences thus far with Android. I’m very much looking forward to continuing in this course and diving deeper into the environment. Stay tuned!