Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Should I start with Android for mobile development?
13 points by orionblastar on Jan 7, 2014 | hide | past | web | favorite | 10 comments
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.

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.

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.

Not the OP, but for some start-up resources on Android check out the following:

The Android Training Guide is not a bad place to start at: http://developer.android.com/training/index.html

That should give you a bit of idea of what android development entails.

More resources:

* Android Bootcamp Videos: http://www.youtube.com/watch?v=Mf7z_mrce00&list=SPE953C0B85B...

If you'd like a guided video walkthrough through android, this is an excellent source.

* Android Cookbook Book: http://androidcookbook.com/home.seam Has solutions to common problems. Also check out their code on Github: https://github.com/AndroidCook/Android-Cookbook-Examples

* BigNerd Ranch Android Book: A detailed reference on all about Android Development. http://www.bignerdranch.com/book/android_the_big_nerd_ranch_...

As always despite all these resource, I find that the best way to learn is to just get your hands dirty. Use the resource to get a sense of the Android development world and solidify that understanding by doing a small project like the one you described here.

Hope this helps a bit.

Thank you, it sure does help. I'll see about if I can afford the Android Cookbook book, and I like that I can read parts of it online as well.

I love the Github code, I can just load it and tweak it a bit to learn. It should really help, thank you again.

For your device domination question: Yes - Android is around 80% of the world's smartphones now. Also, latest news published a few hours back says Android has beaten iOS in US too this year, with iOS market share falling to 43.1, whereas Android's share rose to 50.3 from last year. Source: http://www.latinopost.com/articles/2814/20140106/ios-vs-andr...

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?

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).


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/

If you are more familiar with HTML/Javascript you could take a look at PhoneGap/Cordova https://build.phonegap.com/ http://cordova.apache.org/ .

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.

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.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact