How to choose the best tech stack for your application?

by Anna

Published on May 10, 2018

Tech stack for mobile app

What’s a tech stack? Why do you need to know about it? How does it affect the future of your mobile app? Choosing the right tech stack is one of the most crucial decisions for app development. It has a great impact on the future and growth of the company. How do you ensure that you have chosen the right technology stack for your app? For starters, the choice of the tech stack really depends on the frameworks and programming language used by the development team. What kind of user experience are you planning for (or your app development team is planning)?  The other dependent variable is the design and structure of your mobile app. And of course, most importantly, what kind of app are you building? Talk to your software house about the right tech stack for your use.

What’s a tech stack?

Let’s look at what a tech stack is.

A tech stack is the combination of the software products and programming languages used to create your mobile application. Mobile apps have two software components.  The client-side and server-side, also known as front-end and back-end respectively.

Each software layer builds on the features of the one below it, creating a stack. Each layer of the application builds on the features of the one below it, creating a stack. The server side or the back-end stack would typically include web framework, programming language, database, web server, operating system and the user’s server. The front-end or the client side stack includes (mobile app) native application and the user’s phone.

 

Who’s your target user?

Who is the targeted user for your app? Analyze their characteristics. Are they young or old? Are they college graduates? Where do they live? What is their socio economic status? Are they comfortable with technology?  What do they expect form your application?

Is your target audience used to the native mobile experience?  Ask the development team if they are using Objective C, Swift, or Java. If you feel the target user is not very tech savvy, consider creating a desktop-style experience. Design a single page app with a JavaScript heavy front-end with a framework of React or Angular.

What’s your timeline?

What are your timelines? Do you need something real quick for your market? Do you have time to build something that is powerful and lasts longer? Ruby on Rails and WordPress are notorious for getting the app out the door sooner.  Other software like Scala are good at solving scalability and performance issues. Choosing the right tech stack depends on your project timeline too.

Tech Stacks 

Let’s look at the tech stacks on both the front and back ends to get a rough run down on your choices.

Front End

A mobile application front end is different from a desktop front end. Are you thinking of supporting both the mobile and the web version of your application? For the web browsing experience you can use a cross platform friendly programming languages like HTML, CSS and JavaScript. For the mobile version experience, you will need to diversify in terms of the types of operating systems supported by your app. Are you building an app for the Android, Apple or Windows user? Each operating system comes with its own programming language.

A word of caution here: The front end of your app should maximize on screen real-estate. It needs to be simple and responsive. Keep in mind that this is part of the product that users will interact with. Think about your branding, the theme, the colors, the layout and the font type for your front-end experience. Select the library and other capabilities for your app that makes it very easy to use and interact with.

Back End

Back-end is the server side. This is where things get a bit complex. You need a technology stack that allows you the scalability, the efficiency, the storage and performance at a low cost. It also means utilizing the technology that best serves the purpose: economizing on the available resources and giving you optimum functioning at all times. Do some research on some of the common programming languages for back end programming: Ruby, Python, PHP, etc. Also look up their corresponding cloud computing platforms like Amazon, Azure, Rackspace, etc. Will your app generate a lot of data? The choice of NoSQL (Mongo, Redis, etc) or relational (MySQL, PostgreSQL, etc) data store is driven by the amount of data that will be generated.

Your software house should be able to guide you on the back-end tech stack. Bear in mind that you are focusing on automation in developing, building, testing and deploying. Jenkins is a continuous integration tool that helps in automation. Choosing the right development tools in the beginning helps weed out problems that may arise in the future.

No Backend?

Angular JS can be used to create an application that can exist without a traditional back-end tech stack. It comes with in-browser data storage with a single web page. The application back end can also be built using traditional programming languages like JavaScript with Node.js. A mobile app without a back-end stack is easier and faster to develop. Think about rapid development and prototyping of apps that are really big projects and need careful planning and stronger design. Apps without back-end may offer this capability in the initial stages of the app design.

Choosing the right tech stack is a team decision. Once you know about your choices, you will feel more in control of your app. You will also be able to propose the right changes in the future.

Tell us your amazing idea

We'll take it from ther
Hire us
app promotion

App promotion – How to promote an application for free?

Developing Mobile Applications – Information and Options