Factory 2.3.0 Almost Here! Help Needed! #145
Replies: 6 comments 2 replies
-
Note that there is a potential breaking change related to issue #146. See that thread and the CHANGELOG for more. |
Beta Was this translation helpful? Give feedback.
-
The following Medium article explains the changes in more detail. |
Beta Was this translation helpful? Give feedback.
-
Hei an overdue test that was on my todo for a long time. First of all when you mentioned I performance boost I was wondering how you achieved that and what would be the bottle neck. As we discussed before I have a large design system with over 1000+ tokens that make up a design system for over 30 EU newspapers. This is in production and we rely for swift (and in the future Kotlin too) on Factory to resolve the keys to its correct values. So far a big success! So you can imagine if you talk performance that this interests me. I read your article on medium and did the test with linking to develop in our project. First the test to develop. All worked just fine and I just needed to change String into StaticString at some points but that was it! After reading the article I due have a question about the dictionary performance that I will try to explain with how I understood it. So lets go. A dictionary lookup with a hash is fast when it can use the hash and does not have to use equate? In your change you use the type of the factory registration as a hash, not the key which is the property name. So if I understood correctly if 2 properties have the same type the hash would be the same? extension Container {
var foo: Factory<String> {
self { "foo" }
}
var bar: Factory<String> {
self { "bar" }
}
} So in the above code the performance increase compared to 2.2 would be less, but still significant, compared to 2.3 because in this case it will have to use compare? |
Beta Was this translation helpful? Give feedback.
-
Do you have a time in mind for the release of 2.3? |
Beta Was this translation helpful? Give feedback.
-
Probably push this weekend. Day job has been a little hectic. |
Beta Was this translation helpful? Give feedback.
-
Attempting a pod trunk register email so I can push new changes to Factory and when I click on the email link I get an Internal Server Error. Trying again gives "An unhandled lowlevel error occurred. The application logs may have details." Cocoapod's status page reports no incidents... but also has no way to report an incident. |
Beta Was this translation helpful? Give feedback.
-
The next version of Factory is in the develop branch, and brings significant performance enhancements:
Better yet, the improvements needed are pretty much internal to the library, and as such I don't believe anyone should see any breaking changes related to this update.
That said, the changes are significant. Factory has 100% code coverage and everything passes with flying colors, but I'd like to make sure there are no problems before I push it to main and Cocoapods.
So I'd like the more adventurous of you to do me a favor: Try pulling 2.3.0 (develop) and trying it out in your existing iOS and Mac and other applications. If you find a problem, don't hesitate to open an issue and let me know.
I'd appreciate it a lot.
Until then, enjoy!
Beta Was this translation helpful? Give feedback.
All reactions