Selecting Tech Stack: Business Oriented Messaging Application
By: Hüseyin Akbaş
Tags: Project Management, Research, Mobile Application, Tech Stack

4- Mobile App Development Platforms

5- Showcases

The well known companies and their project utilizing the development platforms.

Xamarin

UPS: Shipping company

Azure App: Cloud management

oLo: Ordering app

Microsoft’s apps

More:

https://dotnet.microsoft.com/apps/xamarin/customers

React Native

Facebook’s apps: Social media, marketing etc

Instagram: Photo sharing, social media

Skype: Chat, video audio talk

Discord (iOS): Chat, video audio talk

Walmart: Shopping, e-commerce

Oculus: Virtual reality (VR)

Tesla: Management

Pinterest: Photo sharing, social media

More:

https://reactnative.dev/showcase

Apache Cordova / Ionic

Wikipedia’s app: Online encyclopedia

Facebook (old): Social media

Microsoft Xbox: Game related management

Zynga: Gambling apps

Electronic Arts (EA): Game related management

NASA: Info applications

BMW: Info applications

CNBC: News app

More:

https://phonegap.com/app/

https://ionicframework.com/customers

Nativescript

Sennheiser: Smart Control

Puma: Footwear brand

California Court Access App: Government

More:

https://www.nativescript.org/showcases

Flutter

Tencent: A huge game company

Square: Credit card payment hardware methods

Google Assistant: Siri like assistant app

Google Ads: Advertisement & statistics management

STADIA: Cloud gaming platform

Alibaba group: World’s biggest e-commerce platform

Philips: Hue smart home tech

Ebay: Motors marketplace app to sell vehicles

Nubank: Bank app

More:

https://flutter.dev/showcase

https://itsallwidgets.com/

6- The Project Analysis Criteria

Criteria

There are some variables which should be considered while choosing technologies for a project. These can be listed as:

Team size : The number of the people the company can assign to the project

: The number of the people the company can assign to the project Budget : The amount of money the company can invest on the project

: The amount of money the company can invest on the project Duration : The time the company can allocate for the project

: The time the company can allocate for the project Technical complexity : The complexity of the project the company needs to deal with

: The complexity of the project the company needs to deal with Sustainability : The difficulty level of adding new features or updating the old ones in the project

: The difficulty level of adding new features or updating the old ones in the project MVP (Minimum Viable Product) size: The number of the features which must be ready in the first release of the product

Sustainability

Sustainability is the utmost required variable to be kept as high as possible. Otherwise, the project may not be continued properly or even may be produced at all on the MVP period. While considering sustainability, there are a few factors directly affecting it:

The quality of the code produced in the development period

The quality of the code can easily be achieved with a controlled and well-organized development. Also, choosing proper programming languages and environments suitable for the server and customer side of the project.

Standardized approaches/methods utilized by the company

Another important point is, for sure, following the worldwide standards. It is highly significant because if the project is parallel with the standards set by the authorities and communities engaged in those issues at first hand, the future of the project is secured by knowing those standards solve certain problems and guarantee not to have the future problems with the advancement of the technologies the project utilizes. Therefore, it is highly important to choose standardized ways of doing thing rather than custom implementations and self-produced materials since it would be too difficult for small companies to maintain them.

A scalable stable and unified infrastructure chosen by the company

Choosing correct infrastructure for both sides of the project is an important decision making process; especially if the project is focused on multiple clients and constant communication between them.

The stability and maintainability of the infrastructure of the project is much more important than the project itself in most of the cases because all the project code will be built on top of them and it would be almost impossible to change the infrastructures. Lastly, preferring unified systems is crucial (extremely important) because having two different infrastructures not understanding each other and making them communicate is a huge problem in the software world.

7- Analysis of Team and Project

Analysis of Project

It is a chat application aiming to make people communicate with one another by using the instruments of text, media, voice and video. It should be a standalone project together with its server-side application because it can also be installed to dedicated servers to be used by government establishments or private corporations, which makes it a possible B2B candidate. It aims to be in the platforms of Android, iOS, Web and Desktop, which is relatively a wide range of target size.

In order to choose which technologies are more suitable for the app, it is possible to analyze it within the context of the company by considering the variables defined above.

Team size

The company is a startup company and just like most of the startups, the number of the people which can be assigned to the app project is not as much as a corporation standard. In the current context, it can be estimated that there are two part time iOS mobile developers which can be dedicated to the app project. Also, a part time developer who can both help developing, do QA(Quality Assurance) and also partially manage the mobile part of the project to keep everything in order. That is, it is possible to dedicate one and a half people to develop mobile application side of the project. This can be considered “a highly small team”.

Budget

As an investee and not actively producing incomes, the team is considered to have a tight budget. Parallel to team size, which is closely related with the budget, the costs of the project is expected to be kept as low as possible; therefore, it can be inferred that the app should be developed by consuming “a considerably low budget”.

Technical complexity

App is a chat application which will need a modern animated UI and target UX (User Experience) to be on the front. Also, it should have a fast graphics not to bother its users because it will be frequently used as a chat application. In terms of technical concerns, it has relatively mid-level technical complexity. It needs the following features:

a proper and standardized way of communicating with the server-side since it will need a fast and stable connection to create a smooth real-time experience for its users

adapting multiple environments with minimum change since it targets multiple platforms

scalable server-side architecture because it will be used by a great amount of people

Duration

Duration is actually a dependent variable which is tightly bound with team size and budget. Since the budget is not much and team size is considerably small, duration should be either longer than usually expected or the size of the MVP project should be shrunk so that a qualified project can be produced in an expected time in the favor of creating incomes in a short time and expected features left out of MVP can be added with a planned time period after a stable MVP is achieved. Therefore, the can be considered for this project “a mid level project duration” between 4–5 months.

Sustainability

In terms of sustainability, as explained in the document before, a project must choose standardized, scalable, unified methods and infrastructures to progress without hesitation. It is especially far more important for startup companies like us since it is a great effort to create a project and maintain it with a small team and limited resources.

MVP (Minimum Viable Product) size

Most startup companies may not manage to arrange a proper MVP size which makes them not to finish their products or even worse go bankrupt and be closed. In the app context, as mentioned on duration and considering team size and budget, between a relatively “small” or “mid-level MVP size” should be created to be able to complete it with the estimated time frame and budget allocation. Otherwise, apart from having an incomplete project and losing money, the company may even lose the performance of its team members which leads to a breakdown situation in the company.