How to Choose a Winning Mobile App Tech Stack in 2023

Learn the CERT analysis technique to help you choose a winning tech stack that ensures you ship fast and build to scale.

Harsh Rana
Geek Culture
7 min readApr 10, 2023

--

Screenshots from Bisque (generated by Author using MockRocket)

Embarking on the journey of mobile app development can be both exciting and overwhelming. With thousands of technologies, frameworks, and libraries available, it’s often challenging to know where to begin. Instead of suffering from analysis paralysis, let’s cut through the BS and refine our decisioning process.

In this blog post, we’ll explore some popular options for building mobile apps in 2023. We’ll discuss the factors to consider when choosing a tech stack, and share examples of finding the right combination of tools. The goal is to make informed decisions for our mobile app projects.

Frontend

Deciding between native, cross-platform and hybrid development is the first step in getting started with the frontend, but also one with the most opinions. Engineers online will swear by one or the other, without sharing how to make an informed decision. Here’s a brief outline of each, with some pros and cons.

Various Tech stack options for developing a mobile app in 2023 (Author)

Native development

Native development involves building separate apps for each platform (Android and iOS) using platform-specific programming languages and tools. For Android, this means using Java or Kotlin with Android Studio, while for iOS, you’ll work with Swift or Objective-C in Xcode.

Pros

  • Optimal performance and seamless integration with device features.
  • Full access to platform-specific APIs.
  • Comprehensive documentation and support from platform vendors (Google and Apple).

Cons

  • Separate codebases for each platform, leading to increased development time and costs.
  • Requires expertise in multiple programming languages and tools.

Cross-platform development

Cross-platform development enables you to create a single codebase that runs on multiple platforms. There are several frameworks and tools available for cross-platform development, such as React Native, Flutter, and Xamarin.

Pros

  • Single codebase for both Android and iOS, reducing development time and costs.
  • Easier to maintain and update.
  • Access to a wide range of community-developed packages and plugins.

Cons

  • Potentially lower performance compared to native apps.
  • Limited access to platform-specific APIs and features.

Hybrid development

Hybrid development involves building mobile apps using web technologies like HTML, CSS, and JavaScript, wrapped inside a native container. Popular hybrid development frameworks include Apache Cordova (formerly PhoneGap), Ionic, and Capacitor.

Pros

  • Leverage existing web development skills and resources.
  • Single codebase for multiple platforms.
  • Access to native device features through plugins.

Cons

  • Lower performance compared to native and cross-platform apps.
  • Limited access to platform-specific APIs and features.
  • Reliance on third-party plugins for native functionality.

Backend

When it comes to building a mobile app, choosing the right backend can be just (if not more) as important as selecting the frontend technology. The backend is responsible for crucial functionality like processing data, handling authentication, and providing API services to ensure your app runs smoothly and securely.

Various mobile app backend options in 2023 (Author)

In this section, we’ll discuss a few popular backend options to consider for your app, along with some pros and cons for each.

Firebase

Firebase is a popular Backend-as-a-Service (BaaS) platform developed by Google. It offers a variety of features and is known for its ease of use, scalability, and real-time data synchronization.

Pros

  • Easy to set up and manage, with minimal backend development experience required.
  • Real-time data synchronization and extensive built-in features.
  • Scalable and hosted by Google, ensuring reliability and performance.

Cons

  • Uses a NoSQL database (Firestore), which may not be suitable for projects requiring a traditional relational database.
  • Limited query capabilities compared to a traditional RDBMS.
  • May become costly as your app scales and requires more resources.

Supabase

Supabase is an open-source alternative to Firebase and is a good option for developers who prefer working with a traditional RDBMS and appreciate the control and flexibility provided by open-source technology.

Pros

  • Uses PostgreSQL, a powerful and flexible RDBMS.
  • Real-time data synchronization and built-in features similar to Firebase.
  • Free tier provides all features needed for an MVP.

Cons

  • Newer platform with a smaller community and fewer resources compared to Firebase.
  • Requires more backend development experience compared to Firebase.
  • May lack some advanced features or integrations compared to Firebase.

Django + PostgreSQL

If you’re comfortable with Python and want more control over your backend, this combination provides a powerful and flexible backend solution.

Pros

  • Full control over backend architecture and customization.
  • Uses the powerful and flexible PostgreSQL RDBMS.
  • Wide range of third-party packages and plugins available.

Cons

  • Requires more setup, development, and management compared to BaaS platforms.
  • Requires proficiency in Python and familiarity with the Django framework.
  • Additional hosting and infrastructure management required.

Node.js + Express + MongoDB/SQL

If you prefer working with JavaScript, and want more control over your backend, this option provides a powerful and flexible backend solution.

Pros

  • Flexibility to choose between a NoSQL database (MongoDB) or a traditional SQL database.
  • Allows developers to use JavaScript for both frontend and backend development.
  • Large community and extensive resources available.

Cons

  • Requires more setup, development, and management compared to BaaS platforms.
  • Requires proficiency in JavaScript and familiarity with Node.js and Express.
  • Additional hosting and infrastructure management required.

How to decide — Enter CERT

When deciding for yourself, consider the CERT method (yes I just made up that acronym, but acronyms help you remember things better).

CERT (Author)

1. Community

Probably the most important factors for a small team — the community. Opt for technologies with strong community support, extensive documentation, and a rich ecosystem of packages and plugins. This can make it easier to find solutions to common problems and extend your app’s functionality.

2. Expertise

Evaluate your team’s existing skills and familiarity with programming languages and tools. Choosing a tech stack that aligns with your team’s expertise can accelerate development and improve overall quality. Nothing harder than learning a new tech stack and building something daunting all at the same time (unless you’re the type to love such a challenge).

3. Requirements

Analyze your app’s specific needs, such as performance, platform-specific features, and UI/UX requirements. Native development is generally recommended for high-performance apps or those requiring deep integration with platform-specific APIs. This is specific to you and your idea, so take stock of what you’re building.

4. Timeline

Consider the time and resources available for development. Cross-platform and hybrid development can save time and costs by allowing a single codebase for multiple platforms. But this can often come at the cost of performance. There’s always a tradeoff.

Case study — How I’m building Bisque

First off, what is Bisque?

Bisque is a Boston-based social networking app for restaurant lovers to share their food experience with their friends.

You can check out more information (or join the waitlist) here.

Screenshot from Bisque website (Author)

How did we decide the tech stack for Bisque?

After researching various options, we decided to go with cross-platform frontend development using Flutter, and a Supabase backend for Bisque. We used the CERT method to help make our decision.

Community: Flutter has a strong community and is maintained by Google. Additionally, the SDK + documentation is great.

Expertise: I’m the only engineer building Bisque. I have a fair amount of expertise using React, Javascript, Python etc. so Dart (language used by Flutter) was fairly easy to pick up.

Requirements: The frontend of our application is fairly simple, and Flutter allows us to compile the application natively.

Timeline: I wanted to build an MVP as soon as possible, even if that meant that we’d have to reconsider our tech stack for building a highly scalable v2.

Even after the CERT analysis, it finally came down to React Native or Flutter for the frontend and Firebase or Supabase for the backend. Here’s how we decided-

Flutter vs. React Native

We decided to go with Flutter, as it offers a more performant and customizable UI, which is necessary for a social media application (ceRt). Additionally, Flutter’s hot-reload feature, extensive widget library, and growing community support made it an attractive choice for building the MVP fast (cerT).

React Native, on the other hand, uses JavaScript and bridges the gap between native components and JavaScript code. While it has a more extensive ecosystem and a larger community, we were concerned about potential performance limitations due to the bridge between javascript and the native platform.

Firebase vs. Supabase

We were initially considering Firebase due to its popularity, extensive features, and ease of use. However, we were drawn to Supabase because it uses PostgreSQL, while Firebase uses Firestore. I felt more comfortable with a traditional RDBMS for our MVP (cErt). Apart from that, Firebase and Supabase were almost identical in their featureset.

In the end, we chose Flutter for our frontend and Supabase for our backend, as this combination aligned with our CERT analysis for each.

Wrapping up

Choosing the right tech stack for your mobile app development project can be a complex decision. By understanding the various options available, carefully considering your project’s requirements, and making an informed decision using a CERT analysis, we hope to have provided valuable insights to help you make an informed choice for your own mobile app projects.

Remember, there’s no one-size-fits-all solution, and what works best for one project might not be ideal for another. Keep an open mind, be willing to learn from others, and don’t be afraid to change directions if needed. Good luck on your mobile app development journey!

--

--

Harsh Rana
Geek Culture

A software engineer with a passion for data, personal finance and health.