Mobile devices are an essential part of our everyday lives. There are over 5 million apps available for download across the Google Play Store and Apple App Store, and there are over 5 billion mobile phone users worldwide. Mobile devices account for more than half of all web traffic, and it’s growing each year.
A mobile app allows your business to benefit by engaging with its current and potential customers. However, selecting the correct framework can be difficult as there are many factors involved. What platform? Native or cross-platform? Proprietary or open source? What about the programming language?
In this post, we’ll be highlighting our favourite development frameworks for your next mobile app.
React Native – a popular choice
React Native is a popular choice; it powers thousands of apps, such as Facebook, Instagram and Shopify.
React Native is an open-source framework developed by Facebook and released in 2015, and it’s cross-platform; there is no need to support two separate codebases, saving costs and time.
React Native takes a ‘learn once, write anywhere’ mentality, meaning that developers are taught a single set of concepts and build a UI specifically for each platform (whether that’s macOS, Web, or Windows).
The user-interface components in React Native have the same views as those in Android and iOS, meaning that a React Native app will look, feel, and perform like any other native app.
Ionic – for web developers
Ionic is another open-source framework; developed in 2013 by Drifty. It also has a strong enterprise following, with companies such as Airbus, Diesel, and McLaren Automotive making use of it.
React Native takes a ‘learn once, write anywhere’ mentality, and Ionic adopts a ‘write once, run anywhere’ one. The UI in Ionic is the same for all platforms, which simplifies the codebase, making it more maintainable.
Ionic uses high-level building blocks called components to create a consistent UI across all platforms. Ionic’s stock components (e.g. cards, lists, and tabs) can construct a UI quickly, and these components can be modified if necessary.
Flutter – our pick
Flutter is the newest open-source framework developed by Google 2017, written in Dart. Dart is used across the entire app in Flutter, from the UI to the business logic, which simplifies development once it’s learnt.
Flutter is similar to Ionic in that it makes use of high-level components (called Widgets) to create a consistent UI for all platforms. However, Flutter also has the flexibility for a native look-and-feel if required. Flutter does offer better performance to Ionic, as Ionic apps have to pass through several wrappers to run, whereas Flutter apps are built natively to the device.
Flutter is seeing tremendous growth, and although it’s new, it’s mature. Organisations such as Google, BMW, Groupon, and eBay are using it. We also used Flutter to develop a treasure hunt app for PuzzleDuck.
Unity – for games
Mobile games have unique considerations that separate them from traditional app development. Frameworks such as React Native, Ionic, and Flutter are ill-suited for anything more than a simple 2D game.
Unity is a cross-platform game engine, and it’s a good option for anything that requires 2D or 3D graphics. Unity powers more than half of all new mobile games, such as Pokemon Go, Call of Duty: Mobile, and Cuphead.
Unity is written in C# and supports many platforms, including desktop, console, web, and AR/VR platforms. It simplifies game development through a drag-and-drop UI and an extensive asset library.
There are a lot of options when selecting an app development framework. We’d recommend Flutter for developers who have the resources to learn it, React Native for those teams with a React background, Ionic for web developers transitioning to app development, and Unity for game development.
Our app developers build mobile and tablet apps for iOS and Android. We build mobile apps that are clear, easy to use and aim to provide your customers with the best possible experience. If you’re interested in having an app developed, then please get in touch.