Archive for June 3, 2010

Thursday, June 3, 2010

Xcode UI Improvements

Brandon Walkin:

I propose that API documentation is combined with autocompletion. Anywhere in your code where it would make sense to show an autocompletion window, we show this window instead. Rather than show a set of seemingly random methods, we instead show the methods the particular class responds to, with a mechanism to view methods and documentation for the superclass.

He has lots of good ideas and mockups. Autocompletion in Xcode 3.2 is miles better than before, but it still leaves a lot to be desired.

iPhone and App Store Perception

Jason Snell:

I’m here to say to Apple that while I understand very well the reasons for the company’s walled-garden approach to native iPhone OS apps, the strengths of that approach have now been surpassed by the bad publicity and reputation that Apple and its products are now getting in the market as a whole.

Perceptions, once set, are hard to change. There are lots of straw men in the comments. Do people really think that the App Store is curating away the junk? Or that the OS itself doesn’t enforce a sandbox? It’s also strange to see so many suggestions that “the people have spoken” because Apple is selling lots of devices. The market also preferred Windows over Mac. One can succeed in business doing lots of things wrong if one gets a few key things right. Mistakes have a way of catching up to you eventually, though. I think Snell is right to look for leading indicators.

At D8:

Jobs first notes that Apple, by supporting HTML5, supports a completely open platform.

Ah, yes, they still offer developers the sweet solution.

At the iPhone OS 4.0 launch event, Steve Jobs had every opportunity to bat down the other major competitive claim Android has over the iPhone OS: the fact that third-party iPhone app development isn’t “open.” Instead, Jobs went on a rant about porn being available on Android and not on the iPhone.

I can’t tell you how disappointing that moment was for me. Perhaps Jobs believes what he said, but it’s a ridiculous claim. Setting aside the issue that people should really make decisions for themselves about what they want to do with their devices, and that the iPhone OS has parental controls that could be used to block adult content from appearing on kids’ devices, Jobs’ statement was also completely counterfactual.

He also wasn’t candid about the secret reasons that Apple rejects apps, insinuating that developers don’t follow the rules and lie about it. Much of the controversy over the App Store is due to Apple not sticking with the rules that it laid down. The developer agreement doesn’t forbid having a better mail app, better voice mail, or a better photo frame, and yet Apple found reasons to block them. It’s unfortunate that Mossberg and Swisher let Jobs spin so much. Why have a live interview if you won’t follow up to make sure that your questions are answered? I get that they want him to attend D9, but the value of a rare exclusive interview is lessened when the subject just repeats what’s already been said elsewhere. The truck analogy was clever, though.

Briefs Rejected From the App Store

Rob Rhyne:

The gentleman on the phone was courteous and polite, but his message was blunt. While I had not been officially rejected (at least, not yet), he asked me some questions and hoped to manage my expectations. Based on the information available to him, the reviewers believed Briefs contained a non-Apple interpreter and the first team initially rejected it for non-compliance with section 3.3.2 of the iPhone Developer Agreement.

Briefs hasn’t actually been rejected yet, but then neither has Google Voice, which Apple “continues to study.”

In other words, I use a public API provided and documented by Apple to load the brief into memory from a network connection. When reading a brief from local storage, I use the + dictionaryWithContentsOfFile: method built into NSDictionary. Also public, documented and provided by Apple.

By all accounts, Rhyne has written a great app that would be an asset to the platform. However, his “public API” argument is meaningless. The point of the revisions to the developer agreement was to exclude applications that used non-approved languages via approved means. Briefs clearly has its own language. The app contains an interpreter. The fact that the code is semi-compiled and loaded as a dictionary rather than a string is irrelevant. It would not be a stretch to say that apps using XML also contain interpreters. Code and data are equivalent. Sections 3.3.1 and 3.3.2 effectively ban standard computer science and engineering techniques.

A Services Menu for iPhone

Chris Clark:

Every app with a text field should be able to email, tweet, blog, print, transmute, translate, and read aloud the current selection. Every app with an image view should be able to rotate, crop, set as wallpaper, save to Dropbox, post to Flickr, and upload to an SFTP server. Of course no single developer should add all these features to their application—we have a word for software like that—so a more elegant solution is called for.