Flight ticket price and progress tracking
This project is an update for a class project I did back in college (original college project repo). I wanted to see what the project would be like in a world where SwiftUI, Combine, Diffable Datasource and Widgets exist. Admittedly, I only ended up using SwiftUI for a widget view and a single detailed view (my love for UIKit is still very strong). I also wanted to add a feature to track the progress of flights which is a feature that was not available in the original application.
Application was built to run on devices with iOS 14 or higher.
Application was built using MVC with a bit of Reactive Programming sprinkled in there. Combine was not available back when I made the first version of the application. Using it in conjuction with diffable datasource made the process of coming up with a search pipeline super easy.
All programming was done in Swift. The user interface was mostly built programmatically using UIKit and some other parts were built using SwiftUI. The loading animation shown below was built using CoreAnimation. As stated above, the application also takes advantage of Combine. The application uses SQLite to store the airports list. The database connection and some of the data models were taken as they were from the original application and plugged into this version. I only had to make minor adjustments to cater for changes in APIs.
The application now enables users to track flights. All the user has to do is enter the IATA flight code and they should be able to get the information about the flight. This functionality is shown in one of the screenshots above. The user can take advantage of Widgets and keep track of the flight progress from their home screen. Due to API limits, widget functionality is turned off for now.