WWDC24 Announced
It’s another virtual conference year with an optional and free in person opening day. https://developer.apple.com/wwdc24/
It’s another virtual conference year with an optional and free in person opening day. https://developer.apple.com/wwdc24/
I did something like this for analytics on the company app. It needs to record analytics to multiple providers for which a fan out pattern was a good fit. There's a single entry point to log an event. Any number of loggers then pick up that event and send it out to the provider. It has worked well and is even used for functionality inside of the app that should happen after a certain set of events occur in the app. For instance it prompts the user to rate and review the app after the user has performed a conversion event. A similar set of events will trigger the app to prompt the user to allow push notifications.
https://www.swiftjectivec.com/masking-third-party-dependencies-swift/Open linkView original on programming.devIt's a nice explanation and exploration of how state in SwiftUI works.
https://blog.thomasdurand.fr/story/2023-10-21-how-not-to-monitor-swiftui-state/Open linkView original on programming.devLast year, we partnered with the team at gSkinner to develop Wonderous, a reference app to showcase the high-quality experiences possible with Flutter. One of the goals for creating Wonderous was to provide an open-source example that demonstrates best practices. In that same spirit, we audited Wonderous against Android’s large screen guidelines.
It's a Medium article but shouldn't count against any stupid quotas since it is from the Flutter team.
I haven't seen any of the issues mentioned in the article. I suspect it is related to the libraries the author's project is using and I may not be using. These look like good temporary workarounds until fixes in the libraries can be rolled out.
https://medium.com/@tkarmakar27112000/xcode-15-issue-related-to-flutter-3-fix-8f681c725126Open linkView original on programming.devAndroid 14 is already here, so I took the documentation, experts’ reviews, and other available resources to sort out all the important changes that will affect most application developers. Let’s examine new restrictions on background mode, changes in Foreground Service, new restrictions on the work of Intent and BroadcastReceiver. In this release, we have many restrictions, but we’ve also got new features.
https://proandroiddev.com/whats-new-in-android-14-1e5d7d8b3482Open linkView original on programming.devApple introduced the new Observation framework powered by the macro feature of the Swift language. The new Observation framework, in combination with the Swift Concurrency features, allows us to replace the Combine framework that looks deprecated by Apple. This week, we will learn how to use the Observation framework to handle data flow in our apps.
I'm not sure that I buy the idea that Combine is deprecated. This does help reduce one use for it where it while increasing performance.
https://swiftwithmajid.com/2023/10/03/mastering-observable-framework-in-swift/Open linkView original on programming.devSwiftData by Example is the world's largest collection of SwiftData examples, tips, and techniques to help you build apps, solve problems, and understand how SwiftData really works.
Here's a nice simple article explaining enhanced enums that have been around for a while but may be something overlooked. Between these and sealed classes I think Dart has an excellent story for pattern matching.
async/await in Swift was introduced with iOS 15, and I would guess that at this point you probably already know how to use it. But have you ever wondered how async/await works internally? Or maybe why it looks and behaves the way it does, or even why was it even introduced in the first place?
https://swiftrocks.com/how-async-await-works-internally-in-swiftOpen linkView original on programming.devRandal Schwartz takes the .when from Riverpod's AsyncValue and creates it for an AsyncSnapshot, using Dart 3 pattern matching.
I've never been a big Core Data fan since it has cost me many days of my life debugging odd issues. To be fair, the issues weren't caused by Core Data. It was all of the foot-guns it left around that the junior developers on the team were more than happy to pick up and play with. This does look like an interesting use of macros though and is certainly a good example of how to craft more complex macros.
This is one feature that I missed from some other languages like Kotlin. It isn’t super useful for ifs but a switch with a lot of cases? Bring it on.
https://www.avanderlee.com/swift/if-switch-expressions/Open linkView original on programming.devIt looks like a big improvement over the 4 but sadly needs active cooling or it throttles under load quickly. It has a new form factor which requires a new case too. Still there are a lot of great additions that make it a good upgrade.
https://www.tomshardware.com/reviews/raspberry-pi-5Open linkView original on programming.devcross-posted from: https://programming.dev/post/3558087
Type parameter packs and value parameter packs allow you to write a generic function that accepts an arbitrary number of arguments with distinct types. As a result of SE-393, SE-398, and SE-399, you can use this new feature from Swift 5.9.
https://www.avanderlee.com/swift/value-and-type-parameter-packs/?Open linkView original on programming.devType parameter packs and value parameter packs allow you to write a generic function that accepts an arbitrary number of arguments with distinct types. As a result of SE-393, SE-398, and SE-399, you can use this new feature from Swift 5.9.
https://www.avanderlee.com/swift/value-and-type-parameter-packs/?Open linkView original on programming.devUsually when I read a KMP article it talks about mobile. This one is about JS and the JVM.
https://kt.academy/article/ak-kmp-libraryOpen linkView original on programming.devIn this episode, we talk to Rick Clephas, one of the Kotlin Foundation Grants Program winners and the creator of KMP-NativeCoroutines and KMM-ViewModel.
When I last used KMP it was before the new memory model so I avoided coroutines as much as possible. A year later and it looks to be so much easier and better now.
I found this link via SwiftUI Weekly #161
Actors is the new Swift language feature, making your types thread-safe. This week, we will learn how to use actors and their benefits over locks. We will also discuss actor reentrancy, the main confusing point of using actors.
In the previous post, we modeled a Store type, allowing us to implement state management predictably.
https://swiftwithmajid.com/2023/09/19/thread-safety-in-swift-with-actors/Open linkView original on programming.dev