Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?
Handhelds Programming Software

Should I Learn To Program iOS Or Android Devices? 403

HW_Hack writes "In my early career in the '90s I had a hardware tech degree, but also a strong interest in software. I completed software courses in assembly, Pascal, HTML, and C as I prepped for a CS degree. I then got my chance to do hardware design for a major US firm and went that direction for a good 18-year career. I now work in a good sized school district doing IT support work at a large high school. I plan to revive my programming skills this winter so I can write apps for the flood of mobile devices. I am very much platform / OS agnostic and I support on any one day OS X, XP, Win 7, Linux servers, and now iOS as we pilot iPads in our school. My question focuses on three topics: Which programming environment (iOS or Android) is easier to jump into from a technical perspective / number of languages needed to master? Which one has a better SDK ecosystem of documentation, programmer support, and developer community(s)? Where is the market and the money going? I do not expect to get rich doing this, but with my insights into K12 needs I hope I can write effective apps for that market."
This discussion has been archived. No new comments can be posted.

Should I Learn To Program iOS Or Android Devices?

Comments Filter:
  • Yes (Score:5, Insightful)

    by Ranger ( 1783 ) on Saturday September 25, 2010 @04:30PM (#33698694) Homepage
    you should.
  • Android (Score:2, Insightful)

    by incubuz1980 ( 450713 ) on Saturday September 25, 2010 @04:31PM (#33698698) Homepage

    iPhone is too proprietary it is a dead end.

  • Go Android (Score:5, Insightful)

    by log0n ( 18224 ) on Saturday September 25, 2010 @04:34PM (#33698724)

    If you don't already have a Mac, iOS requires Apple hardware for development. You also need to learn objective-C which doesn't get much play outside of a Mac environment. None of that is bad, just a hurdle.

    Personally, while iOS is currently ahead of Android (user base, # of devs, apps, etc) I think before long it's going to start playing catch up to Android. Android has got a lot of momentum.

  • Learn them both. (Score:4, Insightful)

    by brion ( 1316 ) on Saturday September 25, 2010 @04:34PM (#33698726) Homepage
    Working with both systems will give you a deeper understanding of each, as well as allowing you to sell to a larger customer base, should that be something that appeals to you.
  • by Planesdragon ( 210349 ) <.slashdot. .at. .castlesteelstone.us.> on Saturday September 25, 2010 @04:34PM (#33698728) Homepage Journal

    You should never, EVER think platform, then app. Think audience, application, and THEN learn what you need.

    Your school district is using iPads? Then learn iOS. You have an android phone at home, or have java experience? Learn Android. You want to just make something work? Get the Android, iOS, and WebOS SDKs, and test like @#% so your mobile phone works everywhere. (Heck, get Blackberry and windows mobile if you can.)

  • Yes (Score:2, Insightful)

    by shriphani ( 1174497 ) on Saturday September 25, 2010 @04:35PM (#33698734) Homepage
    You definitely should. One of the biggest benefits of building apps for mobile phones is that you don't need to market your app - the app stores are excellent distribution channels and your app isn't stuck out there waiting to be discovered by the masses for the next 20 years. Major indie mac developers have made the switch to the iPhone and now more actively focus on iOS devices than they do on the Mac. This is a general trend. Smartphones' potential is still being discovered. Try to profit from the gold rush while you can.
  • More is more (Score:4, Insightful)

    by wombatmobile ( 623057 ) on Saturday September 25, 2010 @04:36PM (#33698742)

    Why not aim to learn both iOS and Android? You'll please more people and incur the wrath of less. If you pick just one, you have to deal with the tens of percents that can't run your apps, which is difficult.

    Yes, it will take more time and effort to learn to environments, but not much more. Most of your time will be spent designing and testing the apps, not implementing code.

  • Yes. (Score:5, Insightful)

    by morgan_greywolf ( 835522 ) on Saturday September 25, 2010 @04:36PM (#33698748) Homepage Journal

    Yes. You should hedge your bets and learn both. The smartphone wars are far from over, and most smartphone content producers are releasing for, at the very least, both iOS and Android. Some also simultaneously release for Blackberry and Windows Mobile as well.

    Each platform has its relative strengths and weaknesses. Writing code on Android pretty much means learning Java; similarly, writing code on iOS pretty much means learning Objective C. Neither language is likely to become obsolete very soon. The startup costs for writing code on Android are a bit lower; you don't need to buy anything to write Android apps. If you expect to write iOS apps, you need a Mac and you need XCode. On Android, you need Eclipse and the Android Eclipse SDK.

    But, like I said, I wouldn't learn just one.

  • Re:Android (Score:0, Insightful)

    by Anonymous Coward on Saturday September 25, 2010 @04:37PM (#33698756)

    Thing is, this can be an upside if you look at it from a funny angle. The entire hardware/software stack is tightly controlled and the range of devices limited, so there are fewer edge cases for developers. It really does help.

    Disclaimer: I enjoy writing for iOS devices. It's fun!

  • Re:Android (Score:2, Insightful)

    by bennomatic ( 691188 ) on Saturday September 25, 2010 @04:39PM (#33698772) Homepage
    Sounds like someone's been drinking the goog-aide!
  • Re:Yes (Score:5, Insightful)

    by Ronin Developer ( 67677 ) on Saturday September 25, 2010 @04:47PM (#33698822)

    Having the knowledge to develop for both platforms is a wise idea. There are some who think that Apple's proprietary-ness will lead them to their doom. I don't think that's the case at all. I know that with "walled garden" of iOS, my apps are checked for proper behavior before being placed in the wild. And, there is a system in place to sell apps and collect revenue. Granted, Apple takes a nice slice for the privilege - but its a thriving environment.

    The language you need to learn is currently Objective-C. Apple has recently changed their development tool policy - so, expect other languages to become available that cross compile down to Objective-C. We'll see. Documentation is very good and there are plenty of 3rd party books out there also.

    Android requires Java and knowledge of the Android SKD. It also has a large community following. Gartner groups predicts that by 2014, Android based phones will outsell iOS phones - simply because it will be on more platforms.

    Android has a hidden danger - malware has already been found in the wild that attack Android phones. And, if the code keeps forking for each device type out there, you will have to know all the nuances of a given platform. This is something you don't have to worry about too much with iOS. I am not familiar with the selling of Android apps - how that ecosystem works - maybe, somebody else can expound on that.

    A third contender will be Microsoft with Windows Phone 7. We'll have to see if their system catches on - the first devices are due out in October. It may be too late for them.

    Blackberry? Well, they have too many devices and versions of their OS. Testing our app for Blackberry required the hiring of service to provide access to test devices and separate builds for each device type. I would discourage Blackberry development.

    If you plan to sell to your services to the business world, learn both environments. There's where the money is to be made - the days of the "big app" making your a zillionaire are pretty much gone.

  • Re:Yes. (Score:5, Insightful)

    by catbutt ( 469582 ) on Saturday September 25, 2010 @04:48PM (#33698826)
    As someone who has learned both, I don't suggest this approach for most. Especially if you are just getting back into programming. There is an immense amount to learn for both, and much of the knowledge does not carry over. They are very different.

    I suggest picking one of them and learning it well. If you make something that seems to have potential, hire someone to port it -- or then take the time to learn another platform.

    Just my suggestion. Trying to learn both at once can be quite overwhelming.
  • Re:Go Android (Score:5, Insightful)

    by Joe Tie. ( 567096 ) on Saturday September 25, 2010 @05:11PM (#33699008)
    I hated java before I took up writing for android. What I learned was that I hated java libraries and the million and one legacy additions. In particular, I hated swing. Java's synatax without all that is actually kind of nice.
  • Re:Go Android (Score:4, Insightful)

    by lederhosen ( 612610 ) on Saturday September 25, 2010 @05:13PM (#33699034)

    Java might not be the best language around, but I find it much better than Objective C. What part of Objective C do you prefer?

  • Re:iOS (Score:3, Insightful)

    by Wovel ( 964431 ) on Saturday September 25, 2010 @05:24PM (#33699106) Homepage

    Except one 99c app like angry birds netted the developers more than the gross of the entire android marketplace..

  • remain agnostic (Score:3, Insightful)

    by metalmaster ( 1005171 ) on Saturday September 25, 2010 @05:29PM (#33699152)
    Choose sides, and you will surely lose at the end of the day. Apple's iDominance will die out. Android will fork to the point of there being a new distro daily. The best way to remain relevant is to develop the core ideas behind your application THEN learn how to implement them using the tools at hand. Consumers care about what works. Lets face it, what works today might not work tomorrow.
  • Re:Android (Score:5, Insightful)

    by bigstrat2003 ( 1058574 ) on Saturday September 25, 2010 @05:31PM (#33699164)
    I wouldn't say "dead end", but the fact remains that as long as Apple has capricious and arbitrary rules for their app store (which, knowing them, will probably be until the end of time), iOS development is a risk. There is a very real possibility that your app which you invest hard work into will be rejected for no real reason. At least on Android, you can sell your app to people even if it is removed from the market for some reason (and far less apps are unjustly removed from the Android market than Apple's app store).
  • Re:Go Android (Score:3, Insightful)

    by Timmmm ( 636430 ) on Saturday September 25, 2010 @05:51PM (#33699288)

    I've never used Objective C. It may be rubbish too!

    You're right though, my main objection is with Eclipse, which is one of the... no it *is* the worst IDE I've ever used.

  • Re:Yes (Score:4, Insightful)

    by Ranger ( 1783 ) on Saturday September 25, 2010 @05:52PM (#33699310) Homepage
    Actually, I'm learning HTML5, CSS3 and JavaScript. What I want to do on mobile platforms doesn't require an app.
  • Re:Yes (Score:2, Insightful)

    by aliquis ( 678370 ) <dospam@gmail.com> on Saturday September 25, 2010 @05:58PM (#33699344) Homepage

    you should.

    Good enough, didn't answer much of his questions as far as languages, communities, environments, market and so on though.

    Also what about QT? 4.7 just came out:
    http://qt.nokia.com/products/whats-new-in-qt/ [nokia.com]

  • Re:Android (Score:5, Insightful)

    by DurendalMac ( 736637 ) on Saturday September 25, 2010 @05:58PM (#33699346)
    Saying it doesn't make it true. You know what? END USERS DON'T GIVE A DAMN. FOSS advocates need to come to grips with that. They don't give a crap if it's open or not. They want it to be simple and do what they want, and for most consumers, the iPhone fits the bill. Android may also fit for a lot of folks. Also, iPhone users spend more money on apps than Android users, so it's certainly not a dead end.

    What is it about open source zealots that utterly blinds them to reality? FOSS is all fine and dandy, but end users usually don't know or don't give a damn. They'll buy whatever they think is nifty.
  • by itsdapead ( 734413 ) on Saturday September 25, 2010 @07:07PM (#33699824)

    Apple is making exactly the same mistakes they made in the early desktop market: they're refusing to license their software to more nimble hardware manufacturers.

    Here's a clue: which of the early makers of desktop computers survived the Wintel monoculture of the late 80s and 90s and is still an influential, if minority, platform today? Hint - it begins with "A". What happened to CP/M and GEM, MSX and Unix which were licensed to multiple manufacturers?

    Anyway, Apple have already tried that. Twice, actually: Apple with "classic" Mac OS and Steve Jobs with NeXTStep before he returned to Apple. That went well, didn't it?

    What has worked spectacularly since the release of the iMac in 1998 is tying the software to premium-priced "designer label" hardware (but not quite as premium-priced as the old NeXT cubes). But you're right - Apple should drop their winning formula and go with the one that has already been proven to fail.

    The fly in the ointment is that "more nimble hardware manufacturers" don't care whether they ship machines with Windows or MacOS as long as they make their money (usually by selling upgrades, peripherals, extended warranties and finance rather than the computers themselves). They'll be more than happy to attract custom from existing Apple converts, cannibalizing Apple's sales, Windows users to switch. So you've got guaranteed cannibalization of Apple's existing sales but no guarantee whatsoever that the clone-makers and their resellers will aggressively promote MacOS to Windows users. Look at Dell and Asus's feeble efforts to sell Linux-based machines...

  • Not true (Score:5, Insightful)

    by aclarke ( 307017 ) <.ac.ekralc. .ta. .maps.> on Saturday September 25, 2010 @08:00PM (#33700114) Homepage
    I hear people on /. saying this all the time and I simply don't think it's true. I've been coding post-university for > 14 years so I consider myself a "senior developer". I used to know c way back in the day, and have done some Java coding and a bit of C#, but Objective C still to me isn't "a few late nights" simple.

    Sure, a few late nights will let you pick up the syntax, but the real value of a platform, whether it's JEE, .NET or iOS development, are the libraries and everything that goes beyond the bare syntax. Understanding what method to use where takes a LOT more than just a few late nights. Additionally, every language brings with it its own pitfalls, security issues, etc., that a newbie developer is just not going to pick up right away.

    Sure, after a couple weeks of hard studying you can start to program in a new language. I'm not debating that. Additionally, some languages and environments are going to be easier than others. But the vast majority of developers are not going to be even nearly up to speed on a new language without having a severe impact on the timeline of a project.
  • Re:Yes (Score:3, Insightful)

    by naz404 ( 1282810 ) on Saturday September 25, 2010 @08:13PM (#33700176) Homepage

    - ActionScript is the place when good language design went to die

    You're talking about ActionScript 1. You should check out ActionScript 3, the current iteration. It's for all intents and purposes, the same syntax as JAVA. ActionScript 2 is a variant of JavaScript (it's an ECMAScript implementation).

  • Re:Android (Score:3, Insightful)

    by xouumalperxe ( 815707 ) on Saturday September 25, 2010 @08:23PM (#33700242)

    [citation needed]

    Fair enough. Here you go [gizmodo.com]. It's a bit outdated (being from March and all), but I doubt the situation changed significatively in the last 6 months.

  • Re:Android (Score:3, Insightful)

    by znerk ( 1162519 ) on Saturday September 25, 2010 @08:33PM (#33700290)

    FOSS is all fine and dandy, but end users usually don't know or don't give a damn.

    ... because FOSS advocates aren't end users? Interesting viewpoint...

  • Bollocks (Score:3, Insightful)

    by edxwelch ( 600979 ) on Saturday September 25, 2010 @08:39PM (#33700330)

    There's something stinky about flash on mobiles. They tried to make it the next big mobile platform before (aka Flashlite) and it flopped.

    Three big flash developers Nitrome, Semi Secret Software and Astro Ape Studios, are rewriting their games for iPhone natively rather than using CS5, because flash is too slow.

    http://www.gamasutra.com/view/news/30368/InDepth_iOS_Flash_Devs_Cautiously_Optimistic_Of_Apples_New_Tools_Policy.php [gamasutra.com]

  • by maccodemonkey ( 1438585 ) on Saturday September 25, 2010 @08:54PM (#33700400)

    "My personal opinion is that Objective C is pretty tedious and annoying. The syntax is ugly and non-intuitive. Again, this is my personal opinion. But having done years of C, C++, C#, I find it bizarre that Objective C syntax is non-obvious. Not that it is particularly complex, but if you know C++, Java and C# seem pretty obvious, whereas Objective C is just very different in syntax."

    How is it not obvious? Your complaint seems to be that it is different, while admittedly not complex. Different != not obvious.

    Objective C is an old language, and when it came out, it was a possible competitor to the still pretty shiny and new C++. It's an old enough language, that when Java was written, Java took a lot of cues from Obj-C. Apple didn't go out of their way to make a different language because back when Obj-C was created there wasn't a standard syntax for OOP programming.

    Obj-C is dead simple, and honestly, not confusing if you take the time to learn it. However, it seems many people these days are afraid of languages that look different and immediately write it off, when it's pretty gosh darn elegant. Every time I ask people why they dislike Obj-C, they can't get any further than the brackets. It just amazes me how many people write off iOS because they think Obj-C is hard (which, alone, is mind numbing, considering the biggest draw of OS X on the desktop for software engineers is how easy Obj-C is compared to C++).

    If the ability to learn is dead in software engineering, we're all in a lot of trouble.

  • Re:Bollocks (Score:2, Insightful)

    by object404 ( 1883774 ) on Saturday September 25, 2010 @09:11PM (#33700462) Homepage
    No. The main problem with Flash Lite was that it was always 1 or 2 generations behind the desktop version and it was a real headache as this left Flash Lite crippled in functionality (Flash Lite 1.x had no arrays - frikken arrays man! wtf?, Flash Lite 2.x had no cacheAsBitmap which would speed up performance, etc) and because of the different implementations, this left the mobile landscape very fragmented, and it was a real headache. I still get a lot of trauma flashbacks when I think of Flash Lite 1.x

    Now, since the desktop and mobile versions of Flash are essentially the same, this is no longer as bad a problem.

    As I mentioned before, you'd get optimal performance results on native code, but depending on the needs of your App, Flash should be enough. The Eco Zoo [ecodazoo.com], a really cute and impressive full-3D Flash site with N64-level polygon graphics (built by Masayuki Kido aka ROXIK on his custom Sharikura 3D Engine) runs pretty fast on the Google Nexus One (and this is surprising because it wasn't targeted at mobile at all! See what real optimization can accomplish? Those Japanese coders are really crazy good!). This videoblog review by Thibault Imbault [bytearray.org] will show you actual Flash 10.1 performance on the Nexus One.

    Also, you mentioned you're doing this in the context of K-12. You can't go wrong with Flash then as it's the de facto standard for building multimedi animated and interactive e-learning content.
  • Re:Go Android (Score:3, Insightful)

    by dokebi ( 624663 ) on Sunday September 26, 2010 @01:28AM (#33701374)
    <quote><p>Why did you switch to EMACS?</p></quote>

    Org mode. It was that compelling for me.
  • Re:Yes (Score:1, Insightful)

    by Anonymous Coward on Sunday September 26, 2010 @01:44AM (#33701406)

    Android also uses FreeType and was probably vulnerable to the same thing; the difference is visibility.

  • Re:Not true (Score:3, Insightful)

    by xtracto ( 837672 ) on Sunday September 26, 2010 @05:05AM (#33701998) Journal

    Spot on.

    I have been programming since I was 9 years old (LOGO, GWBASIC, Pascal, C, then C++ then Java) around 1988) and if someone asks me in what languages am I fluent I would just say Java, and C, because these are the ones I have used *for work* in the last 5 years (granted, I have also used a plethora other languages ,like PHP, python, ASM, some SQLs and whatnot).

    Some time ago I read an article by Joel Spolsky regarding this topic (can someone whore some Karma by posting the link? plz). The problem is that "newbie" programmers think that knowing a programming language is just a matter of knowing the control flow instructions, memorizing the keywords and maybe learning one or two library functions.

    However, the truth is when using a language for *production* code, there really is a difference between a guy who knows the ins and outs of the language, the subtleties, and just reading a book and doing a bunch of hello worlds.

  • Re:Android (Score:1, Insightful)

    by Anonymous Coward on Monday September 27, 2010 @08:24AM (#33709756)

    The problem with arguments like yours is that they rely on the false premise that "most consumers" have, want, or like the iPhone.

    The problem is, there's only at most 55 million iPhones out there out of a total 4.6 billion active mobile phones across the world. The actual number of active iPhone users is likely to be less, as that's the total sales figure for all iPhone sales, which, on 2 year contracts, will often have been replaced by later versions of iPhones with the old models being left inactive- particularly many of the 6 million first generation devices, which aren't even really supported by Apple anymore.

    So when you say "end users", what you actually mean, is little over 1% of all cell phone users. The fact is, the iPhone is still absolutely dwarfed by JavaME and other mobile platform based devices.

    It's an absolute fallacy to pretend that the iPhone has somehow captured the mindshare of the consumer, to imply the majority of people like the iPhone and it's methods, they don't. It's a very small clique still.

    So to counter your point, what Mac fanboys need to grasp: END USERS DONT GIVE A DAMN ABOUT APPLE AND THEIR DEVICES, yes, I know Apple's PR machine is incredibly good at getting Apple mentioned so frequently that anyone would think they're ruling the world, yes, I know fanboys think that higher market cap than Microsoft despite still being about a 3rd the actual size in terms of equity, assets and revenue means they're the largest tech company in the world, but none of it matters, Apple is still nothing more than an irrelevance in the global phone marketplace. Slightly less of an irrelevance in some arbitrarily made up to suit definitions of "smartphone", and slightly less of an irrelevance in terms of mobile gaming (despite Steve Jobs outright lie that somehow iOS devices outnumber Nintendo and Sony's mobile gaming devices at his last conference).

    To paraphrase you: What is it about mac zealots that utterly blinds them to reality? Apple stuff is all fine and dandy, but end users usually don't know or don't give a damn. They'll buy whatever best suits their needs. Most the time, that is not Apple.

    Note that I'm not saying Apple products are crap, not at all, they're nice, but I'm absolutely sick of hearing this fantasy that they're somehow the most popular thing in the world, that they're somehow a market leader, despite things like MMS, Apps, Exchange, GPS, 3G, and so on and so on being added to the iPhone long long after their competitors had them. The iPhone 4 had a massive engineering defect that can only come down to sheer incompetence, there seem to have been more vulnerabilities on the iPhone than pretty much any other phone platform in history. Sure the iPhone really pushed phone UI's forward, but please don't lie and pretend it's done anything other than that whatsoever.

Never worry about theory as long as the machinery does what it's supposed to do. -- R. A. Heinlein