View a 5 minute overview walkthrough here
Check out the backend app repo here
- Swift 5
- UIKit
- MapKit
- Xcode
- Made with Storyboard layout
- iOS app built on MapKit provides an elegant basemap and intuitive interface
- Top-level map view presents Filter button which presents selectable filter modal
- User can filter sites by radius (1-25 miles) as well as site industry sector, release type, and carcinogen status
- Filter selections are translated into HTTP query strings which are sent to the live backend API
- Changing search radius automatically adjusts view frame accordingly
- TRI sites and their address are identified by pins
- Map pins are color-coded and symbolized according to release type
- Tapping map pin expands site characteristics through callout presentation
- Callout for each site allows user to submit site report based on activity characteristics using preconfigured attribute selections
- User report selections are translated into HTTP query strings, which the API uses to generate report table entries
- Joined inheritance structure utilized in database allows for minimalistic implementation
TRI Nearby/
βββ /Assets.xcassets
| βββ ...(xcode assets)
βββ /Base.lproj
| βββ LaunchScreen.storyboard
| βββ Main.storyboard
βββ /Models
| βββ Query.swift
| βββ Report.swift
| βββ SectorsEnum.swift
| βββ SiteAnnotations.swift
| βββ TRISite.swift
| βββ releaseTypeEnum.swift
βββ /Views
| βββ SiteAnnotationView.swift
βββ /ViewControllers
| βββ AnnotationDetailViewController.swift
| βββ FetchJsonData.swift
| βββ FilterButtonViewController.swift
| βββ SpinnerViewController.swift
| βββ ViewController.swift
βββ AppDelegate.swift
βββ Info.plist
βββ SceneDelegate.swift


