https://github.com/kartiknagar333/ctabusiosapp
iOS app for browsing CTA bus routes and real-time arrival predictions, built with SwiftUI, Storyboards & Auto Layout
https://github.com/kartiknagar333/ctabusiosapp
async-await autolayout-constraints cta-api ios-app json-api networking storyboard swift uikit urlsession
Last synced: 9 days ago
JSON representation
iOS app for browsing CTA bus routes and real-time arrival predictions, built with SwiftUI, Storyboards & Auto Layout
- Host: GitHub
- URL: https://github.com/kartiknagar333/ctabusiosapp
- Owner: kartiknagar333
- Created: 2025-05-04T02:56:42.000Z (12 days ago)
- Default Branch: main
- Last Pushed: 2025-05-04T03:22:59.000Z (12 days ago)
- Last Synced: 2025-05-07T02:07:14.664Z (9 days ago)
- Topics: async-await, autolayout-constraints, cta-api, ios-app, json-api, networking, storyboard, swift, uikit, urlsession
- Language: Swift
- Homepage:
- Size: 15.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# CTABusiOSApp
An iOS application written in Swift that lets you browse Chicago Transit Authority (CTA) bus routes, view stops for a selected route, and see real-time arrival predictions.## Features
- **Home Screen** – Browse all CTA bus routes.
- **Stop Screen** – View all stops for the selected route.
- **Prediction Screen** – See real-time arrival predictions for the next buses.## Built With
- **SwiftUI**
Declarative UI for most views and navigation.- **UIKit → Storyboards & Auto Layout**
Legacy screens built in Interface Builder using Storyboard scenes, with Auto Layout constraints to handle dynamic sizing and orientation changes.- **Foundation → URLSession**
Native networking via `async/await` for calling the CTA API.- **Foundation → JSONDecoder & Codable**
JSON parsing into Swift model structs.## Setup
- Obtain an API key from [CTA Bus](https://www.ctabustracker.com/account) Tracker.
- Chanage with Your API KEY with APIKEY word in the files.## ScreenShots
- **HomeScreen [Routes]**
![]()
- **StopScreen**
![]()
- **PredicationBusScreen**
![]()