by Dmitrii Zverev. 20 March 2023
• The app’s main page should be a dashboard that displays key information to the user in the form of blocks or modules. Examples of this can include:• Most recent fuel transactions
• Recent charge sessions
• In store offers
• Upcoming Energy Bills
• Home energy usage
• Blocks or modules should show high level detail that the user might want immediately, whilst giving them the option to navigate into more detail.
Examples of this can include:
• Recent fuel transactions shows only the 2 most recent transactions. A “See all” button on the module could take the user to a detail view with all their previous transactions.
• Recent charge session shows only the location and price of the charge, tapping into the module could take the user to a detail view that shows further details about their charge including but not limited to:
• Price
• Amount of time and Charge rate (kWh)
• Discount
• In store offers could show a targeted offer, whilst tapping into the module takes them to show all offers available.
• With the goal of creating a seamless experience for 3 products in a single application, blocks and modules should have complementary design and colours, and should communicate a single experience across the differing products.
• Upload your source code to a public repo and provide a link to the exercise, please include how long you spent on this exercise.
-
Pure SwiftUI 3+ (iOS 15 minimum target) application
-
Combine + Swift Modern Concurrency (async await)
-
SwiftUI application lifecycle
-
Swift Package Manager - NO NEED FOR THAN
-
In house design system and component library
-
Functional design and immutable state