If you are looking forward to adopting new concurrence features in Xcode 13.2, don’t install Xcode from AppStore.
To workaround this issue, please re-download Xcode 13.2 directly from Releases section.
https://developer.apple.com/forums/thread/696504?page=1
#Xcode
Oh, it’s a great chance to start reading the book about async / await in Swift. A lot of discounts - worth to check it out!
https://github.com/mRs-/Black-Friday-Deals
A good advanced article as a reminder about static vs dynamic linking for libraries.
https://bpoplauschi.github.io/2021/10/25/Advanced-static-vs-dynamic-libraries-and-frameworks.html
#Xcode #linking #framework
If after the recent article you are still in doubt about buying a M1 laptop, there’re new Benchmarks with a sizeable open source project for help
https://blog.swiftpackageindex.com/posts/m1-pro-and-m1-max-build-and-test-benchmarks
#macbook #M1
Amazing news! Swift concurrency is backward compatible now.
“You can now use Swift Concurrency in applications that deploy to macOS 10.15, iOS 13, tvOS 13, and watchOS 6 or newer. This support includes async/await, actors, global actors, structured concurrency, and the task APIs.”
https://developer.apple.com/documentation/xcode-release-notes/xcode-13_2-release-notes
#swift #Xcode
Apple event, October 18.
Have prepared money for new Macbooks?
https://www.apple.com/apple-events/
#Apple #news
Optimizing ProMotion Refresh Rates for iPhone 13 Pro and iPad Pro
Apple has prepared an article about optimizing your app to ProMotion displays. Btw it’s very useful to read if you have a lot of animations.
https://developer.apple.com/documentation/quartzcore/optimizing_promotion_refresh_rates_for_iphone_13_pro_and_ipad_pro
#iOS #optimization
Just a good reminder why it’s necessary to avoid hard-coded secret keys!
p.s. It seems obviously, but as a reminder in case you forgot to get rid of it after a development process :)
https://www.netguru.com/blog/hardcoded-keys-storage-mobile-app
#iOS #privacy
Oh, it looks really promising! New concurrency system with backward compatibility with earlier iOS versions isn’t a dream anymore?
https://github.com/apple/swift/pull/39051
#swift
Just a good reminder about Display P3 and sRGB color issues you may face during the design or development process. So if you've ever wondered why this color is so vibrant or dull, read this article to clarify the differences.
https://bjango.com/articles/colourmanagementissues/
#UI
Important to mention tip from Ole:
If you’re writing Swift concurrency code, add these compiler flags:
-Xfrontend
-warn-concurrency
-Xfrontend
-enable-actor-data-race-checks
Warnings in Swift 5.5 identify unsafe constructs, will become errors in Swift 6.
source: https://twitter.com/olebegemann/status/1421144304127463427?s=21
discussion: https://forums.swift.org/t/concurrency-in-swift-5-and-6/49337
#swift #concurrency
Note
Worth mentioned privacy news in case your app uses some kind of analytics that relies on background notifications.
source: https://developer.apple.com/documentation/ios-ipados-release-notes/ios-ipados-15-beta-release-notes
#iOS #privacy
Tyler prepared a great thread on what changed in cell prefetching in iOS 15.
p.s. Are we ready for 120hz phones? 🤔
https://twitter.com/smileyborg/status/1406769460032114689?s=21
#iOS #twitter
I really like the Swift concurrency notes from the last WWDC. It gives a good recap of this new technology in case you prefer to refresh knowledge by avoiding reading the long proposions or watching the sessions.
https://www.wwdcnotes.com/notes/wwdc21/10254
#swift #concurrency
Ryan from Airbnb prepared a deep-dive post on their integration with the increasingly popular Server-Driven UI System.
https://medium.com/airbnb-engineering/a-deep-dive-into-airbnbs-server-driven-ui-system-842244c5f5
#airbnb #SDUI
FYI, be careful!
«In iOS 15 and later, the system may, depending on device conditions, prewarm your app — launch nonrunning application processes to reduce the amount of time the user waits before the app is usable. Prewarming executes an app’s launch sequence up until, but not including, when main() calls UIApplicationMain. This provides the system with an opportunity to build and cache any low-level structures it requires in anticipation of a full launch.
If your app executes code before the call to UIApplicationMain, such as in static initializers like load(), don’t make assumptions about what services and resources are available. For example, keychain items may be unavailable because their data protection policies require an unlocked device and prewarming happens even when the device is in a locked state.»
UPD
Seems like a bug, but application(_:didFinishLaunchingWithOptions:)
is invoked as well during a prewarning. I've sent a link to a thread in the comments. 🤔
https://developer.apple.com/documentation/uikit/app_and_environment/responding_to_the_launch_of_your_app/about_the_app_launch_sequence?language=objc#3894431
#iOS
Spotify has open sourced a library for remote caching implementation for iOS projects. So If you have a huge project with significant number of targets, I hope this library will come to your rescue.
https://engineering.atspotify.com/2021/11/16/introducing-xcremotecache-the-ios-remote-caching-tool-that-cut-our-clean-build-times-by-70/
#optimization #Xcode
Apple's decided to continue accepting submissions in App Store Connect throughout the upcoming holidays. 🎉
https://developer.apple.com/news/?id=y4fgrhhe
#news #Apple
If you're lucky - can use iOS 15+ API already, there's an exhaustive guide for Keyboard Layout Guide.
https://useyourloaf.com/blog/keyboard-layout-guide/
#UI #iOS
Hey! How are you all doing? Haven’t posted for awhile I apologize, but really burned out, tired of working stuff. So I took a vacation to finally recharge.🤞
Anyway, have you already pre-ordered a new MacBook? There are really good ones by far! I already told to the executive that it’s time to upgrade my laptop so I’m waiting for a decision… If you ruminate about an upgrading as well, there are some Xcode benchmarks with new MacBooks for help.
https://github.com/devMEremenko/XcodeBenchmark
#macbook #M1
Interesting improvement. Starting with iOS 15 Apple extended the Codable protocol with a configuration object that gives a bit more control for the encoding and decoding processes.
https://www.andyibanez.com/posts/the-mysterious-codablewithconfiguration-protocol/
#swift
I consider it's an interesting approach for fast UI development as a replacement to the Xcode playground. In my experience, SwiftUI previews are not as laggy as a playground.
p.s. Yep, previews aren't reliable as well, but... write a comment what do you think about this approach.
http://martiancraft.com/blog/2021/09/uikit-previews/
#iOS #UI
Get ready!
September 14, 2021
10:00 am PDT
https://www.apple.com/apple-events/
#Apple #news
Pointfreeco released an awesome collection of tools for debugging, diffing, and testing data structures. Custom XCTAssertEqual with a nicely formatted message is my favorite!
https://www.pointfree.co/blog/posts/62-open-sourcing-custom-dump
#iOS #debugging #testing
As we're waiting for a verdict in the "Epic vs Apple" battle, the Verge and Sean Hollister haven’t just been sitting around. They’ve been digging through a ton of internal emails and confidential presentations during the legal discovery process. Afterward, they prepared dirt on a variety of other companies as well: Microsoft, Sony, Google, Nintendo, Valve, Netflix, Hulu, and many others.
Some of my favorites in order to intrigue you:
- Apple had given Netflix a sweetheart deal where it took just 15 percent of subscriptions Netflix sold in its app (1)
- The similar subscriptions situation with Microsoft Xbox... (2)
- Apple had considered launching an ‘iPhone Nano’ (8)
- April 2013. Apple considered bringing iMessage to Android (20)
- “Don’t feature competitors in the App Store” - unwritten rule (22, 17)
...
https://www.theverge.com/22611236/epic-v-apple-emails-project-liberty-app-store-schiller-sweeney-cook-jobs
#Apple
Oh, I didn't know it before, but it's possible to use tuples for sorting by multiple fields. It's a really neat way to improve readability of code.
https://holyswift.app/using-tuples-to-complex-sorting-operations-in-swift
#swift
Nishant talks about the optimization of memory consumption for loading and cropping images. Namely, it's very important to know these rules when working with app extensions.
https://pspdfkit.com/blog/2021/image-loading-and-cropping-on-ios/
#iOS #optimization
Lyft's released a touch and keyboard synthesis library called Hammer as a great addition to XCTest for UI testing.
https://github.com/lyft/Hammer
#lyft #testing #iOS
Without any doubt, many of you have read articles about Swift Actors and what they were created for. So continuing this topic Bruno prepared an advanced article about the internal implementation of this feature.
https://swiftrocks.com/how-actors-work-internally-in-swift
#swift #actors
Javier prepared a plenty of questions / answers from the recent SwiftUI Digital Lounge in a written format. There are really a lot of interesting questions with useful answers from experts.
https://swiftui-lab.com/random-lessons/
#SwiftUI