
Ask HN: Should I start with Android for mobile development? - orionblastar
I&#x27;m mid-40s. Most of my work was in Visual BASIC and ASP. I&#x27;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?<p>My reasons for wanting to develop for Android is that there are options to run Android on a PC or inside of Windows. (I&#x27;d like to run Android inside of GNU&#x2F;Linux) I think that allows me to test and debug my apps better, plus I think that to become an android developer doesn&#x27;t cost that much money as Apple&#x27;s Developer&#x27;s tax. (I got an old Macbook Duo-Core 2 that runs 10.7 that I share with my son, can&#x27;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.
======
georgemcbay
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
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.

~~~
jervisfm
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](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...](http://www.youtube.com/watch?v=Mf7z_mrce00&list=SPE953C0B85B50AB62)

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

* Android Cookbook Book: [http://androidcookbook.com/home.seam](http://androidcookbook.com/home.seam) Has solutions to common problems. Also check out their code on Github: [https://github.com/AndroidCook/Android-Cookbook-Examples](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_...](http://www.bignerdranch.com/book/android_the_big_nerd_ranch_guide)

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.

~~~
orionblastar
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.

------
rasyadi
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](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](https://www.coursera.org/course/posa)

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

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

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

