Insanity
R.swift
Our great sponsors
Insanity | R.swift | |
---|---|---|
12 | 5 | |
7,513 | 9,394 | |
- | - | |
9.1 | 6.5 | |
5 days ago | 16 days 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.
R.swift
- SPM and localization
-
Simple, but accurate drawing for iOS
I was having trouble getting R.swift to work with with SPM, potentially it's not supported yet? https://github.com/mac-cain13/R.swift/issues/735
-
Custom styling similar to Android for iOS
All resources in Android are referenced in a static class called R, so accessing to individual resources is pretty easy using R.[typeOfResource].resourceName. For iOS we use a library that does something similar, is called R.swift With that we can access resources in iOS using an 'Android like' sintax
-
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 🤓
Same was posted on the /r/iOSProgramming post for this, but I'm definitely not going back to using the raw NSLocalizedString call or extensions after I started using R.swift. Type safety and auto complete for all your assets is a real win in my book.
Or R.swift Clean and convenient solution.
What are some alternatives?
BuildTimeAnalyzer - Build Time Analyzer for Swift
SwiftGen - The Swift code generator for your assets, storyboards, Localizable.strings, … — Get rid of all String-based APIs!
Nori - Easier to apply code based style guide to storyboard.
XcodeGen - A Swift command line tool for generating your Xcode project
Kin - Sane PBXProj files
Shark - Swift CLI for strong-typing images, colors, storyboards, fonts and localizations
XcodesApp - The easiest way to install and switch between multiple versions of Xcode - with a mouse click.
SwifterSwift - A handy collection of more than 500 native Swift extensions to boost your productivity.
infer - A static analyzer for Java, C, C++, and Objective-C
Awesome-Design-Tools - The best design tools and plugins for everything 👉
Xtrace - Trace Objective-C method calls by class or instance