android
android copied to clipboard
Major Refactoring/Updating (Butterknife -> ViewBinding, Kotlin, other updates)
Hello there,
I would like to update some parts of the app to make it future-proof, for example:
- [ ] Move from deprecated Butterknife to ViewBinding (as recommended by the dev of Butterknife)
- [ ] Maybe move from Java to Kotlin
- [ ] Update some dependencies
Do you consider any of these points or do you rather want to keep the current codebase?
Hey @cyb3rko, all your points sound good to me. It would probably be cool, if these changes were made incrementally, so that the Pull Requests don't get too huge.
Yeah of course, I'm a friend of split up pull requests and tidy git commits :)
First step is done, refactoring from Butterknife to ViewBinding is done. Just waiting for the compact layout thing to be merged, as I built on that codebase. Then I can open a pull request to merge it.
Otherwise we would have resolve merge conflicts :)
Alright, I probably won't be able to review anything until the weekend. Just a heads-up (:
No problem, take your time :) Currently busy as well...
Can you consider using the alarm channel for high priority messages? By default my phone is on mute, but I would like to be alerted by sound if something important happens. Here is a link that may help with my request.
@mar565 This topic does not really fit here in this pull request, please consider opening a new issue.
@jmattheis What do you think? Should this app move to Kotlin?
If so, should I first focus on a redesign or the refactor to Kotlin?
@cyb3rko Tbh, I'm not really sure if it would be worth the effort. Do you think it would improve the gotify/android codebase?
I think it would.
- Kotlin has been the Android standard for years now.
- If gotify/android makes the switch to Kotlin it's more modern and 'futureproof' regarding the codebase and upcoming contributions.
- It would simplify the code as most Kotlin expressions are much easier to use and to read than Java expressions.
Okay, I'd be fine with the migration, but the http client stuff in ./client should stay as it, because it is generated.
Finished:
- #248
- #252
- #251
- #258