Reviews of important new products for iOS development from WWDC 2023

The latest solution from Apple in the field of linking and code delivery. Mergeable libraries can simplify the development process and improve application performance. The solution allows you to combine within the application the best features of static and dynamic linking of external or internal libraries within the project.

The report will cover how to set up Mergeable Libraries, their advantages over classic static and dynamic frameworks, and performance conclusions.

Briefly about the innovations:

1. Preview for UIKit. They are quite demanding on the device; for example, they did not start on a MacBook 2016 with 16GB of RAM.

2. Bookmarks for code and a convenient interface for working with them.

3. Getting color. Now you don’t need to write the names of colors/pictures in quotation marks, double-checking whether the name is written correctly.

To get a color called "example1" you can use the following:

To get an image named "example2":

4. Localization has acquired a graphical interface with hints and the ability to add singular and plural numbers to words.

5. Logs have become much clearer due to changes in appearance. Now you can independently choose which log information will be shown in the console and which will not.

Updates to Notifications for the latest iOS versions:

How the visual presentation has changed

Adding actions to notifications

What is Notification Summary

What options are there to bypass focus modes?

How and why to use Focus Filters

Live Activities
What opportunities does the new 2023 present - Push Notifications Console

Apple first introduced Live Activities in iOS 16. It's a convenient way to track the progress of a task in an app. It can be used to create useful features for the lock screen, Dynamic Island, and StandBy mode.

In the report, we analyze how a user interacts with Live Activities, what content we can display in them, and what new for LA was presented at WWDC23. They also talked about the possibilities of design and animation, looked at examples of applications with Live Activities and the technical part of implementing LA in an iOS application.

What's new in UIKit
UIKit improvements that may make it more attractive for iOS, iPadOS, and macOS app development:

Previews: the ability to preview changes in UI code without the need for recompilation

UIViewController lifecycle updates: new viewIsAppearing(_:) method

Adding effects to images: unifying SFSymbols animations

No Data State for UIViewController: New method to control the display of content when there is no data.

What's new in Swift 5.9
Limitations and capabilities of Swift 5.9 - analysis of new features and their application in practice, for example:

Non-copyable structures

New generic function syntax

Clock Protocol

Swit Macros
Macros can transform source code and allow you to generate boilerplate or repetitive code, which significantly saves developer time.

These are full-fledged extensions for the compiler. They are written in the Swift language, and thanks to this, their capabilities are quite wide. Macros are divided into 7 roles, which determine how and where the macro can be applied and what type of code it produces.

To write macros, the developer must be able to work with AST (Abstract Syntax Tree) and understand SPM (Swift Package Manager).

Fortunately, you don't need this knowledge to use macros. The process of using macros is quite convenient: checking for syntactic correctness and type compliance is carried out both before and after applying the macro, which greatly facilitates the process of debugging the program. You can expand the macro and see the code that will be created; all errors are displayed right where the macro is applied.

At the moment, there are already many interesting macros on the Internet that help you avoid writing template code manually.

Swift Data
Swift Data is a new Swift framework for working with data storage within an application, created on the basis of the existing CoreData framework and using modern features of the Swift language, such as macros introduced in Swift 5.9.

The report examined the basic concepts of the framework, data schema, entities, features of working with UIKit and SwiftUI, and also compared the new tool with CoreData and looked at example applications.
Made on