top | item 7015814

Ask HN: Should I start with Android for mobile development?

13 points| orionblastar | 12 years ago | reply

I'm mid-40s. Most of my work was in Visual BASIC and ASP. I've been out of work since 2002. Ended up on disability. I want to get back into the game. Should I start out with Android for learning mobile development?

My reasons for wanting to develop for Android is that there are options to run Android on a PC or inside of Windows. (I'd like to run Android inside of GNU/Linux) I think that allows me to test and debug my apps better, plus I think that to become an android developer doesn't cost that much money as Apple's Developer's tax. (I got an old Macbook Duo-Core 2 that runs 10.7 that I share with my son, can't afford a newer one yet) Given my Visual BASIC background what would be the best way to learn Android programming? I used to know Java but let my skills slip over the years due to being sick and in hospitals, I can relearn it and I assume it has evolved over the years.

10 comments

order
[+] georgemcbay|12 years ago|reply
Android is probably a good place to start. The build tools will run on any OS, there is absolutely no cost to start (even if you want to run code on a hardware device, which will set you back $99/yr for iOS unless this has changed since I last touched iOS development).

You can run and debug your Android apps pretty well on any OS (Linux, Windows or Mac) using the emulator that comes with the Android SDK. Be sure to use the Intel HAXM version of the emulator if you can get away with it (if your cpu supports Intel VT and your Android code doesn't use any exotic ARM NDK stuff) as the ARM emulator is dog slow. I highly recommend having at least one hardware device to test on, though if you can manage to beg, borrow or steal one. You can probably source a year or two old device off craigslist or such for cheap, Android phones generally don't hold value nearly like iPhones do. The emulator is nice for some things but it is generally much more pleasant to run and debug on an actual hardware device.

Java as used in Android has evolved as a language far less than you might expect, but the Android SDK UI framework is quite different than most Java programming because of the way the Android activity stack works, so you'll be spending a lot of time learning about Android Activities, Fragments, Services, Adapters and such. There is a ton of decent documentation/tutorial information online, including Google's own Android docs, plus a plethora of open source Android apps to learn from, so learning it is just a matter of getting in there and getting your hands dirty.

[+] orionblastar|12 years ago|reply
It sounds good. Since I have a Visual BASIC background, what is the best place to start learning? I assume the Android SDK can use an IDE to 'paint' forms and drag and drop controls and then I just write the code for events for each form element to do something?

Like say I want to write an app to read some integers and then report the average, mean, and median of the numbers. I'd have to have a main form, a data entry form to enter the numbers, and then a results form that displays the statistics I generated with an option to go back to the main form or the data entry form to enter new numbers? I still have to learn Activities, Fragments, Adapter and such?

I have a Samsung Galaxy S4, and a Nook HD. My son has an iPhone 5 and iPad 3. I've heard in the USA that iOS devices dominate but in the rest of the world Android devices dominate. Is that true?

Thanks for the advice, I just need to get back into the game eventually and then my programming mind will just kick right back in I hope.

[+] akulbe|12 years ago|reply
I'm in a similar situation to OP, in terms of age... but I have no real programming background. Just scripting with bash/perl.

I've ditched the Apple "new shiny" for a while, and I'm going all Linux & Android. I know it requires Java knowledge, but my question is... how much?

Do you think you can start from the Android tutorials on the developer.android.com site, and then fill in the Java pieces as you go, or would that be a bad approach?

I'm just recognizing that programming is becoming more and more a crucial skill, and I think Java and Android are the best place to start. I just want the time/effort spent to be as well worth it, as possible... and not get distracted by something I don't need to know about.

Does that make sense?

[+] rasyadi|12 years ago|reply
There's a course called Programming Mobile App for Android offered through Coursera that will be started soon. By looking at the syllabus, it focuses on Android ecosystem (UI, Gestures, Notification, Location) instead of the Java programming. You might want to brush up your Java knowledge prior to taking the class. I think it is very helpful if you don't have experience in developing modern mobile app (iOS, Android).

https://www.coursera.org/course/android

There will another more advanced course to compliment this called Pattern-Oriented Software Architectures for Concurrent and Networked Mobile Devices and Clouds - https://www.coursera.org/course/posa

Here's the news about these courses - http://news.vanderbilt.edu/2013/09/vu-maryland-mooc/

[+] jamesjguthrie|12 years ago|reply
You can build on iOS devices without worrying about the $99/year fee, if you jailbreak them. I would say that Android would probably be the best way for you to go though since you already have some Java experience and only have an old Macbook.
[+] orionblastar|12 years ago|reply
I hope that I can earn some money with Android apps so I can buy a newer Macbook to develop iOS apps.

That is one of my future goals to get to the point to develop iOS apps. But first I need to do Android because it does not have a developer tax and has better tools to write apps. I haven't figured out XCode and Objective-C yet, but I have a better understanding of Java because I learned C in 1987 and then Java and other languages later because my knowledge of C helped me learn the others.

When I was young, my father worked for AT&T and during a Pioneer meeting I once met Dennis Ritche who told me to learn programming. That is why in 1987 I took the C language class, he had a hand in developing it.