Visualizing my ideal implementation of an asynchronous chat client
Recently I have become enamored with App.net, and I am especially a fan of Patter, the IRC-esque service built on top of it. While there were a few iOS options for accessing Patter chat rooms on mobile devices, the Android market was sorely lacking. I decided instead of bemoaning not having an app I wanted, I should at least flesh out a full design.
I thought through how I would expect the app to function and after a few rounds of iterations landed on this design. I aimed to design an application that would allow the user to easily move between their subscribed rooms and search and discovery. I also wanted to have the full capabilities found on the patter site, so room search, room creation, and managing the read and write permissions were all features that needed to be addressed.
For discoverability, I felt that horizontal swipes to move through categories was the best solution. This kept each list of rooms visually grouped by type and let users quickly subscribe to a room. Once inside a room you are not subscribed to, you can view the recent posts and chose to subscribe. Once subscribed the heart icon changes to a new post icon to allow for quick communication without having to change views.
When looking at the comprehensive list of rooms subscribed to, users are able to drag the rooms to allow for custom sorting. Once inside a room they can quickly move between rooms by using the spinner in the action bar. A long press on a post will open the post context menu, allowing people to reply to the author or all people mentioned, as well as leveraging the Android sharing menu for rooms not set to private.
New posts and replies in Pitter are simple, allowing the user to get the content up as easily as possible. The broadcast toggle will allow them to decide if they would like the post to stay solely inside of the patter room of if it should also be posted publicly to their App.net stream.
Tapping on a user's profile picture will bring up their App.net bio.
Search inside of pitter can be reached from the slide out menu. Items returned will float up the matches you currently subscribe to, and then allow for quick subscriptions to any other room that matched the query.
The only feature currently missing from this design is a way to denote which rooms have unread posts. Since rooms have different activity levels, the ability to determine which rooms are unread at a glance will be very helpful. I had initially thought to raise unread rooms to the top of the spinner, but that would break the sorting that the user has defined. My current thought it to denote unread rooms with a heavier weight font.