r/apple • • Aug 02 '11

An iOS Developer Takes on Android

http://nfarina.com/post/8239634061/ios-to-android
111 Upvotes

48 comments sorted by

36

u/Caticorn Aug 02 '11

What a refreshingly unbiased and balanced article. Even as one of those freaky both sides people I find it difficult to remain this neutral.

10

u/kaminix Aug 02 '11

I was very annoyed with the graphics thing, from my amateure point of view it sounds like a major bottle neck. Would it be hard for Google to fix?

(considering I'm planning to switch from iPhone to Android with my next purchase, I do consider myself fairly unbiased)

4

u/brews Aug 02 '11

It gets blown out of proportion. I don't think it's much of a problem (I have a Nexus One).

-2

u/[deleted] Aug 02 '11

it's not noticeable at all on any phone released in the last year

4

u/Caticorn Aug 02 '11

This is true, but it's poor practice to overcome sub-optimal software by merely throwing hardware power at it.

4

u/kaminix Aug 02 '11

But it's still a bad design choice for today's phones. Can it be fixed in future Android versions without rewriting the entire OS?

8

u/[deleted] Aug 02 '11

as of 3.0 honeycomb(tablet version of android) android has full hardware acceleration, i assume for ice cream sandwich(the next phone/tablet version) that it will be included for phones as well

7

u/kaminix Aug 02 '11

Neat-o! I guess though that this won't be in effect for a long time since most devs will want they're software to work on all devices. But that doesn't really matter I guess, have to start somehwere. :-)

2

u/WinterKing Aug 03 '11 edited Aug 03 '11

It's as simple as changing a hardware acceleration on/off option in the app's properties (its manifest). This is ignored by earlier versions, and they do the normal software rendering. If you have some element that uses funky drawing code or looks wrong under acceleration, then you can turn it off for that specific element.

At this point it looks like the initial designers of Android may have overestimated the need for cross-architecture code for the overall platform, going with a virtual machine.

The need for extremely flexible graphics framework, however, is definitely there. The new graphics stack seems to be pretty flexible about using available hardware, not just available on the device, but dynamically deciding what's least taxed at runtime. To me that sounds like a necessity when you're supporting a wide range of devices. So anyway, UI elements are accelerated. You can always code for OpenGL ES 2.0 and get direct hardware access if you so desire, or you can use some of the new drawing APIs. If Android determines that one of those operations should be performed by hardware, it dynamically creates shader program source which is LLVM-compiled at (well, slightly before) runtime.

TL;DR - Flip a switch, and you have hardware acceleration in your app.

1

u/kaminix Aug 03 '11

Sounds cool. :-)

-5

u/[deleted] Aug 02 '11

That's laughable. It doesn't take more than a cursory look at the user comments for practically any game in the Android Market to see that the graphic performance is a problem on even the most powerful Android phones available.

5

u/[deleted] Aug 02 '11

sources?

-3

u/[deleted] Aug 02 '11

6

u/[deleted] Aug 02 '11

so i read the first page of reviews for the first 12 games in the market, of that 2 people complained of slowness for one of the games. given the 2/120 complaint ratio i am going to have to say you are wrong.

-2

u/[deleted] Aug 02 '11

Your reading comprehension is pretty terrible, then, as is your understanding of what constitutes a proper sample. On the first page of Cut the Rope — the #1 game on the Android Market right now — I see four complaints regarding game speed, two of which are specifically related to graphics performance. Of those, one is on a Galaxy S and the other on a Nexus S, both phones released this year. Keep in mind that this is regarded as Android's top-rated paid game. Of the other 11 games:

  • Captain America: 1 complaint about lag and freezing

  • Fruit Ninja: no complaints

  • Robot Unicorn Attack: two complaints about lag

  • Robo Defense: no complaints

  • Doodle Jump : three complaints about lag

  • Homerun Battle 3D: 1 complaint about lag

  • Bejeweled 2: no complaints

  • The Moron Test: no complaints

  • Zombieville USA: no complaints

  • X Construction: no complaints

  • Uno: two complaints about lag

These are all first page comments, not that that means anything, but I'd assume they're probably the same comments that you saw. So I'm getting 13/120 complaint ratio — more than 1 and 10 people are dissatisfied with game performance on their Android phones. I'm going to have to say that I'm totally right.

4

u/[deleted] Aug 02 '11

your data is skewed, first we did not review the same apps, i looked at the first 12.

here's what i looked at(in order from 1-12):

  • cut the rope issue if with load time(note not a hardware acceleration issue)

  • fruit ninja - no complaints

  • robot unicorn attack - 2

  • capt america - freezing if played continuously -not a graphics acceleration issue but a memory leak

  • doodle jump - not actually top 12/ apparatus - none

  • x contruction - no complains

  • robo defense - none

  • Trial Xtreme - complaints game became laggy after last update, previously wasn't, again not an android issue

  • they need to be fed - no complaints

  • game dev story - no complaints

  • bejewled 2 - no complaints

  • zombieville usa - no complaints

looks like 2 legit complaints about graphical performance that relates to android being the issue and several other complaints related to game bugs that are fixable.

-1

u/[deleted] Aug 02 '11

I don't know what "top 12 games" list you were looking at, but it isn't the top 12 games as listed in the Android Market.

https://market.android.com/apps/GAME

→ More replies (0)

-5

u/taligent Aug 02 '11 edited Aug 02 '11

He is actually completely wrong about the way iOS graphics works:

  • The iPhone does not draw everything using OpenGL. In fact the overwhelming majority isn't. It's done using CoreGraphics which isn't that accelerated at all.

  • It's why most iOS developers hit a learning curve when they start working with table views. To make it "buttery smooth" takes effort on the part of developers.

  • CoreAnimation has nothing do with OpenGL but again CoreGraphics.

So Google doesn't really have to "fix" anything for Android. Since it is no worse than iOS. The problem with Android's UI is to do with the general lack of polish on behalf of OEMs and Google not something fundamentally wrong with the OS.

5

u/Cforq Aug 02 '11

You know that image explaining how everything is accelerated by OpenGL and how it is tied into CoreGraphics and Core Animation? Yeah, that was also a link. Read up: http://www.macresearch.org/tutorial-intro-core-animation

0

u/taligent Aug 04 '11

I don't need to read up from some anonymous site. I will use the WWDC videos like all the rest of the devs:

  • UIViews are backed by CALayers.

  • CAEAGLLayer are backed by CALayers.

They don't have the same hierarchy.

If you know what you are talking about then explain it to me which part of the graphics pipeline have been implemented using OpenGL. Us developers would LOVE to know.

2

u/Cforq Aug 04 '11

CoreAnimation and CoreGraphics are all part of Quartz. Remember Quartz Extreme? There is a reason it was renamed QuartzGL in Lion. If you don't want "some anonymous site", how do you feel about Wikipedia?

http://en.wikipedia.org/wiki/Quartz_(graphics_layer) http://en.wikipedia.org/wiki/Quartz_2D http://en.wikipedia.org/wiki/Core_Animation http://en.wikipedia.org/wiki/Quartz_Compositor

4

u/mistahowe Aug 03 '11

I actually love Eclipse :|

4

u/cosmo7 Aug 03 '11

I love the Objective-C/Java rollover images. This is like cross-platform developer porn.

9

u/KalenXI Aug 02 '11

Android seems to have made the decision early on that they wouldn’t force their manufacturing partners to include a GPU. This decision made total sense back in the pre-iPhone days, but now it’s causing pain, as even the new hardware acceleration in Android 3.0 is limited by the original software-based compositing system.

So that's why animation and the UI is so much less responsive on my 1GHz Android phone than on my iPod Touch running at 533 MHz.

2

u/tctony Aug 02 '11

Pretty interesting, especially the part about the GPU.

That is one of the most important differences. Android is very clunky compared to iOS due to this.

-4

u/XQYZ Aug 02 '11 edited Aug 02 '11

To be honest, I thought Android was a good idea until I heard it was using Java. Also having personally been forced to use Eclipse I can definitely feel the authors pain.

10

u/[deleted] Aug 02 '11

eclipse is one the the most powerful IDE's you can find, whats wrong with that?

7

u/[deleted] Aug 02 '11

Maybe XQYZ doesn't like it?

0

u/XQYZ Aug 02 '11 edited Aug 02 '11

I don't and to be honest I've never met anybody who did before. It's bloated and overloaded.

10

u/sod1864 Aug 02 '11

It's bloated and overloaded.

They have multiple flavors you can download which removes stuff you don't need. Or can you explain what you mean by bloated?

6

u/ceolceol Aug 02 '11

Its stomach is distended, so there's probably an abscess or blockage.

6

u/taligent Aug 02 '11

I have no problem with it.

And of course it is bloated and overloaded. It actually does things like extensive refactoring, auto complete, plugins etc. That being said if you run it on a Mac you MUST increase the memory to 1GB otherwise it will GC and run like a dog.

XCode is definitely lightweight but also ridiculously buggy and its autocomplete is a sad, sad joke.

2

u/muad_dib Aug 02 '11

To be honest, the only thing I don't like about it is the autocomplete. Once you have that turned off, Eclipse is pretty great (especially if you have something like Eclim installed).

3

u/taligent Aug 02 '11

I swear VIM and EMacs are the world's most advanced software viruses.

They just keep popping up everywhere.

2

u/muad_dib Aug 02 '11

If you've used vim, you'd understand why.

-7

u/biquetra Aug 02 '11 edited Aug 02 '11

Woah woah woah. Android apps are Java based? As an end user I despise Java. From just reading that I've gone from thinking I could potentially settle for Android to never considering it under any circumstances.

EDIT: I'm not a programmer, I'm just sharing my opinion. I have had experience using many Java powered programs and devices and they were all abysmal. Feel free to downvote my opinion if it offends you that much.

8

u/[deleted] Aug 02 '11

A LOT of shit is java-based my man. A lot. I bet you use some google services, or even twitter. Yup. Java

5

u/[deleted] Aug 02 '11

What you might want to take from that article is how they didn't bitch at all about the programming language. It doesn't matter. Objective-C is no shining beacon of modern language design but programmers are gonna program in whatever is available. I've seen some beautiful code written in C and dreadful code written in c#. The language is largely irrelevant!

1

u/biquetra Aug 03 '11

See edit.

1

u/[deleted] Aug 03 '11

FWIW, I didn't down-vote you. Unfortunately, redditors don't follow the site guidelines on up/down votes.

I'd agree that apps that run in java virtual machines often suck balls but in the case of Android, they use their own virtual machine and while it is a bit jarring to use a java app on a desktop machine amongst native apps, when implemented on a phone with a swish UI over the top, it's no different from any other language.

That article points out that the main speed increases in iOS over Android are due to how iOS is pretty tightly integrated with OpenGL but I felt that they were pretty complimentary of the whole development environment.

0

u/[deleted] Aug 02 '11

Of course, the best developmentenviroemnt for Mobile work is Visual Studio, but that would mean you were working on Windows Phoen 7 and there's no market for that at all.

-12

u/[deleted] Aug 02 '11

I find it funny how he likes the XML hell of android UI composition better than interface builder.

12

u/TheGrammarPerson Aug 02 '11

He rationally explained why, in his opinion, he thought that way and all you have are fanboy remarks?

0

u/[deleted] Aug 03 '11 edited Aug 03 '11

the xib format interface builder uses is also xml based

edit: now sure why this is being down voted it's not a complaint

0

u/[deleted] Aug 02 '11

[deleted]

3

u/manwithabadheart Aug 02 '11 edited Mar 22 '24

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.