6 ms·
Ask HN: iOS or Android for a beginner?
I'd like to build a mobile application for a personal side project, but I've never done any app development before. I don't really care which platform I use. I'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'd ask here.
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.
- jefflinwood 12y agoBecause 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 12y agoGo 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 12y agoYou 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.
- Doctor_Fegg 12y agoOn the other hand, as an iOS developer, you can use Xcode and not have to learn Eclipse or Android Studio. I'm no fan of Xcode, but if big IDEs are completely alien to you, I wouldn't claim that Eclipse would be a comforting environment either.
- sdernley 12y agoIf 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!
- Someone 12y agoI 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.
- brudgers 12y agoIf 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
- dozy 12y agoFull 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!
- habosa 12y agoI'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.
- anywherenotes 12y agoI'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 12y ago*Apple's annual fee
- anywherenotes 12y agoThank you, I'm preparing app for Amazon, and it's just on my mind.
- Eduardo3rd 12y agoThanks for clarifying the PO box thing - that was news to me. I'm glad to hear I won't have to worry about it for what I'm putting together.
- pjungwir 12y agoIt 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.
- marketmaker 12y agoIt'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.