Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

ArtOfWarfare

macrumors G3
Original poster
Nov 26, 2007
9,723
6,318
Hi, I've developed for OSX and iOS for years, but am looking into getting a job at a company as a mobile app developer responsible for making both an iOS and Android app, with the Android app being the priority.

Does anyone have suggestions on moving from iOS to Android? I think I'm going to need to learn Java... how long will that take (right now I only know C, C++, and Obj-C)? What IDE should I use? I've heard the name Eclipse tossed around... Is that necessary or will Xcode work? If I must use it (or something else,) how long will that take to learn? Is there anything like Interface Builder?

Oh, and what fees will I (or the company) need to pay for me to develop for Android?
 
Hey Art,

Seriously think hard before moving onto Android, making an basic Android application is a living hell if you came from iOS.
Thing is:
-There have around 400 different devices, and normally you should be testing on each different one (or send it to a chinese company, there is one that does the testing for you on all 400).
-You have alot of screen sizes, so you need to code that on each kind of ratio your interface is a tad different.
-If you want to develop for Android 4.0/4.1 so ICS and Jelly Bean, like 9% of the entire Android community is on 4.0+, so 75% of your users can't even use the latest API.
- Android itself is okay, but the changed Android skins/source for each phone provider is different, this means, if you sent a float to device 1, it will get back 8.07, but send it to a different device, and it might get 8.10, just giving some random things that happened to us before.

You need to learn Java yeah, Eclipse/INtelliJ are the best options for you, since they are free. You need to download ANdroid SDK, import it in Eclipse, update, hope it works, you need to hand make your simulators, they take around 10 minutes to boot up, but debugging live on the phone is alot faster :)
Developing for Android is free, putting it on the appstore is 25$ once for lifetime, or 18 euro ;)

That's about what I had to say, I can go on and on if you want ;)
 
Hey Art,

Seriously think hard before moving onto Android, making an basic Android application is a living hell if you came from iOS.
Thing is:
-There have around 400 different devices, and normally you should be testing on each different one (or send it to a chinese company, there is one that does the testing for you on all 400).
-You have alot of screen sizes, so you need to code that on each kind of ratio your interface is a tad different.
-If you want to develop for Android 4.0/4.1 so ICS and Jelly Bean, like 9% of the entire Android community is on 4.0+, so 75% of your users can't even use the latest API.

- Android itself is okay, but the changed Android skins/source for each phone provider is different, this means, if you sent a float to device 1, it will get back 8.07, but send it to a different device, and it might get 8.10, just giving some random things that happened to us before.

You need to learn Java yeah, Eclipse/INtelliJ are the best options for you, since they are free. You need to download ANdroid SDK, import it in Eclipse, update, hope it works, you need to hand make your simulators, they take around 10 minutes to boot up, but debugging live on the phone is alot faster :)
Developing for Android is free, putting it on the appstore is 25$ once for lifetime, or 18 euro ;)

That's about what I had to say, I can go on and on if you want ;)


Fragmentation in the Android field is bad. This is why, I will never, ever develop for Android.
 
There are actually three apps I'd be making... in order of priority from top to bottom:

1 - App for a custom device running Android, made by the company I'll be working for. So fragmentation won't be an issue with it.
2 - iOS app capable of talking with the first app somehow... It'll need to be able to send commands to it and receive data from it.
3 - Same app as #2, but for Android. This is the only one where fragmentation will be an actual issue, I think... But I kind of doubt it. Making resolution independent app interfaces doesn't strike me as hard at all (thus why I say supporting a new 9:5 iPhone would be trivial.) As far as hardware capabilities... It just needs a touch screen... Multitouch would be nice but not necessary... And whatever communication method it uses to talk to app #1 needs to be possible on as many devices as possible.
 
Wirelessly posted

jnoxx said:
Hey Art,

Seriously think hard before moving onto Android, making an basic Android application is a living hell if you came from iOS.
Thing is:
-There have around 400 different devices, and normally you should be testing on each different one (or send it to a chinese company, there is one that does the testing for you on all 400).
-You have alot of screen sizes, so you need to code that on each kind of ratio your interface is a tad different.
-If you want to develop for Android 4.0/4.1 so ICS and Jelly Bean, like 9% of the entire Android community is on 4.0+, so 75% of your users can't even use the latest API.
- Android itself is okay, but the changed Android skins/source for each phone provider is different, this means, if you sent a float to device 1, it will get back 8.07, but send it to a different device, and it might get 8.10, just giving some random things that happened to us before.

You need to learn Java yeah, Eclipse/INtelliJ are the best options for you, since they are free. You need to download ANdroid SDK, import it in Eclipse, update, hope it works, you need to hand make your simulators, they take around 10 minutes to boot up, but debugging live on the phone is alot faster :)
Developing for Android is free, putting it on the appstore is 25$ once for lifetime, or 18 euro ;)

That's about what I had to say, I can go on and on if you want ;)

There are many more than simlpy 400. Android fragmentation: 15 ways to turn on the LED and 5000+ device variations! read more here: http://www.smallte.ch/blog-read_en_81001.html
 
That kinda describes like I said -> floats/ints mean different things on different android devices (with same code). It makes it a living ****ing hell. Sorry for swearing. but that's it, that's why i'm going for Microsoft Surface instead of the Android
 
they take around 10 minutes to boot up, but debugging live on the phone is alot faster

Is it that bad? I don't have an Android phone (or an iOS device). Also, can we test code in Android x86 (in a virtual machine)?

Objective C code can be read like a poem :) Even a non programmer can understand what is happening in the code. How is Java?
 
That kinda describes like I said -> floats/ints mean different things on different android devices (with same code). It makes it a living ****ing hell. Sorry for swearing. but that's it, that's why i'm going for Microsoft Surface instead of the Android

I've been thinking the same thing, well if I pick up another mobile platform. Metro looks interesting and dipping my toes into the Microsoft ecosystem maybe a good safety net, even if they are on a decline.
 
I've been thinking the same thing, well if I pick up another mobile platform. Metro looks interesting and dipping my toes into the Microsoft ecosystem maybe a good safety net, even if they are on a decline.

I think Microsoft is going to pick up a lot of developers. They have a mobile strategy and solid development tools and they're not trying to promote "Free" apps.

I'm not going to bust my ass to develop apps that no one wants to pay for.
 
So what kinds of issues will an Objective C programmer encounter when learning Java for Android? Is garbage collection any easier than ARC? Or will it create its own set of problems? Any Java syntax that will seems as weird to an Obj C programmer as all those Obj C brackets and @ signs look to a Java programmer?

Are there any commonly used kinds of APIs in UIKit that are missing with no roughly similar counterpart in Android?

How bad is Eclipse compared to Xcode? (which seems to have its own problems...)

Rumor is that an Android devs are now all the way up to making 20% of what iOS devs make from similar apps. Small, but not as close to zero any more.
 
I think Microsoft is going to pick up a lot of developers. They have a mobile strategy and solid development tools and they're not trying to promote "Free" apps.

I'm not going to bust my ass to develop apps that no one wants to pay for.



I plan on checking out win 8 phones for sure. I do think I will skip any android dev tho.
 
Use Eclipse for java and Xcode for C and C++

I really liked this online ebook for learning C:
http://c.learncodethehardway.org/book/

Do you know of any similar materials for learning Java? (That is, free, concise, and comprehensive?)

Edit: I just thought I'd let you all know that I was able to, after fudging around for an hour or two with this tutorial, able to get a hello world app to launch on a virtual Galaxy Tab on my iMac (running the most recent ML beta.)

http://www.makeuseof.com/tag/write-google-android-application/
 
Last edited:
Excellent, thank you for telling me this. Will the Android simulators work on OSX too?

They surely do work, ANdroid has nothing against OSX, most of the developers who made the Android platform are big fans of Macbooks with OSX.
They have full support for OSX, so they also made all things available for UNIX, like ADB debugging and so on. It works great on OSX.
For windows phone, I have a VMWare Fusion + Bootcamp for running Windows on the mac, so no problem making apps for that too :)
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.