Have you ever wondered what the best way to create a mobile app is? We will help you understand the different approaches to building a mobile app based on native app development and cross-platform app development.
When mobile applications first came on the market, app development focused heavily on creating an app for each platform, primarily Apple’s iOS and Google Android. Separate development for iOS and Android made app development expensive because you effectively had to build two mobile apps. It was a time-consuming and costly process that slowed businesses down.
We’ll answer some of the most common questions about:
- What is the history of mobile app development?
- Why is cross-platform mobile app development is so much better?
- What are the best cross-platform mobile development tools?
Understanding this will help you build a better app or know the right questions to ask when hiring a development team to build your mobile apps. If you are new to mobile apps, you might want to read our blog, The Entrepreneurs Guide to Selling an App, to understand our approach.
What is the history of mobile app development?
Mobile app development has been around far longer than most people realize. For example, in 1993, IBM released Simon, who had a touchscreen and some of the earliest mobile apps such as address book, email, calculator, and notepad, but it wasn’t really ready for mass adoption.
Then in 1999, Blackberry started phones optimised for emails with a mass-market appeal and the QWERTY keyboard. I suspect many of you remember them from the early days of mobile phones when they offered superior text messaging because it allowed you to type as we do on a standard laptop or computer.
Then the first iPhone was released in 2007, which offered a variety of apps. This was followed by Apple’s app store in July 2008 and Android Market, now called Google Play, a few months later. These led to the ability of any company to develop and offer applications to their customers.
Mobile apps changed the world as we knew it!
But from a development standpoint, these two major markets created a ton of challenges. They had different rules, languages, and requirements. It meant creating two different applications to develop an app for iPhone and Android. This is a costly way to build an application to reach your whole market.
What are different types of cross-platform mobile development tools?
There were several early approaches to solving the cross-platform development challenges. Two of the earliest approaches were:
- Progressive Web Apps
- Cross-Compiling software
In addition, there are different aspects of an app, including:
- The UI/UX,
Each of these serves a different function in providing users with the functionality they expect from apps while reducing the cost of building native apps. The various platforms may have different requirements focused on UI elements, architecture frameworks, and programming languages. Let’s examine each.
Progressive Web Apps
Progressive Web Apps are basically meant to combine features of a website with features of a mobile app but are inherently web-based. This allows the developer to write in languages they are used to and adds service workers, application shells, and notifications to operate more like a mobile app. In addition, the user can save them on their mobile or tablet for easy access. Finally, the caching makes it where much of the information available on the website can be accessed even when there is no connection to a network.
Google is a dominant player in Progressive Web Apps. They have extensive developer resources on how this type of app development works. If you are interested in their resources, I’d suggest starting with their Introduction to Progressive Web App Architectures.
Cross-Compiling Software (Cross Platform)
Cross-compiling software allows the developer to write most of the code in a language they are familiar with. Then, the cross-compiling software will translate the development language into the native apps for Android and iOS. An example of this is the Googles Flutter framework (which we use at Flying Donkey).
These app development tools can be highly beneficial for cross-platform apps, but it should be noted that cross-platform development tools will not get the code 100% matched to what it would be with native app development. A developer must go through the translated code and adjust portions to make the native apps run identically to the original development framework.
UI/UX for mobile apps
UIUX for mobile a mobile application has some differences between Apple and Android native app requirements. iOS user interface is driven by their Human Interface Guidelines (HIG). At the same time, android uses Material Design, which is created by Google but offers functionality for cross-platform tools to design UI for iOS. HIG requirements are more strict than Material Designs Guidelines, so cross-platform app development can off stick within HIG, and they will find it simple to develop a cross-platform app.
Some of the most noticeable differences between Android and iOS platform requirements for apps include:
- Optimal screen dimensions for design: iOS: 320pt х 568pt Android: 360dp х 640dp. This basically means an iPhone has icons that are the same size on all phones, while Android uses a UI that adapts more to the size of screens.
- System Fonts: When unsure what font to use, use San Francisco for iPhones or Roboto for Android.
- Z-Axis use in native apps for Android. This creates more shadowing of cross-platform apps when viewed in android vs iOS which restricts the usage of shadows.
Many of these changes are fairly nominal, making the UI fairly easy to create a cross-platform app for iOS and Android as long as you make sure to check the things I mentioned above. With Flutter, for example, the UI will be created in a single language, then it will be automatically translated to the native language. From there, a developer just has to inspect the UI for breaking changes. For a more in-depth review of the UI differences, check out this blog from UX Collective.
Workflows for Mobile Apps
As iOS apps operate on fewer phones, there are fewer variables to worry about than native apps operating on Android phones. In addition, the standardised sizes and operating systems across iOS devices mean that there are fewer challenges in making sure the app works on all their devices. Meanwhile, Android operates a larger variety of operating systems and screen sizes.
This means that developers will need to make sure the application development works properly in each scenario. It can make an android app take 2-3 times as long to get right as an iOS app. While Cross-platform development tools can help reduce some of this time, there is still an additional cost to develop an android app compared to an iOS app.
What is the best platform to build an app (iOS or Android)?
The best platform for building an app will vary based on factors including:
- Target Audience – If developing for internal use for a company that provides iOS devices to all its employees, then building a native app with Xcode and Swift programming language may make the most sense. If using only Android, Android Studio might be the best option.
- Type of App – The best cross-platform framework may change based on what type of app you are making. For instance, an Amazon app would require different application development than a video game app.
- Programming Languages – The languages a development team is familiar with would impact the choice of platform to design on.
- Budget – Apple’s App Store has nearly 1/3 of the downloads, but 3x the revenue, using their development framework might make sense to get revenue quicker than do the software development for android native applications.
But with cross-platform development tools like Flutter, you don’t have to choose. Instead, you can have apps on multiple platforms with only a fraction of the cost of building a separate app for each platform.
How do you make an app cross-platform?
To make an app a cross-platform application, you need to use a framework; we use Flutter here at Flying Donkey.
We develop the mobile app in Flutter, and then it translates the coding into the native languages:
- Android: Java or Kotlin
- iOS: Swift or Objective-C
- Other languages as needed
From there, our developers will check all application versions to make sure there were no breaking changes. This process dramatically reduces the time and cost of development because we only have to develop once and perform QA twice.
See the table below for an example of the potential time savings using a cross-platform development tool like Flutter. If there is reason to believe that there would be fewer savings, we would normally suggest native applications.
Few key things to keep in mind are:
- When building a cross-platform application you will still need to build an API (in a language like C#) as well as host this application in the cloud (On Azure or AWS).
- Cross-platform apps do have some limitations against truly native applications, but this gap is becoming smaller and smaller and unless you are really pushing the boundaries with what phones can do, a cross-platform framework should do everything a native application can.
What is the best tool for cross-platform app development?
At Flying Donkey, we prefer to use Flutter for cross-platform development. Flutter is a Google-backed framework and, as such, has a wide range of resources, both technical and people, to allow us to deliver top-quality cross-platform applications.
Once we have built the single code source, we test it on both iOS and Andriod to ensure it’s working well on both operating systems. This process allows developers to write a single code to build native frameworks.
Software development is in a constant state of demand where there are always fewer app developers than there are companies that need application development. This cross-platform app development process helps us create high-performance apps on a familiar platform while creating a user experience comparable to building apps on native frameworks. The result is our clients accelerate their app development, and we can help more businesses succeed.
If you need a high-performance cross-platform application for your SaaS app, fill out the form below to schedule a free consultation to find how Flying Donkey IT.