Yesterday Apple announced the App Store for the Mac OS X Lion operating system, which will be released mid-2011. You probably know the App Store from the iPhone, iPod or the iPad. It’s a really cool way to install Apps. From a developer point of view it’s also interesting because a huge amount of the marketing for an App is done by the App Store for you.
For me as an Eclipse developer the first thing that came to my mind while watching yesterday’s Apple keynote was, “It would be so cool if I could install Eclipse or RCP-based Apps directly on my Mac with the App Store.” We know that in the past Apple hasn’t been very open to Java-based applications. But, since then, they have given up their strange licensing policy and allow Apps to be written in other technologies.
As a result of this, it should be possible to ship Java-based applications with the App Store. Of course, this is just my opinion and we have to make sure that Apple will allow it. But, if it’s allowed, this should be the last big hurdle before we can investigate the App Store for Eclipse and RCP-based Apps. Imagine: installing, auto updating, user reviews, marketing and ratings all under one hood. If we do this right, it could create a synergistic relationship between the App Store and the Eclipse Marketplace. For example, promote once and your application could show up on the Marketplace and the App Store.
So, it can’t be too early to start looking at the possibilities. I opened an Eclipse Bug to support the Mac App Store. Maybe you’re interested in this topic and want to help make it real. The bug id is 328317.
Over the last couple of days, Jordi and I played a little with the Eclipse RAP protocol. We decided to develop a Cocoa Touch client for RAP using the iAd JavaScript library. You can see how it looks in this YouTube video.
Here’s a brief explanation of what’s in the video. We developed a new bundle which contains the iAd JavaScript library. Basically, iAd brings Cocoa Touch widgets into the browser, and we’ve written handlers that create widgets based on this JavaScript library. We could then start a simple RAP application with the iAd bundle and access it with Safari.
The result is just awesome. You can write your UI completely with SWT on the server side and access it with the iPad/iPhone/iPod or with just a webkit based browser. The UI experience feels just like native Cocoa Touch. Eclipse RAP and the RAP protocol makes it possible . Please note that this is just a prototype and not yet available for download. But you can check out the RAP protocol using git and develop your own client representation.
So, I broke down and got an iPhone recently… which has been great… except if you want to write your own applications on it… that are Java-based… and run on top of OSGi. How do we fix this problem? Well, first, we need to jailbreak the iPhone. Once that is done, we can install OpenSSH onto the iPhone and have the ability to use the excellent Remote System Explorer (RSE) from the Ganymede release train:
RSE allows us to effectively edit files on the iPhone, easily transfer things and also provides a nice familiar terminal to interact with the iPhone. So now that we can move files, move a copy of Equinox (org.eclipse.osgi) over to the iPhone. Also make sure that you have a copy of JamVM on the iPhone otherwise we can’t launch Equinox. So once we have JamVM and Equinox on the iPhone, you can launch Equinox in console mode:
Cool huh? After a bit of hacking, I was also able to create a package for the Cydia installer so I get a fancy Equinox application on my iPhone:
So, after some work, it’s possible to get a bare-bones OSGi framework running on an iPhone. I plan on doing some more hacking… like figuring out if I can get the Rich Ajax Platform (RAP) project running on the iPhone. If I do, I’ll blog more. There’s also some Java/Objective-C bindings out there to interact with the iPhone’s graphics capabilities. If you’re interested in collaborating, feel free to comment on this blog post.
We are a team of dedicated project leads, committers and enthusiasts who have developed innovative training, products and solutions for people working with the Eclipse runtime stack.
If you need to move forward quickly with the Indigo release, or maintain older releases for a longer period, we can help you develop and implement an optimized migration strategy.