This has been a long project with lots to learn, but today marks the last of the code. As the American professor Angela Duckworth said, “enthusiasm is common; endurance is rare” – it took enthusiasm to start day 1 of this series, but here you are on day 84 just finishing a huge project, so it’s clear you’ve got great endurance as well.
This project has already drawn upon some important SwiftUI features such as tab bars, swipe actions, and the environment; some important Swift features such as
Result, and advanced access control; and even some important iOS features such as Core Image and scanning codes with the camera. Today we’re going to add the icing on the cake, which is loading and saving data using
UserDefaults, adding a context menu, and showing alerts using the UserNotification framework.
This is what great apps look like: they lean on a variety of language and system features to build great user experiences that go beyond what SwiftUI can do by itself. Yes, SwiftUI is an awesome way to build apps, but it’s only the beginning – iOS is capable of so much more, and as much as it sounds like a cliche the only limit to what you can make is your imagination.
Today you have three topics to work through, in which you’ll load and save data with
UserDefaults, add a context menu to save our QR code, then show local notifications using the UserNotifications framework.
That’s another app complete – don’t forget to share your progress with others!
If you use Twitter, the button below will prepare a tweet saying you completed today, along with a celebratory graphic, the URL to this page, and the challenge hashtag. Don't worry – it won't be sent until you confirm on Twitter!
Need help? Tweet me @twostraws!
SPONSORED In-app subscriptions are a pain. The code can be hard to write, full of edge cases, and time-consuming to maintain. RevenueCat provides a backend and wrapper around StoreKit to make things simple so you can focus on building your app.
Link copied to your pasteboard.