Insanity
SwiftGen
Our great sponsors
Insanity | SwiftGen | |
---|---|---|
12 | 9 | |
7,513 | 9,084 | |
- | 0.6% | |
9.1 | 4.1 | |
10 days ago | about 1 month ago | |
Swift | Swift | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Insanity
-
Insanity VS SpeziTemplateApplication - a user suggested alternative
2 projects | 18 Nov 2023
-
Create, Push, and Present Any View Controller in 1 LOC using Metaprogramming
Now that we have designed our APIs we can generate the code. For each view controller in our project, we are going to generate 3 functions: create, push, and present. We are going to generate code with Sourcery — a tool developed by Krzysztof Zabłocki.
-
Adding Union to Swift with Metaprogramming
The most popular tool for generating code in Swift is Sourcery — a tool developed by Krzysztof Zabłocki. It works like this: you provide a template file, Sourcery parses your source code and generates code based on your template and the parsed source code. Sourcery can be used as a standalone executable or embedded right into the Xcode building process as a Run Script phase. It automatically regenerates code on any changes in your template file or in the project source files.
-
Writing unit tests with mocked dependencies in Swift
To set up MockSwift, make sure you have Sourcery and the package installed. Then, create a script called gen-mocks.sh with the following content (updating the paths if required):
-
Any ideas on how to filter out the empty and nil values from JSON object?
Probably overkill for a single DTO but I use Sourcery to provide default decoding values for nil/missing properties (among other things).
-
Dynamically building a type
You can probably do something with Sourcery.
- Any way to not have to triple define values in a public struct?
- Tips to be more productive in Xcode
-
CoreData common practice - Do you usually have a struct based data class, as the bridge between your UI layer, and the CoreData data layer?
This post has some tips on using Sourcery to help automate the creation of that bridge layer.
-
Enums with associated values can be super helpful, but are not always well know by beginners. So I made this video tutorial to explain the concept and how it helps write safer code 🙌
There is a bit of boilerplate code but it can be easily generated using tools like sourcery.
SwiftGen
-
Create, Push, and Present Any View Controller in 1 LOC using Metaprogramming
It is important to say that there is an elegant solution to the resource consistency problem that we haven’t adapted yet. Instead of testing raw values of UIStoryboard.Name cases, we could just generate the UIStoryboard.Name enum. Please refer to SwiftGen for the details.
-
Localization strings files have a new format/convention?
Your strings should work as-is if you use a tool like SwiftGen (it generates compiler-enforced types for use in your app).
- Do you guys/gals use the "Costants.swift" file or the "Localizations.strings" method?
- What are the most underrated third party libraries for Native iOS?
-
How would you solve this localization issue?
Tools like https://github.com/SwiftGen/SwiftGen can be used to ensure at compile time that all keys used in your app are actually defined. Having keys organized as hierarchical enums, with auto-completion in Xcode is also a nice plus.
-
Can I install SwiftGen through a Gemfile?
Our project includes a Gemfile which we use to specify some external dependencies. I'm trying to add SwiftGen (https://github.com/SwiftGen/SwiftGen) to the project. We want to eventually deprecate Cocoapods so I can't use that installation method.
-
Can I use SwiftGen to map Lottie files?
https://github.com/SwiftGen/SwiftGen/issues/627#issuecomment-715259788
- Bamboo Agent On Apple Silicon M1 Any Success Yet
-
Did you also know? In Xcode you can use the refactoring tool to wrap a literal string into a call to NSLocalizedString! Even better, you can assign a keyboard shortcut to make it even more efficient 🤓
Or you can use something like SwiftGen and have code generation for your localized strings and have it checked at compile time instead of getting those pesky typo errors at runtime that you never check ;)
What are some alternatives?
Nori - Easier to apply code based style guide to storyboard.
R.swift - Strong typed, autocompleted resources like images, fonts and segues in Swift projects
BuildTimeAnalyzer - Build Time Analyzer for Swift
XcodeGen - A Swift command line tool for generating your Xcode project
Kin - Sane PBXProj files
fastlane-plugin-appicon - Generate required icon sizes and iconset from a master application icon.
XcodesApp - The easiest way to install and switch between multiple versions of Xcode - with a mouse click.
Localize-Swift - Swift friendly localization and i18n with in-app language switching
Awesome-Design-Tools - The best design tools and plugins for everything 👉
BartyCrouch - Localization/I18n: Incrementally update/translate your Strings files from .swift, .h, .m(m), .storyboard or .xib files.
SwiftGen - The Swift code generator for your assets, storyboards, Localizable.strings, … — Get rid of all String-based APIs!