Airplane is a cross-platform flight booking application built with Flutter, combining destination discovery, account management, and an online flight ticket transaction flow.
The project began as a learning project and was further structured around Test-Driven Development (TDD) and Clean Architecture. The goal was to organize the application into a clearer, more maintainable structure while building practical mobile development experience.
From destinations to booking
The application includes sign-in, sign-up, and logout flows, alongside destination detail previews and a flight ticket transaction experience. These features bring together common elements of a travel booking application in a single mobile product.
Applying Clean Architecture
The codebase was organized using Clean Architecture principles, with TDD guiding the development approach. The project also uses Flutter Bloc for state management and dependency injection through GetIt, while Mockito supports test-related workflows.
Building across platforms
Developed with Flutter, the application targets both Android and iOS. Firebase Authentication and Cloud Firestore are included in the project dependencies for authentication and cloud data capabilities.
Automating the build workflow
The repository includes a Codemagic CI/CD setup, extending the project beyond application implementation into build automation. Together, these practices make Airplane a practical exploration of application architecture, testing, and delivery workflows.