

Ask HN: iOS or Android for a beginner? - Eduardo3rd

I&#x27;d like to build a mobile application for a personal side project, but I&#x27;ve never done any app development before. I don&#x27;t really care which platform I use. I&#x27;m just looking for the one that will be the fastest and easiest to pickup. There seems to be a lot of disagreement on the web so I thought I&#x27;d ask here.<p>The core parts of the app will be parsing a QR code and accessing GPS to relay the user&#x27;s location.<p>If it is at all relevant, I have a MS in mechanical engineering and I&#x27;ve done a fair amount of C++ and Python coding for other projects. I would say I&#x27;m probably just past the beginner stage for HTML&#x2F;CSS&#x2F;jQuery, but not comfortable enough to go write a web app without a lot of questions.<p>Thanks in advance for input.
======
dozy
Full disclosure: I'm biased as I'm primarily an Android engineer. But, I've
led teams and developed extensively for both platforms, so I'll tell you a
couple things I've observed.

1\. If you already own an iOS or Android as your primary device, that should
play big into your decision. You'll have a much easier time maintaining
interest in your project as well as being more likely to create a more
compelling product if you live on the platform.

2\. Google's Android documentation and guides are on a _completely_ different
level than Apple's for iOS - Google's is just so much more extensive. It's
really not even close IMHO. If you're a beginner I think this will make a very
large difference.

3\. The iOS developer program and provisioning system is a PITA, even for
experienced developers. Often times when learning something new, all it takes
is a small roadblock to become frustrated and lose interest. With Android,
building apps for you and your friend's devices is very easy, and submitting
to Google Play is _much_ easier, with no review process and again just one
guy's opinion, but despite a recent (and dearly needed) makeover, iTunes
Connect is still inferior w.r.t usability compared to the Android Developer
console.

4\. I used Eclipse + the ADT plugin for years and while it wasn't terrible (I
was come from J2ME development for BlackBerry so the bar was quite low), I was
always jealous of Xcode. Google has now addressed this with Android Studio.
It's still a bit of a moving target, but I now consider on par or better than
Xcode.

5\. Don't let the haters scare you away with the fragmentation arguments.
"Fragmentation" is a feature :) Truthfully, if this is just a side project, I
would set a minSdk for your app a minimum 14, or even 19 if you want to, and
be amazed by how your app works so well on the 100s or 1000s of devices out
there that it supports.

Couple words on iOS:

1\. Whereas with the x86 emulator and Genymotion, the Android _emulator_ has
dramatically improved, the iOS _simulator_ is still superior with respect to
ease of use and pace of development.

2\. If you go the iOS route, I would strongly suggest to go directly to Swift.
It's where the puck is going and you've got a chance at this point to be a
relative expert among a sea of objective-c developers, who will need to learn
it as Apple increasingly shifts the platform.

3\. This is very subjective and nebulous, but after using both platforms
extensively, I've found the iOS APIs are simply better. You'll find things
_just work_ and you'll be continually surprised to find the puzzle pieces just
fitting together. (ie "hey I wonder if there's a way I do X...oh perfect
there's just a simple method call for it")

4\. As others have noted, if you don't have a Mac then the point is moot,
Android is your only option.

Hope this helps!

~~~
knd775
While I mostly agree with what you have said, I just want to clarify #3. Now
with TestFlight, I've found it to be very easy to get apps on other people's
devices and update them whenever I want.

~~~
dozy
Sure, testflight makes it easier (it's been around for years...). But you
still have to invite people to testflight, after theyve signed up _and_ added
their device, you can provision the app for each device, after adding it to
your developer account. Finally you can upload the build and have people
install it. Obviously the process gets easier with time, and if you're not
adding new people to the team.

But, with Android you build the APK and send out as an email attachment to
whoever and you're done. Set up a shared directory on dropbox or google drive
or w/e if you want.

~~~
knd775
I apologize for the delayed response. HN really needs reply notifications like
Reddit. Anyway...

Apple bought testflight. No more provisioning on up to 1000 devices. Android
is still much simpler, but I was just pointing out that you don't have to
provision devices or add their udid anymore.

------
habosa
I'd recommend Android for the following reasons:

1) The official documentation is way better and much more extensive.

2) It's $35 one time vs $99 a year. Maybe not a big deal to you but something
to consider.

3) In my experience it is much easier to get 'Hello World' up and running on
an Android device than on an iOS Device. You can use Eclipse or Android Studio
on any platform rather than having to learn XCode.

4) Publishing is WAY easier. You can finish your app and have an apk live on
the Play Store within an hour. With Apple this process takes ~1 week and you
might get rejected.

5) You get to code in Java. While it may or may not be a 'better' language
than ObjC it is definitely better documented.

For fairness, here are some advantages of iOS:

1\. The simulator is much faster if you don't have a physical device.

2\. Layout design is definitely easier because of the small number of screen
sizes and form factors.

3\. If your goal is to make money, iOS is still ahead.

------
marketmaker
It's a coin toss, but I went with iOS and don't regret it. The biggest reasons
I don't regret it have nothing to do with the platform itself and have
everything to do with having resources like raywenderlich.com and the articles
on that site. I found that community and environment to be very very helpful.

The only frustration I really had was that, in the Apple world, things change
fast. When I'd Google something, I'd find some code from 4 years ago that
would show ways of doing things that were outdated. There are also minor
disputes here and there on what's "the best way" to accomplish things, but
overall, coming to -a- solution in most cases never took more than a day or
two of frustration.

------
brudgers
If you have a Mac then iOS is practical. Otherwise, only Android is practical.
Android is also practical of course if you have a Mac. Having an Android
device is another reason to look at Android programming.

In my opinion, a web app is probably easier to write than a mobile app
because:

\+ Web apps have a longer history and therefore more information about their
design and construction.

\+ There is more choice of frameworks and more choice of language e.g.
something as simple as Bottle for Python [1]

\+ Basic web apps can be written without learning a framework, just some
library calls.

Of course, getting GPS and QR codes directly isn't really possible for a web
app. Though processing them is.

[1]
[http://bottlepy.org/docs/dev/index.html](http://bottlepy.org/docs/dev/index.html)

------
pjungwir
It doesn't matter. :-)

If your criterion is "fastest and easiest to pickup", the expected marginal
advantage of one or the other is smaller than the time you'll spend choosing
between them. The only way to really find a preference is to dive in, learn
one, and then maybe learn the other later.

There may be some _other_ criteria that decide the issue for you, e.g. market
conditions or owning a Mac. But really I'd just pick whichever gives you
greater enjoyment.

Best of luck!

Edit: I did want to say that if you go with iOS, the O'Reilly book Programming
iOS by Neuburg is excellent. I felt their Android book was pretty weak.

------
anywherenotes
I'm surprised people are putting emphasis on programming language. You can use
frameworks to code in LUA or C# for either IOS or Android.

As others have mentioned, to compile for IOS you'll need a Mac. Personally I
develop for Android, but use a Mac. My recommendation is to look at which
devices your consumers (including you) have and go with it.

Read as others commented regarding Amazon's annual fee vs. Android's one-time
(lower) fee. The PO box comment is interesting, but only if you're going to
sell your app or have in-app-purchases - free apps/ad-apps do not require any
address.

~~~
knd775
*Apple's annual fee

~~~
anywherenotes
Thank you, I'm preparing app for Amazon, and it's just on my mind.

------
Someone
I think the following should be considerations:

What phone do you have? What phone do you think your testers and users will
have?

Do you have a Mac? You will need on for writing an iOS app.

What languages do you favor? For iOS, mainstream ones are Objective-C and
Swift (arguably not yet, but it likely will be fairly shortly). For Android,
Java. You can use C++ on both, but you will need something else for the UI on
iOS and, I would guess, on Android.

Did you google for libraries you would want to use? AFAIK, iOS doesn't that
overly parse QR codes; Android may or may not.

------
jefflinwood
Because you know a little bit of HTML/CSS/jQuery, why don't you try to build
it as a cross-platform HTML5 mobile web app using Cordova/PhoneGap?

There's a bar code scanner plugin for Cordova:

[https://github.com/wildabeast/BarcodeScanner](https://github.com/wildabeast/BarcodeScanner)

And location can be accessed using the standard geolocation plugin for
Cordova.

Because it's a side project, it won't matter that the user interface is non-
standard/quirky.

------
haberdasher
Go with Android.

1) The fee is less for publishing ($35 vs. $99) and you're guaranteed tobe
able to publish.

2) You can use Eclipse or Android Studio (intellij) and not have to learn
XCode.

3) If you didn't want to learn java, you could write your android app with
python or use a wrapper and just use HTML/CSS/JavaScript.

~~~
Someone1234
You forgot the required $62/year for a PO Box since your address is published
on your Play store page ready for easy Swatting, Pizzering, or other
harassment from strangers you upset.

Also the $35 is one off, the $99 is per year. The $62 is per year also
however.

------
sdernley
If you can, do both. If it's just to learn though, i'd do whatever has the
lowest barrier to entry for you. Which phone do you have yourself? Make it for
that. Good luck!

