WWDC iOS 17 Post

share this article:FacebookTwitterLinkedIn

Apple’s Platform State of the Union is a presentation to inform and provide an in depth look at the future of its platforms. It showcases new advancements that empower its developers to create better apps.

Full disclosure, the rest of this gets a bit nerdy so buckle up!

Swift Keeps Improving!

This year's improvements covered both Swift’s UIKit and SwiftUI, as well as their interoperability, including C++.

The improvements to UIKit included a new view controller callback. “viewIsAppearing”, which is now the best place to update the UI when the view appears. There are also new animated & localized SFSymbols with two easy to use parameters and also new composite layer animations! For empty states, there is now a convenient .contentUnavailableConfiguration option to configure the UI and inform the user.

Other improvements include text line height adjustments, wrapping and hyphenation, optimized for multiple text styles and languages.

SwiftUI has become very powerful, and continues to be the best way to create modern user interfaces, requiring less code, and focusing on reusability. This year, SwiftUI can now automatically transfer gesture velocities into animations, taking full advantage of the new SFSymbols, simpler data flow with focus on State and Environment. There is also a new development in Swift’s data management. The successor of CoreData(objC) is the all new native SwiftData, a framework for data modeling and management. When you're ready, Xcode can convert your coreData models into classes for use with SwiftData. The new macro support also makes it simple with the @model macro. Wait… macros for Swift?!

  • Swift Macros: An annotation that uses the structure of your code, to generate new code. For example you could make a macro to check the validity of a URL, providing real time errors and warnings during code writing, instead of runtime, if it fails. You can write your own macros and download macros made by others in Swift Package Manager.

Tools, Privacy and general enhancements.

The new Xcode 15 has more accurate code completion which now accounts for the surrounding code, SwiftUI previews are now easier to write and use in more places, includes Git staging available at a click, a single report view for all code changes, and even a new integrated Unit Testing report, paired with powerful logging and screen recording for easier identification of failure points.

The application size of Xcode has also now been reduced by 50%!

New privacy features include Privacy “Nutrition Labels” to inform users of what data you collect and how you use it. Xcode also has a feature to support this. The Privacy Manifest outlines the privacy practices of any 3rd party code in your app, and compiles it into a single easy to use report. Third party code is now also validated with signatures, to ensure it was signed by the same developer, from the legitimate source, keeping you and your users safe.

General improvements showcased, include CollectionViews being 50% faster to process under iOS17, and a new layout dimension for them; .uniformAcross siblings which provides consistent sizing. Spring Animation parameters have been simplified to “duration” and Bounce, text cursor improvements, upgrades to the status bar for dynamic splittable tinting for increased visibility, ISO HDR image support for views, page control including timing and durations, palette menus for further customizability with the new SFSymbols.

Apple has also released its first official design kit for Figma and our UX designers are pumped. It contains a comprehensive set of components, views, system interfaces, color styles, and much more. This will allow designers access to all the core ingredients they need to quickly create highly realistic app designs.

Overall, we’re excited for these changes as they’re going to make our job as developers much more efficient. Apple never ceases to amaze us over here at Shift.

Have questions on this article or what we do at Shift? Contact us here today.

This article was written by Brody Sears, Software Engineer