Opened 5 years ago

Closed 4 years ago

#1448 closed task (fixed)

Redesign I2P Android navigation and information architecture

Reported by: str4d Owned by: str4d
Priority: minor Milestone: 0.9.20
Component: apps/android Version: 0.9.17
Keywords: usability Cc:
Parent Tickets: Sensitive: no

Description

I'm finally adding a ticket for this after similar discussion in #1446.

The navigation drawer in I2P Android is a catch-all bin that I used mostly because I didn't have a better design. But the way the app is structured (particularly for non-advanced users), I think that a bottom tab could perhaps be superior. But the way it interacts with the per-page navigation (e.g. I2PTunnel client/server) needs to be thought through.

Subtickets

Attachments (2)

Phone.png (22.8 KB) - added by str4d 5 years ago.
Proposed navigation design for phones
Tablet.png (25.7 KB) - added by str4d 5 years ago.
Proposed navigation design for tablets

Download all attachments as: .zip

Change History (10)

comment:1 Changed 5 years ago by str4d

From http://thenextweb.com/dd/2014/04/08/ux-designers-side-drawer-navigation-costing-half-user-engagement/

My take-away from all of this is that if most of the user experience takes place in a single view, and it’s only things like user settings and options that need to be accessed in separate screens, then keeping the main UI nice and clean by burying those in a side menu is the way to go.

On the other hand, if your app has multiple views that users will engage with somewhat equally, then side navigation could be costing you a great deal of your potential user engagement, and interaction with those part of the app accessed via the side menu.

IMHO the I2P app falls into the second category. I2PTunnel at least should be as accessible as the main console view.

Changed 5 years ago by str4d

Attachment: Phone.png added

Proposed navigation design for phones

Changed 5 years ago by str4d

Attachment: Tablet.png added

Proposed navigation design for tablets

comment:2 Changed 5 years ago by str4d

Milestone: undecidedsoon
Status: newaccepted

Underway in branch i2p.android.base.fragments.

comment:3 Changed 5 years ago by str4d

Status: acceptedstarted

comment:4 Changed 5 years ago by str4d

The new UI and navigation structure is in place and all the crashing bugs created during the migration have been fixed. I would like some feedback on the design now; you can download the latest debug build from Jenkins. Please let me know if you find any bugs or issues that are not listed in the TODO.

One particular design question I have is how to handle the "router not running" state in the UI. All views will show "The router is not running" if there is no RouterContext?, but this can get very repetitive in the UI (e.g. in Addresses tab on tablets, the same text would appear in both columns). In the latest commit I have disabled the tunnels and addresses tabs when the router is not running, so the user is not able to swipe to other tabs, and clicking the tabs displays the "router not running" message.

  • Does this seem like a reasonable thing to do? Or should I revert to allowing users to navigate between tabs and just showing a single "router not running" message on each?
  • Will it prevent users from easily discovering swipe-between-tabs?
  • Should the tabs themselves change visually when disabled, or is the notification sufficient?

comment:5 Changed 5 years ago by str4d

Milestone: soon0.9.20

I've had some minor feedback but no complaints. This will see the light of day!

comment:6 in reply to:  5 Changed 5 years ago by killyourtv

Replying to str4d:

I've had some minor feedback but no complaints. This will see the light of day!

There are absolutely no complaints from me. The few problems the I've seen have been corrected so this will be a very welcome change IMHO.

Because the WIP code has been merged into the main Android branch I've enabled saving the 'artifacts' for the standard Android job. Anyone that wants to help test can get the latest APK from here.

comment:7 Changed 5 years ago by str4d

Status: startedtesting

comment:8 Changed 4 years ago by str4d

Resolution: fixed
Status: testingclosed

Six months later, and all feedback has been good.

Note: See TracTickets for help on using tickets.