iPhone SDK: Scorecard

Earlier, I established a scorecard for the iPhone SDK. Here is my first shot at filling it out for the beta being made available today. (I anticipated “the very first release, be it labelled beta or 1.0, to score around -25 or so”, and also established that “Over 40 is wonderful. Below -30 is awful.”)

Update: I have now finished grading the initial SDK release. (The previous preliminary grading is still available, if you’re interested.)

Update 2: MeltedCube links to this post using some wording that could make it seem like I (or “Apple developers” in general) agree with the onerousness of Apple’s distribution model; I’d just like to clarify that the Scorecard was designed ahead of the iPhone SDK release to test a wide variety of key issues to be able to provide a more neutral (though not objective) grounding for technical criticism. For more on how I feel on the distribution model and the restrictions, read these posts.

  • The SDK is freely available?
    • Yes: +10. [Current score: 10.]
    • Yes, for a percentage of sales in the official repository: 0.
    • No, for a small fee (sub-$100): -2.
    • No, only ADC Select members: -10.
    • No, only iPod-game–like partnerships: -20.
  • Applications can be compiled without handing over source to Apple?
    • Yes: +5. [15]
    • Yes, but submitting to the online repository requires submitting source as well: -5.
    • No: -20.
  • Applications can be tested and developed without requiring Internet access?
    • Yes: 0. [15]
    • No: -10.
  • Signing code requires a well-known signing authority (and the purchase of an expensive certificate)?
    • Yes: -15. [0; Apple is the sole well-known signing authority.]
    • Yes, but only when enlisting in the online repository, and Apple provides this for free: 0.
    • No: +5.
  • Applications can be tested and developed without signing code?
    • Yes: +5. [5; But not on the device.]
    • No, but signing is quick and automatic, and the SDK software manages and backs up the signing keys for you: +3.
    • No, but signing is quick and automatic: 0. [5; Partial score since you’re out cold if you want advanced multi-touch (option+click gets you “two” touch impacts) or any sensor use in the simulator.]
    • No: -5.
  • Applications can realistically be open source and freeware?
    • Yes, both: +10. [15; I phrased this question to explore the BSD/MIT-branch open source, not GNU/FSF Free Software; GPL2 software seems unlikely unless Apple, the distributor under the license, will go to lengths to provide you with source code. Since GPL stipulates that the screws are at least this tight going forward, GPL3 will definitely fail, but GPL3 conditions might disqualify Apple even earlier under the TiVo clauses. I won’t say anything definite here, though, since not even Mark Pilgrim can decipher GPL3 well enough.]
    • Yes, freeware: +2.
    • No: -10.
  • Applications can be listed in the online repository?
    • Yes, but only for a fee: -5. [10; Listing an app is free, but getting access for the first app will set you back $99/$299.]
    • Yes, for free: +5. [15; Listing a free app is completely free, although it’s not clear whether that excludes any $99/$299 fee.]
    • No, no online repository exists: 0.
    • No, only Apple’s apps are in the online repository: -10.
  • Applications can be downloaded and installed from the iPhone?
    • Yes, from the online repository and other sources in an Installer.app-like application: +10.
    • Yes, from the online repository and Safari: +5.
    • Yes, but only from the online repository: +2. [17]
    • No: -5.
  • Smaller “widget” applications can be written in HTML, CSS and JavaScript and provided as real applications without being embedded in Safari?
    • Yes, widget applications are the only applications allowed: -30.
    • Yes, widget applications are allowed in addition to the Objective-C API: +10. [27; I originally thought ‘no’, but this apparently works. It’s called Full Screen Mode and is discussed in the iPhone SDK for Web Developers video.]
    • No: 0.
  • The SDK is offered in a Windows version as well?
    • Yes: +10.
    • No, but development is possible using a reduced set of tools: +5.
    • No: -5. [22]
  • The SDK offers a simulator?
    • Yes, and it can also act as a mirror of the currently connected iPhone for movie capturing purposes: +10.
    • Yes: +5. [27]
    • No: -10.
  • The SDK offers an Interface Builder-like app?
    • Yes: +15.
    • No, but it offers some kind of other help: +5.
    • No: -10. [17; Interface Builder support is not yet offered in the beta.]
  • Syncing your own application’s data via iTunes is possible?
    • Yes: +10.
    • No: 0. [17; Although it should be noted that care is taken to back up app settings and to ignore files marked by your app as temporary.]
  • The SDK allows development of Mail protocol plugins?
    • Yes: +10.
    • No: -1. [16]
  • Applications can integrate with calendar data?
    • Yes: +10.
    • No: -10. [6; Highly surprising, since contacts can be read.]
  • Applications can integrate with Maps?
    • Yes, including full overlays: +5.
    • Yes, including providing pins: +2.
    • No: -1. [5]
  • Applications can integrate with iPod?
    • Yes: +10.
    • Yes, but only simple playback and not database roving: +2.
    • No: -5. [0]
  • Applications can integrate with the photo database?
    • Yes, read-write and providing new “Share” options (like email and .Mac Web Gallery): +15.
    • Yes, read-write: +10.
    • Yes, read-only: +5. [5]
    • No: -10.
  • Applications can integrate with the SMS database?
    • Yes, including intercepting SMSes: +10.
    • Yes: +5.
    • No: -3. [2]
  • Applications can use the camera?
    • Yes, full motion video: +10.
    • Yes, only snapshots: +2. [4; There’s no access to the raw preview image stream.]
    • No: -10.
  • Applications can use the microphone?
    • Yes: +10. [14; I had initially chalked this up as a “No”, but finally found the section about “Audio Queue Services”.]
    • Yes, but only for limited time sessions or using a provided UI: +2.
    • No: -5.
  • Applications can use the full multi-touch data?
    • Yes, full impact data: +10. [24]
    • Yes, the two extreme points: +3.
    • No: -5.
  • Applications can use WebKit?
    • Yes, including tap-to-zoom: +10. [34]
    • Yes: +3.
    • No: -5.
  • Applications can provide custom keyboards?
    • Yes, fully: +5.
    • No, but can pick from the defaults: +1. [35; See the UITextInputTraits protocol.]
    • No: -3.
  • Applications can provide support for new network protocols?
    • Yes: +10.
    • No: -5. [30; The question is fuzzy, but I have always been referring to providing support on the level of implementing something like ActiveSync or some VPN variant across the device — I don’t mean just using sockets to implement new protocols that your application will need.]
  • Applications has appropriate access to cell network (and handling of incoming data) to be able to implement MMS?
    • Yes, and Apple ships MMS: +15.
    • Yes: +10.
    • No, but Apple ships MMS: +5.
    • No: -2. [28]
  • Applications can provide Growl-like notification bubbles on the Slide to unlock screen?
    • Yes: +10.
    • No: -10. [18; This is in dispute by Elliott Harris, who says that the notification bubbles are just degraded alerts thrown while the device is locked. I can’t find a way to confirm this.]
  • Applications can provide icons in the status bar?
    • Yes, globally: +10.
    • Yes, in their own applications: +2.
    • No: -8. [10]
  • Applications can use the proximity sensor?
    • Yes: +2. [12]
    • No: -2.
  • Applications can use the accelerometer (and make apps like Level possible)?
    • Yes: +5. [17]
    • No: -5.
  • Applications can get the battery status?
    • Yes: +2.
    • No: -2. [5; This seems like a gimme for UIDevice, but alas.]
  • Applications can provide panes in Settings?
    • Yes: +5. [20]
    • No: -10.
  • Objective-C applications can run garbage-collected?
    • Yes: +5.
    • No: -5. [15; It’s definitely technically possible, but I think it’s a matter of sending a message. The setup is already tight on memory and although there are helper chips, there’s only one main CPU core (Objective-C 2.0’s auto GC runs on a second thread) so it might not be worth it.]

So, with everything answered, the final score is 15. More than I expected from the initial version.

Comments [+]

  1. So the score will be 37 when the new Interface Builder is available?

    By pauldwaite · 2008.03.06 21:26

  2. The score will be higher once the new IB is available, right. I said I was going to grade the first thing that slipped out the door, and I’m also going to grade each further improvement.

    By Jesper · 2008.03.06 21:30

  3. All things considered, they did surprisingly well with this. I’m happy.

    By http://openid.aol.com/cipherswarm · 2008.03.06 21:40

  4. With regard to the item on smaller “widget” applications, in the screencasts on iTunes U, there is a video called “iPhone SDK for Web Developers” which demonstrates DashCode. These widgets (they still call them “web-apps”) can be full screen and they support svg, HTML5 client-side storage, gestures, and new (fast) javascript functions.

    By Matt Gedigian · 2008.03.07 03:04

  5. […] little set of questions which rates the iPhone SDK. Interesting. Spread the […]

    By Bram.us » iPhone SDK : Scorecard · 2008.03.07 15:43

  6. wait, i’m confused… So, you are allowed to post free apps to the online repo without paying the $99?

    By http://furtherin.net/ · 2008.03.07 16:27

  7. I’m unsure about whether, from square one (or perhaps square zero, as it were), you’ll have to pay anything to post free apps. Steve was quoted saying this during the announcement and some of the coverage has said so explicitly.

    It’s also likely that, after you pay your $99/$299 for a membership badge, you’ll be able to post apps, and the free apps will never “cost” you anything. (Neither will the for-pay apps; you’ll make less money than you would had they not taken a cut, but it won’t “cost” you anything you never got.)

    Like the top of the post says, I aim to sit down and sort out all 31 questions when I get the chance, which is hopefully tonight.

    By Jesper · 2008.03.07 18:26

  8. From the iPhone OS Programming Guide / Work With a Device. / Obtaining and Installing a Provisioning Profile

    It has a really strange line:
    “A provisioning profile identifies a device as one that’s used for development and specifies the actions yo can perform on that device, such as whether you can make calls.”

    Doesn’t that suggest that they may disabling parts of the iPhone when you install an app yourself. If you can’t recompile an app and install it yourself without disabling your device, it won’t work for some opensource such as GPLv3. That’s the exact kind of tivo like software drm that was the the focus of the GPLv3.

    By Jay · 2008.03.07 20:27

  9. You mention that applications can access the proximity sensor, yet I haven’t seen anything in documentation to confirm this. Can you point me in the right direction?

    By http://minus-zero.org/id · 2008.03.07 20:38

  10. Jay: GPLv3 isn’t Open Source, it’s Free Software. I won’t go into a religious debate, detail the differences or the overlaps of the two models (because there is overlap, and some people might label this overlap “open source”) or even explore what it means in practice, but suffice it to say that I care about Open Source (BSD-like licenses) and that’s how my question was formulated.

    In precursory testing, it appears entirely plausible to personally develop Open Source software for the iPhone, to make that source code available and for other people to download that source code, make changes and realistically use the app themselves, even if the avenues to just compiling it yourself and just using it yourself have been narrowed a bit with the officially sanctioned iPhone SDK way vs nearly every other platform.

    minus zero: Yes; [UIApplication sharedApplication].proximitySensingEnabled is the property.

    By Jesper · 2008.03.07 20:48

  11. it appears entirely plausible to personally develop Open Source software for the iPhone

    But the only way to distribute it is through Apple’s store, which means that *Apple* is the distributor. Which means (as per section 3 of the GPLv2) that Apple has to provide source code or a written offer to provide source code upon request. And I have not heard anything about Apple being willing to do that.

    Someone please correct me if I’ve misunderstood the situation.

    By Mark · 2008.03.08 01:29

  12. I used the term Open Source with capital letters to distinguish the BSD/MIT approach from Free Software (almost everything coming out of GNU and the FSF). The demands of BSD/MIT can be fulfilled by the application developer (more or less: give credit, don’t sue us, don’t use us to market your app) and are not impeded by Apple’s distribution.

    Since GPL2 requires providing object code or source code, producing iPhone GPL2 apps is probably not possible unless Apple makes arrangements to allow for this. I am unsure if Apple’s way of distribution is compatible with GPL3 at all (what with TiVo clauses), which is why I said in my previous comment that I wouldn’t discuss it. I just don’t think I’m qualified to give a correct answer.

    Since Mark found his way here, and I know that he famously more or less completely abandoned Apple’s platforms in favor of Linux and the ability to pick Free Software that works with open standards, I’m hoping that it does come across that I don’t endorse much of Apple’s distribution model.

    As regards that, there are just about two shining lights in the darkness right now: it is trivial to install apps, and being able to plausibly reach a wide market with costs-a-song applications hasn’t really been done well before. I think I’d trade more openness in for a little more complexity, which is what the jailbreak-based pseudo-platform is all about. (Hell, I don’t even know about complexity. ZiPhone and Installer keeps my iPhone activated and unlocked and my Applications folder well-fed, and they aren’t exactly rocket surgery.)

    By Jesper · 2008.03.08 01:54

  13. If you can embed Safari-like functions into any app, then why can’t you just build a “widget” that way with Xcode? I say +10!

    By ruzel · 2008.03.08 19:59

  14. Ruzel: An interesting case, but this leaves you with having to set up the web view first and thus use Xcode.

    My intention was to cover a new native class of apps whose guts are really just an HTML document with surrounding resources, or a link to a HTML document somewhere on the web. Something that takes the “home screen icon shortcut” deal a bit further by breaking free of Safari (perhaps even offering some sort of minimal JavaScript API to, say, change the appearance of the status bar).

    By Jesper · 2008.03.08 20:13

  15. This is a watershed comment. Every comment earlier than this comment was posted based on the initial, incomplete grading.

    By Jesper · 2008.03.08 21:00

  16. Smaller “widget” applications can be written in HTML, CSS and JavaScript and provided as real applications without being embedded in Safari?
    No: 0. [17; … b) no Safari chrome (which rules out home screen web shortcuts). …]

    I would point you at “iPhone SDK for Web Developers”, which specifically says that it will be possible to do exactly that (no ObjC bootstrap, no Safari chrome) with home screen web shortcuts, with a simple meta tag.

    By pftqg · 2008.03.09 00:59

  17. Color me wrong and surprised, then. For posterity, this is called ‘Full Screen Mode’, requires a tag similar to <meta name="apple-touch-fullscreen" content="YES" /> and running as a home screen icon (otherwise, when you go to that site you couldn’t add it there to begin with), is discussed around 12:40 in the “iPhone SDK for Web Developers” video and is vastly under-published.

    The post will be updated.

    By Jesper · 2008.03.09 03:21

  18. I don’t see any problem with releasing GPL2 software through Apple.

    If you buy a TiVO or WRT54G or EEE from a retailer, are they bound to release source under the GPL?

    The answer is no. Apple is no different from Amazon or BestBuy in this instance.

    By http://openid.aol.com/fredblasdel · 2008.03.09 04:28

  19. re: Applications can integrate with Maps?

    In the “Introduction to iPhone SDK” video, Geylensee talking about how the UIKit provision for Applications integration, specifically mentions that “… your application can leverage features of other applications on iPhone by simply sending a system message that they’ve registered to handle. By calling a single application method and passing in the appropriate string, you can have the iPhone to […] drop a pin the Maps application” (starting @ 14:00).

    So I guess that’s at least +2 instead of -5 unless I’m missing something.

    = tmk =

    By http://openid.aol.com/teehemkay · 2008.03.09 16:24

  20. Oops, the correct name is John Geleynse and he’s Director, Software Technology Evangelism at Apple. Sorry by the wrong name.

    = tmk =

    By http://openid.aol.com/teehemkay · 2008.03.09 16:27

  21. I meant providing pins as part of search results. Say, like, a Maps plugin that could provide pins for the location of people in your contacts.

    By Jesper · 2008.03.09 16:48

  22. […] a tightly controlled proprietary nightmare to developers in the open source world, but it seems to fulfill the expectations of most Apple developers. Reactions around the web have been largely positive, though there are […]

    By Apple Opens iPhone But Key Restrictions Remain | MeltedCube · 2008.03.14 18:28

  23. […] waffle → iPhone SDK: ScorecardPuntuando el SDK del iPhone, opción por opción.(tags: iphone cocoa ipod touch cocoatouch sdk programming)Anomalous Anomaly » Blog Archive » Acid 3 is out! IE 5.5 beats IE 7?Safari es el navegador que mejor se comporta con el nuevo test Acid3 del W3C —aunque aún está lejos; la última versión beta llega a 92/100—. ¿Lo más gracioso del asunto? Que Internet Explorer 5.5 soporta mejor CSS que Internet Explorer 7.(tags: acid3 w3c test browser compatibility report)Teoría del intercambio interestelar de mercancíasEn palabras del propio autor: “análisis serio de un tema estúpido, en lugar de lo contrario, que es lo que suele ser habitual en economía.” En concreto, el problema del intercambio interestelar consiste en que hay que viajar a velocidades cercanas a la(tags: teoría econónica economy theory interstellar trade comercio interestelar) […]

    By Memoria de Acceso Aleatorio » links for 2008-03-18 · 2008.03.18 06:52

Leave a comment

Your e-mail address is never shown. If you type a line break in the comment, it will show up as a line break (naturally). The following HTML is allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

(required)

(required)


Please note: Your comment will not show up at once. Unless you're spamming or being abusive, you have nothing to worry about. (Read the full policy.)