Architecting for sharing across apps
App groups
How To:
Create and enable app groups in the
Signing & Capabilitiesof your project(s) file in Xcode (add a newApp Groupscapability)Enable it in the developer portal
App Groups enable sharing data via
UserDefaults(via a shared suite) and shared files
Build and use Swift packages
Separate and focus concerns in different packages
This makes it clear for new comers to understand the projects
Suggested Package Candidates:
Authentication layer
Image fetching and caching
Design system
Application model layer
Barcode and text scanning, this gives a common look and feel for your bar code, QR and text recognition across each app.
Testing your apps for reliability
break down tests by importance, this allows you to run the most important tests more frequently than others. The more frequent they’re run, the quicker you can catch any failures.
test rendering performance
test battery performance
use Instruments to detect where your code pitfalls are
Managing your app after production release with configurations
server-side configurations allow you to have more flexibility and adaptability around the user experience in your application.
the server can distribute different configurations based on geolocation, market, or even more narrower level.
changing these attributes in production does not depend on any code changes.
this provides a great flexibility where some features may not be used for certain locations, markets, or elsewhere
configurations free up developer time from maintenance
configurations can be used to force the user to update the app
