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

  • Added support for Repeater shape items to Core Animation rendering engine (#1688)

  • Added support for inverted matte layers to Core Animation rendering engine (#1712)

  • Added fillMode support to GradientFill shape items (#1702)

  • Added support for non-integer animation widths/heights (#1694)

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 an open-source Swift GraphQL server for Vapor.

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.

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

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.

The app gets continuously updated, and its latest version 2.7.30 provides several bug fixes and new features.

Closed issues

  • fix: remove finishHandler when clicking the setup finish button. windowWillClose will call the finishHandler when the window will close (#1023)

  • feat: adjusted RAM top process parser (#1029)

  • feat: show efficiency and performance cores usage in the popup view (#863)

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

  • feat: added translation for efficiency and performance cores

  • feat: updated Chinese Simplified translation (#1032)

  • feat: updated traditional Chinese (Taiwan) translations (#1035)

  • feat: updated Slovenian translation (#1021)

macOS system monitor in your menu bar. Contribute to exelban/stats development by creating an account on GitHub.