Well, we seem to be live.
First up – the point of this blog is to document my journey into developing a full fledged Android app. My hope is to go 0-60 in 30 days, so to speak. I’m starting with absolutely no prior Android development knowledge and at the end of 30 days, I hope to have a non-trivial full-fledged app done and shipped to the store. We shall see whether I succeed or if I bit more than I can chew.
I should clarify that I am new to Android programming only, not coding in general. That said, I last code in Java circa 2001 and I’m willing to bet that a couple of things have changed with it since then. My last coding experience has been with C# back when I developed test tools for my Big. Company. job after years of being somewhat stuck in roles that didn’t need much coding and surrounded by people who didn’t write much code. Long story short, my coding skills have gotten quite a bit rusty over the years. I still enjoy writing code though and love that little thrill you get when you create something that didn’t exist before or when you come up with a particularly elegant way to solve a problem.
The other question is probably – why Android over iOS or well Windows Phone? Off the top of my head, here are my reasons:
1. I already know Java even if my knowledge is old.
2. There is a big community and a wealth of knowledge out there for Android developers.
3. I don’t need to purchase new hardware. Developing iPhone apps requires you to own a Mac which I didn’t want to get for various reasons. I do own an old Mac desktop that I bought specifically for iOS development a while ago but I’d rather develop on a laptop right now. iOS might be the next step after I’m done with Android.
4. Android has the biggest market share.
5. I like Windows Phones and I’m already familiar with the dev environment but their market share is still not very big and there just isn’t enough of a dev community out there yet. I dabbled in developing a WP8 app last year and was constantly roadblocked when I would run into an error that I couldn’t go look up on Stack Overflow.
I see my progression for the whole mobile dev experience being first Android, then iOS, and finally WP8.
Anyway, today is Day 1 of the 30 day challenge. What I accomplished today was:
1. I purchased the Kindle version of this Android app development book: Android for Programmers: An App-Driven Approach by Deitel & Deitel. I picked this book out of the scores of books out there because:
- I last studied Java via a Deitel & Deitel book
- The book was published this year (2014) so it probably covers all the latest developments
- I like the sound of their approach where you build progressively more complex apps in every chapter
- I didn’t want a book that went through a bunch of programming basics for absolute n00bs since my basics are just fine. I just need to refresh my knowledge of Java syntax and I hope that going through the samples will be adequate. This might of course totally backfire and I might have to look for another book that works better for my level.
- I picked the Kindle version so that I didn’t have to lug a physical book around and so that I could just Alt+Tab back and forth between the IDE and the book. I imagine I should also be able to copy-paste code for when I don’t feel inclined to type it all out by hand. It sucks that I won’t be able to re-sell the book when I’m done, but the princely sum of $20 seems like a worthwhile investment into a fun hobby+possible new career path.
2. I set up my dev environment on my dev laptop. This is a Thinkpad X1 Carbon Touchscreen Ultrabook which has an i7 processor, 8GB of RAM and runs Windows 8. This sweet machine is what I had at BigJobCo and I decided to purchase one for myself because I liked it a lot. The configuration should be good enough for doing dev work. Setting up the dev environment involved:
- Installing the Java Development Kit (JDK) from here. I did have to point my PATH environment variable to the bin folder of the JDK installation to make sure that Eclipse could find it.
- Installing the Android SDK/ Android Development Tools (ADT) bundle from here. Having the bundle was really nice. I had an epic fail experience of trying to set up this dev environment a couple of years ago where I gave up in frustration after being unable to resolve a bunch of dependencies. This time around, the installation was smooth as clockwork though.
- Installing Android Studio from here. I got this even though the book was going to use Eclipse rather than Android Studio. I figure it will come in handy when I start doing the official Google tutorials.
- Configuring Eclipse to show line numbers and ensuring that the compiled code was compliant with Java SE 6.
- Installing all the extra packages under Android 4.4, Android 4.3 and Extras that weren’t already installed. This can take quite a while so do it while you have an hour or so to spare.
- Creating emulators (Android virtual devices) for the Nexus 4, Nexus7 and Nexus 10. The emulators are supposed to be pretty slow. I’ll find out soon enough, I guess. Unfortunately I don’t have an Android test device right now. My old HTC Droid Incredible is probably hopelessly old and I can’t imagine that it will run the latest OS version. I cracked the screen and digitizer of my Nexus 7 so that one’s out too. If I find that the emulator is unbearable to work with, I suppose I will try to pick up a couple of cheap used Android devices to test on.
And that’s it. Day 1 is done! As the days go by I should have a better idea of how long I will spend on this per day, what app I eventually want to build, what theory I need to brush up on, what blogs I need to follow etc. etc. It should be a fun ride. :)
Thanks for following along!