Last December I wrote that upgrading my iPhone to firmware 1.1.2 was not such a great idea. The reason was simple, the update made it impossible to control my iPhone from the harman/kardon drive+play device installed in my car. Since the next firmware update didn’t fix the problem, I started to think that I would have to give up on my beloved gadget since it pre-dated the iPhone and therefore could not be expected to properly work with it.
I am happy to report that my fears were totally unfounded. Apple fixed the problem with the release of firmware 1.1.4. I can now once again control the music playback from the drive+play wheel controller and the information appears correctly on the display, as expected. I am really relieved because I had been looking for alternative solutions and so far haven’t found a good solution that supports the iPhone, eliminating all GSM interference and supporting hands free conversations. Now that my current solution works again I can wait patiently for a better solution to get to market.
I have also learned that the problem was no limited to harman/kardon’s device. I have a friend who uses a completely different solution to play back music from the iPhone in his car and he had faced similar problems.
I love Java. A large part of my success as a software developer over the last decade is due to the fact that I was an early Java adopter. Java also allowed me to grow professionally and become a Software IT Architect at IBM. Over the years I have written many J2EE web apps, some J2SE applications and even one Java2ME program for a Sony-Ericsson handset. The fact is that I am totally convinced by the many benefits of Java and I do not feel attracted by any other language to write enterprise web applications. But seriously, Java for the iPhone? Why?
On the server, J2EE is extremely appealing because it is an open, scalable, secure technology that allows developers to create complex solutions. If you plan to integrate all kind of legacy systems or develop true robust distributed systems Java simply has no competition.
On the desktop, the situation is quite different. Sun Microsystems tried to create a platform that would allow developers to create applications that would work on any OS. Their first attempt at providing a common GUI was the AWT. It was a complete failure because it only allowed to use controls common to all existing platforms. Complex controls such as trees or tables could not be used because even if they existed on Windows or the Mac, they were not available on other OSes such as QNX. The second attempt, an API usually known as Swing (or JFC) tried to solve the problem by avoiding native widgets altogether. Instead, each component was drawn in Java, bypassing the OS. This move allowed Sun to support complex controls on any OS. However, the first release of Swing was painfully slow and a memory hog. As a result, most developers have avoided the technology despite Sun’s efforts to improve it in subsequent releases. The problem is that every time the Look and Feel of an OS is updated, Swing needs to be updated also, to ensure that widgets are drawn properly. IBM proposed a better solution, called SWT, used in Eclipse and many other Java applications. Instead of hand drawing all controls, SWT uses native controls when available and draws them manually as a last resort. The result is a more efficient API that produces much better results. Even so, users normally can quickly spot Java desktop apps because they simply do not look native. This is specially true on the Mac. While PC users seem to have no problem at all using Java applications such as Azureus, Mac users seem to prefer non Java alternatives such as XTorrent or Transmission. To make a long story short, those who designed the Java strategy for fat clients assumed that all GUI were similar and that any differences were merely cosmetic. It was a terrible assumption that was made well before Apple migrated from OS 9 to OS X (which makes heavy use of transparency and animations) by people who could not envision how technologies such as hardware accelerated graphics would impact GUIs. The result is that very few still consider Java as a viable option for creating desktop applications.
On a phone, the situation is even worse. Developers don’t really know what to expect from a Java capable phone. There isn’t much standardization and capabilities vary significantly from one phone to another. The main benefit of Java2ME on a cell phone is that it makes migrating applications from one cell phone to another relatively easy. This is specially true for mobile games that do not require a standard user interface and where all the display is handled by Open GL.
The iPhone is a device that lies somewhere between a computer and a phone. It has an amazing user interface that users expect applications to fully embrace. Java currently does not offer any solutions to work effectively with that aspect of the device. However, Java could still prove useful to help quickly migrate all those games written for other handsets to the iPhone. Is this important for Apple and iPhone customers? I doubt it. With over 100,000 SDKs downloaded in just over four days, it seems that the iPhone will not lack native software (including games). The announcement made by Sun that it plans to make Java available for the iPhone is mainly targeted at existing J2ME developers. The company run by Jonathan Schwartz wants to open a new market for their software development partners to prove the value of J2ME by making it easy to sell old content on a new platform.
Until now, only large companies could negotiate with telcos to get their content on the carrier’s phones. The margins were razor thin and to make any money you needed to get your content on millions of phones. Supporting multiple brands of handsets was a necessity and in that context, Java was a blessing. The announced App Store is leveling the playing field. Now everyone can sell mobile apps. With 70% of the price of the software going straight to the developer, it makes sense to develop applications specifically for the iPhone.
On March 6th, Apple invited mostly large companies to show the software they were working on at the iPhone software roadmap event. However, you will see that by late June, when Apple releases version 2.0 of the iPhone firmware, most of the applications available through the App Store will come from passionate independent developers that will try to get out the most out of the device, not companies trying to obtain incremental revenue from something written years ago. In fact I predict that many large companies specialized in developing software for mobile phones will find it difficult, at least at the beginning, to compete against many of the enthusiasts who will create innovative solutions at home during their spare time.
I abandoned Java on the desktop for Objective-C years ago because Cocoa allowed me to get the most out of the Macintosh platform. The same applies to the iPhone. Objective-C is similar to Java in many ways. What makes the difference is Cocoa touch which is a great development framework and allows to get to the guts of the iPhone without compromises. That is why I personally don’t care if Sun releases a Java SDK for the iPhone or not. I am quite sure most of those 100,000 developers who have downloaded the SDK agree with me.
At MacWorld 2008, Steve Jobs made some important announcements. One of the new products he introduced was Time Capsule. Today that product finally became available, just in time to match the announced product availability date (end of February).
What is really weird for us old timer Apple followers is that in timeframe between MacWorld and the launch of Time Capsule, many new Apple products that were not announced at the expo have also be released. In fact the list is quite long and includes many major launches such as Aperture 2.0 new Mac Books and Mac Book Pros, and a new 16GB iPhone to name a few.
It is clear that Apple has decided to launch new products as they become available and not wait for events such as WWDC or MacWorld expo to announce them. This makes a lot of business sense, as conventions have become a thing of the past and increased competition does not allow for product launch delays that may give competitors an edge.
I am not really sure how this will impact WWDC though. This is a very special event that is crucial to Apple success. It is imperative for them to demonstrate year over year increased attendance and without the buzz of new product releases and no new OS version in sight, this is probably a difficult task for the organizers. That is why I am quite certain that this year crowd drawer will be the iPhone SDK. We may see some preview of the SDK next week along with some nifty demo applications at Apple’s roadmap event but it is clear that both the full SDK and the enterprise features mentioned on the invitation will not be available immediately. This meeting will probably be an opportunity for Apple to apologize for the delay while demonstrating solid progress. It will also be a great occasion to announce the dates of WWDC and generate hype for the event.
When Steve Jobs announced the iPhone, he said that Apple expected to sell 10 million units by the end of 2008. By January 2007 Apple had already sold 40% of its self imposed goal. So, why are analysts increasingly doubtful that Apple will be successful?
On the surface it seems that Apple has been very successful in the U.S. Market data shows that right now Apple is the number 2 smartphone maker, just behind RIM (the makers of the Blackberry phones). However, in Europe initial numbers aren’t as impressive. In France, for example, Orange sold 90,000 units in December, short of their 100,000 target. All in all, only between 300,000 and 400,000 were sold in Europe. Analysts also expected Apple to sign deals in more European counties. Europe is much more than just the UK, Germany and France. The EU has a population of nearly 500 million and those three countries represent just over 41% of the total. This number clearly shows that Apple still has much work to do in Europe if they really want to be successful on that continent.
However, we all know that these numbers are clearly wrong. Since AT&T claims to have activated only slightly over 2 millions iPhones, that leaves about 1.3 million devices unaccounted for which have been very likely activated on cellular networks not approved by Apple (some in the U.S. but most overseas). We already know for example that about 400,000 iPhones are in use in China. That means that the iPhone is not as successful in the U.S. as Apple would like us to believe. It also means that about 30% of all iPhones are sold to customers who would not buy the device if it couldn’t be unlocked.
Until now, Apple has been very active fighting the grey market. In November they released firmware 1.1.2. It broke all known exploits but the enhanced security could still be circumvented through the use of a Turbo SIM (which was relatively expensive and hard to obtain). On January 15, Apple released firmware 1.1.3 which plugged that hole. In my experience, Apple was very successful slowing down the gray market during the second half of Q4 and they must have felt the results on their balance sheet. Now that Zibri has released an easy to use tool to unlock the iPhone, gray market sales are soaring again (based on anecdotal evidence observed in Mexico and other LA countries).
If we consider that the iPhone has been available for six months, that means that Apple has achieved weekly sales of approximately 190,000 a week, with 57,000 units going to the gray market. By improving their device security, Apple has lost at least eight weeks of gray market sales which accounts to more than 225,000 units. If Apple were able to produce an unlock-able device by early March, they would lose the opportunity of selling 2,500,000 units during 2008. Can Apple reach their goal of selling 10 million units by December 2008 without the help of the gray market? Maybe, but not just by maintaining their current course. Apple would have to significantly increase legal sales to compensate for that loss. The easiest way to achieve that result is by lowering unit prices as some recent rumors have been pointing to, but that would seriously harm the company margins and investors wouldn’t be pleased. There must be some serious debate inside Apple going on as to what their attitude toward this market should be.
The real question though is wether Apple will be scared enough by the prospect of not achieving their stated goal to tolerate the gray market or if they will continue cracking down on hackers, presumably with the release of firmware 1.1.4 which is expected to support third-party applications and was expected before the end of February.
My opinion is that Apple has no choice and will have to continue plugging the iPhone security holes in order to try to make the iPhone impenetrable. The reason is simple and has nothing to do with AT&T. If the iPhone can easily be hacked, it won’t be long before the cripto key used to digitally sign applications is found and everyone can start creating iPhone homebrew applications, defeating the whole purpose of signing applications. That is something that Apple has to avoid by any means if they are serious about security (or if they plan on making money by selling apps through the iTunes store, which is much more likely). That means that a price cut will come along the release of firmware version 1.1.4.
Meanwhile, each week that goes by with no firmware update Zibri can be credited with the sale of an additional 57,000 iPhones. That probably means that there isn’t much pressure on Apple engineers to release the SDK as planned and that a delay of a couple of months (say until WWDC) could have some nice side effects like increased unit sales with healthy margins and renewed interest for their developer’s conference. But then, I am sure that Apple will claim that they needed the additional time to polish their code.
[updated on February 26th: Apple has just released firmware 1.1.4. This new release doesn’t seem to break unlock phones and ZiPhone seems to work fine, although some additional tweaking will be required in order to tune the tool for 1.1.4. Is this an indication that Apple is willing to compromise in order to achieve its sales target? Maybe, we will see.]