The Lodsys debacle over the past 2 weeks as really shaken up our little (or not so little) community of iOS developers. The patent itself is now obvious to anyone who has ever done any kind of programming over the past 10 years. The concept of an “Upgrade” button after all is pretty simple. Especially in 2011 where we now have app stores and complex frameworks abstracting the work for us.
Beyond the validity of the patent and wether or not Apple has the right to sub-licence their rights, this case for me is the perfect example of why software patents as they exist today are ridiculous. Now we could argue that software patents should not be possible at all, a position I’m more than willing to agree with, but at the very least, the current 20 years period of protection in the US for a patent makes no sense in the insanely-rapidely evolving world of technology.
When the patent law was drafted in the US, those kinds of periods made sense. It works beautifully for example with the pharmaceutical industry where developing a new drug can take billions of dollars in research. Where it doesn’t work however is when a software developer thinks of a new algorithm to fix his problem. Regardless of how imaginative the solution is, protecting it for 20 years makes no sense on the Web.
This particular case affects me and my clients greatly so I’m obviously eager to see what will happen, but beyond that, I hope this example will be the drop that overflows the bucket and will convince the US congress to re-examine the law. It’s much needed. In fact it was much needed 2 years ago.
Today, Apple announced a new version of the iPhone OS, the software that powers their mobile platforms like the iPhone, the iPod Touch and the newly released iPad (I’ll have my review soon). As part of that announcement, they have released a beta version of the SDK for us developers to play with but so far, the biggest news to come out of this is a little something they added to the license agreement.
John Gruber on Daring Fireball has a couple of post on this. To sum it up, Apple seems to have banned the use of Adobe’s Flash CS5 to iPhone technology or anything similar to that. What Apple has done basically, is force everyone to use their standards and their tools to code on their platform. Anything else is forbidden. That also impacts other tools like the Mono to iPhone stuff that’s also available.
John makes the point that it’s in Apple’s best interest and his arguments are good. I highly recommend you read the article in question but I’m going to go one step further here : I’m actually glad they did it and I think it’s a great thing for everyone involved except of course for Adobe and Flash-only developers. Here’s why.
If the Mac is known for anything, it’s for being a platform where attention to details is important. On OS X, we’ve seen a lot of application succeed because of the look and usability alone. The name “Delicious generation” was used to describe apps like these. Mac users expect apps to not only function well, but to look good, to act like a native app and to work like a native app. As such, the vast majority of apps available on OS X today are apps coded using Apple’s standards.
So what about the iPhone OS then? Well, by forcing people to use Apple’s tools, it forces people to be Mac users to develop for the iPhone platform. By doing so, it at least forces people to have a minimal knowledge of what it’s like to be on that platform. With any luck, that’ll end up improving the quality of apps on available on the App Store. Most people switching to Macs in my experience tend to become addicted to nice Apps anyway even if that was never really a concern before. It’s just part of the Mac mentality I guess.
I can understand why Flash developers are not happy and I can certainly sympathize with them, but I’m glad Apple did this. Let’s face it, Flash apps and Flash sites are not known for their great usability. They are known for flashy animations, terrible performance and for being generally harder to use.
From the start, the iPhone platform has never been an “open platform”. There are other platforms out there that are more open and equally great like Android. This is a closed garden. That comes with big advantages, but it also means you need to conform to the rules if you want to play in it.
I was at diner tonight with a friend and the subject of XBox Live came up. We were wondering if a 3rd friend was online. We both have iPhone and 2 minutes later, I had bought an app to check my Live status. 1 minute later the app was on my dashboard and I was 2$ poorer. I click the icon and I’m presented with a login screen asking for my username and password to XBox Live.
That was my last interaction with the app.
The problem here is not with the developer himself. That’s just the only way he can get access to the data I’m interested in. The subject came back in my mind tonight after seeing the massive number of hacked Twitter accounts as reported by Mashable and many others. We still don’t know for sure how the hackers got access to these accounts, but it looks like at least some might have been due to phising or weak passwords. Regardless of the reason, these two situations really give us a great example of why OAuth is important and why every single service out there need to implement it or at least, implement something similar. For users, giving your username & password to a 3rd party should throw a big red flag and as a service provider, we shouldn’t be asking users to give that away. We should provide them with tools (like OAuth) to allow them to use tools like my XBox Live app without giving the key to the kingdom.
So what’s OAuth you say? I’m just going to quote the official site and say it’s “An open protocol to allow secure API authorization in a simple and standard method from desktop and web applications”.
In a nutshell, it’s a way to give 3rd party applications (web or otherwise) access to your account without giving them your password. What you do is authorize the app once on the service itself (Twitter for example) and from then on, access for this app is only allowed if said app sends the right secret string. The developers of that app cannot access your account in any other ways, they can’t resell your login info and you can cut off the access at any point by editing your account. It’s been working fairly well for Twitter and many others so far.
Libraries are already available for many popular programming languages including C, .NET, PHP, Ruby and more. Once again though, the important thing here is not OAuth itself. That’s just one implementation of a good idea. For a service as big as XBox Live not to have an API accessible through an OAuth-like access is really sad.
Hopefully the end of password-only login is coming to an end.
As both a software and Web developer, I have two very different opinions of Microsoft. On the one hand, Microsoft creates fantastic developer tools like Visual Studio and their .Net platform is quite nice. As a Web developer though, you have IE, a browser used by the vast majority of the world but unfortunately also the least standard compatible browser and a major pain when it comes to coding standard compliant web sites.
For some time now, the folks at the Email Standards Project have been working to help Web developers understand the limitations of the various email clients with regards to HTML rendering. That site is quite useful by the way, but this is not the reason of this blog post.
Today I want to talk about Fix Outlook!, an initiative by the Email Standards Project to convince Microsoft not to use the Word rendering engine to render HTML emails in Outlook for Office 2010. If you’ve ever designed an HTML email campaign for a client, you know how painful it can be to test all the different clients and by the look of it, Outlook 2010 will make it even worse. Go on the Fix Outlook! site and have a look at the same email rendered in Outlook 2000 and Outlook 2010 to understand the extent of the damage. By using Word to render the email, Outlook basically loses most of its CSS support.
What’s sad here is that this isn’t some small piece of unknown shareware, it’s a major new version of a software that will probably be used by tens of not hundreds of millions of users around the world for several years. Just like a new version of Internet Explorer, this new version of Outlook will have a major impact on what’s possible and what’s not possible with HTML emails in the near future.
Please support the Fix Outlook campaign by tweeting. Visit the site for more information. Let’s hope Microsoft will get the message and will use a real HTML rendering engine for its email client.
If only they had such a thing in house…