Skip to content

masterstoney/RichFlights-2.0

Repository files navigation

RichFlights-2.0

Flight ticket price and progress tracking

Motivation

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.

Screenshots

Home screen Empty trip selection view Route selection view Trip selection view with New York to Los Angeles trip Results of JFK-LAX trip search Flight tracking search view Detail view for tracked flight AA123

Build settings

Application was built to run on devices with iOS 14 or higher.

Architecture

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.

Tech and frameworks

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.

Loading Animation

What's new in this version?

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.

Widget configuration screen Small widget in action

About

Flight ticket price and progress tracking

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages