Thursday, March 09, 2006

Space for more functions

The main goals of YaRPNcalc are simplicity and usability by providing big buttons and being consistent. Nevertheless, speed of operation is just as important. In other words: I don't want to use a calculator where I need the stylus. I don't want to use a calculator where I have to learn a new concept of operation on each other (but similar) form of the application. And I don't want to use a calulator where I need to press 5 buttons to access a function I regularly use.

The problem is that you can't have all of this to the same extent. You need to find a good compromise. To have buttons big enough to press with the fingers, I already introduced one level of indirection (one button press) to get to all but the most basic functions (all but the four basic arithmetic operations). I introduced a nonexistent base system (the conversion mode) to have access to conversions with one level of indirection (after you changed to that mode). This obviously means you can't really use conversions and arithmetic functions together, but I'm happy with the compromise. Constants need two levels of indirection, but I got the quick constants button, which gives you the most recently used constant with one level of indirection (the same goes for the last conversion, by the way).

Now the wish came up (in the forum) to provide more arithemtic functions. One good suggestion is the INV button, which is used on many calculators to have 'complementary' functions on the same button. This would introduce one more level of indirection for some functions.

When thinking about how to implement custom conversion and custom constants I came up with an other idea: custom function button assignment. Look at the following sketch (assuming that no one ever actually reads this makes statements like this kind of weird).

Note the Edit button on the top right side. It will bring up a form where you can add, remove and change the order of the constants (this form will actually need to be used with the stylus).

Now look at the sketch for the conversion form:

Again, the Edit button on the top right, the 'Change page' button on the top left.

Now, obviously the functions form could look like this:

Again, an Edit button on the top right. Instead of Paging buttons I would restrict myself to three pages though, only to have a guaranteed access time of mostly two levels of indirection (and because I'm not planning to have user definable functions).

Now, if that edit-function-buttons form would allow you to assign any of the built-in functions to any button on the three available forms, this would give you quite some flexibility. It would also allow you to 'simulate' the INV button, by assigning the buttons accordingly.

Now the fact that no one actually reads this comes to my advantage, because I don't want to raise any expectations.

0 Comments:

Post a Comment

<< Home