Cross-Platform vs Native Development
Mobile phones are no longer used for making phone calls. In fact, a small total of 7% of time is spent on communicating directly via calls or text messages. It can be assumed that the rest of a users mobile experience is spent inside apps if not in the browser. Each phone is completely personalised to its owners lifestyle, with any app you could ever dream of available for download in the App Store. Only a portion of apps however, are completely personalised for a specific phone.
iPhone and Android run on different operating systems and therefore must be coded, and even designed, differently. What happens however, if someone wants to create an app for both devices? Must they create two different versions for each device? Or can it be coded once and work on both iPhone and Android? The answer is yes, to both. Through either native or cross-platform development, an app can be designed and coded for both platforms to match your needs and budget.
iPhone and Android devices both run on different operating systems. Native development works by building an app to best suit the desired mobile platform, right from square one. The application is coded using a purposefully chosen language targeted at the particular mobiles operating system and its functionality.
For iOS development the two languages are Objective-C and Swift, however Apple is making a more conscious shift towards Swift.
For Android the most popular language has been Java, however the use of Kotlin has been on the rise recently.
If you want to integrate the device’s hardware and functionalities, (such as the phones camera or the use of swipe gestures) then native development would be the preferred option. It also completely tailors the apps UI and UX to that of iOS or Android. Native development results in faster and better working code, also allowing for easier integration of new features down the line. All the while more efficiently consuming the phones battery, memory and cpu.
This comes at a cost however, as essentially two versions of the app must be created. One for iPhone and a second for Android. This often more than doubles the work involved in app development. Two versions of code and designs need to not only be created, but also tested. This is more complex and will definitely be reflected in the invoice you receive. If this is an issue, native development isn’t your only choice.
Cross-platform development takes a ‘write once run anywhere’ approach. This allows developers to build apps for different operating systems on one software. As a result, the apps code can be shared and adapted to the devices operating system when it otherwise would have been incompatible.
Cross-platform is built using language that is not native to either operating system, such as React Native, Xamarin and Phone Gap.
Cross-platform is preferred if developing an app for both devices is desired, however, the budget doesn’t account for developing two separate versions. Not only does it reduce the costs, it also reduces development time. Cross-platform allows for maintenance and updates to be completed for both platforms at the same time as well.
The downside of ‘write once run anywhere’ is that the UI and UX is not tailored to best suit each devices interface. For example, Android has a back button. Where as Apple integrates their counterpart in the apps interface, more specifically the navigation bar. Apple also has their tab bar at the bottom of the screen. Where as Androids is often at the top. When building cross-platform, one design is used with the one set of code for both devices. This means that each device’s usual interface is compromised in some way. The app won’t look or feel quite like what the user is used to and you may be asking your user to re-learn. There are some ways around this by creating a flexible design that looks familiar to both platforms, essentially creating your own experience. Instagram is an example of cross-platform done well.
Native Development Pro’s and Con’s
You should choose native development if you’re heavily integrating gestures or the device’s features. It’s also recommended if you’re building a game, an app that works with a lot of data, or focuses on design or the user experience. Users may not notice the difference in code when it comes to cross-platform development, but they will definitely be able to see the difference. For example, an app that doesn’t feel very ‘Appley’ or feels distinct from the usual Android interface. If this is a difference that will be noticed negatively, it’s wiser to opt for native development.
- App can reach its full potential in terms of performance and speed. (This is quite important for games or popular apps)
- Better integrates the devices hardware and software
- UI and UX is tailored to the operating system and feels familiar to each platforms user
- Capturing and analysing analytics is easier. (Automatically monitors apps perfomance)
- Increases the apps visibility in the App Store
- Highly responsive interface
- Costs of developing are increased
- Development times are increased
- Code cannot be shared between different versions
Cross-Platform Development Pro’s and Con’s
Cross-platform development is appropriate for more basic apps or quick prototype development. Business apps or companies who desire an exclusively informative app would also benefit from cross-platform development. These are apps that have a simple interface, has limited swiping and doesn’t require access to many of the devices hardware features. This is because the design of the app or the use of hardware doesn’t hold as much significance to the user experience. In fact, 20% of all App Store rejections come from bugs and UI design issues. If UI is important to the success of your app, cross-platform isn’t for you.
- Costs of developing two versions is reduced
- Development time for building two versions is reduced
- Code can be shared between different versions of the app
- Maintenance and support can be done for both versions at once
- UI and UX doesn’t quite feel normal for the given device
- Reduces app performance and speed
- Has limited access to the devices functionality and hardware
- Possible slow and sluggish response times
Native app development allows for a superior user experience and in an ideal world, would be the chosen development method for all apps. However, with budget and time constraints the app development world is far from ideal. This is when cross-platform development is a beneficial way to get a professional working, yet basic product.