WWDC wrap-up

It’s been a pretty amazing week for me here in San Francisco, attending WWDC 2013. This is my first time at the conference (and my first time in San Francisco, or the US for that matter), and I’ve really had an incredible time meeting some great people and experiencing some of the energy here.

There were basically two main parts to the conference – sessions on new features in iOS 7 and OS X Mavericks, and the labs in which developers have the opportunity to sit down with people from various engineering teams within Apple. My primary focus of course was on WebKit, as this is main the part of iOS that UX Write is built on. I had the opportunity to talk with some of the team about new features that have been introduced, and work through a few issues I encountered – which has been extremely valuable.

WWDC - Keynote Lineup

Much of what was covered during the conference is subject to a confidentiality agreement that all developers are required to comply with, so unfortunately I can’t give details about the new features other than what was discussed in the keynote. The session videos and all new documentation & SDKs are, however, available to all registered Apple developers (and, presumably, NSA contractors). What I will say is that there are some very exciting capabilities coming in iOS 7 that are going to enable me to provide certain features in UX Write that I haven’t previously been able to, and I’m very much looking forward to taking advantage of these. Once iOS 7 is out, all future updates to UX Write will depend on it, so at that point you’ll need to have it installed (iOS 7 will run on iPad 2 and later, as well as iPhone 4 and later).

The atmosphere was electric

Take 5000 developers from all around the world, 1000 people from Apple, and put them together for a week, and it’s not hard to predict that there’s going to be a very large number of great conversations and exchange of ideas. This is where it all happens – it’s the center of the Apple universe. The success of the iPhone and iPad is as much due to third-party developers as it is due to Apple themselves. This is the only time of year where both get together on such a massive scale. And I don’t think I’ve ever seen so much aluminium in one place before.

WWDC - 30 mins before the keynote

The labs were invaluable

By far the best part of the conference was the labs held each day, where you could talk with engineers from various teams about any questions or issues you had about features of iOS that relate to your app. Most of my lab time was spent with the Xcode and WebKit teams. When you find a bug and are trying to track it down, it’s great to be able to get in touch with the person who works on that part of the OS and have them go into the debugger with your program, and say “ok, I think I can see what’s happening here. You can work around it for now by doing X, and I’ll put this in our bug tracking system”.

I also had some questions about a new feature in WebKit that I’m going to be using, and it was incredibly valuable to sit down and get advice on best practice for using it directly from the people who implemented it. You simply can’t get that kind of thing anywhere else.

Pirated copies of UX Write are no longer in the App Store

It took a flight to the US, a meeting with two people from the app store team, and a very unambiguous demonstration of both the original and rip-off versions of UX Write (including the crash in the latter when you change the text colour, the “UX Write has crashed” screen, and the crash log that it sends to my email address) to convince them, but the problem has finally been dealt with. Now the only version of UX Write you can buy on the App Store is the one which is actually going to be updated with a ton of new features over the coming year and beyond.

I’ve also made some suggestions about how these problems could be avoided in the future, using a very straightforward O(n log m) algorithm in which the hash of each of the n files in a new submission is checked against a database of hashes for each of the m files from every version of every app previously submitted. From there, it would be necessary to filter out known common, publicly-available files (such as resource files from SDKs and open source libraries), and then flagging any app with remaining matches for manual inspection. It would likely be necessary to throw a fair bit of hardware at this, but I can’t imagine it being particularly difficult to implement.

I think they get it now, and I’m really hoping to see something along these lines put in place, because I think it’s very important for the credibility of the app store as a reliable and trustworthy marketplace for both app developers and customers.

My laptop died on Thursday morning

Half-way through WWDC, when you’ve spent the past day or two writing prototype code and test cases to discuss with engineers in the labs, is quite possibly the worst imaginable time to lose an SSD. In my particular case it was an OCZ Octane S2 drive that went, and I believe the failure came about due to either a firmware update I had to install on Monday night so I could upgrade to Mountain Lion, or a compatibility issue between Mountain Lion and the drive’s firmware itself. OCZ’s mac support is laughably bad.

I could have gotten a replacement drive installed, but it looked like that was going to take a few days to organise – time that I simply didn’t have. The situation I was in meant I absolutely had to have a working machine to make the most out of my time in the labs, plus some meetings I have lined up with a number of companies next week. So I bit the bullet and decided to just walk a couple of blocks away to the Apple store and buy a new machine.

I’m now the proud owner of a brand-new 2.8 Ghz quad-core retina Macbook Pro with 16Gb of RAM and 3/4 of a terabyte of (Apple-supported) SSD storage. It was a very expensive day to say the least, but my old laptop was about due for an upgrade anyway, and I’m very happy with the performance of the new machine.

WWDC - New Macbook Pro

There were some great networking opportunities

One of the things I want to do with UX Write in the future is to improve integration with other apps – in particular those which provide complimentary functionality, such as diagram editing (OmniGraffle), text manipulation (TextExpander), and online storage & collaboration (Box). It’s kind of difficult getting data between apps on iOS, since unlike on other platforms this requires explicit cooperation between app developers. I’ve already been doing some of this with Box and Texpad, and met with people involved with both OmniGraffle and TextExpander and I hope to get some some integration happening with both of these great apps.

Everyone loved UX Write

I demoed the app to quite a few people, and had some really encouraging responses. Many were previously unaware of the app – building awareness has been perhaps the biggest challenge for me – but once they saw it they thought it was very cool.

UX Write of course isn’t perfect yet (what software is?), and there’s still a lot of work to be done on advanced features like change tracking, EPUB export, page layout, file management etc. So if you’ve had issues with these, I don’t want you to read the above paragraph as me thinking the app is “done” – it’s still very much a work in progress. But things are looking very good, and I’m feeling pretty confident about the future as I continue to work through my roadmap.

Microsoft released Office for the iPhone

This was one of the biggest pieces of news (or perhaps non-news) to hit iOS in a long time. After 5 years of it being possible to create third-party apps for the iPhone, Microsoft finally achieved the goal of bringing Office to the platform. I tried it out, and perhaps the most amazing thing about it is how spectacularly bad it is.

I don’t usually criticise the competition, but I’m going to make a special case here, specifically due to the incredibly high ratio of brand recognition to actual product quality involved. To be clear, this is absolutely nothing like the Office you’re used to on your PC or Mac, and in fact I really consider it misleading to even use the name “Office” for an app like this. The iPhone version of Word has roughly the same level of functionality as what I remember being present in Wordpad back in the Windows 95 days.

Someone I know at Microsoft has told me there’s an iPad version due out around a couple of months from now. I don’t know any more details, but I’d be very surprised if it provided the full functionality that’s available on the version for the Surface.

San Francisco has an awesome music scene

Would a visit to America still qualify as valid if it didn’t include attending at least one or two live blues performances?

I don’t think so.

Cafe R&B

What I hope to get from WWDC

So I’ve just arrived in San Francisco for WWDC. This is my first time here, and in fact my first trip to the US, and I’m really excited about the conference. Primarily I’m here for networking – I see it as a great opportunity to meet with other developers and chat about our experiences and ideas.

Here are the main things I’m hoping to get out of the conference:

  • They keynote, of course! I’ll be very interested to see what’s announced with iOS 7. There’s the much-rumoured new interface design from Jony Ive of course, but I’m also hoping to see some improvements under-the-hood which make it easier for developing content creation apps. My #1 wish in this area would be a user-visible filesystem which allows you to organise documents by project rather than by application. I’m not holding my breath for this, but a man can dream…
  • Learning from other developers about their experiences with marketing apps – what works, and what doesn’t. To be honest, the development part of this project has been the easiest aspect (a huge amount of work, but comparatively easy). The marketing part has been really hard. It’s an unfortunate fact of life that the success of technology products has more to do with marketing than their actual features or quality. I think this is something a lot of us struggle with, but I’m sure there’ll be plenty I can learn from the experiences of others.
  • Finding other developers to collaborate on an open source file synchronization framework. This is one of the most time-consuming parts of developing a content creation app, particularly given that each different service such as Dropbox, Box, Google Drive etc. has a separate API, so you have to implement each individually. I’d like to put together a framework which takes care of all this stuff for you, so you can just plug it into your app and easily sync with all of these services. I’m sure there are many others who have struggled with this, and I think if we work together we can come up with something that benefits app developers, users, and storage services by abstracting away all the boring plumbing stuff.
  • Identifying opportunities to have UX Write tie in with other apps that provide complementary functionality, as I’ve already been doing with Texpad and Box. I’m focusing specifically on word processing with UX Write, but there’s a number of other types of apps (such as drawing programs, mind-mapping tools, and outline editors) that I’d love to make UX Write work with.
  • And finally, the sessions. These are actually last on my list because I’ve already got access to Apple’s excellent documentation and they are also making the videos available for developers who missed the two-minute registration window for the conference. But it will nonetheless be good to hear directly from Apple engineers about advice on making the most of the platform. In particular, I’m keen to get a better understanding of localisation, as one of my main priorities right now is improving support for a wider range of languages in UX Write.

Given the immense concentration of tech companies in the valley (far more than anywhere in Australia), it’s also a good opportunity to meet with other companies working in the area of mobile and online services, and I have several meetings lined up that I’m hopeful could lead to some useful collaborations in the future.