830
This channel aggregates interesting information from many resources. So If you are interested in Swift, iOS, Apple and so on - welcome! Check the open-source projects: https://github.com/Otbivnoe Leave a feedback: @otbivnoe
If you're already using the latest Xcode, you can find a brief overview of debugging enhancements and new features within Swift 5.9 itself.
https://www.swift.org/blog/whats-new-swift-debugging-5.9/
https://www.swift.org/blog/swift-5.9-released/
#Swift
Lottie now officially supports SwiftUI.
https://github.com/airbnb/lottie-ios/discussions/2189
#Animations #Lottie
If you're looking to implement drag-and-drop reordering functionality similar to what the List in SwiftUI offers, but for Grid and Stack components, there's a comprehensive custom solution.
https://danielsaidi.com/blog/2023/08/30/enabling-drag-reordering-in-swiftui-lazy-grids-and-stacks
#SwiftUI
Friendly reminder:
From Fall 2023 you’ll receive an email from Apple if you upload an app to App Store Connect that uses required reason API without describing the reason in its privacy manifest file. From Spring 2024, apps that don’t describe their use of required reason API in their privacy manifest file won’t be accepted by App Store Connect.
p.s. User Defaults API is in this list as well.
So an author wrote a shell script that helps you to identify the use of such API in your code base.
https://blog.eidinger.info/how-to-check-if-you-use-a-required-reason-api
#privacy
I've attempted multiple times to access the tint or foreground color using the @Environment in custom components, but each time I ended up by passing this color through the initializer. However, I recently discovered a solution that seems to work seamlessly. For instance, a value set via the foregroundColor modifier can be easily accessed using the ForegroundShapeStyle (refer to the attached screenshot). The same approach can be applied to the tint color as well.
https://kylehugh.es/documents/how-to-read-foreground-and-tint-colors-in-swiftui-views/
#SwiftUI
To celebrate the major update of the Composable Architecture (1.0), the team is doing a library tour. If you've always wanted to take a look at this library, now is the perfect time to do so.
https://www.pointfree.co/episodes/ep243-tour-of-the-composable-architecture-1-0-the-basics
#composable_architecture
If your project is heavily inspired by a modular architecture with the use of SPM, try this package that simplifies the management of your Package.swift by using DSL.
https://github.com/brightdigit/PackageDSL
#SPM
This great article aims to examine the fundamental principles and distribution logic of SwiftUI Transactions. It provides readers with valuable insights on how to attain more precise animation control. Furthermore, it sheds the light on various other noteworthy factors that require attention.
https://itnext.io/the-secret-to-flawless-swiftui-animations-a-deep-dive-into-transactions-7afbf9abdac3
#SwiftIU #animations
Good article about comprehending mergeable libraries introduced a few weeks ago at WWDC.
We can now make use of mergeable libraries, which are a new type of library that combines the best of dynamic and static libraries. They are optimised for both build time and launch time performance and are designed to feel like static libraries.
https://www.polpiella.dev/understanding-mergeable-libraries/
#Xcode #framework #linking
The Apple design kit has now been officially published in Figma. I'm sure this update will bring happiness to designers in your team — go ahead and tell them about it.
https://www.figma.com/community/file/1248375255495415511/Apple-Design-Resources-%E2%80%93-iOS-17-and-iPadOS-17
#Figma
Friends, I wanted to share some recent news with me regarding my professional situation. Unfortunately, due to a significant layoff at my startup, I am now seeking new employment opportunities. If any of you are aware of any vacant positions or opportunities within your organizations, I would greatly appreciate your support! ❤️
Feel free to ask any questions or suggest great positions - @otbivnoe
(Full remote, Europe-Asia timezone)
This informative guide offers you valuable tips to completely avoid or effectively handle the most frequent rejections in the AppStore.
https://www.revenuecat.com/blog/growth/the-ultimate-guide-to-app-store-rejections/
#AppStore
The author describes how to reduce redundant view updates by applying various optimization techniques.
https://mobileappcircular.com/how-to-avoid-repeating-swiftui-view-updates-dcf0a65d3758
#SwiftUI #optimization
It turns out that in addition to all known access levels, there's also an experimental feature called SPI (System Programming Interfaces). It lets for library developers shipping experimental features only to dedicated clients and hiding those features to other ones.
https://blog.eidinger.info/system-programming-interfaces-spi-in-swift-explained
#swift
FYI 👇
Q: Is there a documentation up for accessing dynamic island (on iPhone 14 Pro) with live activities? Couldn't find anything
A: Live Activities are implemented using the ActivityKit framework, which was available in iOS 16 beta 4 and iOS 16 beta 5. The ActivityKit framework is not included in iOS 16 RC, and is not included in Xcode 14 RC. ActivityKit will be included in an update to iOS 16 coming later this year, as mentioned in this News and Updates post. Once ActivityKit is available in an update to iOS 16, you'll be able to implement Live Activities and interact with them in Dynamic Island.
https://developer.apple.com/forums/thread/713978
Airbnb shared their SwiftUI adoption story, including their motivation for replacing Epoxy (declarative UI framework) and UIKit, their integration process, and the results and challenges they've faced.
https://medium.com/airbnb-engineering/unlocking-swiftui-at-airbnb-ea58f50cde49
#SwiftUI #AirBnb
Explore an in-depth article on SwiftUI's layout process. The author provides a comprehensive breakdown, including the Layout protocol, the functionality of frame, fixedSize, and idealSize, and much more.
https://betterprogramming.pub/swiftui-layout-the-mystery-of-size-b82ce99e61d8
#SwiftUI #Layout
September 12th, iPhone 15 and more 🥳
Читать полностью…
Kodeco (ex raywenderlich) released a free book with huge amount of common patterns for building user interface in SwiftUI.
https://www.kodeco.com/books/swiftui-cookbook/v1.0
#SwiftUI #book
Github just announced Dependabot for Swift! For those unfamiliar, this tool automatically generates pull requests with updated dependencies, ensuring any security vulnerabilities are promptly fixed.
https://github.blog/changelog/2023-08-01-swift-support-for-dependabot-updates/
#github
Apple prepared a bunch of sessions with AppStore experts for discussing different topics: how to attract new customers, test marketing strategies, optimize subscriptions, and so on.
https://developer.apple.com/events/app-store/
#AppStore
Apple's just released a new, open source package designed to provide common types for working with HTTP. This package provides a convenient integration with Foundation as well. However, it's important to note that the current version of the package does have a limitation: it does not include support for HTTP request and response bodies.
https://www.swift.org/blog/introducing-swift-http-types/
#Swift #network
During the recent WWDC event, Apple introduced a new framework called Observation. One of its most eagerly anticipated features is its ability to eliminate unnecessary updates in SwiftUI views. In this article, the author takes a Q&A approach to explore this framework and provide answers to common questions surrounding it.
https://betterprogramming.pub/a-deep-dive-into-observation-a-new-way-to-boost-swiftui-performance-f299831c664b
#SwiftUI #optimization
Two Q&A sessions with Apple engineers about new features:
SwiftData
https://useyourloaf.com/blog/wwdc23-swiftdata-lab-notes/
SwiftUI
https://onmyway133.com/posts/wwdc23-swiftui-qanda/
#SwiftData #SwiftUI #wwdc
I know you've all been waiting for this. Here's a quick introduction to the new framework, Swift Data, that persists data in your app and is entirely built around modern Swift.
https://alexanderlogan.co.uk/blog/wwdc23/03-swift-data
#SwiftData
Once again, Paul presents a great introduction to the latest features in Swift 5.9
https://www.hackingwithswift.com/articles/258/whats-new-in-swift-5-9
#Swift
The author has prepared* an eight-part series in which he details his journey with CloudKit after his own sharing solution:
- Basic CloudKit concepts.
- How data is moved between a device and iCloud.
- How to initiate sharing, and how a sharing invitation is accepted by the app.
- Strategies for synchronising data between devices.
- Sharing participants, what happens when you stop sharing, leave a list or sign out of iCloud.
- Tips for diagnosing issues, handling edge cases, concurrency and logging.
*Only 5 parts are available now. A new part becomes available one week after the previous one.
https://dev.shoppingukapp.com/2023/05/01/embracing-cloudkit-for-data-sharing-contents.html
#CloudKit
I appreciate how the author delivers a comprehensive understanding of the animation mechanism in SwiftUI. The article provides numerous important details, including helpful demonstrations through gifs and additional links for further exploration.
https://betterprogramming.pub/swiftui-animation-mechanism-a1adf2b9b417
#SwiftUI #animations
Here we go. API docs about Dynamic Island support are now available.
https://developer.apple.com/documentation/activitykit/displaying-live-data-with-live-activities
#iOS #widgets
A bit of new API: layout guide that is useful for full-screen content:
safeAreaAspectFitLayoutGuide
“Unlike the standard rectangular safe area defined by the safeAreaLayoutGuide/safeAreaInsets, this new layout guide API considers the true shape of the safe area, including the curvature of the display edges and sensor housing/island areas, maximizing the content without clipping.”
Read the Tyler’s thread about the all details.
https://twitter.com/smileyborg/status/1567624484206825472?s=46&t=csd2d8i61Hh2K4Z9JvlR1w
#iOS