- Open Source Swift Project Updates
- Posts
- Open Source Updates for Swift Projects - Issue #4 - Prissy Prissy
Open Source Updates for Swift Projects - Issue #4 - Prissy Prissy
Welcome to the fourth 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.
Create custom keyboard extensions with KeyboardKit
KeyboardKit is a Swift library that helps you create custom keyboard extensions for iOS and ipadOS. It extends the native keyboard APIs and provides you with much more functionality than is otherwise available.
KeyboardKit 6.2 adds a bunch of new emojis, adds input set builders to let you create localized input sets without a provider, adds support for input set variants like English AZERTY and improves the KeyboardKit Pro autocomplete case handling and makes it (a bit) predictive.
— KeyboardKit (@GetKeyboardKit)
9:53 PM • Aug 26, 2022
This release adds a bunch of new emojis that have been added since emojis were last updated.
It also adds input set variants, such as .englishQwerty, .englishAzerty, .englishQwertz etc. and introduces AlphabeticInputSet, NumericInputSet and SymbolicInputSet builders for all locales.
✨ New Features
EmojiCategory has a bunch of new emojis.
EnglishInputSetProvider now supports specifying an alphabetic input set.
InputSetRow has new convenience initializers.
KeyboardContext has a new KeyboardLocale-based setLocale().
AlphabeticInputSet, NumericInputSet and SymbolicInputSet has new set builders for .english.
AlphabeticInputSet also has new .englishQwerty, .englishAzerty, .englishQwertz input sets.
I'm really excited about this release and the groundwork it lays for making it much easier to expand the input sets with alternate input layouts. The improved and now predictive autocomplete engine is also a great addition to the KeyboardKit Pro extension.
— Daniel Saidi (@danielsaidi)
9:55 PM • Aug 26, 2022
Type-safe Swift APIs for SQLite
Lighter is a Swift toolset to work with SQLite3 databases in a way that is typesafe not just on the Swift side, but down to the SQL schema. Like SwiftGen but for SQLite. It is not an ORM, it doesn’t do type mapping at runtime.
Like SQLite, the Lighter toolset is versatile, highly configurable, and applicable to various applications and project setups. From caches in iOS apps, or documents in Mac apps, to server side datasets. It isn’t just a single tool, it is a set of tools for different usage scenarios.
Latest release (1.0.10) was released August 27th.
Keep your Swift Package Dependencies up-to-date
Do you use Swift Packages in your iOS app? Are you regularly checking if new updates are available? Wouldn't it be nice to automate the workflow of detecting outdated dependencies and then create pull requests to update your dependencies?
You can use a GitHub action from James Sherlock for this exact use case. Version v2 was recently published and the GitHub action is better than ever.
It appears I was neglecting my Xcode SPM GitHub Action as I wasn't following the repo 😭
I've just released v2 with a number of bug fixes and new features as raised by folks in the issues!
Automate your Xcode dependencies!
— James Sherlock (@JamesSherlouk)
10:38 PM • Aug 24, 2022
What's Changed
Added xcodePath input to specify Xcode version
Added workspace and scheme input to support workspaces
Improved Cache Avoidance (uses Xcode flag as well as deleting the cache directory)
Fixed issue where DerivedData may sometimes be unidentifiable
This addresses many of the known issues.
If you are looking for an equivalent GitHub action to check dependencies within your Swift Package then check out my GitHub action ⬇️
Do you need help keeping your Swift package dependencies up-to-date? GitHub action swift-package-dependencies-check is the ideal foundation to automate the process of periodically checking for outdated versions and creating a pull request to update ...
Better logging with Pulse
Pulse is a logging system for Apple platforms.
Record and inspect logs and URLSession network requests from your iOS app using Pulse Console. Share and view logs in the Pulse macOS app.
Pulse 2.0 is almost a complete rewrite that focuses on both adding new major features and optimizing performance. Logs are recorded locally and never leave your device. Alex wrote an excellent blog post covering all the additions.
There are many new features, but my favorite one is by far inline decoding errors .
— Alex Grebenyuk 💤 Inactive (@a_grebenyuk)
8:11 PM • Aug 16, 2022
It now shows pending requests and supports upload and download tasks. This table view is probably the only part that's not SwiftUI. Everything else is.
— Alex Grebenyuk 💤 Inactive (@a_grebenyuk)
9:25 PM • Aug 16, 2022
Create a binary framework from your Swift Package with swift-create-xcframework
swift-create-xcframework is a very simple tool designed to wrap xcodebuild and the process of creating multiple frameworks for a Swift Package and merging them into a single XCFramework.
Release v2.3.0 adds support for Swift 5.7 and Xcode 14.0 beta 5 and above!
swift-create-xcframework also includes a GitHub Action that can kick off and automatically create an XCFramework when you tag a release in your project. Their GitHub action approach is really interesting and can be a blueprint on how to leverage Swift in GitHub Actions. I wrote a blog post on that topic.
I am an avid fan and user of GitHub Actions. Actions are individual tasks that you can combine to create jobs and customize your CI/CD workflow.
You can write your own actions to use in your workflow and share those actions with the GitHub community....