Hacker News new | past | comments | ask | show | jobs | submit login
Standing Up For Android (shiftyjelly.wordpress.com)
119 points by jklp on Dec 8, 2011 | hide | past | favorite | 68 comments



I am 100% for holding a mirror up to the weird industry of Apple bloggers constantly patting each other on the back for being brave enough to support a giant company while throwing schoolyard insults at any one who dares compete with Apple (though I honestly just file them in the same department as sports writers now: rarely insightful, yet a highly amusing sideshow), but let's have some honesty here. The only reason Shift Jelly Android profits are beating iOS is that the fact that one of their main apps is a podcasting app. On iOS, while there is much room for improvement over Apple's offering, they are still competing with the company that essentially runs podcasting distribution and has their podcasting solution preinstalled. On Android, there is no preinstalled podcasting app/distribution market, so the demand is much higher. Not to mention that Google's own podcasting app is half baked and seemingly abandoned.


Have you taken a look at iOS's podcasting functionality lately? It's the definition of "half baked and seemingly abandoned". Podcasting features were stripped from the iPad music app in iOS5 and podcasts aren't even recognized by Siri (and haven't been recognized by Voice Control since iOS3). It's truly atrocious.

Podcasts are a niche activity anyway and I believe that majority of users on both platforms are highly knowledgeable and quite willing to search for alternate clients. Podcasting clients have also been featured by both Google and Apple in their respective app stores. I personally suspect that the reason for PocketCasts recent revenue surge on Android is because it's currently one of the highlighted apps in Google's Android Market.


I can't comment on the market for podcast apps in the Android Market since I don't own an Android phone but I do know that there are a number of podcast apps available for the iPhone. I've personally purchased two within the past couple of months, SimpleCasts and Instacast. I'm not really in the market to buy a third one when I've got two already.

I don't know when ShiftyJelly released their podcast app initially but this might be another reason that their podcast app doesn't sell as well on iOS.


This may be true, but most Android devices ship with some kind of weather widget built in (often on the home screen) in a much more visible way than the iOS weather app. You'd think that would mean there would be more demand for the iOS app.

The 51/49% split there is interesting.


The visibility on iOS might depend on how often normal users access the status tray. I have the weather widget in it, so even when not interested I get to see the forcasts five or six times a day at least. I wouldn't imagine buying a app for basic weather checking.


On Android it is usually even more in-your-face - here's a screenshot from the default setup for HTC Sense: http://smartphoneblogging.com/wp-content/gallery/htcsense/ht... (that's just an example - Samsung, Motorola, Sony, LG are all similar)

Every time you unlock your phone you see the weather.


I also notice that Pocket Cast is "only" $1.99 on the iOS App store compared to $2.99 on the Android market. Plus on iOS at least, they have some good competition from Podcaster and iCatcher etc. On the Android side, there seems to be less polished podcasting apps. The people in my office that use Android (i only use a dev android phone) all use Pocket Casts.


The man doesn't want to develop for Android. leave him alone.


As odd as it may seem, I cringe every time I think about developing on Android. It's not the development that gets me. Honestly, I can't stand the emulator. It takes so long to boot up, and is such a resource hog when running. The iPhone emulator is also a resource hog, but I can close it without anticipating a 2 minute bootup when I build my application.


I hate the Android emulator so I test on a device.

Device testing on Android is way, way easier than on iOS.


> Device testing on Android is way, way easier than on iOS.

Once you've got over the pain of setting up a provisioning profile and developer certificate, what in particular is easier on Android?

Or is that your only concern? Debugging on iOS is a one click thing once that's set up.


The provisioning profiles are a huge pain, I regularly switch between computers / wipe my computers and every time getting started with iOS is enough hassle for me to put it off a few weeks

Part that its a split, android has a shell which can massively aid debugging, Xcodes integration with gdb seems better / easier than the android debugger, for me that still swings it 70/30 towards android


Switching between computers is easier than it once was, in Xcode just export your developer profile from the organiser.


Every Android developer I know (myself included) has a variety of Android devices that they actually test on. It's a lot faster, and much more realistic.


  1) enable USB debugging on your Android device
  2) connect it to your computer with the USB cable
  3) deploy your app from Eclipse
Took me one minute and I could test the app instantly on the device.


You only need experienced it once for a day, if you want to. Do you restart your emulator every time you compile/build your app? You don't have to. Once the emulator run, you can build and run your application into emulator within no time.


The problem with that is it is still a pretty big resource hog. It's fine when I'm on my iMac, but on my MBA/2GB/1.4Ghz it just brings my system to a crawl.


Forget about the emulator, I wouldnt want to run Eclipse on anything with 2GB of RAM


It's a shame the Android emulator doesn't use x86 and wrap the host OpenGL APIs. Currently it emulates ARM (with qemu IIRC?) and then has the emulated ARM processor emulate OpenGL with "PixelFlinger".

I'm another Android developer who only ever tests on a device. I wonder if running Android x86 in something like VMWare might be better?


I'd worry about relying on Android-x86 at the moment as it's not an officially backed project from any OEM. However, Intel and Google have promised first-class support for x86 soon; so virtualized Android will likely be more trustable at that point.

FWIW, the Google TV (Android 3.1) SDK can run in KVM on Linux (current Google TV hardware is Atom-based); some of the work is already there.


Yes, because the Android emulator is actually an emulator. The iOS "emulator" is a simulator. It doesn't emulate the ARM instructions or run an actual OS instance. The Android emulator does.

Of course, the best option is to connect your Android device and test/debug on the device itself.


1) Get an Android phone and enable USB debugging on it.

2) Plug it in.

3) Use adb as normal.

I'm sorry, but if you hate the Android emulator (I find it slow but tolerable in a pinch), then it's easy to use a real device to do development on.


I'm still curious about the details of his conversations with his users about why they choose Android. Are any of them choosing an Android phone because of the Android OS or app ecosystem? Aside from some hackers that might like the hackability and extensibility of the Android OS, or people that reject Apple because of their business practices or philosophies, I strongly suspect most users that buy Android phones "because they prefer it" are really preferring the hardware of their specific phone.

I don't think anyone denies that there are Android phones with amazing hardware specs (great screens, slim designs, fast CPUs, etc.). I just have trouble believing that people (other than the exceptions I mentioned earlier, which I highly doubt are a significant percentage of Android users) who have used both Android and iOS truly prefer the Android OS.


I prefer Android. I may be biased, but I don't think by that much. I own an Android phone and I do some Android development. I also own a Mac and an iPod touch, and would get into development on iOS given the time (seriously, "install XCode and get to Hello, World" is actually on my todo for this weekend). I really like all of these devices (my MBP the most though). But I prefer the Android OS for two primary reasons: the back button and the menu button.

When I'm lost in some interface I can usually find my way to what I wanted or find my way out using those buttons. With my iPod Touch, I end up mashing the home button and starting over, which sometimes just doesn't even do what I wanted.

You might say that I am just used to Android, and that's probably true, but I have had the two devices for almost the same amount of time, and use them both daily. I just prefer Android. Yes, iOS is way smoother, the UI is prettier, and the hardware is even nicer in some cases. But when I get lost or struggle with the interface, somehow it really sticks out on iOS. (I should mention that I get frustrated with Android plenty too)

It's the kind of attitude in your last sentence, suggesting that you cannot fathom why anyone would choose the objectively inferior Android OS, that people get annoyed at in these horrible discussions. It boils down to taste, and to suggest that some people's preferences are not true is unfair. (I'm probably doing you a disservice, I'm sure you're not a raving Apple fan. But you know what I mean, I hope)

(I also wrote a long description of an example of getting lost on iOS but it was really long winded so I trashed it. I can explain it if anyone is actually interested though.)


I don't mean to imply that iOS is objectively better. I think the preference is more one of priorities than one of subjective "taste." There are some objective differences. I think the biggest ones are this:

Android is more open, and its apps have a lot more power over the phone. iPhone is smoother and its apps tend to perform, look, and behave more consistently. There are probably also "killer apps/features" that could make or break one platform for certain users. If you need Flash, you need Android. There are probably many examples of apps that only exist on one platform.

I'm really not much of an Apple fanboy, but to me, smooth performance is an absolute necessity. Simply put, the abysmal performance of basic native widgets on Android is an absolute deal-breaker for me. It so happens that I also generally prefer the design of iOS and the Apple app ecosystem, but obviously those preferences are completely a subjective matter of taste. My first smartphone was a Palm Treo 650 that was extremely snappy, and maybe that's what initiated my mindset, but I won't ever carry a smartphone that isn't. If, at some point in the future, there weren't any smartphones that were snappy, I simply wouldn't have a smartphone (actually, I don't even have one now, but I'm considering getting an iPhone 4S).


I'd say it's even less complex. My non-techie friends who have bought Android, did it for one of two reasons (I've actually asked many of them!):

* They wanted a smartphone, but they live on the east coast (NYC). For sometime, iPhone was only on AT&T, and AT&T had a reputation for bad reception there. I believe this has improved in the recent years, though, and well, Verizon and Sprint are also in the game now.

* They made an arbitrary choice based on a current promotion, TV ads, look of the phone, screen size, etc., without any deep knowledge of the app ecosystem or hackability. There were also a couple who have never owned an Apple product, but felt that Apple was too trendy, and wanted to get something "different."

IMO, Android and iOS are two very different beasts that look the same if you were to just compare the specs. Both have phones with touch screens. Both have apps. Both have cameras, etc, etc. This is how users compare. We know that these are not the useful criteria for comparison. But how would you reasonably explain this to a non-tech user?


I strongly suspect most users that buy Android phones "because they prefer it" are really preferring the hardware of their specific phone.

That's probably true to some extent, and Android should still get credit in those cases because it was specifically designed to support a wide variety of hardware. Contrast with iOS which was designed to produce the best possible experience on a few specific hardware platforms, which means that iPhones are stuck on 3.5" screens and resolutions that are exact multiples of the original.


I have both an iPhone 3GS and a Galaxy S - I prefer my Android's OS and app ecosystem.

For the OS, I prefer Android because it is more flexible and smarter. Apps that are doing stuff in the background behave like expected, actually doing stuff in the background. The back button is standardized, apps on Android collaborate more because of the well designed intents system, I like my interactive backgrounds or screen widgets, I like my task manager, I like my Wifi tethering without paying a freaking tax for it, I love that you can install apps from outside the marketplace without a jailbreak, I love the way my contacts are fully synchronized with Google's Contacts, I love how Facebook adds new phone numbers and updates the pictures of my contacts list, I love how upload buttons in the browser are NOT disabled, I like the turn-by-turn directions of GMaps, I like the awesome/native integration with GMail, I like that I am allowed to have Flash on it (I rarely use it, keep it disabled, but it is useful when I need it) and I could go on and on.

As for the marketplace, I like how unrestricted it is. I have an app that blocks calls, SMS messages and deletes all logs of blacklisted phone numbers. This was the first app I installed on my Galaxy S since it is so useful to me. And when I tried it on the iPhone, apparently apps like iBlacklist need a jailbreak - I mean, WTF? That's not a smartphone.

The iPhone 3GS I bought because people like you claim it is so much better. I bought it without a contract so it was a lot more expensive than my legally unlocked Galaxy S purchased with a plan. I regret buying it.

Unfortunately there's a really loud minority of iPhone users that are recommending iPhones, getting really heated over Android. So here's what I suspect - I suspect that this is a side effect of buyer's remorse, trying to justify an investment that you know in your heart is a losing bet (pretty sure this syndrome has a name, but I don't know it).


You might be surprised at the number of people who thing Android looks better.

Things like live wallpaper make a great, great first impression. Many people have seen an iPhone, then the see the Samsung "beach" live wallpaper and say "wow".


I am another user that owns a Macbook, an old iPod and an Android phone and I prefer Android. I really like my Android phone much more than iOS for many reasons: widgets, ability to use more "powerfull" (with more permissions to change the phone state) apps, deep integration with the Google apps (Gmail and Navigation are must have for me), much more permission to customize the home screen. ICS (Android 4.0) address many smoothness/usability problems of the previous versions, but even with Gingerbread (Android 2.3) I would not chose to leave Android.


I was a 3gs owner that switched to Android and will never go back. I prefer app switching, flash (if you don't know the right sites to go for streaming content you're missing out), i know people will find this hard to believe but my battery life is better and is easier to control when I know I'll have heavy usage and won't be near an outlet, it feels faster running cm rom, and this is on a phone thats actually older than the 3gs (cheaper carrier, but poor selection of phones). Overall just more control of the phone, applications and processes.


The ability to plug in an Android device into any computer with an USB port and be able to access all data and put new things on it instantly without any sync software overhead is a killer feature for me. There are others, like better hardware, better displays especially (Samsung S II here).


Android has one killer feature for me: widgets.

Having my upcoming calendar on screen at the same time as the phone/sms/mail/web buttons just works well for me. I imagine others would get similar value out of a music and facebook widget combo.


Perhaps, but as someone else noted, preferring something in the hardware range Android supports is a point for Android (when compared with iOS, WP7 is a more complicated question:

I'll also add that preferring Android hardware isn't one thing it can be one or many of all sorts of features:

- Larger screen (or smaller, though this is less common)

- Hardware keyboard (slider or Blackberry/Treo form factor)

- LTE (and faster HSPA+) support

- Removable / upgradeable battery

- Expandable / removable storage

- More flexible ports (e.g. HDMI, USB host support [control your digital camera!], etc.)

- Other niche options (e.g. NFC, gaming controls, stylus support, etc.)

Not to mention the dimensions that the iPhone only caught up on with the 4S like:

- Faster CPUs / more cores

- Higher-resolution camera

And on and on.


I prefer Android because it is not so closed like iOS.



"I can’t afford to invest months of development time into learning the platform and making an Android app, then supporting and maintaining it in parallel with my iOS app indefinitely, with so many other data points telling me that it almost certainly won’t be worth the investment."

I wish he'd elaborate on these data points. Not doing so, I'd still believe that Marco just hates Android.


His take on android is spread in myriads of little bits in the past posts, like this one http://www.marco.org/2011/11/21/appleinsider-android-paid-ap...

Now, looking for all of this bits is a hassle. I you are really interested, looking for his podcasts on 5by5 could be a alternative way.


If Marco Arment was serious about Android, he would most likely give up control and outsource development to a talented Android developer. Maybe even one who is employed by Google... I'm sure Google would be more than willing to work closely with Marco, as they did in creating Twitter's app, as Instapaper is a brand. Twitter was supposed to open source the code to their Android app as a condition of the assistance but that commitment got conveniently disregarded.

I wonder why someone from Google's Android team does not officially and publicly extend an offer (as a rebuttal) to help develop Instapaper for Android.


This is completely over the top. Why should Google spend resources to drive profits for a developer who doesn't even care himself?

Don't get me wrong, I love Instapaper and I would like to keep using it, but Marco's blatant dismissal of a large population of users forces me to consider alternatives.


If Instapaper on Android sells handsets then why wouldn't Google want to help.


First you have to prove that "Instapaper on Android sells handsets", which seems extremely unlikely.


If Marco Arment was serious about Android, he would most likely give up control and outsource development to a talented Android developer.

That's his plan.

http://www.marco.org/2011/12/07/standing-up-for-android


Come to think of it, that may be his best case scenario. At the very least it may be a publicity ploy


I work for a pretty successful app company for iOS/Android and I wouldn't call the free/paid busted by any means. We have ranked as high as 5 in our category on Android in paid and it is not a substantial amount of money. Our free product on the other hand that is ad supported is absolutely killing it.


This article is obviously written from a developer's perspective but as an end user my problem with Android is simply that I have yet to find any device I enjoy using. I enjoyed WebOS, unfortunately it was limited by subpar hardware, and I've enjoyed my brief encounters with WP7. The two Android devices I've owned just felt seriously half-baked and perpetually in a state of flux. I feel like Google applies their mindset for developing web apps to Android whereas some of the other phone makers are approaching it more like releasing a finished product. In the last year alone I feel like I've had at least 3 different GUIs for the Android Market for example. I went from mostly stock Android to the MOTOBLUR bastardized version with an update for my Droid X. I'm all for improvements when needed but too many of these changes are just completely arbitrary. It reminds me of the old Windows upgrade shuffle where some critical things got moved around for no obvious reason. Going back to developers I can understand why supporting 2-3 major versions, dealing with dramatically different screen sizes, etc just seems like too much trouble. I think some of these iOS-only hold outs would be more inclined to support WP7.


It's a question of preferences I guess.

I have both an iPhone 3GS and a Galaxy S. Surely, the 3GS is a little old now, however it is upgraded and I like its design more than iPhone 4. I sometimes have days when I switch between them depending on my mood. In general I prefer my Galaxy S over my iPhone.

The iPhone does have better 3D games. Maybe that's because Android upgrades are so slow to reach customers, so the sane thing to do for developers is to target older versions of the OS and be mindful about lower-end devices.

    I can understand why supporting 2-3 major versions, 
    dealing with dramatically different screen sizes, etc 
    just seems like too much trouble
Meh, you have to do that already for iOS. The 3GS is still on sale and lacks the retina display, so it has a lower resolution. Then there's the iPad, which is completely different. Also you should expect a future iPhone model with a bigger screen.

Making your interface scale from smaller to larger is a given nowadays. Maybe more problematic on Android, however when developing for Android you save time in other areas as IMHO, Android's APIs and the environment on the whole is higher level and more flexible.


Oh, no, it's on an entirely different level. You not only have to deal with elastic screen size, you also can't tweak to pixel-perfection nearly so easily as you can with iOS. If this were all that was wrong, Android would be better. However, due to fragmentation, any app with nontrivial data parsing/caching/display requirements that wants to be both widely usable as well as robust and stable needs to (in my experience):

1) Use the compatibility library for lazy-loading and easy reloading of data via CursorLoaders and SimpleCursorAdapter. This means mostly abandoning ArrayAdapter (it can easily cause eternal garbage collection if your dataset is slightly too object-heavy), assuming your data is mostly expressed in rows in the SQLite database.

2) Use Content Providers, as this is the only simple way to make the CursorLoaders work. Lots of boilerplate and semantics to accidentally get wrong, and URI overhead that you really don't give a damn about.

3) Either use a service or something resembling one that's initialized in Application#onCreate() to make API calls that store into the database (having them run inside an activity can cause nasty bugs if you're not careful as AsyncTasks are unceremoniously killed when rotation causes the activity to be killed and recreated)

I'd have to say as a developer of both iOS and Android, iOS is way, way more flexible, and gives you better APIs, and frees your mind to work on interesting problems. Android has too many development dead-ends that are easy to waste time on, and an irritatingly slow build process, if you want to ensure your build doesn't have any bad information from dirty caches that failed to clean. I can't say how many times I switched git branches only to find images and color resources still stuck on old values, even when I was exporting to deploy the apk.

tl;dr: Even if Android is worth developing for, it's still a time suck because a lot of little things cause problems. Nowhere is it made more clear that simplicity requires complexity than in the comparison between iOS and Android, because Android shoves all of that complexity in your face with not a whole lot in terms of guidance to guide the way. Meanwhile, Apple's documentation is world-class.

EDIT: not to mention different devices appearing differently because of stupid default themes, the lack of a stable image loader service that doesn't cause memory and application response issues at volume, crashing inexplicably because some bitmap refused to decode, random devices with non-compliant h.264 decoders failing on perfectly valid videos - randomly during successful playback, too! - vocal commenters/raters using extremely old devices complaining about the lack of support, occasionally nondeterministic state preservation when paging out views/activities, and a fuckton of other shit that's annoying as hell.


This reminds me of a thread on Whirlpool started by one of the ShiftyJelly guys: http://forums.whirlpool.net.au/archive/1728780#

It's a substantial change in opinion after six months.


There are real reasons people buy Android over iOS. I bought an Android because of great applications like https://guardianproject.info/ and http://whispersys.com The ability to manage the security of Android down to the finest detail, and get software based voice encryption made me choose it. I agree some of the hardware models feel crappy. Any of the Nexus models feel as well designed as an iPhone.


I'm personally not convinced that most people do buy Android over iOS. People buy e.g. Samsung over iPhone but that's very different. I suspect that if the Windows gains traction we'll see them start heavilty eating into Android's market share.


I certainly don't speak for anyone other than myself, but I buy Android devices purposefully and pretty much for 2 reasons:

#1 The Google ecosystem. I'm already committed to gmail, google voice and google calendar via multiple google apps accounts (my own personal gmail, plus a google apps work account). Being able to log into my google apps accounts once on the phone and have everything (contacts, events, voicemail system, market apps, etc) just magically sync up on all my devices is huge. No plugging the device in to a computer to sync everything up via "gTunes" or whatever... It Just Works.

#2 Google Nav turn by turn directions. I wouldn't even consider buying a phone without a built-in turn by turn system as good as Google Nav these days.

Other than those two things, all I ask for is a good web browser, which all of the platforms have these days. Everything else (market app selection) is totally optional (for me, YMMV of course).


Maybe Nokia might be interesting for you. I suppose they still ship free offline navigation with their newer phones. (Google Maps requires an online connection, although by now you can apparently cache some small parts of the map in advance).


It actually gives you the option to download the entire dataset on a country by country basis. Pretty nice.

I'm not sure Nokia would be right for him, though- I have a (Samsung) Windows Phone and the e-mail is great, but it's not a Gmail client.


Actually you can easily cache big parts of the map in advance now. I live in a really big city (São Paulo) and I pre-cached it entirely.


Good to know, thanks!


Ask TeleNav's revenue split between iOS and Android.

iTunes is the mothership of all podcasts, while on iOS podcast lacks serious features still it works and that's most people need.


iOS doesn't really have specific podcast support at all (just a category in the Music app and that's it) -- the magic is all baked into iTunes. Unfortunately, as Apple are making iOS devices less and less reliant on iTunes, the entire eco-system's podcast support falls by the wayside.

Fortunately, there are a couple of excellent $2 apps to plug the hole.


Good post.. Though am curious i found a Readingo app for Instapaper on Android. Is your point to make it as good as the app for iOS? - Am new to Instapaper and non-apple user so forgive if there's a obvious huge difference...


a very good post, they also pointed out another good post in this one : http://shiftyjelly.wordpress.com/2011/11/22/you-guys-are-mil...


</Personal Opinion>

As an iOS developer I totally empathize with marco and even I have decided that I will never touch android.Here is why?

(Note : Like most personal reasons these are more emotional than logical.Trying to logically argue with me on this is a waste of time.)

1)The most important reason is that it is simply not a toy I want to play with.If developer X made a million dollars making app xyz then good for him.I dont really care.If I really wanted to make money I would be doing sales pitches instead of coding anyways!I played with an android device for a few weeks and I had to throw it against the wall in frustration a cpl times.

2) Eclipse-Maven makes me want to throw up.

3) Java makes me want to throw up.

4) Android Source code makes me want to throw up.(Especially those Setter and Getter methods ewwwwwwww!).It just looks so much like enterprise software and lacks any love.The guy who wrote ListActivity couldnt make the table bounce?

5) Doing layouts through XML and the fact that I have to literally remember all those xml fields makes my skin crawl!

6) Debugging errors on eclipse (especially those nasty ones in layout.xml or strings.xml) makes me want to become a manager.

7) When you get stuck on hard problems and try to google your way out,it mostly gives you nothing except for official android documentation which I am not really a big fan of.

8) CoreGraphics,CoreAnimation,Cocos 2D...nuff said!

9) Lastly most of my favorite hackers hate it too...I learn fastest by reading code written by expert hackers and in case of android there is really nothing much out there to be inspired from!


I'm an Android developer and I'm so glad you do not belong to our community.

Saying that you are arrogant is an understatement.


Some pretty childish and fanboy opinions you have there.


To be honest I actually agree with you...I do think like a 13 year old and I do absolutely love objective C and iOS.


Actually point 9 is his most valid point. It is harder to figure out the more complicated things in Android because there are simply fewer developers actively sharing what they know. Which means you have to figure some stuff out by yourself and/or hunt for some code that is similar.

As an example, it is Google's fault but try dealing with an application that uses Fragments that also wants to utilize the non-Fragment Map View.

The best resource for real Android is CommonsWare.


I'm still learning Android Dev but points 2, 6 and 7 I agree with. Also to an extent 9, a lot of Android Dev blogs are abandoned and dated.


> Trying to logically argue with me on this is a waste of time.

As such, I found reading your comment was a complete waste of time as well.


I was just giving my objective and honest personal opinion about Android...Whether any value can be gained from it depends on the person reading it.

What can be said for certain is that there is definitely no value to be gained from your comment...:)..peace!




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: