There is a growing pressure for every app to be available on both Android and iOS devices. The issue we are faced with now is how to gracefully port an app from one to the other. Though attempts like Google's J2ObjC have been made, there has never been a straightforward system or methodology for porting in either direction and apps often never grew out of the OS they were originally built in. Unfortunately, there is still no magical cloning engine to turn your Android app into an iOS app or vice versa. More and more people are talking about and confronting this porting issue, and as large companies like Airbnb are opting to span both operating systems, some best practices are emerging from the chaos.
This article will assume that you have an existing Android app, have already decided to port it to iOS, and are sure that your app meets Apple's App Guidelines. We will be looking into the current best practices to make the port process as tidy and painless as possible.
Use your current app as a model for your iOS app
Save time by using your existing material. Keeping UI and UX features uniform cross-platform will decrease the amount of duplicated work and maintain the consistency of your branding. You can introduce differences as you find it necessary or when catering to the rules of a specific platform is beneficial. Using your current app as a model makes the beginning stages of the transition much faster, but always remember that your new iOS app will not be a replica of your current one.
Porting does not mean translating
If all you did was translate your Java to Objective-C, you would not be making a true transition from Android to iOS. Your goal in all of this, after all, is to allow users on any device with either operating system to all have a consistent and fluid experience of your app. Your app’s content will be more accessible to users on either side of the divide if they receive a truly native experience that fits with the conventions and abilities of their device. Your app will essentially be made from scratch twice, though much of the groundwork you did for the first will still be relevant to the second.
Using iOS strengths to your advantage
Now we get to the meat and bones of porting to iOS. As noted above, users will be better able to access your app’s content when you pay attention to and obey the conventions of each OS. In other words, your new iOS app should feel like an original iOS app to the user. Take a look at just a few iOS features below that your new app should absolutely make use of.
iOS list search - The common method to search a list on an Apple device is to pull down on the screen, revealing the search bar that is otherwise hidden away. An Apple user will look for this functionality out of habit, and almost any other configuration would add to the learning barrier for those new to your app. This is a difficult effect to achieve in Android development, and so it is a good example of a difference between the versions of your app that is entirely beneficial and even necessary to achieve the best user experience on both platforms.
Be mindful of buttons - For example, Android phones often have hard “search” and “back” buttons, but Apple devices do not. It is a simple thing, and simple to forget across so many devices. Make sure that your design takes into account the capabilities of the hardware itself for each OS, not duplicating functionality or, even worse, missing functionality entirely for iOS because of the absence of these buttons or other physical features.
Menu and Long Press Functionality - The Android functionality of moving options to an off-screen menu or displaying secondary options on a long press isn’t available on Apple devices. You could create a custom version of this functionality for your iOS app, but the better option and certainly more familiar to your Apple users will be to use native iOS conventions.
These are just a few of examples of how to make your app well adjusted to its new OS environment, but there are many more that are worth looking in to. After all, it is this native functionality on each OS that gives you the true benefits of working with native apps, so to not excel here when you have gone so far would be a horrible waste of effort. Making sure that the new iOS version of your app follows these guidelines will be a good step to a clean transition. Hopefully, you will very soon realize the benefits of having your app available on the most competitive and selective app market!