The core parts of the app will be parsing a QR code and accessing GPS to relay the user's location.
If it is at all relevant, I have a MS in mechanical engineering and I've done a fair amount of C++ and Python coding for other projects. I would say I'm probably just past the beginner stage for HTML/CSS/jQuery, but not comfortable enough to go write a web app without a lot of questions.
Thanks in advance for input.
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!
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.
I like the point about Swift and iOS APIs. I'm hoping to be able to use APIs for most of the app functionality, but I guess that's another piece that I should dig into before making the final call.
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.
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.
Also the $35 is one off, the $99 is per year. The $62 is per year also however.
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.
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.
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.
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.
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.
There's a bar code scanner plugin for Cordova:
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.