iPhone OS 3.0 is being announced and previewed next week (March 17).
We all know the feature set users want. Copy/paste, MMS, Flash on iPhone, etc.
We'll see about those.
What I'm interested in what does the development community feel the SDK is missing, in need of, to make programming for the platform easier and more productive.
- A more complete Interface Builder with support for custom palettes and all sorts of goodies like that.
- Better control over the keyboard.
- Better unit testing support. (Unit testing can be done, but only on the simulator, and it's very awkward to set up.)
- Push notifications. Please.
- A more accurate simulator, i.e. one with a more accurate set of frameworks.
- The ability to easily build views like the Mail compose window.
- For that matter, an in-application compose window.
- A better way for apps to share data locally than by invoking URLs.
- Access to the calendar, notes, mail (possibly read-only), and bookmarks (again, read-only) databases. Maybe even limited access to the iPod database—even just the ability to read song metadata and access and change the playing song would be helpful.
- Some sort of middle ground between UILabel and UIWebView that allows for formatted text without a huge hassle.
- More built-in toolbar icons.
- The return of the "glass" button style that was in the beta SDK.
- A few useful internal views, like UIProgressHUD, exposed.
And last but not least...
- An easy Javascript bookmarklet installation method for Mobile Safari. (OpenRadar: 1, 2)
- UIWebView needs more of UIScrollView's properties and methods, such as contentOffset.
- More configurability on some of the built-in behaviors and views, e.g. the button text on UITableViewCell's "Delete" button, or the styles and text of UIAlertSheet/UIAlertView buttons. (Some of these can be done today with undocumented calls, but I'd rather not rely on those.)
- More flexibility from UINavigationController, such as the ability to push/pop views that selectively don't display the navigation bar but using the same animations and stack, or more customizability over the navigation bar button labels and behaviors.
- The ability to restrict interface orientation per UIViewController, not just accept/reject changes via shouldAutorotate. E.g. I want my main content view to be autorotatable, but I want my navigation hierarchy and settings screens to always display in portrait, even if the content view was rotated to landscape.
- libxml and its handy DOM XML parser instead of the SAX-based NSXMLParser.
- libcurl w/SSL, or more options and functionality for NSURLConnection.
- Ability to check whether a URL scheme is registered. This could be used for apps to detect whether other specific apps are installed, and enable functionality selectively, e.g. when Instapaper detects Tweetie is installed, it can offer a "Post with Tweetie" button. (Disclaimer: That was a plug. I make Instapaper.)
I'm sure I'll think of more, but overall, I'm very happy developing for the iPhone. I'm amazed at the quality and sophistication of the iPhone OS, the SDK, and the development tools given how incredibly young they all are.