Droid Mobile Consultancy

Development of cross platform apps for Android, iOS, Windows, Mac & more.


How does the consultancy process work for cross platform app development?

We start by working together to understand your requirements. It's completely normal for clients to just have an idea for their app at this stage, or they may already have detailed specifications, or an existing app that needs updating.
Once the requirements are clear, if necessary, we work with some great designers who can create fantastic UI & UX designs for your app, although if you have these skills in-house then we will be happy to work with your designers too.
Depending on the complexity of your app, and how likely your requirements are to change there are different ways we can proceed with either a fixed scope & fixed price, or an agile approach to building your app. These are explained in more detail, along with the rest of the process on our home page.
Quality assurance testing happens throughout the development process, both through the development of automated tests and through manual testing of the app on physical devices, ensuring all platforms are working as expected.
Prior to a full app release it is usual to set aside some time for quality assurance testing and resolution of issues, including end to end testing, user acceptance testing, security testing & device testing.
Once the release is ready we can handle the release to the stores (Apple Store, Google Play, Microsoft Store) for you, or guide your staff through the process.
You own the source code to the development work you've paid for, and while we will of course be there to support you for future updates when you need us, you are completely free to take it to another development partner or build your own team.
The process of developing an app update is really a smaller scale version of the process explained above, with documenting of requirements, design, followed by development either on a fixed scope or agile basis, quality assurance and release.
To get started, tell us your app idea and let's take it from there.


Are cross platform apps cheaper than native apps?

For some apps there are excellent cost savings to be made by using a cross platform framework to share code between the versions of the app for the different platforms such as Android, iOS, Windows, Mac etc.
The saving comes as a result of the much lower incremental cost of releasing your app for more than one platform.
Depending on your target audience, you may want to stay with a truly native user interface design for each platform while sharing code for application logic, or make further cost savings by also sharing user interface code across multiple platforms, in the latter case the incremental cost for adding another similar platform (i.e. supporting iOS as well as Android with a standard Flutter app) can be close to zero.


Which technologies do you recommend for cross platform development?

Xamarin

Xamarin / .NET allows the sharing of both code for application logic (for all platforms) and for the user interface (between Android & iOS), along with access to Microsoft's powerful .NET framework. Xamarin allows both the option of building the user interface natively (and separately) for each platform, or using its 'forms' layer to build a common mobile user interface that is then automatically mapped to the appropriate Android or iOS user interface components. A separate desktop user interface can be built using .NET to share the application logic with the Xamarin mobile app. Xamarin / .NET is our preferred solution for multiplatform development where a native look and feel is important.

Flutter

Flutter allows the sharing of both code for application logic and for the user interface (for all platforms), although there is no supported way to use native UI components, Flutter has its own set of perfectly good UI components that are available across all platforms for users to interact with. Flutter can build apps for Android, iOS, Windows, Mac, Linux and web browsers from a single code base. If the goal is to cover all platforms quickly and cost effectively, and having a native 'look and feel' is not a priority then Flutter is the way to go. It's a great choice for companies launching a new service, or for startups who want to validate their concept in the real world. Flutter is also an excellent choice for multi platform games.

Kotlin Multiplatform

Kotlin Multiplatform allows the sharing of code for application logic for all platforms including web and is a very promising technology for 'Android First' development, allowing a completely native Android app to be built in such a way that it's relatively quick to expand it to a multiplatform app with iOS, Windows and even web versions. It's our first choice yet as it's still early days for the technology and it doesn't have the option of a shared user interface, but hopes are high for the future.

React Native

React Native allows the sharing of both code for application logic and for the user interface, and like Xamarin's 'forms' layer automatically maps a common mobile user interface to the appropriate Android or iOS user interface components. Our experience with React Native is that it's a good prototyping tool and allows a 'first working' version to be developed quickly, but the tooling isn't nearly as strong as for Xamarin, Flutter or native development. Getting from that 'first working' prototype to a finished store ready application is a longer and harder road as a result. We would recommend React Native if you have in-house JavaScript developers and wish to take development / maintenance in house at some point in the future.

Cordova / PhoneGap

Apache Cordova / PhoneGap is a technology that allows web pages to be bundled into an app, it also permits some access to native device functionality from within the JavaScript on the web pages, and makes an attempt to map some of the web page UI to native UI components. It has a poor reputation for performance and a non-native look / feel, but was popular in the past (before React Native became established) with people who had JavaScript skills and wanted to make apps for the Apple Store and Google Play, it's largely been replaced in that regard by React Native. We would generally not recommend this, even if you have an existing functioning website that you really need to quickly bundle into a first version of an app there are other ways to do it. The only real use case for this now is if you already have an existing app in the stores built using it and need to get an update to your users, in which case we are happy to help.


How much does it cost to develop a multiplatform app?

The costs can vary quite dramatically.
A simple app for which an existing template can be used can start at under £1000 (under $1300 or under 1200 euro), however it's important to understand that this would mean just customising a template with new images, text, links etc. When apps are advertised on places like Fiver or Upwork etc for a few hundred dollars, that's what you would be getting at best, even if the team is based in a low income country, skilled software engineers won't be cheap and you will not be getting a custom developed app from developers who can deliver it. Alternatively you could end up getting an amateur developer who wants to try their hand at making an app, who is unlikely to deliver you a well tested, stable, finished app.
At the other end of the scale, we have heard of a large UK bank having 27 developers spread across multiple sub-teams working on a single platform for it's consumer mobile app, full time for a period of years, it's safe to assume that developer salaries alone would push the costs into millions of pounds per year.
Realistically, a custom developed multi platform app with its own unique design, interacting with cloud services but without any unusual requirements (like meeting the needs of a major international bank!) is likely to come in somewhere between £45,000 ($57,000 or 53,000 euro) and £100,000 ($125,000 or 117,000 euro) for a Minimum Viable Product using the same user interface across all platforms. This would increase if native user interfaces were required on a per platform basis, by an extra 30% to 70% per additional platform depending on how UI heavy the app is. On the other hand, the costs can be reduced significantly by using a template for some or all of the user interface, thus having a less unique but ready made design, or if the requirements are relatively simple.