
What App Developers Want: Letters To Steve Jobs And Larry Page - solipsist
http://techcrunch.com/2011/04/16/what-app-developers-want/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Techcrunch+%28TechCrunch%29&utm_content=Google+Reader
======
archgrove
Not that I like TL;DRs, but I can give you a quote which will save you time:

"On the whole I like Android even more than iOS. [Mention of Java, and less
polished dev tool chain]. I can live with those quirks, though, and otherwise
it’s mostly a developer’s dream: powerful, flexible and open(ish)."

So, as you might expect, the Apple "requests" are "Please be more like
Android". Having done a lot of iOS dev, Garbage Collection isn't even in my
top 10 wants (his claim that it adding it would halve iOS dev times is
bunkum). An Android like multitasking model is also not in my top 10 (widgets
+ the ability to do preemptive content downloads would cover ever use case
I've ever wanted, and basically every other need I've seen). His repeated use
of "fanboy" also gives the article -20 karma: Apple, and Apple developers
never said multitasking is evil, just that unrestricted desktop (i.e power
unlimited device) multitasking was a poor fit - a position that's still true.

For iOS, I do want: Better notification system. The ability to silently
respond to pushes (i.e. Update my databases without showing any UI). Better
system wide connectivity notifications. Better inter-app connectivity
(something like Androids intents, I guess). Cocoa data bindings. A sync
service API (desktop to iOS or web service to iOS).

I do _not_ want iOS to become OS X, or a desktop OS. That is not helpful to
me, or my users. A phone is not a tiny laptop, and frankly, nor is a tablet.

~~~
dpcan
As an Android Dev, his requests aren't even on my top 10 either. Everything he
requested can be solved by developers if they put in more time. If you want
your Android app to look polished and shiny, you can, and it's pretty easy
actually, but it takes time.

Fragmentation as the root of this problem - well, again, it just takes more
time.

I want to see things change in the Markets of both platforms. This is an area
I cannot change with more time - this is an area I have no control over and
have a lot of complaints about.

My top 10 list all lives in the Market for Android.

------
forgottenpaswrd
"Please give us real multitasking, like Android"

Please DO NOT.

OLPC wanted to halt the CPU from time to time to reduce consume and discovered
that it was feasible... if only the software let them. A lot of linux apps
were designed using polling that make that impossible to do, so they had to
modify it and remove the polling in all apps, a huge task that took an
enormous effort.

Steve Jobs, who is not stupid learned from them and decided to not let coders
be lazy with iOS so the same battery rocks way more than Android.

The difference between "What App develovers want", and "what iOS users want".
Long battery life.

~~~
protomyth
At this point, I kinda wish there was a "no multitasking" switch in iOS. It
would make it a lot easier for some people to use the device.

~~~
thevectorist
You can indicate via the Info.plist that your application doesn't support
multitasking. The app will run through the full startup and shutdown routines
on foregrounding and backgrounding.

~~~
protomyth
I am thinking more system wide. It was not uncommon for people to hit the home
button as a sort of "escape".

~~~
glhaynes
In what scenarios can they not do that in the post-iOS 4 world?

~~~
protomyth
there are plenty of apps that don't go back to their start point on hitting
the home button and re-entering the app.

~~~
glhaynes
Ah, I read what you wrote to mean that users could no longer "escape" using
the Home button. Thanks.

------
jakewalker
Interestingly, John Siracusa's latest episode of Hypercritical, "A Dark Age of
Objective-C" touches on much of the issue of Apple's reliance on Objective C
both for OS X and iOS, and argues that in the long term, it's extremely
problematic. Highly recommended:

<http://5by5.tv/hypercritical/14>

------
rradu
"Please make it possible to develop iOS apps on something other than a Mac."

A few months ago I wrote a quick HTML5 app and when it came time to port it
over to a proper iOS app, I found out Xcode only worked on Macs. And I'm a PC
guy.

What did I end up doing? I made it into an Android app.

I'm sure I'm not the only casual app developer that didn't end up submitting
to the App Store just because it was too much of a hassle. There's certainly
no shortage of apps in the Store, but I think mine could have been better than
at least 40% of them.

~~~
irahul
I don't develop for smartphones(yet) but this is something Apple should
consider. MBP are too damn expensive for developing world, and even in the
developed countries, many people don't own a MBP by choice. When people who
don't own a MBP develop for the smartphones and its time to go native, they
end up going Android even when they wanted to do it for IOS or for both.

I am not very familiar with iOS development infrastructure but since MacBook
is BSD based, it should be possible to at least make it run on Linux and
FreeBSD.

~~~
Aqua_Geek
You don't _have_ to buy a MacBook Pro. A MacMini works just fine for
development, and it's half the price.

> since MacBook is BSD based, it should be possible to at least make it run on
> Linux and FreeBSD

Mac OS X has a UNIX foundation, not the MacBook - you can run Windows on your
MacBook if you really want to. A lot of the low-level system libraries are
open source (<http://opensource.apple.com>) and can be compiled for
Linux/FreeBSD. I highly doubt they're going to do the necessary work to port
over the development tools and UI that sit on top of that, though.

Would it be nice? For some people - possibly. Is it ever going to happen?
Nope.

------
pistoriusp
It's as if the author took some of the marketing points that the two platforms
used against each other and then used that as an argument for what programmers
want?

Garbage collection is so simple. Once you're over the fear of feeling
overwhelmed by having to "manage" memory it's really a non-issue.

Real multitasking? No thanks. I can't come up with a "real world" problem that
the current implementation doesn't solve.

I'm actually from the "developing world," and I must say his argument is a bit
of an insult to me. Sure, I we don't typically make as much money as an
American or a European, but we buy the things we like... And if that happens
to be Apple hardware then that's what we buy.

I can't argue with his Android points since I've just started coding on
Android.

------
armandososa
I don't feel like somebody from TechCrunch is a good representative of all
developers.

------
yoda_sl
I have been doing Objective-C development since 1991 and started with Java
around late 95/early 96. I am still using both language almost on daily basis
and honestly the GC is not something I really miss on iOS. In fact I like the
fact on how I can fine control the memory deallocation as I want rather than
decided by the OS. Of course with close to 20 years of Obj-C dev it seems
natural.

I would love rather an improved AppStore and even better access to some
underlying part of iOS. I can't speak much for Android since I just started
with it, but any developer learning iOS SDK should rather spend the
appropriate amount of time to understand the simple concept of retain/release
and how to use each framework to write stable application rather than apps
that crash way to often.

What is really a bummer is that the iOS SDK provide some good tools to
discover memory leaks when debugging the app (with Instruments) and even the
great analysis tools now fully integrated with XCode 4. Unfortunately a good
chunk of developers releasing apps in the AppStore do not necessary invest the
time to learn the tools they are using.

------
extension
There are currently ~300,000 iOS apps and 99% of them are junk. As much as I
would welcome simplified iOS development, its primary effect would be to
attract simplified developers and that is the opposite of what Apple needs
right now.

I don't _like_ that arbitrary hoop-jumping is effectively used to weed out
low-quality code, but I can appreciate why developer convenience is not a
priority for Apple.

~~~
Aqua_Geek
I really don't feel like Apple is purposely making development harder - just
to try and weed out the lowest of the low.

That being said, I agree with the sentiment that most of what's in the store
is utter crap. Personally, I think the barrier to entry is far too low. Apple
opened the floodgates to try and get as many apps in the store as possible,
and it worked. But now they're faced with the daunting task of cleaning house.

I would love to see them implement a monthly service fee - rather than
charging $99/year up front, they should create a couple of price tiers with
limits on the number of apps you can submit. That way, if your app isn't
selling, you have a good incentive to remove it. They could also charge a
smaller percentage as you move up the tiers.

As it stands, $99/year is just too easy to justify leaving everything in there
- you're bound to get a few downloads from somewhere.

~~~
extension
They're not trying to make development harder but they're not trying to make
it easier either. They won't put the effort into fixing developer pain points
if the only practical outcome will be more mediocre apps.

As long as they don't scare away the A-list developers, or hurt the quality of
their apps, the development situation is good enough and they would rather
spend resources on things that more directly benefit customers.

At the same time, the marketing dept. is milking their leading app count for
all it's worth, so they won't be doing a purge. Rather, I think they will work
on more ways for the cream to float to the top, like the "genius" feature of
the app store, and on raising the quality bar with their own apps like Garage
Band and iMovie.

~~~
Aqua_Geek
> They're not trying to make development harder but they're not trying to make
> it easier either.

Agreed. There are so many things that can and _should_ be improved upon. I'm
keeping my fingers crossed for iOS 5.

> They won't put the effort into fixing developer pain points if the only
> practical outcome will be more mediocre apps.

I think you're being a little too cynical. I prefer to give Apple the benefit
of the doubt. After the whole Xcode 4 mess, I get the feeling that there's
some disconnect between how Apple uses the tools and how the community at
large does - a gap I hope Apple works to eliminate.

> At the same time, the marketing dept. is milking their leading app count for
> all it's worth, so they won't be doing a purge.

Yeah - totally agree. They'll never do a _direct_ purge (ie "Hey, your app
isn't selling, so we killed it"), but I'm holding out hope of my other
suggestion of their using a price schedule to "encourage" developers of low-
sellings apps to pull them themselves.

> Rather, I think they will work on more ways for the cream to float to the
> top, like the "genius" feature of the app store

It's a hard problem to fix, and I imagine we'll see some good breakthroughs in
this area in the next year or so. I'm genuinely curious, though, about how
your experience with the "genius" feature has been. To me it seems to just
recommend random apps from similar categories; most of the time, I walk away
thinking, "No, I already bought an app to deal with [x/y/z] - I don't _need_ a
second." Given the amount of info Apple has on me (app, music, and movie/TV
show purchase histories, age bracket, metro area, etc, etc), I'm surprised
that their recommendations are not better.

> and on raising the quality bar with their own apps like Garage Band and
> iMovie.

I think they've definitely succeeded with this one. After seeing apps like
that, it really makes you want to push the boundaries and really up the
quality of your apps.

------
chrishenn
Apple has enormous success that is largely due to it's control freak
tendencies. They make some really great innovations, and then lock everyone in
to their proprietary ecosystem using the appeal of these innovations.

Locking users down doesn't work forever though. iTunes did for a while, with
DRM on every song. Finally users were able to pay to get rid of it, as other
sources (Amazon MP3) were offering competition. The only way I can see Apple
continuing to be so successful with iOS is through continued innovation, not
by caving in to developers demands for features---what developer has refused
to reach Apples enormous market because they weren't happy with development
tools? Something like no garbage collection seems like a small issue when
considering the upsides of developing for iOS. (I really hope better web
technologies will change this.)

It reminds of a quote sitting in my high school journalism room: ``People like
cocaine and prostitutes, but we don't give them that either.''

~~~
Aqua_Geek
> The only way I can see Apple continuing to be so successful with iOS is
> through continued innovation, not by caving in to developers demands for
> features [...]

Let's not forget that a significant (however you choose to define that) reason
for the success of the iPhone was - and continues to be - due to the apps
available for the iOS platform. Apple understands this - just look at their
marketing.

GC? As has been said by others, it's not really on the wishlist. Most devs
have much simpler requests that would make development so much more enjoyable.
By the time you've written a basic HTTP request-response wrapper for the 10th
time, it starts to get really old...

------
joshes
Fragmentation is my primary concern with Android development, and is something
that I faced head on with much frustration with my own apps. But what exactly
can Android do about this? It seems that Android's staggering success is at
least partially based on its Windows-like approach to essentially go "broad
spectrum" and get on as many devices as possible. How do you negate
fragmentation without clearing out a large swath of your device base?

------
leon_
I'm an iOS developer and there is one reason why I don't develop for Android:
Java.

If Google would officially support Go as a development language for the system
it would be awesome. I'd support Android without hesitation then.

But Java? No thanks ...

~~~
thevectorist
I'm an iOS developer and the one reason why I don't develop for Android is:
there's way more money in iOS.

The one app I ported to Android was massively pirated and minimally purchased.

