Having an iOS mobile app for business or brand is great. Having an Android app is great as well. As you’ve decided to develop an app on one platform/OS, the next logical step is to build the same app for another one. This would mean, actually, to convert an app, from iOS or Android, of course, which are holding leading positions with 97% of all smartphones.
Android is the biggest player, enjoying the 80% share of the whole mobile OS market. So what are the requirements to convert an app? How big of a change ahead? How different is converting from iOS to Android, and from Android to iOS? Where to find Android developers that will deliver a quick and good result? With help of our in-house development team we’ll talk you through in detail.
But firstly, why should I convert a mobile app, you may ask? Here are 4 major reasons to convert an app:
- Expand your market reach – Many users prefer one platform to another, so why missing out on those, who could become your potential customers?
- More features – mobile app conversion (porting) is not duplication, so there are possibilities to enrich and improve user experience, add more unique features, etc.
- Extra options for monetization/Beter ROI – diversifying revenues from an app in terms of paid downloads, in-app purchases, ads.
- Reduce app development costs – obviously building an app from scratch and converting an app are not the same in price and time, and you’d be able to save money.
Part 1: Converting iOS app to Android
Part 1: Converting iOS app to Android
This all, surely, does not mean the process is a breezy ride – there’s a lot of work, management and supervision in place. From now on we’ll be talking about considerations and various aspects of app porting, and such things to consider to convert iOS app to Android are:
- Architecture differences
- Design/UX considerations
- Code and components
- Customers and business model
- Play Store submission
Android app architecture
One of the first steps in Android app development is defining the minimum Android version supported by your app. For instance, setting it at 4.4 KitKat (and newer) will ensure 90.5% coverage of mobile devices. Though, for specific cases and in regards to app features as well as targeted audience, we recommend making an analysis to set a proper version limit.
Next step is the review of app architecture and features, considering peculiarities and differences of both iOS and Android platforms. Certain platform properties may amend or add new functions of an app, for example:
- Touch 3D on iOS / AppShortcuts on Android for launcher
- Push notifications specifics
- Order and specifics of content switching
- Interaction with other apps installed on a mobile device
There’s a lot of discussions regarding pros and cons of both iOS design and Android design. The main distinction here is that those are 2 different environments and act differently. Therefore, avoid copying design element when porting iOS app to Android. Android app with iPhone design, and vice versa, will not do you good.
These are elements and aspects that require special attention:
|Icons||Android platform has its own icon library, which is preferable.|
|Content navigation||Components like Bottom Navigation Bar, Tabs, Navigation Drawer.|
|Fonts||Roboto is a standard Android font as of recent.|
|Buttons||2 types of buttons on Android: Flat Button and Floating Action Button.|
|Dialogs||User actions/tasks with clear-cut structure, check Android dialogs.|
|Lists||Look, behavior and animations of Android lists differ significantly from those in iOS apps.|
|Other elements||Components like Bottom Sheets, Checkbox, RadioButton, Switch, Text fields etc.|
Also, you have to remember and apprehend metric differences. Things like different Android screen resolutions, various icon sizes, 48DP rule dominance in UI design, etc.
And compare to iOS icon and font sizes, which are measured in points (pt), instead of pixels on Apple platform. The ratio of points to pixels is about 0.75. See iOS resources grid below.
Libraries, frameworks, code
App developers always use certain external tools and libraries when building a mobile app. To convert iOS app to Android app, surely, one has to check for compatibility of those tools in Android. In case they are not compatible, it’s necessary to find a proper alternative frameworks.
Concerning code porting for iOS/Android conversion, dissemblance is huge. Today’s iPhone apps are being mostly developed with Swift language, while Android apps use Java and/or Kotlin. You can not just recompile the first code into the latter.
On the other hand, both iOS and Android platforms are capable of working in C code, which one can port in certain scenarios. In practice, for iOS to Android conversion, the app is rewritten on another programming language entirely. Duration of such task depends on app complexity, architecture, libraries and so on.
P.S. Clearly, testing the Android app is a nuanced process, same like iOS applications. The advice is to use common Android-specific emulators, quality assurance systems and other tools for software testing.
How to convert an app to Android
So when you have considered all the things mentioned above, how should the process of conversion to Android look like? We follow the standard and proven practice to convert iPhone app to Android apps, which includes the next stages:
- Analysis and plan
It implies the analysis of how your current iOS actually works, what are its features, design characteristics, work flow, etc. You also have to determine possible issues/errors and think of ways to solve them or optimize the Android app version. The aforementioned tools, frameworks and back-end peculiarities have to be keenly checked for compatibility. Otherwise you are destined to fail.
- Assessment and implementation
Assess all the compatibility technical issues with code, libraries, third-party services. Choose the right tech stack to make app porting precise and less time-consuming, and start the development. In many cases, converting iOS app to Android app is very similar to building a single Android app, so don’t expect it to be over in a week. It includes features and design adaptation by creating Android-specific UX and functionality, setting up the back-end, monetization tools, etc.
- Testing and going live
Similar to any other app building task, quality assurance is a must to convert iOS app to Android. Depending on practices in the agency you’ve hired or your technical requirements, you may use real Android devices or emulation tools for testing. You may also apply various kinds of app testing (validation testing, load testing, user acceptance testing, beta testing, etc.). When all is fine, submit the app to the Google Play and start marketing campaigns.
To convert an app from iOS to Android requires technical skills in both mobile platforms. Developers have to be capable of platform adaptation, analyzing business logic behind an app, programming and testing. No “just make it look the same” approach is the rule.
Other recommendations include:
- Check for optimization/improvement options
- Analyze business logic and transfer it
- Study 3-rd party frameworks involved
- Test user acceptance (if possible)
- Create Android-specific design and navigations
Part 2: Converting Android app to iOS
Part 2: Converting Android app to iOS
The most probable case of app porting is converting an Android app to iOS. While Android is a dominant force, iOS devices generates much more revenue – by 85% comparing to Android devices. iPhone owners are also more loyal and tend not to switch to different devices. To convert an app, Android to iOS, typically implies 6 key aspects, whicj we’ll explain one by one below:
- Device support
- App Store submission
The single biggest difference between users’ behavior on iOS and Android devices is the main button, or Home button. iPhones have one main button, while Android phones has at least 3 of them (Home, Back, Multitasking). So how does this impact Android to iOS porting, one may ask?
People on Android phones may tap a back button to return to previous screens in the app. For iPhone users another way to do this has to be implemented because there’s no back button. Generally, iOS applications have a mix of horizontal and vertical elements, and Android apps, on the contrast, are more vertical. Also, if you want your iOS app look alike to Android version, place in-app tabs at bottom.
Design – a crucial aspect
Google Android and Apple’s iOS interfaces are two different universes. This means you cannot reuse the interface of your Android app to port it to iOS app – a bitter pill #1. This is due different approaches of design – Apple works in flat design and Android works in material design.
Let’s gather all main design differences of Android and iOS platforms:
|Object placement||Hierarchical arrangement||Flat arrangement|
|Navigation bar||Drawer menu placed left||Tab bar menu, centered|
|Font family||Roboto||San Francisco and Helvetica Neue|
|Button styles||Floating action buttons with text in all caps||Flat with shadows|
|Action sheets||Solid color||Slight transparency|
|Controls||Simple underline||3 tabs / buttons|
|Icons||Thick stroke icons||Thin line icons|
|Alerts||Flat buttons, actions right placed||Actions centered and separated|
Note, that both Android and iOS have exclusive controls, like menu component, dropdown picker, etc. One should also pay close attention to the typography – San Francisco is a default font on iPhone, while Roboto is Android one. And if you do not take it into account and leave the font as it is, you risk ending up with design flaws.
Device support & screen resolutions
Firstly, check the operating system versions and make sure to convert Android app to iOS with relevant versions. Of course, phone users tend not to update their devices to the latest OS, though good news is that about 90% of iPhone owners have switched to the latest iOS version. It means making the app support iOS 10 is the way to go.
As you build an iOS mobile app keep screens of different sizes in mind. Apple has a lesser number of devices than Android, and consequently less sizes and screen resolutions. Though it also means less trouble for iOS developers you’ve hired, and thus – less risks.
Contrary to Android, Apple limits access to the components, so when porting apps you have to consider component compatibility with another OS. For instance, NFC module from Android will only be possible to integrate with iOS 11.0.
If the Android application is utilizing certain 3-rd party tools/frameworks/libraries/services, you also have to study compatibility of those with iOS app. If not compatible, you’ll have to find the equivalent framework for iOS – that’s the bitter pill #2 when converting Android to iOS app. Luckily, vendors mainly are releasing libraries supporting both operating systems. So, the functionality of services like Facebook or Mixpanel can be replicated in both platforms with no pain.
Testing & App Store submission
To successfully convert an app from Android to iOS you’ll have to perform serious quality assurance. Mobile app testing after and during development includes:
- Integration testing: a combined testing of software modules separately and as a group;
- Validation testing: whether final software product meets business requirements;
- User acceptance: iOS app testing for user scenarios similar to Android app;
- Beta testing: real time data collection by real users and/or a client before the release.
Some tips for efficient app testing include using real mobile devices, apply latest and unconventional methods and use console log. Also, if you report bugs via screenshot command, developers will understand it better.
Finally, as your iOS app is ready and you wish to go live make sure to follow Apple’s App Store Guidelines. You need to have a developer account to submit the app, which also grants access to features like in-app purchases, TestFlight, app analytics, and more. You have to provide the following: app name, subtitle and description; app icon, screens or promo video, keywords, updates. Also, a practical advice to make it work nicely would be:
- Gather all app information
- Create a Bundle Identifier
- Submit a Certificate Signing Request
- Create an App Store Production Certificate
- Create a Production Provisioning Profile
- Prepare an App Store Listing
- Fill in app version data and submit for review
If that’s too much sweat, you can delegate this task to your iOS developers as well. A contract to develop an iOS application, to convert Android app to iOS app, to update an app can easily be expanded with App Store submission task.
- Seek optimization options
- Analyze business logic and transfer it carefully
- Study 3-rd party frameworks involved
- Testing user acceptance is highly advised
- Create iOS-specific design and UX
Check tech stack and skills required for iOS development in the table below.
|Tools||Xcode, SQLite, Git, SVN, Jira, JustinMind, CocoaPods, Crashlytics, ScreenFlick.|
|Frameworks||Paypal, Flurry, Crashlytics, social networks (Facebook, Twitter, Linkedin, Pinterest, Instagram), etc.|
|App types||Lifestyle apps, social networking apps, entertainment apps, educational apps, retail apps, fitness apps, business apps, dating apps, etc.|
|Skills||In-app purchases, payment gateways, notifications, extensions, touch authentication, geofencing and location tracking, caching, social integration, memory management, audio/video/camera tasks, etc.|
Feel free to contact us at ThinkMobiles with any questions or orders about app porting. And finally, a short FAQ to sum it up.
How long does it take to convert an app?
It can take from 1 to 6 months, or beyond that. It depends on app complexity, features, frameworks, design and other factors.
How much will converting an app cost?
$3,000 is the very minimum price for a small project. Consider $5,000 to $20,000 cost range for average feature app. Price depends on all the factors enlisted above in the article.
How many developers/resources are required?
One app developer and one designer at least. Sure, you should not expect “the more developers the faster delivery” effect. The best option would be to hire same team for an Android app as for initial iPhone app, and vice versa.