Thursday, May 2, 2013

Android Panel and Kiosk Apps

One advantage of doing business in the Chicago area is getting to see lots of manufacturers.  The Midwest still builds stuff.

As an Android developer who gets to talk with many of the local companies I've recently noticed a pattern in the Android space that I wanted to share.

High end tools and machines often contain some kind of display that describes the status of the tool or provides a way to configure or operate the tool.  And by "tools and machines" I'm covering a huge variety of products.

Look at the control panel for the new LifeFitness exercise machines below.


It is pretty clear that this could be done using an Android device (and I believe it is).

I call this kind of application a "Panel" app.
What 6 qualities differentiate this from a typical app.

  • Fixed in place (built into the machine or tool)
  • Custom user interface (doesn't follow the Android UI guidelines)
  • Other apps are unavailable or hidden (the user can't run their own apps)
  • Targeted to a very small set of devices (only runs on the tablet built into the machine)
  • Users engage with it frequently and over a long period of time (so they can learn custom interface)
  • interface with underlying machine or tool

The other similar, but slightly different, kind of device runs a single purpose app  also. I call it a "Koisk" app.

The 4 characteristics of a Kiosk app

  • Public (think shopping mall)
  • Wider audience (user has brief use of it, so must be easy to use which means that it should work like apps the user is familiar with) follow design guidelines
  • Fixed in place (mounted on a wall)
  • Locked down (can only run target app)

These apps never appear in the marketplace but are great opportunities for Android developers.  Keep them in mind when you search for your next consulting gig.



Monday, April 1, 2013

Coding By Google

I almost named this post "I haven't written a line of code in years!" but that would not literally be true.

Actually I've written a lot of code, but probably as much (or more) has come to me through cut and paste from a Google search.

It struck me that what started as a helpful but infrequent technique to augment my work, has become the work itself.  At first it was a line of code, then entire methods.  But now GitHub (and SourceForge) have made the cloning of entire applications not only easy but allowable (and fun).

Not that there's anything wrong with that.  Or is there?

I could spend the time to derive from first principals everything that I need to code, but why?
There is nothing new under the sun.  All code has already been written.

And the code wants to be used.  Coders themselves want their code to be used and re-used.  It's why they post it.  So there is no sin or crime committed.

But a new set of skills must be developed.  Searching in the right way.  Recognizing the good sources like StackOverflow and also recognizing the bad sources, like BigResource that just seem to aggregate StackOverflow posts but without the valuable rating system.  Maybe we should be training developers in search and not in programming.

And where is the role of knowledge and memory?  If we don't need to remember how to do anything - because we can look it up - then soon, we may be unable to remember, even when we wish to.

But it is just too useful to avoid.  And so the term "Coding By Google" seems appropriate and even though I thought that I coined the term, turns out that this too is not new.  Here's the earliest reference I could find.

    bert's blog - from 2006

So go forth, code by Google, and be proud!



Thursday, March 21, 2013

The command line is coming back - get ready

Recently I've rediscovered the command line and I'm really enjoying the improved productivity I'm getting.  Also, I'm learning the tools that I work with better because I'm seeing the command directly rather than just picking menu items in Eclipse.

So I'm having more fun but it has also occured to me that now is the right time to start switching back to the command line.  Let me explain.

Why is it named the "command" line?  Because you give it commands.  And how do you "give" commands (at least in non-computer situations).  You say them.

We're now approaching the tipping point for voice recognition.  It is generally excellent and one of the most obvious uses is to replace typing at the command line with voice commands.

It is harder to control a GUI IDE with voice commands but the command line is perfect for this approach.

So if you've been avoiding the use of the command line, or if it has been awhile, now is the time to brush up on those skills.  I've been re-reading Neal Ford's excellent book "The Productive Programmer" which will help you get started.  It is just as relevant now as it was in 2005.

I've also been very pleased with a new shell called zsh.  Try it out.

Any downside?  Developers will be constantly chatting to their computers as they work.  Things could get a little noisy.  Hopefully, this will spell the end of the "open pit" work environment.

Maybe now I can get an office with a door - that actually closes?  And if we can't get offices?  "Cone of Silence" anyone?

Sunday, March 10, 2013

Dear Eclipse



I stopped by to see my good friend, Eclipse, the other day.

Walking into his house I saw him stooped over the keyboard crying like a baby.  "What is it, dude!".  He just pointed at the screen.

Over his shoulder I could see his open gmail inbox and the email that was bringing him down.


Dear Eclipse, 

We've been together a long time - almost ten years.  And I've mostly loved it.  You made me more productive and I've looked forward to our anniversary every June and the wonderful gifts you give me. 
Without you I'd still be writing Hello World with notepad.
But lately, things have changed.  I hate to sound shallow but you've gained a little weight.  You're puffy and bloated.  You use to be so agile and spry.  But lately, when I save files, it seems like I have to wake you up just to do a little validation.  You're just not focused on me anymore.  What's on your mind?
And so many plugins just to do something useful.  Egit, Maven, Android. The list goes on and on.  You've suddenly become so high maintenance.
I'm sorry to have to tell you this - but I've met someone else.  He's sublime.  Slender, sexy and responsive.  Once I work with him a little, get him some better code completion - I hope he'll be perfect. 
But maybe you deserve one last chance.  One more release.  Get it right or I'll be releasing you!
Love, Ursela

Eclipse turned to look at me.  "What should I do? Start working out?  Dress better?  I can't lose her."

I looked away.  He had been getting a little sloppy lately.  But he's my friend - I had to help.  "I'll stop by tomorrow.  We'll go for a run.  It's not too late."

As I walked out the door I looked back.  There was Eclipse, working at his keyboard as always, seeming a little happier - but munching on a donut.





Sunday, June 10, 2012

Dashboard is dead - long live side navigation

Facebook leads the charge in introducing a new interface pattern: navigation and display view coming in from the side.

UI Design Patterns