Skip to content

An iOS app for searching, sorting, and viewing details about NYC high schools. Implemented for a take-home assignment.

Notifications You must be signed in to change notification settings

coughski/NYCSchoolsChallenge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 

Repository files navigation

NYCSchoolsChallenge

An iOS app for searching, sorting, and viewing details about NYC high schools. Implemented for a take-home assignment.

NYCSchoolsChallenge

Technologies

  • 🧵 async/await
  • 🔁 REST APIs
  • 🏛️ MVVM
  • ✅ XCTest
  • 📊 Swift Charts
  • 📐 SwiftUI
  • 🏎️ Swift

Highlights

  • I used the .searchable view modifier to enable a simple substring search of the school names, and a Menu for sorting options
  • I added a working row of Link views with special URL schemes which allow users to quickly view the school's website, call the school, compose an email to the school's email address, or view the school's location in the Maps app
  • To illustrate school SAT scores, I used Swift Charts to create a custom horizontal bar chart with .annotation modifiers and custom AxisMarks
  • I used formatters such as .number.notation(.compactName) to efficiently and elegantly display school statistics
  • I used jsonDecoder.keyDecodingStrategy = .convertFromSnakeCase so that I could keep the names of my model struct properties Swifty, which is less work than assigning a raw String value to every CodingKey case
  • MVVM was my choice of architecture to separate models, views, and business logic
  • Using XCTest, I wrote unit tests targeting the most sensitive part of my code, the JSON decoding, which can easily break with any change to the model structs
  • I chose the newer async/await methods of URLSession over the older closure-based methods in my networking service
  • I created a generic Statistic view and a custom LabeledContent style to easily display school statistics in an aesthetic format

About

An iOS app for searching, sorting, and viewing details about NYC high schools. Implemented for a take-home assignment.

Resources

Stars

Watchers

Forks

Languages