Wednesday, December 11, 2013

Shouldn't this be a common notification pattern?

When an activity or background task creates a notification on Android, it specifies the Intent which usually refers to an activity that should be opened when the notification is clicked. However, it is surprising that the association between notification and activity is only in one direction. It seems to me that it would be a common pattern for an activity to need to clear notifications that open the activity because the notification may be moot once the activity is shown to the user. Additionally, while that activity is in the foreground, asynchronous background tasks should be able to be prevented from showing any new notification during the time that the activity has the foreground.

To handle this problem, an application of the mediator pattern is needed where the mediator intercepts the creation of the notifications and tracks the foreground state of the activity (or even activity fragment). The mediator may need to be a long-lived service to maintain state and serve all background tasks of any lifespan.

Tuesday, November 19, 2013

What is the MVP?

A wifi password sharing app has to do the following 3 things at a minimum:

  1. Allow sharing (and unsharing) of passwords with friends
  2. Sync updates from the cloud
  3. Show appropriate notifications (especially with a user must take action)
And there are other apps out there that can do variants of these functions. However, the two main ones that I know of have two major flaws:

First, they only support Facebook and I don't know anyone that has a perfect intersection of Facebook friends and people they share their wifi passwords with. There's no reason to limit sharing to any specific social network. Facebook and friends in general are not central to the solution, only sharing is key.

Second, these apps must be storing the passwords as unencrypted clear text in their databases by design, or the passwords are encrypted in a manner that their servers can decrypt for client devices. This is a risky approach, and a lazy design. Only the client devices need to be able to decrypt shared passwords, not hackable servers that only broker between devices.

You should expect better.

Wednesday, November 13, 2013

Make it work right (now)

There's always tension between "make it work right now" and "make it work right". I haven't regretted so far spending more time on the latter and I greatly appreciate tools like Git that allow me to divert and explore different designs with time being the only consequence. Let's move along!

"MVP! Lean!" "But I want to redesign the UI with a modern drawer and cards!"

Monday, November 11, 2013

Hello Wifi...

Building an app from scratch... This is my first Android app idea that I feel has a real chance to be successful, but that of course depends on how success is defined. I define success rather simply as effectively changing the experience of sharing my wifi password with my friends and family and conveniently having access to their hotspots using the app. If I need a broader definition than that I can always change it later.

This app is not as original as I had assumed it to be, but that tells me something about the existing apps out there if my friends and I had never heard of them before. I can tell you that after having evaluated these apps, I would never recommend them to a friend.

I have a lot of vision for what Hello Wifi can become but at the same time I must focus on strictly delivering real value and that means simplifying it to something releaseable. But I won't sacrifice usability or security.