Showing posts with label Mobile OS. Show all posts
Showing posts with label Mobile OS. Show all posts

Wednesday, 31 August 2011

Porting iOS (iPhone) Apps To Android And Blackberry

Golden Gekko is often asked to extend an iPhone app to other platforms such as Android, Blackberry, Symbian, HTML5, etc.

So, why would they come to us if they’ve already developed an app with someone else? Usually, for one of the following reasons:

a) Current developer lacks skills and experience for other platforms than iOS
b) Unhappy with the existing developer
c) Concerned about the complexity of other platforms due to fragmentation
d) Want a long term development partner that covers all platforms

What is porting?

“Porting is the process of adapting software so that an executable program can be created for a computing environment that is different from the one for which it was originally designed…” and “Software is portable when the cost of porting it to a new platform is less than the cost of writing it from scratch. The lower the cost of porting software, relative to its implementation cost, the more portable it is said to be.” (source: Wikipedia)

In reality there is no such thing as porting from iOS to Android or Blackberry. The development environments are completely different, which means that unless you’ve planned for cross-platform development from the beginning you will have to start from scratch for additional platforms and the cost of pure development will be similar or sometimes higher than the first platform.

So what is the point of this blog?

Even though there is no easy solution to porting, there are lots of tips and tricks that make the process smoother, the cost lower and the app more successful:

1. Adapt existing Use Cases, Wireframes and Designs to the new platform

Even though the code cannot be reused, the overall concept of the app, user journeys, information architecture, designs, etc can. However, you need to make sure that the app is customized for the special attributes of each platform in terms of underlying OS concepts, navigation, screen sizes/resolution, limitations, additional features, etc. If you already have good documentation of the app, we recommend analyzing the deltas and describing the differences compared to the original app, keeping it trackable, so that future changes in the original app will also result in similar changes to the other platforms.

2. Sharing resources such as Copy, language files, graphical assets and media

This is where a lot of long term headaches and savings can be made. By sharing resource files where possible, you only have to update the content once and then automatically propagate to the builds for each of the platforms. Often this involves a scripted conversion step, but setting this up early is of great value for long term savings.

3. Backend communication and integration

If the app communicates with one or multiple backends then the API requests should be the same across platforms. In some cases you should consider developing a middleware that sits between the backends and the apps to avoid having to make changes to multiple apps if there is a change on the backend.

4. Code structure

To make it easier to maintain the code across multiple platforms make sure that you use the same or similar variables, classes, etc as this will save a lot of time for developers to make updates. You might also be able to reuse data structures and algorithms.

5. Preparing for tablets and other devices

Finally it is important to continue to plan for future platforms and devices becoming available. When specifying the new app for Android or Blackberry then also make sure that you consider support for Android Tablets, alternative screen sizes, new Blackberry’s launching, etc. Tablets especially require a modification of graphics, as well as user journeys, to make best use of the extra screen space.

 If you have to reduce cost because of budget constraints you can:
a) Complement the existing app with an HTML5 mobile website - this doesn't replace having an app on the other appstores but is a good way of building a mobile presence across all devices
b) Use a cross platform web runtime solution such as Phonegap for Write Once Run On Multiple (WOROM) - this is always going to be a compromise compared to native apps but can be acceptable in certain cases

In conclusion "porting" or developing for multiple mobile OS is not an easy task but the effort, costs and timelines can be reduced and the result can be very rewarding, if planned and executed properly.

For more about porting to Android also read Techcrunch article "Porting iOS to Android pitfalls and perks"

For more information about how to develop and maintain applications across multiple OS contact us for a call or meeting.

Thursday, 14 April 2011

The mobile OS battle is not over yet


We frequently get told that developing for other platforms than iOS and Android is meaningless. Many declare all other platforms dead. For the last 3 years, we’ve been told that J2ME is dead. But still in 2011, on a worldwide base, there will be more J2ME enabled devices sold than smartphones. People have also been telling us that Blackberry is a dead platform, that Microsoft has zero chance to succeed in mobile, that no one will develop apps for Palm/HP WebOS and that WAC is a failure before it has even had a chance to launch.


We believe it is very dangerous to make statements like this. The industry moves extremely quickly and there are a lot of factors involved. This is why we believe that the mobile OS battle will continue for some time:

1. The operators/carriers don’t want Apple and Google to gain complete dominance
The operator device teams at operators made it clear during conversations at Mobile World Congress that they don’t want Google or Apple to dominate completely. They will continue to back Nokia with the Windows Phone, RIM with Blackberry OS, Limo as the operator partnership and WAC as a cross-platform development platform.

2. Failing is not an option
For RIM, HP and Microsoft failing is not an option. The Blackberry OS made RIM successful and this is what lead HP to acquire Palm WebOS. Microsoft is probably the company that has the most to lose. Their strategic deal with Nokia they has proven how far they are willing to go to achieve their objectives. If RIM fail with Blackberry OS they will go down for the count as a smart phone manufacturer.

3. Device manufacturers and OS developers have deep pockets
Nokia, Samsung, RIM, HP and Microsoft all have big cash piles to execute thei mobile OS strategy. They may not get the same number of app developers to adopt their platform as Apple or Google and they may fail in the long term. However, it does mean that they can invest huge amounts of money in marketing, pay developers for app development and get big brands and services such as Facebook, Twitter, Foursquare, Google, etc. to build for their platform. They will not give up in the next 2-3 years.
     
4. Consumers still want choice
There is still demand for different solutions by consumers. Not only is the mobile phone a fashion statement - people want different looking phones - but there is also a demand for different screen sizes, input mechanisms and shapes. A great example is Blackberry which has continued to be very successful among business users as well as teenagers thanks to the keyboard and great messaging services.

5. Money is not everything
Having said that several of the mobile OS players have very deep pockets money is definitely not everything. Nokia allegedly spent as much money on R&D for Symbian and Qt as Apple has on R&D. Despite this they failed. At the same time Palm WebOS, which is considered one of the most advanced smartphone platforms, was developed by a small team within Palm and with the distribution of HP it might succeed.

What do we bet on for the future?
Having said that the battle will continue there is no question about who is dominating at the moment. iOS and Android are currently the platforms of choice. Other platforms are prioritized, based on promotion agreements with the device manufacturers and carriers. We believe that there are great opportunities for differentiation and distribution by embracing the full mobile ecosystem.