- Open Source Swift Project Updates
- Posts
- Open Source Updates for Swift Projects - Issue #3 - Always On My Mind
Open Source Updates for Swift Projects - Issue #3 - Always On My Mind
Welcome to the third 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.
Better Animations with lottie-ios
Lottie is a cross-platform library for iOS, macOS, tvOS, Android, and Web that natively renders vector-based animations and art in realtime with minimal code.
Lottie loads and renders animations and vectors exported in the bodymovin JSON format. Bodymovin JSON can be created and exported from After Effects with bodymovin, Sketch with Lottie Sketch Export, and from Haiku.
Its latest release 3.4.2 brings a lot of bug fixes as well as improvements for the Core Animation engine that was introduced in 3.4.0.
Note: Lottie 3.4.0 added a new rendering engine powered by Core Animation. Please try it out and let us know if you encounter any issues! It will be enabled by default in a future version of Lottie. More information is available in this announcement: #1627
New features
An iOS library to natively render After Effects vector animations - Release 3.4.2 · airbnb/lottie-ios
Build a GraphQL server with Pioneer
Pioneer is a layer on top of Vapor for handling all GraphQL operations through HTTP and WebSocket utilizing the new concurrency features in Swift 5.5.
It can work with any GraphQL schema built with GraphQLSwift/GraphQL and work with any GraphQL client even with WebSocket.
The latest release has no significant changes, but I use this opportunity to introduce the project. I do this as I believe that GraphQL has significant advantages over REST. Once you have a GraphQL server, it is pretty easy to Make GraphQL requests in Swift.
GraphQL for Vapor. Contribute to d-exclaimation/pioneer development by creating an account on GitHub.
Easier Virtualization with Tart
Tart is a virtualization toolset to build, run and manage virtual machines on Apple Silicon. Built by CI engineers for your automation needs. Here are some highlights of Tart:
Tart uses Apple's own Virtualization.Framework for near-native performance.
Push/Pull virtual machines from any OCI-compatible container registry.
Use Tart Packer Plugin to automate VM creation.
Built-in CI integration.
What to play around with macOS Ventura but afraid to screw up your device? Afraid no more! You can run Tart VM with Ventura on a Monterey host just like that:
brew install cirruslabs/cli/tart
tart clone ghcr.io/cirruslabs/mac… ventura-base
tart run ventura-base— Cirrus Labs (@cirrus_labs)
2:38 AM • Jul 15, 2022
Tart shipped several releases in the last weeks and it looks like a strong and striving project.
macOS VMs on Apple Silicon to use in CI and other automations - Release 0.20.0 · cirruslabs/tart
Build Powerful Tools with SourceKitten
SourceKitten links and communicates with sourcekitd.framework to parse the Swift AST, extract comment docs for Swift or Objective-C projects, get syntax data for a Swift file and lots more!
SourceKitten is used by many projects like
SwiftLint: A tool to enforce Swift style and conventions.
Jazzy: Soulful docs for Swift & Objective-C.
Sourcery: Meta-programming for Swift, stop writing boilerplate code.
SwiftPlantUML: Generate UML class diagrams from Swift code with this Command Line Interface (CLI) and Swift Package.
In its latest release 0.33.0 the most significant change in my opinion is to use the in-process SourceKit which should do well with sandboxed environments like running with Bazel or in a SwiftPM plugin.
Breaking
SourceKitten now requires Swift 5.6 or higher to build, and macOS 12 or higher to run.
SourceKitten now always uses the in-process version of sourcekitd on macOS. The IN_PROCESS_SOURCEKIT environment variable is ignored and the SourceKittenConfiguration.preferInProcessSourceKit API has been completely removed.
Enhancements
Adds Bazel Build Support.
Support docs generation with Xcode 14 projects.
Bug Fixes
None.
An adorable little framework and command line tool for interacting with SourceKit. - Release 0.33.0: Bastet · jpsim/SourceKitten
Get payed with RevenueCat
RevenueCat is a powerful, reliable, and free to use in-app purchase server with cross-platform support.
Its iOS client (a.k.a Purchases SDK) for the RevenueCat subscription and purchase tracking system is 100% Swift and compatible with Objective-C.
Version 4.10.0 brings you:
New Features
New AdServices Integration (#1727) via Josh Holtz (@joshdholtz)
Bugfixes
OfferingsManager: expose underlying error when ProductsManager returns an error (#1792) via NachoSoto (@NachoSoto)
Add missing logs to ProductsFetcherSK2 (#1780) via beylmk (@beylmk)
Other Changes
AdServices: Fix failing tests on main in iOS 12 and 13 - IOSAttributionPosterTests (#1797) via Josh Holtz (@joshdholtz)
Invalidates gem caches and separates danger and macOS caches (#1798) via Cesar de la Vega (@vegaro)
Pass CircleCI branch to prepare_next_version job (#1796) via Toni Rico (@tonidero)
Configure Danger, enforce labels (#1761) via Cesar de la Vega (@vegaro)
Support for new fastlane internal plugin for automation (#1779) via Toni Rico (@tonidero)
In-app purchases and subscriptions made easy. Support for iOS, iPadOS, watchOS, and Mac. - Release 4.10.0 · RevenueCat/purchases-ios
Keep an eye on your Mac with Stats
Stats is a configurable macOS system monitor for your menu bar.
This is a beautiful extension for MacOS - visual tracking of system stats in the menu bar. It is open open source and installable via brew: github.com/exelban/stats
— @[email protected] (@benhouston3d)
12:47 PM • Jan 4, 2022
The app gets continuously updated, and its latest version 2.7.30 provides several bug fixes and new features.
Closed issues
Bug fixes and new features
fix: quick fix for the network chart that does not fit value in the range 0-1 (charts in the Disks and Network popups)
feat: added information about efficiency and performance to the SystemKit
feat: added efficiency and performance cores to the dashboard
feat: added a Based on cluster colorize option. It will colorize efficiency and performance cores in the bar chart widget.
Localization
macOS system monitor in your menu bar. Contribute to exelban/stats development by creating an account on GitHub.