The iOS Widget Extension
- Category: App / App Extension
- Time frame: 10/2022 - 02/2023
- Team: Leander W., Thorben A., Noah Hartmann
- Core Technologies/Frameworks/Tools: GitHub, Postman, REST API, Core Data, WidgetKit, SwiftUI
About
As part of the project work in cooperation with OTTO GmbH & Co KG, an iOS widget
was to be developed that provides users with quick and clear information about the status
of their open orders using the
OTTO orders API.
Customers are being actively notified of any changes to the order status and are able
to access the corresponding order detail page in their account through a link.
The API uses OAuth 2.0 to authenticate customers,
ensuring that only information belonging to the authenticated account can be accessed.
The "host app" (main app that includes the widget as an extension),
was only developed to the extent necessary to implement the required functions for the widget.
Unfortunately, we have not yet received official approval from OTTO GmbH & Co KG to publish screenshots or clips of the application.
Therefore we came up with a few mockups to give you an idea of the app's appearance.
My responsibilities
- implement the authentication process with PKCE & storing tokens in the Keychain
- endpoint definition & generic client
- making authorized requests to the API
- processing API responses and prepare them for frontend use
- implement storage capability for a certain number of product images to reduce data usage and ensure offline use
- implement notifications triggered by relevant changes to the order status
Learnings
- improved understanding of REST APIs and the Authorization Code Grant Flow as part of the OAuth2.0 standard (+)
- introduction to iOS development (+)
- teamwork (+)
- underestimation of the required scope of the host app (-)