Apple Financial Results Q3 2010

Little infographic for you; executive summary - the iPad in its first quarter of sales accounts for almost twice as much revenue as all desktop Mac sales.

Puts the future in perspective, don't you think?

Taken from Apple's financial results PDF.

Retina Display Update

By now, most developers have got their hands on iPhone 4 and run their old iPhone apps on it. And I'd like to think that they, like me, are appalled at how terrible they look on the new Retina Display. The screen is just so amazingly sharp and vibrant that your artwork will look like crap unless you get it redone.

Cue the sound of a hundred thousand developers' voices suddenly crying out in terror.

Why? Updating your artwork for the Retina Display is a time consuming and expensive process. iPhone artwork often costs thousands of dollars to produce in the first place, and if you have to go back to your artist to get it all redone (possibly from scratch, if they didn't think to design with vector shapes) then you're looking at a significant cost just to get your app to a passable visual state on the iPhone 4.

Those with in-house designers are at an advantage here, but for those of us who work alone it could well be a nightmare.

My plan is to have Retina-Display-ready app updates as soon as possible. I have already redone all the artwork for SameGame myself (and it looks stunning, to be honest), and Grace and Speed will follow with minor updates (in that order). Lights Off will require huge effort, so as of right now I'm not promising any release dates (just as with the Universal update, there's too much going into it to give a timeframe). Hopefully you'll start to see the others soon enough.

For those developers who haven't yet seen their app running on a Retina Display, start freaking out right about now. If you think you can get away with not redoing your art, you are sorely mistaken. :-)

PS: That Retina Display is like nothing I've ever seen. It changes the way you view computer screens forever. You can never unsee pixels on other displays again.

Labor of Love

I have downloaded (and paid for) a lot of $2.00 programs that are just amazing. It’s not that you couldn’t make these on the PC, it’s just that people would scream that it should be free. And as a developer, I can tell you, I won’t spend time making stuff "for free" when I could be spending that time with my kids unless it’s a labor of love. As a result, a lot of cool little programs are being made because developers can actually get paid for making cool stuff.

Brad Wardell, CEO/founder of Stardock (a long-time Windows development house), on the iPad as a threat to Windows.

Thoughts on Flash on Froyo / iPhone Safari Plug-In SDK

Some initial observations regarding my first twelve hours with the Flash 10.1 beta on the Nexus One:

Flash scrapes a pass in the performance test. Videos can be choppy at first, but after a little while they seem to play smoothly enough.

Flash utterly fails the UI test; forget any video playback controls on any Flash video you plan on watching. Tested it with the Engadget Show live last night and was unable to change the volume, also tested with some Zero Punctuation reviews and similar problem. It appears that Flash renders at the Nexus One's native resolution (480x800) which means the playback bar on virtually any Flash video is so tiny it's unusable. There's no automatic fullscreen mode when you double-tap a Flash context like some of the earlier demo videos mentioned, but the 'fullscreen' button on many Flash video players work fine (of course, Flash contexts that handle double-taps themselves to go fullscreen work fine).

Photograph here with SD card for comparison; you can't pinch-zoom in fullscreen mode, so how on earth are you ever expected to press any of the controls? This is worsened by the fact that Android phones' touch sensors aren't the most accurate either.

I can't give comments on battery life one way or another. The Nexus One's battery life is poor by default, but after watching a short Flash video or two I left the phone (in sleep mode) on my desk overnight; the battery was dead by the time I woke up.

Overall, for Flash to work on mobile devices virtually every Flash video site is going to have to redesign their Flash video player to support touchscreens. They may also have to re-encode all their videos for best performance (Flash keeps popping up 'This video is not optimized for mobile').

That being said, with the web as it is today, I don't see how Apple can ignore Flash for much longer unless there's significant movement to HTML5, which offers less features and generally performs worse than Flash, in the next year. To be honest, I don't see that happening; the pace of the web is glacial, at best, even when Apple is trying to force peoples' hands. It's really nice to be able to go to a website and not have to worry about whether it uses Flash or not; before this, I'd have to get a laptop out if a site demanded it. I don't think that's where Apple wants the iPhone or iPad to be, and I think the egos on both sides have done enough damage.

The Solution

I think Apple should put together a Safari Plug-in SDK for iPhone OS, and let developers decide. It's no more difficult to create a Safari plugin for iPhone than it is for the Mac, and Apple can sandbox them as much as they like, run them in a separate process and use IOSurface to draw them in a web view. Let the plug-ins access the same APIs that App Developers can, and let any developer submit them to the App Store. Why should Adobe get special privileges? Why can't Engadget, say, write an iPhone plugin that adds additional interactivity to their website when viewed on an iPhoneOS device? Should we wait for the web to catch up, or should we make something great using native code?

To prove a point, I have sample iPhone Safari plug-in source code available from my GitHub. You can test it in the Simulator, or you can test it on a jailbroken device. Make something amazing with it, and give Apple a reason to give us a plug-in SDK.

Update

I posted a video on Vimeo showing part of Lights Off running as an iPad Safari plug-in, just to give a concrete example:

'Open'

If you're going to have a curated experience, isn't it better to at least have one where the curator is making their decisions primarily around the quality of your experience?

Jeff LaMarche on Android and openness. I fully agree.

The worst part of all this talk on 'open' is that the Android source code Google provides isn't the complete source code, and doesn't include any of the Google portions like Maps, Gmail, etc. To get those, you have to pay a lot of money to get an Android license from Google.

There's no less lock-in with Android than there is with iPhone, the only difference is you can install any app you want without paying extra. You still have to root your Android device (/jailbreak) to do anything interesting. Pay Apple's yearly $99 license, and you also get the ability to install any app you want without using the App Store (among many other benefits). You're trading one walled garden for another, except Google doesn't have any design or UX sense.

Very interested to see how Google's all-out assault on Apple this week will affect Apple's plans for 2010 and beyond. Google doesn't seem content without trying to oust Apple from every market they have (except the Mac). This is war.

Karma, Baby

Although Google launched the Nexus One with grand plans to radically change the way consumers purchased phones and service, it looks like the experiment has fizzled to an end -- the company just announced that will eventually stop selling handsets online…

Google's flagship 'superphone' a complete flop, carriers rejecting it left right and centre, and now Google halting online sales. I love news days like these.

Via Engadget

Pixel Doubling

Public Service Announcement for Developers writing iPhone apps that are not Universal; if you use UIImageView to draw your UI elements, and create your art at double size (pixel size, not DPI), it will render at its native resolution on iPad.

This way you can provide an iPhone app that's not specifically compatible with iPad yet doesn't render horribly when pixel doubled on the iPad.

I'm guessing this trick will also position you well for any future iPhone with a higher resolution screen that may or may not be announced next month.

As you can see below, when run at 2x on the iPad, the artwork remains crisp (naturally at the cost of larger file sizes for images).

Update:

Just to clarify, using a 2x image will use 4x the RAM as a normal image; it's up to you to figure out how the performance affects your application. Also, I haven't yet looked into a way of drawing text at the higher resolution (rendering the text to an image and using that is a possibility, but I wouldn't recommend something that clunky).

The Future of HTML

From Wikipedia:

The first web browser, WorldWideWeb, was developed on the Nextstep platform. Some features and keyboard shortcuts now commonly found in web browsers can be traced to Nextstep conventions.

The basic layout options of HTML 1.0 and 2.0 are attributable to those features available in NeXT's Text class

Makes you wonder, if the NEXTSTEP APIs directly influenced the web (history lesson: NEXTSTEP was the OS that became Mac OS X), how much of the future of the web will directly be based on the technology and design patterns used in the iPhone OS?

You laugh, but a lot of HTML5 (canvas, css animation) already comes directly from the Mac OS X APIs, where they were implemented first.

Food for thought.

Related reading: Joe Hewitt's thoughts on the state of the web

Jailbroken iPad Gets Mouse Support

Now all I need is Photoshop.

Via Sebastiaan de With.

Grace Support Blog Launched

Lisa has launched a new blog to directly support all the users of Grace, answer their questions, and provide a lot more background information about the project.

I wholeheartedly recommend anyone with questions or comments to check it out and get in touch. I merely handle the technical questions here, and my e-mail address is readily available on my main website.

3. Why is the Picture vocabulary on the App so Simple/Complex?

The pictures chosen were the absolute minimum required to create good sentences without the need for much scrolling or searching. There are much more complex apps for people with a sophisticated vocabulary out there already so we didn't need to go there.

I was also determined that the app would work in real time on the simplest and oldest devices - without any delay. So you press it and it appears. This was to make it as accessible as possible for people who might have an older phone or for first time users.

If you're not involved with children with special needs, and have old iPhones or iPod touches you'd like to donate to Autism Ireland to help support them, there are details on the site too.

iPad + iPhone's Clock app

Did a little experimenting this evening which brought some amusing and useful results, so I've been asked to share: The iPhone 'Clock' application can be made run on iPad (for the most part) and it scales up pretty well. It runs perfectly fine in the SDK sandbox and it also is capable of setting system alarms (and the alarms can run in the background, as you do on your phone). Naturally this is pretty useful, as I don't believe there is any way to set wake-up alarms on iPad right now without this. Considering I'm using iPad for everything now, I think an alarm ability might be of use! THE STEPS 0: Be a paid developer in the iPhone Developer Program (prerequisite, you can't do this any other way) 1: Find a copy of the iPhone 3GS version of Clock (MobileTimer.app) for 3.1 or so (I've tested it back to 3.0, the 3.0 version works but the Stopwatch tab crashes) 2: Edit the Info.plist in the application to add the array key 'UIDeviceFamily', with two sub items '1' and '2' 3: Codesign the MobileTimer application (I use Terminal manually, Erica Sadun has a script that works too) 4: Drag and drop your newly-signed app to the Applications list for your iPad in the Xcode Organizer 5: Run the MobileTimer application on your iPad You'll notice that it only runs in portait mode, which is a bummer. I'm sure you could fix this with some clever editing of the binary but I can't be bothered. The Timer tab doesn't quite work at all, so pretend it doesn't exist. You'll most likely also want to provide your own Default.png images or you'll have a horrible blurry splash screen. Have fun! Update: The alarm time picker will refuse to show unless you omit step 2. Omitting step 2 makes the app run as an iPhone app (i.e. not fullscreen) but enables all functionality across all tabs. However, alarms you set in mini-mode will persist so if you need to you can pre-set all your alarms beforehand in that mode, and in the big mode only enable the alarms when you need them. Make sense? Screenies:

One for the Humor Tag

A day or so after submitting the universal (iPad) version of Speed to the review team, I received a curious email back. The reviewer had elected to reject the update because they couldn't make the 'no GPS lock' flashing icon go away on their test iPad. After getting over the initial irritation, I realized what had happened: the reviewer had ignored the description and tested this on a device with no GPS that was most likely indoors chained to a desk. I sent off a snarky response and re-uploaded the same binary hoping they'd see their mistake. Hopefully it will be reviewed in time for launch day, but it isn't that important as a GPS-equipped iPad won't be released for another month anyway. This also highlights an oversight in the supported devices options I get to choose when submitting: because the app is marked as working on all devices (as Apple suggested back at WWDC last year, suggesting external GPS units would come to iPod) I'm not allowed release an update that specifically requires GPS. Oh well, just thought I'd share :-) if Apple rejects the update again I'll just add in some UI that bitches at you if you don't actually have a GPS lock in time.

Death Knell for PowerPC

As all the news sites are reporting, Sony is about to release an update to the PlayStation 3 that disables the ability to install or run Linux on the PS3 (one of the original features touted at launch). This update is mandatory if you want to continue using the online/multiplayer features of the PS3/

Unsurprisingly there is outrage in the community.

Miguel de Icaza, the man behind Mono and Gnome, states the "JIT compiler for SPUs wouldnt exist without Linux/PS3" and he believes Sony is "putting a bullet [in] PPC innovation/work, one of the few affordable systems for development".

The maintainer of the SPU GCC back end, Andrew Thomas Pinksi, is livid:

"…more than that, the spu gcc backend is no longer going to be maintained by me."

What that means to you non techie folks is that the standard compiler used by all Linux distributions to create software (and Unix and Mac OS X) will no longer fully support the Cell processor, the last remaining credible desktop PowerPC platform. This will kill all interest in using the Cell in any Linux-based PowerPC workstations and seriously makes things look dire for the future of PowerPC.

Already, two major Linux distributions have announced that they're dropping PowerPC support (Fedora and OpenSUSE).

I think this is a travesty and Sony are making a huge mistake here, and it's very sad to see PowerPC having such a public execution. More than this, I'm furious that come April 1st I will have to choose between updating my PS3 so I can play games on it and losing my Linux partition forever, or keeping my Linux partition (in which I've invested quite a lot of effort) at the expense of not being able to play or update games.

State of the iPad

iPad launches in the US next Saturday, and all the iPhone developers out there have by now submitted their applications to be considered for the App Store on launch day. I, like Marco Arment, don't believe I will be running any iPhone apps as-is on iPad, and ergo don't believe you should have to either1:
"But then I saw the pixel-doubled version of my app in the simulator. It sucked, and it was completely unusable by my standards. I don’t think I’ll want to run any pixel-doubled apps on my iPad in practice."
With that in mind, I have submitted Universal updates for Grace, Speed and SameGame which will hopefully be live on launch day so that you have a fully iPad-compatible version at no extra charge when you get your iPad. As-is, they all have pretty much 1:1 feature parity with the iPhone versions. I'm working on some very cool updates to make use of iPad-specific features and UI, but they'll be gestating a little while longer. The great thing about iPad's increase in screen size is that you can design brand new experiences into your apps that were never feasible before, for example two-player on-device multiplayer, and proper car dashboard replacements, etc. I'm really excited about what I'll be able to produce in the coming months.
1. One app you'll notice missing from my initial lineup is Lights Off. To be honest, I'm still figuring out how I can bring Lights Off to the big screen without it sucking, but I'll make sure to keep you up to date. It's something I want to bring to iPad fairly quickly. Also at this time I have no plans to bring Nuker to iPad; it's a more widgety type application and I don't think it would bring anything to the table on iPad.