Ask YC: How is the iPhone SDK?

12 points by JimEngland ↗ HN
The iPhone 3G looks very promising, with a competitive price point to attract a greater number of users and Enterprise features to directly attack RIM. There is now an opportunity to create custom applications for the iPhone.

Has anyone tried to develop an application on the iPhone SDK yet, and if so, how has it gone so far?

8 comments

[ 3.4 ms ] story [ 27.5 ms ] thread
The iPhone OS is very, very similar to Mac OS X. The UI is the biggest difference but most of your non-UI code will be similar or identical to OS X code. If you are one of the thousands of devs who aren't accepted in the $99 program, you can't run your code on the real device. You can still mess around with the simulator.
By developing for the iPhone you are mostly restricting your market to North America. It is available overseas but not very popular for a number of reasons. This may not bother you but it is something to consider. By comparison Blackberry seems to have a well entrenched user base everywhere I go, and almost every business targetted device seems to run J2ME or full blown Java.
But, with the iphone, you have a userbase that will have an easily available way to get the programs. Almost no one in canada installs java programs at all. All the money is in the default blackberry apps. It's the difference between a feature being there and it being easy enough to use.
The iPhone hasn't been out for even a year. Furthermore, over that time, it's only been available in 6 countries, and maybe only the US when it first launched last July. Now that it is going to be available in 70 countries before the end of the year, and has support for about 16 languages (versus just English), I think a developer may see 30-50% of his customers come from outside the United States.
Why is this getting modded down? He's presenting useful information that may or may not be relevant to some developers. Please mod down idiots, but not someone taking the time to present useful facts.
Developing on an iPhone is pretty straight forward. As a first time developer on any Mac platform, I spent about a week learning Objective-C and the frameworks in general using the very nice tutorials Apple has available. It's interesting working with such a dynamic language for application programming.

I am on the developer program and one thing you should be careful about if you develop using the simulator is to use only the published APIs within the iPhone developer website. The simulator will sometimes let you use API's that are available on the Mac but not (yet?) on the phone. I've run into a couple of cases where this can be an issue.

i've been playing around with the sdk extensively. each new beta adds a couple of new features. the iphone simulator is pretty good. if you've done any mac cocoa development in the past, it will seem very familiar.

i applied to get one of the developer keys, but apple didn't pick me. they did pick another guy i used to work with though, despite the fact that he has pretty much zero mac development experience, and no plans to develop any real apps. i'm pretty sure they handed out the keys to the first 4,000 people who asked for them, without checking qualifications at all. you can still develop for the simulator without the key, though.

i'm hoping to have a demo app done in a couple of weeks, so that i can convince some startup to hire me to do iphone development.

I have some Windows Mobile and web experience and tried out Android (besides long-time NT/C++), so these are thoughts on iPhone development in no particular order:

1) Objective-C is easy to pick up for C++/C#/Java developer. Strange at first but you get used to it. Lack of garbage collection on iPhone is a big disappointment given that it's available on MacOS X. Integration with C++ libraries is straightforward.

In general development is somewhat slower than for Andoid or even WinMo, but result is nicer/smoother looking. Tools are OK, editing in XCode lacks some features you get used to in Eclipse or Visual Studio. It's free (unlike Visual Studio), but obviously you need Apple hardware to run it.

2) UI: there is no layout engine to speak of, so some things require more work than in Android for example. From other hand some very nice standard controls are provided (navigation bar, table view is very customizable etc.). Surprisingly some things you would expect are absent: glass buttons used in Apple apps and alerts, function to get height of the keyboard for laying out your controls accordingly, etc.

3) Apple seems somewhat restrictive about access to their developer program (and without this it's all pointless - you are not going to get access to the store). We got ours, but it took some time and they lurked on our website a bit probably to make sure that we are real.

4) Safari web apps look quite solid and it's possible to make them well integrated with the iPhone. Now with the SQLite access from Safari for the local storage for many kinds of apps it makes sense to be developed as web apps because it's generally faster to develop and easier to distribute.

5) I wish Apple would officially support Python for iPhone development.