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.

Tuesday 16 August 2011

Success criteria for a great mobile health app

mHealth means health care via the mobile phone. A vague definition describing a big area, that, being still in its infancy, is believed to have great potential.  


mHealth includes specialised hardware for medical purposes such as diabetes, heart monitoring and blood pressure as well as services like reminders for doctor’s appointments via SMS, public health information/alerts, health surveys, apps for doctors, apps for in-field training used by pharmaceuticals, wellness self-checks, remote diagnosis decision support apps, hospital management/administration, apps used in the field in developing countries and much much more.

So, what makes a mobile health service successful? Based on our experience from delivering mobile apps and services for the health sector for almost 5 years and speaking to our partners we have come up with the following 5 key success factors:

1. The mobile service needs to solve a problem and have a clear strategy
Make sure that there is a clear need for the service/application that you are developing and that the service fulfills that need. Relevant market research and insights, participatory user experience design, pilots and quick response to user feedback once the service has been launched are all key to success.

2. The app or service needs to be extremely easy to use
Nice animations, flashy colors and a beautiful layout for sure inspires usage, but more important is that the service is easy for the target audience to use. This includes making sure that navigation flows are logic, buttons are big enough to click on for people with any finger sizes, text is readable for users that lack 20/20 vision and that you can easily start over or go back if you get lost in the service without having to resubmit several pages of forms again.

3. The service needs to be available to a majority of the target audience and not just e.g. iPhone or iPad users
This is usually were the biggest mistakes are done. Developers and tech people seem to think that everyone has an iPhone. This might be sort of true if the target group are medical students or doctors in a first world country, but not if you are targeting a wider audience. mHealth goes far beyond mobile apps and can also be delivered using SMS, MMS, mobile websites, bluetooth and NFC.

A good example of how apps are usually limited to one platform is available here.

4. The service must be secure and reliable
According to some reports as many as 80% of all iPhone apps crash after 5 min use. They are usually poorly developed and tested by developers with limited experience. For medical purposes reliability is a prerequisite. Make sure that the app or services has been properly tested across all devices that you expect the target audience to be using.

The service also needs to be absolutely secure in case it stores or communicates patient data. This includes encryption of data in communication between the device and the server, encryption of data stored locally on the device and that the servers are bullet proof in terms of external access to any data.

5. Legal, compliance and regulatory approvals
When you plan for the launch of a mobile health service make sure that you include the time for approval by all stakeholders. Worst case you might even require regulatory approval by e.g. the FCC.

Golden Gekko has been delivering mHealth services in partnership with specialised businesses in this area for the past 5 years including tools to help people quit smoking, educational apps, health surveys, training of physicians, self-care applications and more with clients including Novartis, Unicef and GSK.

Wednesday 3 August 2011

How to Find the Best Mobile App Developer


How hard can it be to build a mobile app?

There are plenty of tools out there. The bottom line message: I can make an app. You can make an app. It might not do much, and it might not look good. But yes, anyone can make an app, it's easy. Apple and Android have all made app creation easy. Golden Gekko created Tino Mobile App Studio, a tool that lets everyone create a cross platform app without writing a single line of code.
But as they say: Anyone can be a painter, not everyone can be Picasso.
When you're looking for a mobile app partner, here are some things to keep in mind:

User interface design:


With mobile, less can be so much more, and figuring out the best bits you need, and more importantly the best bits you don't need is not easy.
A smaller screen makes it tricky to design the right user experience for an app. At some point you may think you have the best design. It will look good, and then you will see the right design...
At Golden Gekko, we design the best user interface we can, but the real work starts when the app is first seen by a user. Listening to the feedback of users makes sure we keep improving in the direction your users want us to improve. If anyone says they have the answer right off the bat, we offer a guarantee: they don't even know the question.

Cross platform support:


The above may sound hard. It is. Don't underestimate how hard it is to get a good first interface design. But it gets even harder. People assume you only have to do it once! But there are all sorts of platforms out there. You need to design the app to get the best out of every platform. Users expect their iPhone apps to fit in with the iPhone way, and their Android apps to fit in with their Android apps. Disappointed users quickly start to bring down ratings, and ratings drive downloads.

Orientation:


It's difficult to foresee every possible way a user may want to use your app. Many developers forget and upset users. When a user rotates the screen, the content needs to update in a way that maximises the new space. If your app looks the same but wider, you forgot. Spend the time, make it work and the users will thank you.

Reliability: 


The most common negative feedback on the appstores is that the app crashes. The majority of apps are actually so poorly developed that they crash after a few minutes use. Motorola’s CEO claimed that many device returns were due to app crashes. There is absolutely no excuse for this. Users expect apps to be reliable, good quality code and testing procedures help ensure this.

Phone to tablet:

Just the same, but bigger? No. Please, go pick up a tablet. It's not a phone. Nobody should treat it as a phone. Early adopters of tablets are already getting frustrated with app developers not respecting the changing demands of the tablet world.
These are just a few of the high level things that we consider important for our clients to achieve the full potential of apps. There are many device and platform specific considerations, settings and bugs to consider. It's a topic that could fill a book.

So, what do we look for in a good mobile app developer?
The same things you need from any developer. Great problem solving ability, an awareness of user needs, knowledge of sound design patterns and awareness of sound coding architecture and practices. Quality code design never gets old.

At Golden Gekko, we focus on employing the best programmers we can find, whatever their specific background may be. The best programmers understand how to produce robust, extendable and re-usable code. If they have that, we can show them, through our user interface design team, exactly what we need to build.

Great developers are always a good investment. Cheap developers offer short term solutions,  but the long term costs are significant. If you want to pay for the same job, over, and over again, then by all means go cheap. If you're looking to form a partnership, producing quality, market leading apps, that can take your customer loyalty to a new level, come see us...

And if you're a developer, and you know you're good, we'd like to hear from you...