Open Source Updates for Swift Projects - Issue #8
Welcome to the 8th issue of the bi-weekly newsletter “Open Source Updates for Swift Projects”. Learn about new projects and innovations of popular projects that help you as a Swift / iOS developer.
I’d love to receive your input and suggestions to include in this newsletter. Please share them with me via email.
P.S.: I am dropping the usual title addition of using a song title from the Canadian rock band "Loverboy. Here is my last hooray, my favorite song of theirs: Working for the weekend 🤘
Beautify your xcodebuild logs with XCBeatify
Building your iOS app or Swift package in a CI/CD environment with xcodebuild and then scanning the logs for the root cause when a build error occurs is ... horrible!
Use xcbeautify , its latest version 0.16.0 was released beginning of November.
For the example above the raw xcodebuild output would be 250+ lines 😲
P.S. Fastlane has used xcbeautify since the beginning of this year.
🚨 New @FastlaneTools Release candidate for xcbeautify
Decided today was the day 😊
Try it 👉 “2.201.0.rc1”
✅ Remove any need for xcpretty
✅ Open up format for xcbeautify (or any others)
✅ Xcode 13 test retries
Open PR 👉 github.com/fastlane/fastl…
Ask me questions!
— Josh “🍕 conf” Holtz 💪🚀 (@joshdholtz)
Jan 13, 2022
Behaviour Driven Development with Quick
Following the release of Nimble 11, I'm super excited to release Quick 6! Notably, this version supports async/await in tests! Thanks again to everyone who has contributed to either Quick, Nimble or both! #iosdevelopment#testing
— Rachel Brindle (@younata)
Nov 1, 2022
Highlights of the Quick 6 are:
Swift Async/Await Support
Xcode 14 and swift 5.7
AWS Amplify Library for Swift
AWS Amplify provides a declarative and easy-to-use interface across different categories of cloud operations. The default implementation works with Amazon Web Services (AWS), but AWS Amplify is designed to be open and pluggable for any custom backend or service.
The Amplify Library for Swift is layered on the AWS SDK for Swift, which was released as Developer Preview last year. This allows for access to the AWS SDK for Swift for a breadth of service-centric APIs.
The latest release now supports full Swift integration, Structure concurrency with async/await, beta MacOS support, and other major improvements.
Since the @AWSAmplify Libraries for Swift support macOS now, I wrote an article on how you can get started with a simple macOS app that also works on iOS. Check it out 🖥️
— Kilo Loco 👨🏽💻🥑 (@Kilo_Loco)
Nov 9, 2022
The Amplify iOS team is announcing the release of version 2.0.0 of the Amplify Library for Swift. Please use this GitHub repo to inform the Amplify iOS team about features or issues, or visit the Amplify Discord server under the #swift-help channel.
Effortless modular dependency injection
Sometimes during the app development process, we need to replace instances of classes or actors we use in production code with instances that emulate their work e.g. tests, SwiftUI previews, demo apps, etc.
Usually that requires additional code changes that open up a whole new layer of errors. handling of these errors is on your shoulders.
Inject lets you express your intent in a way that enables compile-time checking that you have all the instances required for the production. At the same time, it lets you replace the instance on any object with a single line of code.
Meet: Inject, an interesting solution for the DI problem
Ok I did it, scared af but excited to hear from y'all
— Maxim Bazarov (@bazar4tw)
Oct 28, 2022
Swift SDK for Mastodon
MastodonKit is a Swift Framework built using Swift Package Manager that wraps the Mastodon API. It covers all the endpoints and entities from Mastodon's API and is designed to be simple to use.
I don't have personal experience with this framework, but the stats look encouraging for developers to give it a try:
Its latest version (3.0.x) also adds async/await support by adding async variations for the Client’s run (_:completion:) method
MastodonKit is a Swift Framework that wraps Mastodon's API