Live data from Hacker News

Android vs iOS: A Developer's Perspective

whereoscope.wordpress.com

61–70 of 85 posts

Re: Android vs iOS: A Developer's Perspective

#61
post #46
post #37

Earlier quoted context omitted.

Well, there's Cmd + ~ hotkey for switching windows of active apps in 10.6, and it can be added using some small app in 10.5

It existed off the bat in 10.5 :).

Cmd+` has existed for almost as long as the MacOS itself - and I'm not just talking about MacOS X here. Interestingly, BeOS also used the same shortcut, maybe because a number of Be engineers initially worked at Apple and the original BeOS was Mac-only. You can also use Alt+` in GNOME with the same effect, though you might have to enable a setting in GConf first.

Re: Android vs iOS: A Developer's Perspective

#62
The feeling you get with XCode is that it slows you down. I'm a java developer by day, iPhone dev by night. Eclipse/Java are _light years_ ahead of XCode/Objective-C. My gripes with XCode include everything from the build process, the awkward debugger, Interface Builder, and all the way down to little minutiae like key bindings that just don't make sense (try selecting a block to indent it, every other IDE in the world uses tab, XCode uses Cmd-] wtf?).

Not to mention Objective-C, which, as you allude to with garbage collection, is a far more inferior language than java. There's things like passing undefined messages to objects which only generate warning at compile time, and sometimes those warnings don't appear in XCode -- so when your code doesn't work, you're left scratching your head. And why isn't the + operator overloaded for string concatenation?

Finally, Objective-C is a very awkward language to use at the keyboard. Object notation [] in particular slows me down a lot - somehow (at least for me) it's easier to type () than it is to type [].

Thanks for the article, now off to download the android SDK!

P.S. I'm not saying Java is a very elegant language - far from it - but, in my opinion, it's more elegant than Obj-C.

Re: Android vs iOS: A Developer's Perspective

#63
post #25

Earlier quoted context omitted.

Garbage collection on OS X appeared in Leopard with Objective-C 2.0—later than iPhone, but before iPhone SDK. Older models are still around and even iPad has less memory than iPhone 4 so it is not unreasonable to treat it as resource too precious to be left ar the mercy of GC. On the other hand, manual management is not that complicated and does not add much overhead in programming except the initial phase of getting…

Older iPhone models cannot run the current OS anyway. And manual memory management is not a showstopper, but to say it's "not that complicated and does not add much overhead" is just wrong. It's conceptually simple, but the devil is in the details. I would bet that if you took a poll of all Cocoa programmers who have been working in the field since — well, pick any date you think qualifies as "out of the initial phas…

  Older iPhone models cannot run the current OS anyway.
This is true only for the oldest (1st gen). iPhone 3G and 3GS run 4.2 just fine. Sure, some of the most prominent features of iOS 4 are missing on 3G, but it still does not qualify as not running.

Re: Android vs iOS: A Developer's Perspective

#64

The feeling you get with XCode is that it slows you down. I'm a java developer by day, iPhone dev by night. Eclipse/Java are _light years_ ahead of XCode/Objective-C. My gripes with XCode include everything from the build process, the awkward debugger, Interface Builder, and all the way down to little minutiae like key bindings that just don't make sense (try selecting a block to indent it, every other IDE in the wor…

  every other IDE in the world uses tab, XCode uses Cmd-]
  wtf?
Textmate uses ⌘[, skEdit uses ⌘[, CSSEdit uses ⌘[, Coda uses ⌘[, BBEdit uses ⌘[.

Objective-C for me personally is probably the second language by elegance after Ruby.

Re: Android vs iOS: A Developer's Perspective

#65
post #18

I totally agree with some of the points: iOS should really receive the same garbage collector that OS X has had for years, and the provisioning certificate nonsense is, well, nonsense. iOS really does need a side loading mechanism. That you need a Mac to develop on is, I suppose, a negative - you can get going with Android on almost anything. However, I can't say I've ever had any problem with Apple's documentation:…

Agreed. I had the exact opposite reaction when I started doing some Android dev after coming from iPhone. I find Xcode to be at least 80,000 times better than Eclipse (memory usage, UI, interface builder, speed, general bugginess). I also REALLY like Apple's docs and the ease of integrating C code (no NDK!) when you need to do something like real-time audio. My only really big complaint is the certificate signing pro…

Just a quick reminder: You don't have to use Eclipse to develop for Android. You can use any other Java IDE (I use the free version of IntelliJ IDEA) or no IDE at all. You can even use a combination of XCode and Maven to develop for Android.

Re: Android vs iOS: A Developer's Perspective

#66

The feeling you get with XCode is that it slows you down. I'm a java developer by day, iPhone dev by night. Eclipse/Java are _light years_ ahead of XCode/Objective-C. My gripes with XCode include everything from the build process, the awkward debugger, Interface Builder, and all the way down to little minutiae like key bindings that just don't make sense (try selecting a block to indent it, every other IDE in the wor…

+1 on the IDE stuff of your comment.

But Objective-C is a really nice OO language. It seems you do not get its dynamic nature. Yes, its different, but by no means inferior. And yes, tooling is much better for static languages like Java.

Re: Android vs iOS: A Developer's Perspective

#67
post #18

Earlier quoted context omitted.

Agreed. I had the exact opposite reaction when I started doing some Android dev after coming from iPhone. I find Xcode to be at least 80,000 times better than Eclipse (memory usage, UI, interface builder, speed, general bugginess). I also REALLY like Apple's docs and the ease of integrating C code (no NDK!) when you need to do something like real-time audio. My only really big complaint is the certificate signing pro…

I have a question. I asked this to a few mac users and haven't received a good answer. How the hell do you get xcode (or other programs, but xcode is particularly bad) not to end up being a big piles of small windows you can't access effectively because they don't have a dock icon? The only way I found, was to long-click on the xcode dock icon which after a while splatters small versions of the windows everywhere, th…

There is also an expose option to show all windows for an application. Set it to a keyboard hot key.

Re: Android vs iOS: A Developer's Perspective

#68

I totally agree with some of the points: iOS should really receive the same garbage collector that OS X has had for years, and the provisioning certificate nonsense is, well, nonsense. iOS really does need a side loading mechanism. That you need a Mac to develop on is, I suppose, a negative - you can get going with Android on almost anything. However, I can't say I've ever had any problem with Apple's documentation:…

There are some things that are in the private apis that make dealing with certain problems a 100 times easier. Sometimes you just want the gui to force a rotation to a certain orientation at some point of the app. Other public api's such as rotate top bar are more crufty, and don't work 100% of the time, or require fragile workaround where you do all the rotation manually yourself because the public apis are fragile, while the one-line simple private api would of done the trick.

Re: Android vs iOS: A Developer's Perspective

#69

Earlier quoted context omitted.

Garbage collection on OS X appeared in Leopard with Objective-C 2.0—later than iPhone, but before iPhone SDK. Older models are still around and even iPad has less memory than iPhone 4 so it is not unreasonable to treat it as resource too precious to be left ar the mercy of GC. On the other hand, manual management is not that complicated and does not add much overhead in programming except the initial phase of getting…

I treat memory as a resource too precious to be left to the mercy of programmers. In any application, a good garbage collector can be more efficient than malloc/free or new/delete. http://www.jwz.org/doc/gc.html

How about compared to retain/release/autorelease?

Re: Android vs iOS: A Developer's Perspective

#70
This is pretty much the opposite of my opinions. Android documentation is awful. Mostly it isn't there at all. Many times I found that it was in fact wrong. iOS documentation is really good. Garbage collection on mobile devices means you get UI stutter because GC kicks in when you don't want it which means your app feels less slick. Xcode 4 is pretty good, but yeah Xcode 3… However Eclipse is slow, clunky and buggy.

Also I have found myself doing weeks worth of hacks on Android AND iOS. Both are large frameworks, and ultimately they don't have abstractions for everything you may want to do.

The article reads like the guy hasn't really got his feet wet with Android development yet. He's yet to be bitten by not handling the activity lifecycle correctly for instance. The real edge cases of that didn't start materialising until we had 20,000 beta testers.

I was interviewed on this topic in fact: http://www.androidpolice.com/2010/11/14/developer-interview-...

Post reply on HN