Platform Selection

The information below outlines the the platform selection for the continuation of this project, building upon the foundation laid by the previous team (see their platform selection here https://tarheels.live/comp523teami/platform-selection/). Our goal is to enhance and expand on the existing mobile application, ensuring compatibility with IOS and Android devices.

Platform Components

Given the requirement of the client to build upon the existing application from the previous group, our platform selection has already been decided for the need for compatibility, efficiency, and the ability to rapidly prototype and deploy new features. Below will be details of the chosen technologies.

React Native:
Pros: Allows for cross platform development. Supported by Expo, which in turn will simplify deployment and integration with backend services.
Cons: Performance may not be up to par with fully native applications, but this is mitigated by code reusability and faster development cycles.
React Native is our core framework due to its compatibility with the previous project, the teams expertise, and the ability to deliver a cross platform mobile application.

TypeScript
Pros: TypeScript offers static typing, which enhances code quality, and maintainability. It is the default for React Native apps.
Cons: For team members not yet proficient in TypeScript, there is an initial learning curve. Also TypeScript can generate a lot of overhead.
The group is continuing with TypeScript for its improved code structure and saety features – ensuring a maintainable codebase.

FireBase
Pros: Provides a suite of backend services, including databases and authentication – which facilitates development and scalability.
Cons: Requires careful management to avoid scaling costs.
The ease of use and integration with React Native outweighs the concerns – therefore Firebase will remain as our backend solution.

Expo
Pros: Offers unified development environment, which simplifies the development process with lots of tools and SDKs.
Cons: Restrictions on using native SDKs but this is not a limitation for the project.
Expo is chosen for its development efficiency, particularly in testing and deploying updates.

Client Requirements
Our platform selection has been directly influenced by the clients requirement for us to build off of the previous groups application as well as the requirement for the application to be compatible with both Android and IOS platforms. The selection of these platforms will ensure continuity and the ability to leverage the existing components.

To finalize, our selection of React Native, TypeScript, Firebase, and Expo as our primary development platforms is driven by the need for efficiency, compatibility, and the ability to rapidly devlop and deploy features. These platforms also align with the foundation established by the previous team – ensuring continuation of the projects development.