google linked-in facebook office phone mail facebook_r twitter_r google_r instaram_r github_r linkedin_r downloads notifications star sign

How To Choose The Right Technology Stack For Your Mobile App

by Vitaliy Podoba
Vitaliy Podoba avatar



You want to launch a mobile app but you don’t know what technology to use? Or maybe you are not sure whether to build a native mobile app or a cross-platform hybrid app for iPhone and Android? Or maybe you’re curious whether you can launch your mobile app using no-code and low-code platforms.

In this article, I’ll answer all these questions and teach you about mobile app components and the best technology stack for your mobile app idea.

If you pick the wrong technology for your mobile app, it will cost you a lot of extra time, money, and effort. Technology mistakes are pricey. So, , I’ll do my best and try to give you everything I know and everything you might ever need to launch your first, second, or 100 mobile app ideas successfully.

What is Technology Stack?

First of all, as a tech founder, you need to have a high-level understanding of the Technology Stack. In the construction industry, when a development team builds a house for you, they are using a combination of tools & raw materials. Like bricks, concrete, tiles, paints, and tools like hummers, screwdrivers, chisels, mixers, and so on.

When building a mobile app for you, software engineers also use a combination of tools and raw materials. We call them programming languages, frameworks, extensions, libraries, databases, and servers. And if you’re building your app on no-code platforms like bubble.io, then Bubble.io is your technology stack.

Mobile App Components

Next, you need to understand a Mobile App’s technical components. There are two major things: Frontend and Backend.

Again, I’ll start by comparing it with house construction so it’s easier to grasp. Everything you can see and use within your house is a frontend: walls, paintings, nicely done designs with decorations, furniture, house appliances, doors, windows, stairs, and so on…

But everything that you can not see and that serves as a foundation for your house – we’d call Backend.

It’s the concrete foundation of your house, its the utility connections, tubes and wires that go inside of your walls and floors that are vital for the functioning of your building. Usually, you don’t see them. For example, when you use water in your bathroom, you can only see the front-end part of it: the faucet in the shower.

Similarly, the mobile app also consists of the Front-end part (aka the mobile app or client app) and the Backend (also known as the Server side). The Backend also consists of Brains (the logic) and Data (aka a storage or a database).

Now, we’re finally ready to start talking about programming languages, frameworks, and specific technology terms. And, we’ll do it step by step because your app’s backend, frontend, logic, and data each require their own set of tools and technologies. Let’s start with the front end.

App Frontend (aka Client Side)

What is the Mobile App Frontend? We can also call it Client Side or simply a Mobile App. App Frontend is the visual part of your application. In other words, it is a file users can download from the marketplace, install, and use on their mobile phones. This is what we technically call the Front End.

The front end consists of all the forms, pages, and screens your users interact with. Any customer-facing frontend must be designed by a professional team of User experience specialists and designers. With better design, it’ll be easier to get new users and keep existing ones. So, custom design and UX is an essential step in developing any Mobile App interface.

One more thing you need to decide during the planning stage is whether it will provide some local data storage. In other words, is your app useful or usable offline without an internet connection? Offline modes are usually time-consuming, so it’s a big decision to consider at the beginning of your development process.

Now, regarding the technology stack, there are two ways to develop mobile apps: Native and Cross-platform (aka Hybrid approach).

Hybrid or Native App?

What does it mean to develop your app using a Native approach?

Back in 2008, right after the first iPhone release, Steve Jobs also introduced the App Store, which was the beginning of the mobile apps era. At that time, software engineers could build iPhone apps using Objective-C – programming languages created by Apple.

A bit later, in September 2008, Google and Microsoft jointly released the Android mobile operating system. However, to develop mobile apps for Android, software engineers had to use Java as the programming language.

So, If you want your app to be available for iPhone lovers and Android users. You have to:

  • Hire developer who knows Objective-C language
  • Develop your mobile app using this programming language
  • And then submit this app to the Apple Store
  • Then you have to hire another developer who knows the Java language
  • Implement a separate app from scratch with the same functions using Java
  • Then submit this second app to the Google Play store

Yes, this Native approach is quite expensive because you’re literally paying twice to build two mobile apps. The same goes for maintenance and support. Every time you need to fix a bug, you need two different devs to fix the same bug in two different apps. This is what we call the Native approach to building mobile apps.

However, in 2009, one year after mobile app stores were released, the first cross-platform framework was also released. So…

What does it mean to build your mobile app in a Hybrid Cross-Platform way?

You hire one software developer who knows one programming language. In most cases, that will be a Javascript language. You ask that developer to build your mobile app once and then release it to the Apple Store and Google Play Store. So, your development efforts, time, and budgets are cut almost twice. As well as your support and maintenance resources.

These days we’ve got many more cross-platform frameworks, such as:

  • ReactNative by Facebook
  • Flutter by Google
  • Xamarin by Microsoft
  • Apache Cordova by Adobe Systems
  • and Ionic by Drift Co.

In my agency, we used Xamarin, Flutter, Ionic, and React Native frameworks to build mobile apps for our clients.

But the one that we like the most is React Native. Facebook did really great job spreading its framework and making it quite efficient and easy to use for developers.

As a bonus, the React Native framework uses the ReactJS Javascript library, which can also be used to build web apps. So, if you need both a web and mobile app for your project, you’ll save up to 70% by reusing your mobile app code within your web app. This way, you save twice.

Now, you might ask me: “Vitaliy, if cross-platform mobile apps are so great, why would you even consider a native approach?”

So,

What are some Pros & Cons of Native and Cross-Platform approaches for mobile apps? 

With Cross-Platform or Hybrid mobile apps, you don’t need to build the app twice. Single developer, single programming language, and single codebase will work for iPhone and Android devices. So you pay less and get your results almost twice as fast. It’s also much easier and cheaper to support and maintain a hybrid mobile app than a native app.

Finally, if you need to build a web app as well, you can split your development between the web app and the mobile app. But there are a few scenarios where you’ll need a Native Mobile app or where a Native mobile app will work a bit better.

Native mobile apps have better access to mobile device processes and hardware, such as camera and video editing, a wide range of sensors like gyrometers and accelerometers, CPU and GPU for intensive graphics rendering, NFC, Bluetooth, biometric sensors, storage management, and push notifications. 

So, if you need to build a visually intensive game, video editing tool, or virtual reality app, for example, you’ll most often have to build a native app using programming languages like Objective-C and Java. Also, Native Apps have direct access to device hardware and APIs, which makes them better at performance. This is crucial for resource-intensive mobile applications like trading apps, for example. But, in the other 95% of scenarios, I’ll guarantee you, a cross-platform hybrid mobile app will do the job for you.

Let’s take Instagram. Its mobile app is built with a React Native cross-platform framework.  If your mobile app is not more complex than Instagram, then you’ll be fine using something like React Native, too.

Hooh, a lot of things are written on cross-platform apps. But it’s a very important topic and making mistake here would be probably the most expensive mistake that you’ll make as a mobile app founder.

So, let me summarise on technology stack for the Frontend:

You can develop your app as a native mobile app. In this case, your devs will use Ojbect-C language for iPhone apps and Java programming language for Android phones.

If you go for a cross-platform mobile app, you have a few options here:

  • React Native. One of the most popular these days from Facebook. Here, your devs will build an app using Javascript language, ReactJS framework, and HTML/XML as a markup language
  • If you pick Flutter, your technology stack will be Dart programming language
  • If you pick Xamarin, then your app will be built using C# language by Microsoft
  • If you pick Apache Cordova or Ionic, then you programming language will be also Javascript.

Now, we’re officially done with the front-end part of our mobile app. This was the biggest part because it’s a mobile app itself. Now, we’re ready for the second major component of almost every mobile app.

The Backend For The Mobile App

In rare situations, the front end is the only component you might need to build.  For example, mobile apps like Calculator or Clock that all of us have on our phones don’t require any backend at all.

These are standalone mobile apps that don’t keep any data long-term and they keep all their logic (“brains”) within your phone. However, if you’re building a mobile app to sell and profit from it, you’ll need a backend in most other cases.

The backend is a central server (we can also call it a production server) that is publicly available for all the mobile app installations for all our your app users. We need the backend to keep the user data, collect payments online, track user authentication sessions, do all the logic and calculations, and process user input from the mobile app.

When a mobile app user buys a new device and installs your app on it, he or she wants to access the same data that was available on the previous phone, right? That’s why we need the backend.

The Mobile App, the front end, talks regularly to our Backend to pull data from it and push user data back to it. The most popular protocol for this communication is REST API, and the most popular data format is JSON. You don’t have to worry too much about it; it’s engineering stuff now, but I decided to tell you this just so you know.

The backend consists of 2 other components:

  • The Brain (we can also call it The Logic)
  • And the Data (we can also call it Storage or database)

So, let’s consider each of these 2 Backend components separately.

Mobile App Data: Storage & Databases

I’d say Storage is the heart of our software. It keeps all the app data collected from our users. Without data, everything else doesn’t matter. In the end, our users and their data matter the most to the success of our software business, right?

The most popular SQL databases for server data are:

  • PostgreSQL
  • MySQL
  • Oracle
  • And Microsoft SQL Server

In our agency, our favorite is PostgreSQL. It’s super reliable, scalable, and one of the most popular, and free to use. Also, if your developers need a non-SQL database, the best choice is usually MondoDB.

The last thing I want to mention regarding Data storage is that in most cases, your developers will not work with databases directly but via so-called bridges: ORM, which stands for Object-Relational Mapping. It makes developers’ lives much easier, as they don’t have to remember all the nuances of SQL languages when making Database queries.

The most common ORMs on the market are: Django ORM, SQLAlchemy, Sequilize, Mongoose, and Hibernate.

Mobile App Brains And The Logic

While the Mobile App frontend is the face of your app and Data is the heart of it, The code and logic that connects your data with your user interface are the brain and blood of your mobile app. The brain serves as a middleman between data and users. It processes data smartly and returns processed data to the user.

What technology do we usually use to build the Brains and The logic of our mobile app?

On the backend server, we’re using a similar technology stack to build the logic for web apps and mobile apps. It all starts with programming languages.

On the backend, you can use anything like Python, PHP, Ruby or Javascript. These are some of the first choices that will let your developers build fast and cost-effectively. These are popular, dynamic, and free-to-use languages on the market. But nobody builds apps from scratch nowadays.

Most developers will use a framework to avoid building an authentication system from scratch, a billing function, a database management interface, and so on.

For Python, we have frameworks like Django, for PHP – Laravel, for Ruby – Rails and for Javascript – Node.js.

Since 2011, our agency has used many tools and frameworks, but our favorite combination is Python and Django. With Python, we can build not only web and mobile app backends but also AI and Machine Learning solutions and many other different types of software cross-platform.

Finally, depending on your app idea, your dev team might use specialized tools, libraries, addons, services, and APIs to cover specific functions like:

  • WebRTC for video streaming
  • Stripe or Paypal APIs for online payments
  • Or Socket.io for Chat applications
  • Or Twillio service for calls and messaging

The most important question for your mobile app Brains & Logic is to pick a good programming language and framework. That’s all.

No-Code vs. Code Solutions for Mobile Apps

Until now, I have been explaining to you what technology stack to use when you and your team build an app with code. However, I often get questions from our new clients about whether it’s possible to build their mobile apps with a no-code solution and thus save some time and money.

Over the last few years, there has been a rise in no-code and low-code solutions for building software. These days, it’s even possible to build basic mobile apps with no-code platforms like bubble.io

So, do you need to consider no-code platforms when building a mobile app?

It depends on your goals, your app requirements, and your resources. It is true that building an app with no code will be faster and a bit cheaper than hiring a software engineer to build it from scratch.

You’ll still need to hire a no-code engineer, but in that case, we assume that a template for your specific idea has been built many times before so that the no-code engineer can reuse it. However, the problem is that no-code platforms, in their current form, are pretty limited. To build more complex mobile apps, your developer will still need to write some code.

In many cases, your mobile app idea can not be built using the no-code approach at all. Honestly, it’s hard to find really big and popular mobile apps built with no-code platforms.

It’s pretty obvious that no-code usually goes as far as testing and prototypes, and once there is money in the house, founders re-built the app from scratch with code and with software engineers 🙂

These are some of the relatively popular mobile apps built with no-code platforms:

  • “The Cycles App” built with Adalo:
  • “Qoins” built with Bubble.io
  • “Pearson Automotive” built with AppSheet
  • “Oyez Review” built with Thunkable

So, if your mobile app can be built with no-code platforms, and unless you really don’t have enough budget, that would be the only case when I’d recommend building your mobile app with no-code or low-code solutions.

Preferred Tech Stack For Your Mobile App?

So far, I overloaded you with ton of new words, terms, programming languages, backend, frontend, database, low-code, no-code, and code solutions. But no worries!

Now, as promised, I’ll give you a step-by-step decision-making algorithm for what technology to choose for your mobile app:

Step 1. No-code platforms. Avoid it if possible. The only reason to use it – you’re very limited on budget. In the future, this might change, but for now, these platforms are quite limited.

Step 2. Hybrid or Native Mobile App? In 95% of situations, your mobile app can be built as a Cross-platform hybrid application. Build a Native app only if completely necessary. This way, you avoid paying twice for your app.

Step 3. The Frontend. Facebook’s React Native environment is one of the best for hybrid applications. The ReactJS framework, combined with the Javascript programming language, forms a killer combination for any hybrid mobile app. In our agency, we have tried many mobile app frameworks over the last few years, but React Native is a winner by many criteria.

Step 4. The Backend. Python is our favorite server-side programming language. Companies like Google, Facebook, Instagram, Spotify, Nasa, Netflix, and Dropbox use it. It’s good for web and mobile app backends and also great for AI, Machine learning, and data science. You’ll never be wrong if you pick it for your server side. Together with the Django framework, this is one of the best combinations. And… it’s open source.

Step 5. Storage. Choose PostgreSQL as your main Database. It’s the most popular, reliable, and free to use. Choose MongoDB if your developers need a no-SQL database to add to your main storage.

Step 6. Hosting & Servers. Use DigitalOcean Linux-based droplets for reliable and easy-to-setup hosting and servers. Use Amazon AWS if you’re willing to pay a bit more and get a more sophisticated and scalable solution.

We used this technology stack to build many mobile apps for our clients. For example, this mobile app for the construction industry, BuildWise, which we built for one of our clients from Canada, is built using Python, Django, and the React Native framework.

Of course, each mobile app is unique and might require some adjustment to this technology stack based on its size, complexity, scope, and budget. But if you follow my algorithm and choose the stack I just recommended, you’ll be right in 95% of scenarios.

For the last 5%, apply for my consultation and I can help you with that.

Also, if you’re interested in having my in-house developers build your mobile app? Follow this link to use our services!

Submit a Comment

Your email address will not be published. Required fields are marked *