// From http://graphics.stanford.edu/~seander/bithacks.html#ReverseByteWith64Bits
unsigned char b; // reverse this byte
b = ((b * 0x80200802ULL) & 0x0884422110ULL) * 0x0101010101ULL >> 32;

March 5, 2010

Android Resistor App: The Competition

Filed under: Uncategorized — jon @ 11:43 pm

Before progressing past this first stage of planning, I think it’s important to take a quick look at the competition. Obviously there’s no point copying what’s already out there; rather I wanted to take note of the irritations with using the other apps and make sure I didn’t make the same mistakes. As I’ve said, an app like this is all about a smooth user experience.

App Name Cost Comment
Resistor Color Code Calculator $1.99 Poor ratings and a bit steep so I didn’t try it.
GamOhm FREE Awful UI. Highlighted colours barely visible, no colours, small text to click on, no units.
Ohmage FREE Functional. Bands way too small, but are coloured. Drop downs for multiplier/tolerance good, but digit entry brings up normal (text!) keyboard.
eTools FREE Keyboard appears when you open the app which is bad. Does open numeric keyboard, but still a bit poor for data entry. Not immediately obvious you can change the colours (text in the bottom right does tell you this but it’s not noticeable). Small bands to tap on. Personally I think the background image looks like a frontpage template. Has other tools
ResistorId FREE $1.39 Best UI of the ones I tried. Unfortunately the bands are just a bit too small. The display is nice and clear though. The preferences are a fine example of both good and bad. “Lock Band” and “Restore last value” good, “Dim while dragging” pointless. “Lock portrait” unfortunately missing. Landscape is unusable.


Functional, but barely Functional, but barely.


ohmagetap a band to display some rather small colour bands to choose fromEntering numeric values is a bit cumbersome


etoolsetools reverseband selection is words-only band selection is words-only.

Resistor ID Tool

default view is attractive and usablecolour selectionreverse lookup is weak, but at least it uses the numeric keyboard


I couldn’t actually find a way to purchase the full version of Resistor ID. Possibly because it has copy protection. Ok, so that’s a Google flaw, but a bit of a big one.

None of the apps did the reverse lookup well at all. I much prefer the idea of calculator-style entry over the on screen keyboard. This is one area where I can really make my app better than the competition.

Most of the apps expected you to click on bands of colour which were way too small to be used effectively. This is one downside to displaying all colours for all bands simultaneously in Resistor ID. My idea has the downside that it’s not as quick to change a band other than the current one; so this is something I’ll have to compensate for by making it really easy to switch bands. Without user testing it’s impossible to know; but I think my approach will be more efficient for the common case.

Next time: The first version of the app (hopefully). It’ll be crude and nasty; I just want to get a feel for Android development and get some of the key pieces in there.


A resistor colour code calculator for Android

Filed under: Uncategorized — jon @ 12:30 am

Color 1st band 2nd band 3rd band (multiplier) 4th band (tolerance) Temp. Coefficient
Black 0 0 ×100
Brown 1 1 ×101 ±1% (F) 100 ppm
Red 2 2 ×102 ±2% (G) 50 ppm
Orange 3 3 ×103 15 ppm
Yellow 4 4 ×104 25 ppm
Green 5 5 ×105 ±0.5% (D)
Blue 6 6 ×106 ±0.25% (C)
Violet 7 7 ×107 ±0.1% (B)
Gray 8 8 ×108 ±0.05% (A)
White 9 9 ×109
Gold ×10?1 ±5% (J)
Silver ×10?2 ±10% (K)
None ±20% (M)

(The above table is taken from the wikipedia article on resistors http://en.wikipedia.org/wiki/Resistor)

Why did I decide to write a resistor colour code calculator?

  • It’s small and simple (I guess about a week for a simple working version) but just useful enough to try selling it for a small amount as an experiment.
  • It’s quite well suited to a hand-held device. It’s convenient, and probably faster than a traditional colour chart. You’re also less likely to lose your phone between projects if you’re just a hobbyist like me.
  • I had a few nice ideas for the interface (more on that in a bit).
  • There are some but not too many apps that do a similar job. This should tell me whether you can sell an app just because it does a simple job better which would be a key strategy to selling small apps. There aren’t too many apps and some aren’t very good, so I think there’s room in the market. The best app is restricted for the free version.
  • I liked the idea, and I’ll use it.

Approach, goals, strategy

There are other apps out there, some of them perfectly usable and at least one is quite good. That’s ok, I want competition. Even if you don’t have competition when you start, if the idea is sound you will have competition later. The first-to-market advantage won’t last for ever; not for small apps like this.

My strategy is simple. An app like this is really well defined. It needs to be totally intuitive, instantly responsive, efficient to use robust. UI Latency is out, small buttons are out. Optimising for the common case is in, as is a well thought out and tested method of data entry.

It needs to look good enough not to look naff, but no better.

I intend to keep it simple; to do one job well. I’ll stick it up on the market at £0.90 and see if anyone’s interested. High quality is especially important when the customer can easily get a refund. I’ll report back on my experiences.


With the above in mind, my next thought was to sketch out an idea of how it would look and function. The basic idea is to pick two “digit” colours followed by a “multiplier” band and an optional “tolerance” band (let’s ignore 5 band resistors for now). Immediately the image that springs to mind is a picture of a resistor with no bands, and you move from left to right selecting colours (presumably in parallel to reading off the colour bands from a physical resistor). I figured something akin to a numeric pad (but with colours) would be good for the colour selection. A brief look at a real colour chart and a quick sketch confirmed that it should all fit nicely in this sort of layout:

first sketch

(Although I’ve just written the words, the real buttons should be blocks of colour.)

For reverse lookup, I intend to use the same sort of layout but with digits instead of colours. I’m not sure how the multiplier selection would work here. It needs to be intuitive, preferably by typing “3”, “.”, “2”, “kOhm” or similar.

Moving backwards and forwards through the bands (to correct mistakes, enter new codes, etc) could be achieved in a number of ways (just loop round, tap the displayed band, slide left/right, scroll ball, you get the idea). A simple menu could select between 4/5 band modes and colour->numeric/numeric->colour modes.

Next time: I’ll take a look at the competition


« Previous PageNext Page »