This is a simple iOS app that downloads a list of states and displays them. It should take 1 to 2 hours to complete the following tasks.
Note: There are two Xcode projects, one using UIKit and one using SwiftUI - feel free to choose either.
-
Make sure you can run the app in Xcode on a simulator.
-
Inspect the code and note places where you'd make improvements based on iOS best practices.
-
Modify the app to use MVVM (or similar), specifically:
-
Add a ViewModel that downloads the list of states.
-
Modify the UIViewController or View to accept the list of states from the ViewModel.
-
Modify the Network class to be more general purpose.
-
Bonus (optional): Modify the app in some way, visually and/or internally, that you think might be useful or cool.
In the interview, we'll discuss this app, ways to improve it, architectural concepts, best practices and what ideas you think are important in making a strong, reliable and easy to use iOS app.
Final note: Be prepared to run Xcode, a simulator and share your screen during the interview.