Droid Mobile Consultancy

Development of native or cross platform Android apps

How does the consultancy process work for Android 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, which is especially important on Android due to differences between device manufacturers and OS versions. 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 Google Play 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.

What is a native Android app?

The term native app can have several different meanings in the context of Android apps, and is often a source of confusion, it can mean any of the following :

  • An app that is built entirely or almost entirely using the NDK (Native Development Kit) that comes with Google's Android SDK, this results in code that is compiled for the specific CPU type of the device it will be running on (so the code is 'native' to that CPU type), this can give performance benefits to CPU intensive applications, but is more costly in terms of development time, debugging and application size (due to needing to include code for different CPU types in the app package). This is the strictest definition and quite common amongst developers who use the NDK.
  • An app that is built entirely or almost entirely using Google's Android SDK, without any higher level framework involved in its development. This is the most common definition and the one we use unless it has been explicitly made clear that a different definition is intended. A significant advantage of apps developed in this way is that they are able to embrace the latest Android functionality without waiting for a framework to be updated to support it, so when Google release a new version of Android with some cool new functionality, this kind of app is best placed to be updated quickly to make use of it.
  • An app that delivers its user interface using standard (or 'native') Android UI components, regardless of the programming language, use of higher level frameworks or other abstractions involved in delivering this. This is sometimes just referred to as an 'app with native UI', it is in this sense that the 'native' in 'React Native' is meant.
  • The least strict definition is simply an app that is packaged to be installed so it can be distributed through Google Play or directly as an APK. This definition is often used in the web development community to distinguish installed apps from web apps that run within a browser, where a web development team may talk packaging their web application 'into a native app' using PhoneGap or Cordova, in this case the user interface will not use native UI components, it's just that the app will be installed locally on the device rather than being delivered to the browser through HTTP.

What is the difference between a native Android app and a multi platform app or cross platform app?

Multi platform app and cross platform app basically mean the same thing and refer to any applications that use a single codebase to deliver builds to more than one platform (i.e. Android, iOS & Windows), this can speed development by not needing to write the code multiple times in different languages for different platforms, and also reduce update / maintenance costs as only a single codebase needs to be maintained.
Cross platform apps will typically fall into one of the last two definitions (see above) of 'native Android app' i.e. they will at least be apps that install locally on the device, and in some cases offer a native user interface. While it is possible to have a cross platform app that meets one of the other definitions of 'native Android app', those using the most popular frameworks such as Flutter, Xamarin or React Native would not. It is however true that a game written in C that compiled for multiple platforms or a regular Android app that used ‘Kotlin Multiplatform’ to deliver builds for other platforms would be native in the commonly used sense, of an app built purely for Google's Android SDK.

What technologies do you recommend for a native or cross platform Android app?

Kotlin has now established itself as the most popular language choice for developing new native Android apps, whereas Java was the original language of choice, Kotlin's modern syntax and less verbose code can speed up development. See our Kotlin and Java pages for more details on these. For cross platform apps, we recommend both Xamarin and Flutter depending on your requirements, these are explained in more detail, along with other popular options on our multi platform apps page.

How much does it cost to develop an Android 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 will be 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 its consumer Android 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 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 £50,000 ($63,000 or 59,000 euro) and £110,000 ($138,000 or 129,000 euro) for a Minimum Viable Product. This 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.

Is there a difference in cost between a native Android app and a multiplatform Android app?

In terms of the cost of developing an app for Android, starting from scratch, the cost difference is not significant. The real difference in cost comes when an app is needed for more than one platform. The cost of developing an app for both iOS and Android compared to just one platform is almost double for a native app, whereas for a standard multi platform app developed in Flutter the incremental cost of adding a second platform is only the cost of further device testing. A middle ground is where a native user interface and user experience is desired for each platform, but a multiplatform framework is used to share logic code between the platforms, the result is the incremental cost is significantly less than developing natively for a second platform, but a significant amount of development is still needed. Should this be the case, then it will depend on a number of factors if it's worthwhile using a multiplatform framework, such as how UI heavy the app is, if any platform specific integrations are required and how important it is to you to be able to quickly embrace new functionality in Android OS releases in your future app updates.

What skills are involved in native Android app development?

The following skills are widely used in native Android app development, our team have strong skills in all of them.

  • Kotlin
  • Java
  • Android Studio & the Android SDK
  • Gradle
  • Google Play Services & Google Maps
  • The Android app lifecycle
  • Native UI components/containers including fragments and custom views
  • Automated tests with Espresso and Appium
  • Unit tests with Mockito and Roboelectric
  • Firebase, including Firebase Cloud Messaging
  • Jetpack Compose
  • RxAndroid
  • Xamarin
  • HTTP clients & sockets
  • OpenGL-ES and android.graphics
  • Development of back-ends with APIs to support mobile apps

How experienced are your team in Android development?

Our team have an excellent track record and commercial Android experience going back over a decade, to the pre-release versions of Android 1.0, right through to the now working with the pre-release version of Android 13. You can be assured we will develop and test your app to the highest standard.

Copyright 2022 Droid Mobile. This page does not use cookies. Template by TemplateMo