There was a time when developing an app for mobile users meant that you had to develop different applications for iOS and Android. If you wanted your app to be available on the web, you were out of luck. This traditional problem has been solved by cross-platform app development frameworks. These frameworks allow a single codebase to create apps that work on different devices, including iOS, Android and the web. In this blog post, we will discuss the benefits of using cross-platform app development frameworks and show you how to get started!
What is cross platform app development?
Cross-platform app development is just the process of writing code that works across multiple devices like iPhones, laptops and Android tablets.
The hardware and operating systems that run each of these devices expect software code to be written to a particular standard. And these standards are all different.
This might sound like an easy problem to fix, but before the development community turned their attention to building cross-platform frameworks, the code used to write an iOS app was pretty much useless if the app also needed to run on the web.
Big software companies like Google and Facebook saw this problem impacting their team's efficiency (and their bottom line!) so funded the development of frameworks and approaches like Flutter and React Native.
Problems with targeting a single device
The main issue with developing native apps is that each device (iOS, Android, web) requires its own codebase.
This can quickly become a maintenance nightmare for businesses, as they are effectively tripling the amount of work required to keep their app up-to-date. Cross-platform app development frameworks solve this problem by allowing a single codebase to be used for all devices.
Think about the effort to fix bugs that are happening on iOS but not Android. Or introducing new features that are easy and quick on the web, but tricky on mobile. Or keeping three versions of support documentation up to date. Or even the communication required to keep the development team in sync across slightly different versions of the application.
You can save money a ton of money Roadmapping
A lot of our clients turn up preaching about React Native, Flutter, or developing an app for Android and iOS. This makes sense because your first port of call when you decide to create an app is to look at what Twitter, Facebook, and Instagram are doing.
The problem with focusing on huge, recognisable brands, is that most small businesses (even medium businesses) don't have the budget to invest in developing three separate codebases. And even if you do, coming to the table with preconceived ideas about what will best fit your business is probably going to negatively impact your development partner's ability to make an unbiased recommendation on the best-fitting technology for your situation.
Luckily, there's a clean solution for solving this problem: building a Product Roadmap.
A Product Roadmap lists all the things that will go into building your application. It's a bridge between developers and a business that explains the goals of the product (creating a new product for your company, looking more professional to clients, increasing revenue, etc), and all the features that need to go into the app to make it a success.
The problem that Product Roadmapping solves is no development agency will know how much your app will cost to build until they're deep in the work. They need to think through all your problems and work out solutions.
You can bypass this process and get a complete blueprint for how your project will play out, estimates for each feature, timeframes for implementation and enough technical detail that any development company could pick up the Roadmap and immediately understand what needs to be done.
It's a low-cost way to shave off months and tens of thousands of dollars of development time.
It's also an answer to "which framework is the best?". The Roadmap will make recommendations and list options for the technology stack to build your application.
It's a service offered by very few development agencies because you're getting the chance to sit down with an experienced team without having to pay a huge sum of money like you are when a full development project kicks off.
If you're starting a new application soon, you need a Product Roadmap. It will save you tons of money and cut down your development timeframes by thinking through the hard questions and cutting all the unnecessary features up front.
Click here to read more and check when our next available Product Roadmapping session opens up.
Benefits of cross-platform app development
There are a ton of reasons you should consider committing to a cross-platform app development framework instead of going with a native framework:
- The ability to reach a wider audience
It's possible for your app to become a success if it's only released on one platform like Apple's App Store. However, with tens of thousands of apps released each day, your chances of getting noticed are slim.
If you release your app on the web, the App Store and Google's Play Store, you not only reach a wider audience but give yourself a mechanism to write content (through your website) and promote your app.
2. Reduced development costs and faster time to market
Developing individually for iOS, Android and web means writing the code three times. There are some efficiencies, but it's essentially three times the work. This slows you down, and if you've got a new exciting idea, you probably want to get it to market as quickly as possible.
3. A consistent user experience across all devices
This benefit is dependent on which framework you choose, but overall the user experience will be more consistent because the code is written from a single codebase with the intention of looking and acting the same.
4. Easier maintenance and debugging
A single codebase requires less debugging than multiple codebases. Kind of goes without saying, but once you find and fix a bug, that's the end of the story. If a bug spans across different codebases, the fix for one might not work on the other.
5. Less overhead for developers to stay up-to-date with the latest changes
Apps are developed with dependencies - libraries and other technologies that are leveraged. These need to stay up to date to ensure everything keeps humming along nicely. It's a lot easier to do this when you're only managing one codebase.
5. Improved communication between development team
This really only applies if you've got a larger development team, but if apps are being developed for two different platforms natively, the development will probably be done by different devs. Keeping everyone in sync, especially when rolling new features out is a huge challenge.
Software development is already complex. Any measure you can implement to make it simpler is a clever choice.
Cross-platform app development frameworks
There's a ton of great frameworks to create mobile apps that can be delivered to iOS, Android and even the web. This list covers the best frameworks for cross platform development:
Flutter is a cross-platform app development framework created by Google. Flutter is the most popular framework for creating mobile apps using the keyword native app development. This is because it provides a consistent user experience across all devices, and it is easier to maintain and debug.
Flutter doesn't require any platform specific UI components to render it's UI. This means there's no need for a property mapping layer to map every animation into a platform specific widget.
From a developer perspective, this is a huge win and it simplifies the process of building new apps, which is really what we're shooting for, right?
Keep in mind that NodeJS is a backend framework that communicates with the server. So if you're expecting to build a lovely looking user interface with NodeJS, then you're out of luck.
While we don't use NodeJS a lot (we prefer Laravel), it's an excellent choice if you're building a Progressive Web Application to run on iOS, Android and the web.
The magic behind React Native is that it compiles to native Java and Swift code, which are the two languages accepted by Android and iOS.
Since there are millions of bootcamps and training courses targeted at teaching React the pool of developers will the baseline skill to use React Native is huge. This is one of the big reasons it's grown to such heights of popularity amount the technical community.
However, this is selling React Native a little short. While it doesn't come with its own rendering engine like Flutter, it arguably provides a less confusing developer experience (depending on who you talk to), comes packed with great 3rd party plugins, and has a thriving community.
NativeScript provides developers with a low-level, native code framework that can be used to build cross-platform mobile applications.
Corona SDK is a framework primarily used for creating cross-platform mobile games. Unlike some of the more popular frameworks, it's based on a development language called Lua which was made famous as the language behind Roblox.
Xamarin is a powerful and feature-packed app development framework. Its technology stack consists of C#, which allows developers to code for both Android & iOS in one language, and .NET which helps reductiveness between platforms while also saving time by eliminating separate coding languages.
Xamarin comes with an excellent set of tools for debugging, testing & deploying your app. It allows you to use the same API to build iOS, Android and Windows applications. Finally, it compiles into super high-performing code, which is nice for those of us that watch performance closely.
Unlike React Native, which doesn't have a clear "best practice" architecture, Xamarin follows the Model-View-Controller design pattern which is familiar to most programmers that have played around with backend applications.
There are a ton of other frameworks that are worth noting, but we haven't had much experience with:
- Appcelerator Titanium
- PhoneGap (no longer supported)
- Sencha Touch (no longer supported)
Progressive Web Applications
When we're helping a new client build a roadmap for their product, we'll often steer them towards a Progressive Web Application instead of a cross platform mobile app.
Our team's focus has shifted to building Progressive Web Applications and we're no longer a mobile app development company.
The technology behind Progressive Web Applications has made them incredibly flexible for meeting user needs across iOS, Android and Web. The development time is reduced because most of the heavy lifting is done by the browser. Plus, we get to use Laravel and VueJS, which is our preferred stack!
PWAs have several advantages over traditional web applications. For example, they can be used offline or in low-connectivity areas, and they can be installed on devices like smartphones and tablets for quick and easy access. In addition, PWAs are often more responsive and user-friendly than traditional web apps, making them a good choice for businesses that want to provide a great user experience for their customers.
PWAs rely on advanced caching to pull all the required information down as the user interacts with the application. Holding the cached data allows for a native-like experience with the application being incredibly quick to interact with.
PWAs are no longer new technology. They've been widely adopted by large companies looking for an answer to the "cross platform framework" problem. The following list is a handful of the most well-known PWAs on the market.
It's important to note that companies like Spotify, Uber and Tinder are running their PWA in parallel with their mobile apps. This gives users the flexibility to access the app through the browser instead of having to download the app.
- The Washington Post
- Twitter Lite
Cross platform apps examples
Now that we've talked about the different types of cross platform app development frameworks, let's take a look at some examples of apps that have been built using these frameworks.
PayPal (Node JS)
Netflix (Node JS)
Linkedin (Node JS)
UPS Mobile (Xamarin)
Wikipedia (Adobe Phonegap)
Discord (React Native)
Facebook (React Native)
Skype (React Native)
Pinterest (React Native)
How to decide which framework to use?
There's no clear answer to which framework is best or which one you should use when it comes to cross platform mobile development. It depends on a variety of factors, such as the type of app you're building, your budget, and the amount of time you have for development.
If you're certain that building a mobile app is the right choice and PWA wouldn't be a better choice, then React Native or Flutter are probably the safest choice.
If you're building a simple app that doesn't require much functionality, then a framework like PhoneGap or Ionic may be a good choice. These frameworks are relatively easy to use and don't require a lot of coding experience.
If you're building a more complex app that requires a lot of functionality, then a framework like React Native or Xamarin may be a better choice.
Choosing the right cross platform app development framework can be difficult, but it's important to select the one that will best meet your needs. We've looked at a few examples of apps that have been built using different frameworks, and we've also talked about some of the factors you should consider when making your decision. If you're still unsure which framework to use, check out our blog or reach out to us and we can help you decide.
Tim is the face of the company. When you want to kick off a new project, or an update on your existing project, Tim is your man!