agersant / polaris-android

Android client for Polaris
https://github.com/agersant/polaris
MIT License
62 stars 7 forks source link

replaced activity navigation with jetpack fragment navigation #32

Closed saecki closed 3 years ago

saecki commented 3 years ago

This implements jetpack navigation using fragments instead of the old activity navigation. MainActivity is written in Kotlin (if that is an issue I can convert it to Java) and I used the type safe View binding feature in some cases to make finding views declared in xml much nicer.

Currently the settings are accessed through a toolbar menu, I could imagine moving them into a drawer layout or backdrop (design spec - implementation). That would make the navigation icon in the top left permanent and prevent shifting the title when navigating to a non top-level destination. In there a quick switch page for managing multiple servers and an about page could be added as well.

saecki commented 3 years ago

Regarding flutter I have to say it does look promising and definitely makes sense in this case as it allows targeting ios. But I'm a fan of native apps. While flutter does come close especially since the material components are pretty much identical, it doesn't feel as responsive and snappy as native apps. I haven't decided yet if I'll maintain a fork if the flutter app becomes stable or just go with flutter. Until then I will keep working on the android app.

While the material spec says that the backdrop-menu should relate to the front layer and provide contextual options, it is a beta spec and may change in the future. Additionally I have seen other apps place a drawer like navigation-menu in it with less than 5 entries since it doesn't look that empty. In my test application I played around a bit and had it implemented like this:

Screenshot_20201227-202016 Screenshot_20201227-202011
Screenshot_20201227-202029 Screenshot_20201227-202035

I am a bit split myself if this is ok or not and if you'd like to follow the spec I'd totally understand and go with a drawer menu. Either way it can wait for a new pull request.

agersant commented 3 years ago

QA'ed and merged!

The backdrop menu looks pretty nice in practice, and I found a somewhat similar example in the spec too.

image