views:

3734

answers:

14

I've been doing mobile app development for a long time (2001?), but the systems we worked with back then were dedicated mobile development environments (Symbian, J2ME, BREW). iPhone SDK is a curious hybrid of Mac OS X and Apple's take on mobile (Cocoa Touch).

But it is missing some stuff that other mobile systems have, IMO. Specifically:

  • Application background processing
  • SMS/MMS application routing (send an SMS to my application in the background)
  • API for accessing phone functions/call history/call interception

I realize that Apple has perfectly valid reasons for releasing the SDK the way they did. I am curious what people on SO think the SDK is missing and how would they go about fixing/adding it, were they an Engineering Product Manager at Apple.

+11  A: 

The biggest shortcoming in my opinion is support for separating licensing from distribution.

What I mean by this is that it should be possible to download a trial version of an application and later purchase a license for that application (from an API call inside the application or from the app store). This would make it much easier to try-before-you-buy and get rid of the current duplicates of many applications with 'lite' versions.

Denis Hennessy
I agree. This is something that is crucial to the long-term success of the platform
rpetrich
+7  A: 

API's I'm personally looking for:

  • Apple80211 as a public API (private, current API is fine if documented)
  • Access to Volume buttons (semi-accessible via Celestial, private, needs new API)
  • Access to Calendar (private, API status unknown)
  • Access to Bluetooth + SPP profile (status unknown)
  • Access to Camera (directly, API status unknown)
  • Access to JavaScript runtime (directly, not through UIWebView, API status unknown)
  • WebKit access that's lower-level than UIWebView (private, current API is fine)
  • Access to Music Library (private, current API is fine)
rpetrich
There are header files out there for the private camera API, so it's usable to get raw input from the camera.
dancavallaro
+2  A: 

You've mentioned some of the big ones - copy & paste (or in fact any way for apps to collaborate) is another huge omission.

It also seems to lack a desktop synch framework (at least if it exists I can't find it).

Language independence and especially lack of scripting is another pet peeve - objective-c is all very well but more languages to choose from would be good.

Inability to dynamically extend apps, via scripts or otherwise, is another big omission. This is partly an SDK/OS issue, partly licensing.

frankodwyer
I intentionally left out copy/paste since I personally have never missed it on the phone.I think it's a red herring, personally. Mobile context isn't really appropriate for text editing, and you have to draw the line somewhere.
Genericrich
There's no desktop syncing framework, but most apps just use bonjour networking over wifi. In most cases where the desktop component actually does something (instead of just transferring a file) this works better than USB only syncing.
Marc Charbonneau
@Genericrich - well, I used copy and paste all the time on my treo. I would blog on my iphone and take more notes on it if I could do this. It prevents basic stuff like moving a URL from Safari to anywhere else but mail, or grabbing a URL from twitter and using it in a different app.
frankodwyer
@Marc, yes the bonjour stuff is one way, but then you have to fake a wifi network on the laptop if you're not actually on a wifi access point at the time (which is a pretty manual thing on the mac)
frankodwyer
You use the URL handling schemes to pass data from one app to another programatically.
Kendall Helmstetter Gelner
@Kendall - cheers, any links to good tutorials on how to do that?
frankodwyer
As a new Touch user and long-term Palm user (many models) I am not as steamed about copy and paste - I just can't see myself writing much on the Touch without a keyboard or even editing much without stylus. Text entry is not in the same league as classic Palm experience.
Andy Dent
+9  A: 

I think lack of push notifications for apps is the big thing we're missing right now. With push, you can register your application to perform a task (like getting the most recent data from a web service) even when it's not running, at a time and frequency the OS decides is best. In an ideal world, along with the existing concept of iPhone apps loading quickly and resuming where you last left off, this solves the problem of not running in the background. I know some tasks will be more difficult or maybe impossible with this strategy, but it's still a pretty good compromise between third party applications and the iPhone's limited hardware.

Originally push was scheduled for last September, but it was removed from the beta SDK and not spoken of since then.

Marc Charbonneau
A: 

A limitation that bugs me is lack of access to system features that require root or setuid. For example: opening privileged IP ports.

I'm not sure there is a good solution to this, as long as Apple's policy is to keep the device locked-down.

Kristopher Johnson
+1  A: 

My list ordered by priority:

  • Mapping abstraction (the MapKit looks awesome), but that would require a new Google Maps TOS
  • Music library
  • Camera (photo + video) Access to more
  • UIViews, Apple designed some pretty nice custom ones for their apps
  • Better UIWebKit abstraction
François P.
A: 

Allow program to set some kind of local timed event for your application to bring up an alert and launch your app if the user agrees (like any calendar app). You could do that with push notifications but there are many cases I'd hate to have to rely on a whole server infrastructure and network connectivity just to basically do some timed thing.

Some idea of what direction the user is facing. I cannot believe the GPS chip the newer iPhones use are not capable of reporting direction.

Kendall Helmstetter Gelner
+5  A: 

Garbage Collection.

Tim Stewart
+3  A: 

CoreData is missing.

Grant Limberg
+1  A: 

The features I see missing that it should have is

  • Access to SMS
  • Direct Access to Google Maps App. You should be able have access to this so you could extend your application to use the built in features provided by Google Maps.
  • Access to the Bluetooth functionality of the phone.
  • Access to the Calendar. Why not allow access to simply post a calendar event for the user.
  • Access to Active Sync. It would great if we could directly access this and communicate back to the Exchange Server.
  • Core Image. They provide Core Animation but Core Image is missing. I hope that this is added to the API soon.

These are some of the features that my clients have access for in the past and are supprised when they are not available.

Niels Hansen
+1  A: 

We definitely miss a Calendar API and SMS access. So many applications could leverage such APIs. The iPhone allows users to have everything in their pocket, but it's almost useless as long as developers cannot leverage this integration in their apps.

A: 

I would personally love to see

  • Access to the CoreTelephony Framework (Currently private). Which allows access to all the phone functions (Especially sending MMS / SMS).
  • Some sort of ability to run stuff in the background. While push notifications is ok for most things, but it is a bit hard to leverage CoreLocation (i.e. have the app show a notification at a certain location). Of course this would probably need an on/off button or app specific like push is.
nolim1t
+1  A: 

A language with proper namespaces.

macke
A: 

animation view which will be reduce developer to make a cool app , of course the core business local still need consider more , but the view layer could more easy to use ....

Robin