Every year Apple organizes the World Wide Developers Conference (WWDC) in June, focusing on new software releases and product announcements. This year's WWDC was particularly interesting because of the focus on privacy in the Apple ecosystem. If app developer it is important to stay up to date with the latest developments, especially in the field of privacy. Here's a quick summary of the key points to save you 1 hour and 15 minutes of WWDC sessions.
Written by our iOS developer and designer Peter Cammeraat.
The four privacy pillars
There are four key principles in the Apple Ecosystem that protect user privacy. These principles should form the basis for all existing and future apps.
1. Data minimization: Use only the most important data in your app, including how much data you collect, the data you share, and what you might share with others.
2. Processing on the device itself: Take advantage of the device's capabilities to process data locally and avoid the need to share it with remote servers.
3. Transparency and control: Transparency and control mean that people need to know how and why their data is being used. They should also have a say in what happens to their data, both upfront and later when they want to change their minds.
4. Security measures: Implement strong technical measures to enforce the remaining principles, including the implementation of end-to-end encryption.
photo picker
The Photo Picker has been improved for easy access to photos in your app. Users can now selectively share photos or videos without opening their entire photo and video library. The Photo Picker fits well with your app and gives users control over their photos. You can customize the appearance and avoid complex permission requests. Consider using the Photo Picker for individual photo access without full access rights.
Screen Capture picker
Apple introduces ScreenCaptureKit, a new API for macOS that improves screen sharing by selectively sharing windows or screens that your app needs. The SCContentSharingPicker API in macOS Sonoma allows users to choose specific screen content to share, without the need to give conferencing apps full screen recording permissions. The chosen content is shared immediately, which improves the user experience. Your app can capture this content during the screen recording session without additional permission or building a custom content picker. macOS Sonoma includes a screen sharing menu in the menu bar to keep users informed about recording, with options to start, stop, or update. You can customize the dialer to suit your app's needs, such as selection modes or preferred applications.
Calendar
Calendar integration into your app now provides a seamless experience, especially for apps that focus on creating new events. Apple has introduced two major changes to accessing the Calendar:
1. EventKitUI: If your app only creates new events, EventKitUI allows you to expose view controllers outside your app without explicit permission, while still maintaining the same functionality.
2. Addition authorization: For apps with custom event user interfaces, a new add-only permission is available. This allows you to add events without accessing other calendar events, seamlessly integrating your app's events into the user's schedule.
If full access to the Calendar is needed later, you can request an upgrade with user permission. Provide clear explanations and proper timing to avoid rejections that could impact the user experience.
Remember that providing a meaningful purpose statement and tailoring the request to the user's intent are essential so that users understand the need for access. Previous Calendar access is limited to write permission only by default when upgrading to iOS 17 or macOS Sonoma. If your app is associated with an older version of EventKit and requests Calendar access, the system will automatically prompt for an upgrade to full access whenever attempts are made to retrieve Calendar events.
Oblivious HTTP API
Oblivious HTTP API protects user privacy by hiding IP addresses and concealing app usage from network administrators. It's especially useful for preventing others from seeing what apps people are using. This is important because it can tell a lot about someone's life. Imagine if internet providers could see which apps you use, that could be quite worrying, especially for apps like dating or health.
IP addresses are necessary for the internet, but can also be used to determine your location. This can be difficult if you want to create apps where you do not want to know who the user is, for example for anonymous analyses.
To address these issues, Apple now includes support for Oblivious HTTP (OHTTP). This is a special internet protocol that ensures that messages are sent securely without others being able to see what exactly is being sent. This allows network administrators to only see that there is a connection, but not what is being sent.
The most important part of this system is the relay. This relay station knows the user's IP address and the name of the server, but does not know what is being sent. It only ensures that the connection is made.
By using a third party relay station, no one has complete control over who does what. This makes it possible to provide technical guarantees for functions where you do not want to know the identity of the user, such as anonymous analyses.
Using OHTTP gives you the opportunity to improve privacy on the Internet and has a major impact on user privacy. Some services, such as iCloud Private Relay, already use this because of its good performance and strong privacy protection, for example for the protection of DNS queries.
With support for OHTTP, you can improve privacy measures and have a major impact on user privacy.
Sensitive Content Analysis framework
Apple introduces Communication Safety and the Sensitive Content Analysis framework, powerful tools to protect children in your app.
Communication Safety helps keep kids safe by alerting and providing help when photos containing nudity are shared. It protects not only in Messages, but also with AirDrop, FaceTime, contact posters and the Photo Picker.
The Sensitive Content Warning makes these features available to everyone. The new Sensitive Content Analysis framework makes it possible to detect content on the device itself using models provided by the system. You don't need an external server, and integrating it into your app is easy with just a little code.
To get started, make a copy of it SCSensitivityAnalyzer. Check the `analysisPolicy` attribute to know what to do. Use `analyzeImage` for photos or videoAnalysis for videos, and monitor progress with the handler. Get the results with `hasSensitiveContent`. If 'isSensitive' is true, the content probably contains nudity. You can then take your own actions, such as blurring, with an option to view the content.
Privacy Manifesto
When you create apps, you need to make sure they are secure and private to users. Sometimes you use pieces of code from other companies (that's those third party SDKs). But sometimes it's hard to know what those pieces of code actually do.
To solve this problem, Apple has something new: Privacy Manifesto. These are lists made by the creators of those pieces of code. They tell you what data is collected, how it is used, whether it is associated with users, and whether it includes tracking (that is, it follows you online).
With Xcode 15 you can create a report that summarizes all this information. It's like a PDF and looks like those nutrition labels you see on food. This way you can easily tell Apple and your users how your app handles privacy.
Privacy Manifests also help manage websites that your app uses to retrieve things. You can tell which websites your app can use. If people don't want their information tracked, iOS 17 makes sure that doesn't happen.
During testing, Xcode 15 helps you see which websites might be trying to track your information. You can then decide whether this is allowed or not.
Remember that you must give users permission if you want to collect information about them. But it is never allowed to secretly collect information without people knowing. Apple has special rules to ensure this doesn't happen.
It is important to follow these rules. If you create apps with pieces of code that have a major impact on privacy, those pieces of code must have a signature and a Privacy Manifesto. If you want to collect information for special reasons, you should also put that in the manifest.
This is all to ensure that users know what is happening to their data and to ensure that their privacy is protected. So if you're creating apps, make sure you have all of this in order!
Dependency signature verification
When you're developing an app, you can sometimes use tools from other people to make it easier. These are, as it were, building blocks that you can put into your app. But, there are also risks involved. It's like when you build with LEGO and you use pieces from others. Sometimes a piece can be broken, or even dangerous.
To ensure that the pieces you use are secure, you can use digital signatures. It is a kind of seal that shows that the pieces are real and have not been altered. Apple has a way to verify these digital signatures. Using these signatures, you can see if the pieces are safe.
With the new version of Xcode, which is the program you use to create apps, you can more easily check whether the pieces you use are safe. If a piece is signed, let Xcode show this to you. This way you know the piece is good. If the piece is not signed, you should be extra careful and perhaps contact the maker to make sure it is safe.
This is important because some pieces of code can collect data from users, and you want to make sure this is done in a secure manner. If you create and share pieces of code yourself, it is also smart to sign them so that others know they are real.
All in all, this is a way to ensure that the apps used are safe and that data does not fall into the wrong hands. It's a bit like a quality mark on food that indicates it is safe to eat.
Data from apps on macOS
MacOS Sonoma brings improved privacy protection for apps, so your data is safe even when other apps are running on the same computer.
Here's how it works:
1. The system determines who has access to specific locations on your computer, such as the desktop, documents and downloads. This way you can control which apps can access your private data, such as documents or spreadsheets.
2. For apps that store data in different places, such as chat apps or note-taking apps, there are additional rules. Before such an app can access data from another app, the user must grant permission.
3. To ensure that your app also benefits from this new protection, you must:
– If your app stores data outside the default locations, you should enable App Sandbox to protect your users' data. If you already use App Sandbox, you get this protection automatically.
– If your app wants to use data from other apps, macOS Sonoma will ask for permission when you try to access data from another app. Make sure your app has a clear reason for using that data and explain it clearly.
4. If your app needs permission to open files from other apps, you can use NSPopenPanel, a handy tool to access files and folders outside your app.
5. Some utilities, such as backup tools or disk management programs, already have permission to view data and do not require additional approval.
6. If your app is signed with your Team ID, it can access data from your other apps without additional permission.
7. For even tighter security, you can set rules in your app's Info.plist file to allow specific processes to access your app data with a special rule called NSDataAccessSecurityPolicy. This provides additional control over who has access to your data.
Advanced Data Protection
With Advanced Data Protection you can improve data security for your users.
Introduced in 2022, this feature makes it possible to use end-to-end encryption for most data stored in iCloud, increasing privacy. If you CloudKit you can automatically apply this form of encryption to the data your app stores when users enable Advanced Data Protection.
You don't have to adjust anything on your end to manage the encryption keys, operations, or recovery processes. Just follow these simple steps to extend privacy benefits to your users:
1. Make sure all fields in your CloudKit schema use encrypted data types. This includes CKAsset fields, and encrypted versions are available for most data types (such as EncryptedString).
2. Use the `encryptedValues` API to retrieve or store data in your CloudKit records. This API handles all the encryption and decryption steps for you.
By following these steps, the data in your app will benefit from strong security and privacy protections when users enable Advanced Data Protection.
safari
Safari's Private Browsing mode is now even better at protecting your privacy. Here's what you need to know:
1. What is Private Browsing? It's a way to surf without the browser remembering your search and browser history. Useful if you do not want others to see which websites you have visited.
2. What's new in Safari 17? Now Private Browsing mode has extra protection against tracking and fingerprinting. These are techniques used to track you online.
3. How does it work? Safari automatically blocks known tracking and fingerprinting sources. If you're a website developer, you need to test your website to make sure everything works properly, especially logging in, switching between websites, and using certain browser features. You can temporarily disable this new protection to test whether your website still works properly without this protection.
4. What else is happening? Safari also removes tracking data when you copy links or while browsing. This gives users more control over who follows them online.
5. Important to know: Advertisers can still see which ads are effective without knowing your personal information. This is done with a feature called “Private Click Measurement,” which is now available in Private Browsing mode. This feature ensures that no data is stored on your computer and that attribution is limited to one tab.
These new security features in Safari's Private Browsing mode help protect your online privacy, giving you a more secure browsing experience.
Video summary
Want to know more about the features and improvements regarding privacy? Then watch Apple's video 'What's new in privacy'.
Our thoughts?
These recent privacy updates and features across the Apple ecosystem highlight Apple's continued commitment to safeguarding user privacy. They also provide developers with powerful tools to achieve this. As an app developer, we really welcome this and can't wait to explore and integrate these new features and protocols into our future projects!
Contact us
Ready to create something awesome together? Give us a call. We are looking forward to it!
CONTACT
Do you have a question? Contact us without obligation and I will be happy to help you.