Implemented in Swift & UIKit.
CocosPods used for third-party libraries, so pod install is needed before compiling.
- The list must be scrollable
- Each item will show
- The incident type icon
- The incident title
- The date the incident was last updated
- A badge indicating the status of the incident
- Under control: Green background
- On Scene: Blue background
- Out of control: Red background
- Pending: Orange background
- The list is to be sorted by incident last updated date, with an option to change the order (ascending/descending)
- Selecting an incident will show the details
- Show some type of indicator while the incident type icon is loading
- If using SwiftUI, add a search bar (bonus for UIKit)
- Show each of the following pieces of information, and ensure they are labelled and left-aligned
- Incident Location
- Incident Status
- Incident Type
- Incident Call Time
- Incident Description (multi-line)
- Show a map with the incident location
- Display a button to navigate to the incident
- If using SwiftUI, use the incident type icon to represent the location on the map (bonus for UIKit)
- Ensure the app adapts appropriately when changing between light and dark mode
- Display the details view as a card view popup instead of pushing to a new page
- iPad support with a split view/sidebar
- Pull to refresh the incident list