Apple has developed new tools for software development on iOS, iPadOS, macOS, watchOS, and tvOS. Plus, an entirely new platform, visionOS. The great thing about these innovations across all platforms is that they share their foundations. Therefore, the apps you develop can be used in various products.
In this document, we tell you about all the developments for iOS.
Swift Macros
This is a new way to use APIs. Macro is a notation that uses the structure of your code to generate a unique code that is part of the construction of your project. That is, it makes the APIs part of the project.
This is an example of a Default Macro:

The last image shows the code that the macro enters automatically, and that is only visible if you display it manually.
And here is an example of a Custom Macro:


In this case, the notation differs and adds a numeral to identify the macro you performed. The macro checks if the String in the URL is valid at compile time. If it detects an error before compiling, it can also report it and fix it, as shown in the following screenshot:

Macros can add functionality to your existing code. And best of all, you can use breakpoints to see how this new code works.
Finally, about macros, since Swift is developed as open source, developers are already creating new features that will benefit the whole community.
Data flow
Obtaining the information to show on your screens will be much simpler. Conforming to the ObservableObject protocol or adding the Published property wrapper is no longer necessary. With macros, you will only have to use the @Observable notation in the views, and there will be no need to use property wrappers to update the views.
All you need to do is to reference the variables directly. In this way, you write less code and get the correct default behavior.
If we take it to the example of a concrete case, the Bird model will pass from this:

To this:

And the view that uses it mutates from this:

To the following:

WidgetKit
Now, with the new additions, applications will be able to display their content in many places in the system thanks to WidgetKit.
From iOS 17 and with a few simple changes, widgets that already exist will be able to look very nice in StandBy on iPhone.
These are examples of the calendar and clock widgets:

They will also be available on the iPad lock screen. Without the background they used to have, they are perfectly integrated. Here is an example:

In macOS Sonoma, widgets will also be available. In addition, a small screen of the application will be displayed when they are focused.
On the other hand, widgets will also be interactive, and with a simple tap, you can perform actions such as checking a reminder.
Best of all, actions performed on one platform will be reflected in the widgets of the other platforms. In other words, this architecture allows iPhone widgets to be displayed seamlessly on your Mac.
Thanks to Continuity, the widget file can be sent all over the network to your Mac:

And interactions can be sent back:

Adapting existing widgets is very easy:
- Identify the background.
- Update the padding to the default provided by WidgetKit.
When the widget content changes, the system launches a transition:
- It works just like a Magic Move in Keynote.
- Standard APIs can be used to customize the effects.
Another critical point for developers is that thanks to Swift Macros, you can see the entire widget lifecycle in Xcode previews.

By tapping on each animation, you will be able to visualize how it will change when the information is updated. In addition, you can also view it in StandBy mode or on iPad.

APP INTENTS
App Intents elevate your app’s functionality system-wide in:
- Spotlight
- Siri
- Shortcuts
This is what the code would look like to show your app in Shortcuts:

And app shortcuts will appear in the Shortcuts app:

StoreKit
The App Store has always been known for providing a robust data model to connect your products to the UI of your apps. This will be available on all platforms, even for the watchOS display.
Using SwiftUI declarative syntax, you can craft your marketing experience while Store Kit takes care of the rest.
This is an example of subscriptions:


As the example above shows, the subscription screen was fairly generic and thus can be easily customized:


At the same time, offers are also important to promote your application. That’s why SubscriptionStoreView will automatically determine if a user is a candidate to receive it. If so, it will show it to them based on their purchase history and subscription type.

SKAdNetwork
Another factor of great relevance for business growth is how users discover your app.
To that end, SKAdNetwork helps ad networks measure the success of ad campaigns that drive downloads of your app while preserving user privacy. In addition, it will allow you to measure the re-engagement of users.
TIP KIT (turnkey nature)
- Intelligently educate users on the right functionality at the right time.
- These tips come ready to use and can also be customized to fit the style of your application.
- They can be configured so the user does not see the same tip twice, even if using the app on different devices.

AirDrop
In iOS 17, users will no longer have to use the Share Sheet; now, they can quickly send content to the devices they have nearby.
How to achieve this? In the code, it can be done in different, effortless ways. One of them is using ShareLink, as we show you below.

Xcode
Beyond all the new additions, the place where all development happens will be included.
These are the updates for Xcode 15:
- Version control

- Bug fixing, profiling, and tools to test and improve your app. All are connected with Xcode iCloud, continuous integration, and delivery services that simplify distribution to Test Flight and Apple store.

- Suggestions in Xcode for modifiers, native or custom.

- Symbol suggestions for your active resources. This guarantees you that they will actually be available in run time.

Simpler previews with Swift Macros, where you go past this:

To this:

- Previews of views on all platforms, choosing directly from Canvas.
- Previews of views in all frameworks from any part of the code.

- Review all version control changes in one place before committing.

ACCESSIBILITY
Apple has always focused on making all of its products as accessible as possible. This year, it has been no different. The goal now is to protect users sensitive to flash animations and lights.
In many cases, users need help differentiating between potentially risky and non-risky content, or they consume content without much prior information.
The new frameworks will include two new features:
- Pause Animated Images: for GIF animations in Safari, Messages, and more, making it easy for developers to implement in their animations.

You can see how to use an environment property in this code fragment. To respect this decision, you can know if the user decided to pause the animation and replace it with a static image.
- Dim Flashing Lights: automatically dims the screen during a very bright video sequence or flashing lights. If you use AVFoundation in your app, this will not involve extra work. Otherwise, a new API identifies risky videos and automatically dims them.
APP PRIVACY
It is important that the user can see what information is collected and how it is used in your application. By introducing third-party SDKs, you make it more difficult to give this information to the user.
Consequently, two updates have been made:
– Privacy manifest: these are files in a standard format that show the privacy practices of third parties in your application. When you are about to distribute your app, Xcode gathers the information from all SDKs in a single report.
Manifesto:

Report of all manifests:

- Signed SDKs: Improving the integrity of the software production chain was also prioritized. When you adopt a new version of a third-party SDK in your app, Xcode will validate that it was signed by the developer you expected.
Finally, Communication Safety is cross-platform with the Sensitive Content Analysis framework. It only takes a few lines of code for this framework to help you detect images and videos that contain unwanted content. This happens all on the device.

It uses the same technology as Communication Safety. This framework also allows everyone to blur sensitive content with Sensitive Content Warning.
Examples:

Are you looking to develop an app for your business?
At ThinkUp we are a digital product development company, obsessed with quality and specialized in mobile apps and unique user experiences. We create world-class digital products for startups and enterprises, with the goal of transforming and empowering businesses.