-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Kotlin bindings, tests, swift/kotlin CI validation and release script #2
Conversation
langleyd
commented
Aug 9, 2023
- Kotlin bindings
- Kotlin tests
- Kotlin/Swift CI checks
- Release script
- Kotlin bindings - Kotlin tests - Kotlin/Swift CI checks - Release script
- Add AVD cache for android tests - Fix java version - Make ios test scrip executable and fix simulator version
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My review still stands, I don't see any changes since my last review.
I just added Jorge as a reviewer, not sure why, it requested again from you. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Android bindings LGTM.
My only issue with this implementation is that it'll probably be less performant than what we're using at the moment, since we'll need to parse the JSON instead of just having the emojis available as part of the code, but at least they'll be consistent in all platforms.
Could we measure how long it takes for load the data from the JSON file in the tests? |
@jmartinesp could replace the JSON with some form of codegen, like we do for https://github.com/matrix-org/matrix-analytics-events |
That would be great since this parsing is done when the app boots and could potentially affect startup time, although we're using an initializer which should make it happen on background. However, I'm not sure how complex that could be and I don't want to block this release for a long time. |
@jmartinesp That could be a lot of code/symbols generated in this case? Not to say we shouldn't just something to be weighed up? I suppose lets see how long it takes and I'll report back. On the iOS side it was loading json in the last version so was a like for like. |
Not reasonably, the free Github Actions runners are massively variable in their performance, we saw an insane variance in attempted performance testing for Element Web in GHA. |
I think that's why they're using a chunk strategy + using static variables, so they're only loaded when needed: https://github.com/vanniktech/Emoji/blob/master/emoji-twitter/src/commonMain/kotlin/com/vanniktech/emoji/twitter/category/FlagsCategory.kt#L32 |
On my iPhone 12 it takes between 0.09 and 0.13 seconds to load. On EIX the current implementation, the emoji data is tied to the user session, so it stays in memory vs being loaded on demand when the user loads the picker. |
In fact, I tested it properly with several iterations and it takes ~35ms, which is a lot better than expected. |
- Remove emojibase.json from source and generate at buildtime. - Fix version so we and conform to typical semver rules