Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Should I Learn To Program iOS Or Android Devices?

timothy posted more than 3 years ago | from the go-straight-for-neural-implants dept.

Handhelds 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."

cancel ×
This is a preview of your comment

No Comment Title Entered

Anonymous Coward 1 minute ago

No Comment Entered


Yes (5, Insightful)

Ranger (1783) | more than 3 years ago | (#33698694)

you should.

Re:Yes (2, Informative)

l0ungeb0y (442022) | more than 3 years ago | (#33698736)


As a developer you'll be far more valuable being able to deliver an app to as many platforms as possible.

Re:Yes (1)

bennomatic (691188) | more than 3 years ago | (#33698764)

This. Plus HTML5/Javascript. And even that other technology. Flash may be dying as a percentage of the market, but it's dying slowly even from that perspective. And the market is growing fast enough that even "dying" means growth. Hell, Cobol's been dying for 50 years now. Not that I'm suggesting learning cobol.

Point is, web apps don't solve everything, but they do solve some problems very nicely, and they're powerful enough now with Webkit (on iOS and Android and WebOS) that you can even use them to do quick prototyping for a lot of types of apps. I wanted to write an interactive book for my kid as a native iApp as an excuse to learn how to write iApps, and then found myself instead looking to HTML5 and wrote the whole thing, touch gestures and page animating and all, as a web app.

And the boy loves the wBook, by the way. It lets him see the moon gliding across the sky behind all sorts of familiar objects, from buildings to trees to his dog. Of course, I should say he loved it, from ages 6 mo to 18 mo. Now at 18 mo, he's not so fascinated by the fact that his touch animates the moon. Now he's found the home button and if I leave him alone with my iPod for more than a minute, he'll delete every app that he can. He loves the way they wobble...

Re:Yes (0)

Anonymous Coward | more than 3 years ago | (#33698858)

"Flash may be dying as a percentage of the market, but it's dying slowly ..."

If he admits to Flash and tells his address he will die slowly as well.

Re:Yes (1)

bennomatic (691188) | more than 3 years ago | (#33698916)

Hate to say it, but the same could be said of all of us. Finite time on this means that no matter where we are in our lives, we're progressing towards the dirt-hole.

That always struck me about the big dune monster in Return of the Jedi. You know the one that was basically a pit in the sand that they were going to be thrown into? C3PO said that anyone thrown in would die a painful death as their body is digested over a period of 1000 years. I figure if it takes 1000 years for that thing to digest anyone, the digestive acids can't be that powerful; it'd be more like drowning than anything else. And considering that even without drowning, anyone in its gullet would die within a few days of starvation, the whole 1000 years thing is a bit silly.

Re:Yes (1)

rrossman2 (844318) | more than 3 years ago | (#33699064)

You're lucky. My son would touch the screen a few times, and then try to eat the damn thing. That's how my Storm died, and my wife's phone. He was 6 months at the time

Re:Yes (5, Funny)

Anonymous Coward | more than 3 years ago | (#33698812)

No no no!

Microsoft Windows Phone 7 is coming out in just a couple of months and just as Microsoft has done on the desktop with superior choices like Windows NT, they will quickly dominate the mobile front as well. Microsoft Windows Phone 7 is programmed completely in the industry leading .net programming language and augmented with the unmatched Silverlight technology providing an unrivaled technological platform with which you will only be limited by your imagination for the applications you can develop. Why play around with a tired platform like ios or android (an operating system only tech geeks can use and understand), when you can go with the undisputed leader in computer technology that is Microsoft. Furthermore, the MetroUI as seen on the ZuneHD audio player makes androd and ios look like sad anachronistic throwbacks. No serious developer will even touch aple and googls stuff when Microsoft Windows Phone 7 is unleashed.

Re:Yes (4, Insightful)

Ronin Developer (67677) | more than 3 years ago | (#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 (0)

Anonymous Coward | more than 3 years ago | (#33699050)

you should.

No, you should learn a real open platform, blackberry. RIM has made an SDK and full documentation freely available for close to a decade. No need for any of that that jailbreaking crap.

You won't have to deal with Apple being dicks about approving your app - sell through RIM's app world, or sell it yourself by any other method.

Android (2, Insightful)

incubuz1980 (450713) | more than 3 years ago | (#33698698)

iPhone is too proprietary it is a dead end.

Jesus phone (-1, Troll)

Anonymous Coward | more than 3 years ago | (#33698720)

A couple weeks ago, while taking my mail-order Thai bride shopping at the local mall, I had to take a piss. As I entered the john, Steve Jobs -- the messiah himself -- came out of one of the booths. I stood at the urinal looking at him out of the corner of my eye as he washed his hands. He didn't once look at me. He was busy and in any case I was sure the security guards wouldn't even let me shake his hand.

As soon as he left I darted into the booth he'd vacated, hoping there might be a lingering smell of shit and even a seat still warm from his sturdy ass. I found not only the smell but the shit itself. He'd forgotten to flush. And what a treasure he had left behind. Three or four beautiful specimens floated in the bowl. It apparently had been a fairly dry, constipated shit, for all were fat, stiff, and ruggedly textured. The real prize was a great feast of turd -- a nine inch gastrointestinal triumph as thick as his cock -- or at least as I imagined it!

I knelt before the bowl, inhaling the rich brown fragrance and wondered if I should obey the impulse building up inside me. I'd always been a liberal thinker and had been an Apple customer since 1984. Of course I'd had fantasies of meeting Jobs, sucking his cock and balls, not to mention sucking his asshole clean, but I never imagined I would have the chance. Now, here I was, confronted with the most beautiful five-pound turd I'd ever feasted my eyes on, a sausage fit to star in any fantasy and one I knew to have been hatched from the asshole of Steve Jobs, the chosen one.

Why not? I plucked it from the bowl, holding it with both hands to keep it from breaking. I lifted it to my nose. It smelled like rich, ripe limburger (horrid, but thrilling), yet had the consistency of cheddar. What is cheese anyway but milk turning to shit without the benefit of a digestive tract?

I gave it a lick and found that it tasted better then it smelled.

I hesitated no longer. I shoved the fucking thing as far into my mouth as I could get it and sucked on it like a big half nigger cock, beating my meat like a madman, and thrusting my pink iPod Shuffle into my ass. I wanted to completely engulf it and bit off a large chunk, flooding my mouth with the intense, bittersweet flavor. To my delight I found that while the water in the bowl had chilled the outside of the turd, it was still warm inside. As I chewed I discovered that it was filled with hard little bits of something I soon identified as peanuts. He hadn't chewed them carefully and they'd passed through his body virtually unchanged. I ate it greedily, sending lump after peanutty lump sliding scratchily down my throat. My only regret was that Steve Jobs wasn't there to see my loyalty and wash it down with his piss.

I soon reached a terrific climax. I caught my cum in the cupped palm of my hand and drank it down. Believe me, there is no more delightful combination of flavors than the hot sweetness of cum with the rich bitterness of shit. It's even better than reading an Apple press release!

Afterwards I was sorry that I hadn't made it last longer. But then I realized that I still had a lot of fun in store for me. There was still a clutch of virile turds left in the bowl. I tenderly fished them out, rolled them into my handkerchief, and stashed them in my briefcase. In the week to come I found all kinds of ways to eat the shit without bolting it right down. Once eaten it's gone forever unless you want to filch it third hand out of your own asshole. Not an unreasonable recourse in moments of desperation or simple boredom.

I stored the turds in the refrigerator when I was not using them but within a week they were all gone. The last one I held in my mouth without chewing, letting it slowly dissolve. I had liquid shit trickling down my throat for nearly four hours. I must have had six orgasms in the process.

I often think of Steve Jobs dropping solid gold out of his sweet, pink asshole every day, never knowing what joy it could, and at least once did, bring to a grateful Apple customer.

Re:Jesus phone (2, Funny)

Anonymous Coward | more than 3 years ago | (#33699146)

What.... the.... fuck...

Re:Android (0, Insightful)

Anonymous Coward | more than 3 years ago | (#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 (5, Funny)

Anonymous Coward | more than 3 years ago | (#33698794)

Yes, iPod touches, iPhones and iPads still haven't really caught on with the mainstream consumer yet. Consumers can regularly be seen debiting the merits of a cell phone based on the openness of the product - not the functionality or usability. I believe Apple has sold some product units but i'm expecting all the millions of owners to ditch their iDevices any day now simply because Android is less proprietary.

Re:Android (0)

Anonymous Coward | more than 3 years ago | (#33699182)

I fully agree with this, just look at Windows vs Linux - same story. Consumers can regularly be seen debiting the merits of an OS based on the openness of the product - not the functionality or usability. I believe Microsoft has sold some software units but i'm expecting all the millions of owners to ditch their XP and 7's any day now simply because Linux is less proprietary... ... ... oh wait sometimes people are sheep! Forgot that variable...

Re:Android (1, Interesting)

Anonymous Coward | more than 3 years ago | (#33698840)

I'm in a similar situation as the submitter. Despite what everyone is reporting I think both will
survive and flourish. I really dislike both companies but even I can see that what they're both
doing will be big and so to be honest neither is a bad choice.

What kind of apps are you trying to create and will they get used more on the ios or android platform?
They actually seem to appeal to fairly different markets that just happen to overlap in some places.

I ended up choosing android because the IDE wasn't tailored to one platform, the native language seems
more useful with android and I think that ultimately android will be the more successful of the two.

Re:Android (0, Redundant)

incubuz1980 (450713) | more than 3 years ago | (#33698902)

How is this flamebait? It was an honest opinion. It might be touchy subject for some, but how can you argue against me calling Apple products proprietary?

Re:Android (4, Insightful)

bigstrat2003 (1058574) | more than 3 years ago | (#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:Android (0)

Anonymous Coward | more than 3 years ago | (#33699238)

(and far less apps are unjustly removed from the Android market than Apple's app store)

There are far fewer apps to begin with...

Sencha touch (0, Informative)

Anonymous Coward | more than 3 years ago | (#33698702)


Re:Sencha touch (1)

Steve Max (1235710) | more than 3 years ago | (#33699244)

Come on, mods. Maybe that's spam, but it's hardly off-topic for someone who wants to develop for mobile devices. For some types of applications, an HTML5-based web version would be easier to develop and span more devices than developing just for iOS, Android, or both.

iOS or Android? (-1, Offtopic)

Ethanol-fueled (1125189) | more than 3 years ago | (#33698708)

That's a lot like asking what your sexual orientation should be. I'll leave it up to you to decide which is which. If you prefer both, keep it on the DL, battyboy.

Go Android (4, Insightful)

log0n (18224) | more than 3 years ago | (#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.

Re:Go Android (0)

Anonymous Coward | more than 3 years ago | (#33698852)

Incorrect. Apple requires Mac OS X for development. This software can be virtualized on most modern PC configurations.

Re:Go Android (3, Interesting)

Tubal-Cain (1289912) | more than 3 years ago | (#33699030)

This software can be virtualized on most modern PC configurations.

IIRC, he may be breaking the EULA if he does that.

Re:Go Android (0, Flamebait)

Timmmm (636430) | more than 3 years ago | (#33698874)

Also you have to pay $100 *per year*. Android is $25 once.

On the other hand Java and Eclipse are shit.

Re:Go Android (4, Insightful)

Joe Tie. (567096) | more than 3 years ago | (#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 (0)

Anonymous Coward | more than 3 years ago | (#33699020)

On the other hand Java and Eclipse are the shit.


Re:Go Android (3, Insightful)

lederhosen (612610) | more than 3 years ago | (#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:Go Android (1)

mysidia (191772) | more than 3 years ago | (#33698938)

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

Err... yeah... my point is, why guess?

Maybe learn iOS now, get your app supporting apple's device, because there are more users. Design your app with an aim for multi-platform compatibility, use a multi platform framework if possible.

Work on porting your app to Android once you have it working on iOS. The winner here is to have one app that works on as many platforms as possible, then you don't exclude part of your market for running a different device :)

Re:Go Android (1)

Wovel (964431) | more than 3 years ago | (#33699082)

Kind of depends if this is a hobby or he wants to make money at it. There is very , very little money in Android apps atm, and that is unlikely to change any time soon.

Re:Go Android (0)

99BottlesOfBeerInMyF (813746) | more than 3 years ago | (#33699126)

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.

Xcode supports C, C++, Objective-C, and Objective-C++, for the iPhone. You can also do things like HTML5/javascript apps compiled with a tool like PhoneGap or one of the tools to compile Flash apps into iPhone apps.

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.

I think your metaphor is broken. If iOS is ahead it can't play catch up to Android until Android finishes catching up. Android is certainly growing and iOS is going strong as well. I'd argue it makes sense to work with cross-platform HTML5 apps where you can target not only the iPhone and Android phones, but also WebOS phones and everything with a modern Web browser (phones with Webkit or Opera and a internet connection). It's a bit limited as far as dev tools and the like so far, but clearly functional and going to be a useful platform going forward.

Learn them both. (3, Insightful)

brion (1316) | more than 3 years ago | (#33698726)

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.

Re:Learn them both. (0)

Anonymous Coward | more than 3 years ago | (#33698920)

'allowing you to sell to a larger customer base, ...'

That means 100% of the planet are your clients, not 5%.

Jack of all trades, master of none (1)

SuperKendall (25149) | more than 3 years ago | (#33698950)

Working with both systems will give you a deeper understanding of each

I think that's really true regarding computer languages. It's a great idea to know a lot of different languages.

But when talking about whole platforms, it's very hard to work with both systems, and become proficient in one. I think there's a lot of value to mastering a system so you can REALLY understand it and perform well developing for it.

If for some reason you need to switch platforms, the experience you gain knowing what works well on a mobile UI will roughly translate from one to the other, so it's not like that really locks you down much.

App first, platform second (5, Insightful)

Planesdragon (210349) | more than 3 years ago | (#33698728)

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

Re:App first, platform second (1)

ndogg (158021) | more than 3 years ago | (#33698972)

The parent is quite right on this. That said...

I know this isn't popular here on slashdot, but being able to target both should be pretty easy using Mono. MonoTouch [monotouch.net] is already out there, and is a well proven technology, and MonoDroid [monodroid.net] should be out soon. Just remember to keep the business logic of the app separate from platform specifics.

Or, you could just stick to C, which will work on both platforms as well.

Re:App first, platform second (2, Informative)

rrossman2 (844318) | more than 3 years ago | (#33699092)

Haven't really played with it yet, but you can get the BlackBerry Dev tools for free. They provide a plug-in for Eclipse to develop the Java apps for BlackBerrys, even provide tutorials, examples, and even phone simulators. Granted it's not the platform you're looking into, but I know Symbian phones will run MIDP java apps (they have the full stack in the S60/S80 OS), so an app that will run on a BB *should* also run on a Symbian phone. I'm not sure if an MIDP app would also run on an android or not... but just wanted to toss that out there

Re:App first, platform second (1)

EEPROMS (889169) | more than 3 years ago | (#33699190)

Android platform also supports programming in C/C++, to be honest I looked at Dalvik (java like language) and decided after some experimentation to go with C/C++. In my case the applications ran very smooth and others have reported when they ported from dalvik to c/c++ the apps ran faster.


Yes (2, Insightful)

shriphani (1174497) | more than 3 years ago | (#33698734)

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.

Re:Yes (1)

Antique Geekmeister (740220) | more than 3 years ago | (#33699096)

And of course, you'll lose years of your career and maybe your house if you try this. The mobile application market is wildly overpopulated with "brilliant ideas" that founder on small but fatal flaws, ranging from poor user interfaces to being blocked by the apps stores for arbitrary and unpredictable policy reasons, to simple theft by a larger vendor who can undercut your price and merge their development work with other work and undercut you.

Get out of the "mobile device development" marketplace unless you're extraordinarily gifted: with decades of experience, get into infrastructure work to support the mobile device companies. And make sure you get paid cash, not stock.

iOS (1)

QuadraQ (22799) | more than 3 years ago | (#33698738)

From what I've heard people aren't making much money on the Android side yet. That could change, but it's not a good sign if being paid to code is your goal.

Re:iOS (1)

Zelgadiss (213127) | more than 3 years ago | (#33698954)

One of the problems is Google for some reason hasn't enabled paid apps in some regions.

In south east Asia for example, Apple App store works fine, but Google's limited to free apps.

More is more (3, Insightful)

wombatmobile (623057) | more than 3 years ago | (#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. (5, Insightful)

morgan_greywolf (835522) | more than 3 years ago | (#33698748)

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:Yes. (4, Insightful)

catbutt (469582) | more than 3 years ago | (#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:Yes. (-1, Troll)

Anonymous Coward | more than 3 years ago | (#33698926)

Especially if you are just getting back into programming.

Obviously not a developer.

Re:Yes. (0)

Anonymous Coward | more than 3 years ago | (#33699080)

Especially if you are just getting back into programming.

Obviously not a developer.

Obviously applies to the submitter, you cocksucker.

Depends on what you want to do. (1)

codepunk (167897) | more than 3 years ago | (#33698752)

Point and click utility apps are relatively simple to do on the android. If you are targeting high performance applications such as 3d games the IPhone clearly owns that space.

The post itself (2, Funny)

niw3 (1029008) | more than 3 years ago | (#33698754)

must be flagged as flamebait.

Re:The post itself (1)

bennomatic (691188) | more than 3 years ago | (#33698784)

No, it's an opportunity for sensible debate. In other words, I disagree with you, but I am pretty certain that you're not a Nazi baby killer vegan.

Holy war starts in 3...2...1 (1)

StuartHankins (1020819) | more than 3 years ago | (#33698762)

Schools seem to like the iDevices. If schools are your target market, that's a safe way to go. Do I dislike Android? Absolutely not, it's Linux for the masses. It just hasn't caught on as well with schools as teaching devices yet. It will get there at some point!

Re:Holy war starts in 3...2...1 (1)

Wyatt Earp (1029) | more than 3 years ago | (#33698814)

I'm in education tech, but supporting disability and all I see in that sector is expensive applications being updated from Win9x/XP to Vista and iOS.

Our agency is buying iPads for distance and disability ed like mad, I think our 20 person agency has 14 of them now with 7 more on the way.

We load them with accessibility stuff and send them out to rural schools.

Last time in one of these Android/iOS things I posted that I don't see disability or accessibility stuff coming for Android and got flamed and modded troll for my efforts, so I won't make predications.

Are there any OCR apps out there for either platform? If someone came up with an app that OCR and read outloud the text on an image or .PDF they'd make alot of people out there happy.

Write Portable Code (1)

turgid (580780) | more than 3 years ago | (#33698770)

Pick one main platform to begin with, but write your app in a portable fashion so that it compiles and runs on two or more. Writing portable code improves code quality even if you only intend to deploy on one platform.

Also, it's easier to learn another platform "as you go along" rather than putting it off until some arbitrary time in the future.

Re:Write Portable Code (0)

Anonymous Coward | more than 3 years ago | (#33698796)

That's absurd. Write code that's portable between Java and Objective-C platforms, particularly UI-heavy code for a mobile platform where you're forced to integrate tightly with the available APIs? Think again.

Re:Write Portable Code (1)

catbutt (469582) | more than 3 years ago | (#33698866)

The only way to do this is using javascript/html/css and doing all your work in a web view component. Then you can have a small amount of objective-c and java code to support it on the respective devices.

This is not such a bad idea (and has the side benefit of being easy to put all or part of your app on the web so it can be run without installing anything), but has disadvantages too. Many things will be slow or clunky compared to a natively written app.

Personally, Android (3, Informative)

ResQuad (243184) | more than 3 years ago | (#33698782)

I'm not a hardcore programmer (PHP/Perl... lite stuff), but I thought it would be fun to try out mobile app development. I happened to have an iPhone, mac, etc... so I started there. Even with the books and intro material, I found it very difficult to get into. My C and similar is very rusty, so that was part of the problem. For the heck of it, I tried android and that was MUCH easier to get into. My Java was never great, but better than my C - which again - helped. All in all, I much more enjoyed the experience of working on the Android platform because it tended to have lower barriers to entry (less hardware, less software, etc), be easier (Java _is_ a simpler language) and be fun.

Though get a good book for android. Last I checked, the official docs online from Google were for like 1.0-1.5 and we're on 2.2. In short, horribly out of date (usable in some cases, but out of date).

Re:Personally, Android (4, Informative)

wembley fraggle (78346) | more than 3 years ago | (#33699040)

There is a great iPhone application programming course on iTunesU, which includes an introduction to ObjC and rapidly moves into powerful programming techniques for iOS. Better yet, it uses a lot of the examples from the SDK as the course material (there's no book), and the slides are provided as part of the program. It's all free to boot. Definitely worth watching for a good introduction to the platform. Plus, it's all free.

It's the Stanford University CS 193P, iPhone Application Programming, Spring 2010 course that I watched.

Illumination (0)

Anonymous Coward | more than 3 years ago | (#33698788)

Let the school use this

No (-1, Flamebait)

damn_registrars (1103043) | more than 3 years ago | (#33698810)

Neither OS will last long enough to justify learning how to program for it if you don't already know. We already have a ton of kids who are writing crappy applications for either (or both), distinguishing a good program is so difficult you're better off learning how to manage punch cards because they won't be that relevant of a learning tool that much longer.

Re:No (2, Funny)

Anonymous Coward | more than 3 years ago | (#33698848)

I disagree... I originally learned IOS back in the late 1990s when it was at version 9. I still use IOS equipment that have version 12.4 and 15.0 all over the place. learning IOS was the best thing I ever did. I have a CCNA.

Symbian ! (0)

Anonymous Coward | more than 3 years ago | (#33698824)

Drop the rest, go with the best !

Objective-C is pretty easy (1)

WebManWalking (1225366) | more than 3 years ago | (#33698834)

The main thing you need to get used to in Objective-C (for iOS) is an extra square-bracket syntax for calling an object's methods. It's not really so much like calling a method in Object Pascal / C++ OOP. It's more like sending a message in Smalltalk. It allows for very late binding and unbinding. In that sense, it has the flexibility of coding in JavaScript, but in a compiled language. Also it's VERY supportive of MVC, which you can use to increase the flexibility of your apps.

By they way, you're platform neutral, not platform agnostic. Platform agnostic would be coding HTML5 offline web apps and not caring whether you're on OS X, Windows, Unix or mobile.

Re:Objective-C is pretty easy (1)

ThermalRunaway (1766412) | more than 3 years ago | (#33698976)

It's easy if you come from a C type of background or have been introduced to those concepts. Someone coming from, say, PHP, or .NET, and have never done any "lower" level programming will find Obj-C much more difficult to grasp. Two examples:

Pointers. Some people just can't this concept. Dereferencing, etc, are most likely alien concepts. Also, header files and the general mechanics of Obj-C/C/C++ are very different from Java/.NET type languages.

I'm an embedded SW engineer, I do a lot of my work in C/C++, so Obj-C wasn't a problem for me. That said, I really don't like Obj-C at all. Its rather annoying. The syntax for function calls, and func definitions is less intuitive than C. Also things like "+" and "-" to differentiate class vs instance methods seems silly.Why not use static like everything else does? And whats the deal with the @property and @synthesize stuff? Not really a fan.

Adobe Flash CS5 (1)

sehryan (412731) | more than 3 years ago | (#33698854)

This answer will probably get modded down into oblivion, but get Flash CS5, and you can write for both with the same code. See: http://blogs.adobe.com/cantrell/archives/2010/04/one_application_five_screens.html [adobe.com]

I believe there are other code platforms that are write once run everywhere, in case you have an allergic reaction to Flash.

Only if you are an incompetent programer (0)

Anonymous Coward | more than 3 years ago | (#33698910)

Seriously, suggesting a real programmer to use a wysiwyg programing tool is insulting.

wysiwyg are for incompetent idiots.

In terms of money... (1, Interesting)

Anonymous Coward | more than 3 years ago | (#33698868)

Last time I checked (this was a good 3+ months ago), to develop applications for the iphone (this was pre-ipad) you had to own a mac in some form to use their sdk and other dev stuff. This was to my knowledge the only way possible to write iphone applications at the time. You could use the hackintosh method but this still in essence was a mac. On the other hand, Android applications can use any hardware and they give you the option of using the SDK inside Eclipse (an ide if you didnt know).

I've made a couple of Android applications but I'm not going to shell out for a mac just to write for the iphone.

If you want to sell your application... (0)

Anonymous Coward | more than 3 years ago | (#33698894)

If you want to earn money with your application then learn iOS. In Android, piracy is a serious problem: search "Android piracy" in google.

iOS first, better for your background (4, Informative)

SuperKendall (25149) | more than 3 years ago | (#33698900)

First of all, given a C base you'll probably be a little more comfortable with Objective-C, because you can fall back on C when you need to. The language itself is a superset and the superset is a really different mindset than C itself is, but it's a very nice OO language with some great features.

But also, currently iOS has a ton of awesome educational material. Apple itself provides a lot of documentation, and if you pay the $99/year fee to develop for devices (you should) then you also get all of the videos from the past developer conference, plus of course there's the free iTunesU videos from Stanford on iPhone development.

There are also a ton of third party books and at this point probably local Cocoaheads groups you could attend meeting with questions.

I think for some time to come Apple is going to be the leader in the space of mobile development, but especially around education - there are a lot of kids applications on the iPhone and Pad and a ton of parents are buying these devices in part so that kids can use them. I have been astounded at how fast this has happened, especially with the iPad.

Re:iOS first, better for your background (0)

Anonymous Coward | more than 3 years ago | (#33699100)

First of all, given a C base you'll probably be a little more comfortable with Objective-C, because you can fall back on C when you need to. The language itself is a superset and the superset is a really different mindset than C itself is, but it's a very nice OO language with some great features.

On the same premise he should be doing Android period. Android also has an ndk which allows C/C++.

Run! (0)

Anonymous Coward | more than 3 years ago | (#33698928)

Hell no! Don't waste you time with programming, run for you life and get a job with good hours and good pay!

If you actually want to make money (0, Flamebait)

Anonymous Coward | more than 3 years ago | (#33698934)

go iPhone. There is no market for payed Android apps. While it's technically possible to sell paid apps, the people that buy Android are either opensource "I don't think it right to pay for software" or are just too cheep to pay. Combine that with the fact that you will have to support 10X the number of model of device with their variations in screen size and support for touch or buttons etc and the clear winner for an independent developer is iPhone. Do you really want to ship software for devices that you haven't tested on?

"hardware tech degree" (0)

Anonymous Coward | more than 3 years ago | (#33698980)

What's that, EE? ECE?

I wouldn't invest in iOS development (2, Interesting)

Rix (54095) | more than 3 years ago | (#33698982)

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, so they'll get passed over.

Re:I wouldn't invest in iOS development (1)

CharlyFoxtrot (1607527) | more than 3 years ago | (#33699136)

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, so they'll get passed over.

Go ask Palm how licensing their mobile OS worked out for them. The fact this strategy worked for MS back in the 90's doesn't mean it'll work now.
Here's a fun quote about that kind of thinking I read once : "Those who learn history are doomed to try and repeat it."

java (0)

Anonymous Coward | more than 3 years ago | (#33699014)

surely the point of it as a WORE

however for business / school applications many of which people will expect to be web based - something run on the webserver where you can get easily available people (or even students) in to do work is a good idea - like php - along with the supporting javascript and html5

You should learn.... (0)

Anonymous Coward | more than 3 years ago | (#33699032)

Windows Phone 7 !!!! ;^)

iOS (1)

CharlyFoxtrot (1607527) | more than 3 years ago | (#33699048)

If you already know C then it makes sense to jump into iOS programming. There are also a lot of really good resources from Apple to get you started :

- The iOS Dev Center [apple.com] has very extensive documentation on everything from the OjectiveC language to Apple's GUI guidelines and everything in between.
- There's a Stanford iPhone programming course [stanford.edu] you can download for free on iTunesU along with slides, assignments, etc. which is excellent.
- Very active userbase around the web, if you have a problem just Google it and somebody will have already discussed it somewhere

The downside is the cost which runs at $100 for a developer license (which you can get around if you don't mind jailbreaking) and you'll need a mac to do development, unless of course you use the open source toolchain [google.com] but I wouldn't recommend it for beginners. If you work for an educational institution you might get a free dev license, I know Apple sometimes do this for students but I don't know the

Maybe you should rethink your premise (1)

spinninggears (551247) | more than 3 years ago | (#33699074)

I would recommend not thinking you can "revive" you skills and produce useful apps for a school district (or anyone for that matter). You will probably just produce a lot of non-maintainable code naively written. Based upon the background you described, your software experience is basically that of a CS undergrad (full respect for your 18 years as a hardware designer). Minimum knowledge for useful apps today: client/server, databases, web, AJAX, networking, threading or multi-tasking, efficient GUI, OS, etc, all which take years of knowledge building to master, before even thinking about SDK's and development environments or methodologies. Your idea is like a software developer with 18 years experience saying "I would like to start designing with integrated circuits and build useful devices (I took an electronics course once, long ago) and want to know which electronic CAD packages are best. Sorry, I just don't see this is a productive plan.

Learn both (0)

Anonymous Coward | more than 3 years ago | (#33699088)

iOS has a an extremely well thought out GUI, and a very decent OS, but you will have to deal with Objective C which sucks on many levels. The lecture series from Stanford on iphone programming (available through iTunes) is worth giving it a try if only to experience those lectures.

That said, you should also learn Android. Adroid is a dream to program. Man, it's Java, and it's quick, it's natural and Imho it's better thought out from top to bottom than the iOS. Presently is a little bit less polished on the GUI side, but I can't help but feel that that will change because the foundations of the thing is just rock solid. Very easy to work with.

So in the end, what will it be for you? Well, Android will for sure be the most widely available platform. It may already be. That wide availability will include devices at a lot of price points, from very cheap to very high end, and will also include physical form factors that will suit many different kinds of people. This is good. Apple will probably be very polished also in the future, but will be more medium to high end, so there will be fewer people that buy Apples stuff. It's always been like that and I don't see it changing much. Apple has very nice growth in profits, but their market share isn't growing very fast. This is nice for Apple, since I don't see anyone removing them from their niche anytime soon. Apple will (or so I've heard) stay at about fifteen per market share, meanwhile Android with its more rapid growth will be more prevalant than that, in particular in the more cost-sensitive parts of the market.

So there you have it: Learn both, enjoy the experience and hopefully make some great apps. Happy hacking :-)

remain agnostic (2, Insightful)

metalmaster (1005171) | more than 3 years ago | (#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.

Yes (0)

Anonymous Coward | more than 3 years ago | (#33699198)

and WebOS too.

webOS (0)

Anonymous Coward | more than 3 years ago | (#33699236)

I know the original poster didn't ask about it, but what about webOS? The barrier to entry is very low, both technically and monetarily ($0 to become a developer and sell apps right now and have a look at Ares for technical entry). You'll learn html, javascript, and css if you stick to just the SDK, but can also do C/C++ with the PDK if you feel adventurous. Those web languages are going to become much more prevelant with HTML5 and companies will realize they can pay someone once to write a web app rather than paying to write an app for each platform. Half the apps I see on android and ios would work just as well as web apps as they do 'native' apps. And now with HP at the helm, I wouldn't be surprised to start seeing a lot of webOS devices (tablets included) making their way into school systems and businesses in the next year.

Target HTML5 (1)

El Royo (907295) | more than 3 years ago | (#33699256)

I suggest you target HTML5 instead. With it and some JavaScript you can create apps for both of those, as well as webOS and desktops. Learn a skillset that's not tied to a particular vendor. I'm personally not a fan of Java and Objective C (which isn't -required- for iOS but is the de facto standard) is way too niche. This isn't to say that you shouldn't try those languages out. Learning new languages and tools is great for a programmer.

If you're only going to learn one... (2, Informative)

Pedrito (94783) | more than 3 years ago | (#33699258)

If you're only going to learn one, go Android. Java is reusable in other environments and frankly, it's just easier.

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.

Finally, Java is platform agnostic. Objective C has few platforms that it's good for and you have to buy Apple hardware to build iPhone apps which to me is plain stupid and I think in the long run, it's going to be one of the things to hurt the iPhone.

Just my own opinions based on my experience with both. I sat down and immediately started writing Android apps using the SDK and simulator with no previous Java experience. Even after several days of playing with existing iPhone apps, I had difficulty even following what was happening in the code, understanding the stuff I was seeing in the watch windows, and figuring out exactly what the various syntactical crap meant.
Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Sign up for Slashdot Newsletters
Create a Slashdot Account