icasdri / Mather

A powerful expression-based calculator, unit converter, and general computation engine for Android
GNU General Public License v3.0
58 stars 7 forks source link

Intro/Tutorial and Manual Page #3

Open icasdri opened 8 years ago

icasdri commented 8 years ago

Currently, on an initial launch, it is not obvious to the user that Mather is much more than just a normal calculator app. It's not obvious that expressions like 29 fahrenheit to celsius, or f(x,y)=2x+7 are supported (more examples in the Screenshots in the README).

Adding a quick tutorial feature or a dialog offering to preload examples into the RecyclerView would greatly help.

paride commented 8 years ago

I think it would be very useful, yes. I like the idea of an easily accessible reference card where the examples can be loaded by tapping on them. Loading the RecyclerView with examples is nice too, but it breaks the workflow if I'm doing some calculations and I just need to check the syntax of something.

On the usability side I also thing it would be nicer to have just one "send" (enter) button, on the right of input field. I don't find the [] parentheses useful, while I'd appreciate the "power operator" ^ and maybe the square root. the basic trigonometric functions would also be nice.

Another interesting possibility is to exploit the possibility to have long taps on button, for example:

"(" becomes "[" with a long tap "*" becomes "^" "sin" becomes "arcsin" e^x becomes ln(x)

and so on. Well, you see I'd appreciate a scientific mode :)

stpr-dev commented 8 years ago

First off, great job on the app! I never knew math.js existed and I have been craving for a simple yet powerful scientific calculator for android for AGES. I have had several occasions where I had to quickly check results for my experiements, and simple calculators would not cut it because my problems are quite complex (being an Engineering thesis and all) without having to find a PC and fire up MATLAB/Octave. This seems to be almost everything I am looking for!

Now for the useful information part, I would HIGHLY suggest you to have a menu option or something to display a manual page (or something similar), containing ALL available commands, possibly categorically. I think it is already available on the math.js website, you can implement a similar idea into the app. For instance, you can have your sine, cosine, arcsince etc. under a 'Trignometry' Category, mathematical and scientific constants under a 'Constants' category. You get the gist of it I hope. You can integrate this with the idea suggested by @legovini by giving examples for each of them. For instance, I was struggling to find the command for sine in degrees and after fiddling a bit, I found out that it is the same command except you specify 'deg' with the value. This is not necessarily common or intuitive, as some programming languages have different 'functions' for different units (for instance, MATLAB has sin() and sind() for sine in radians and degrees). Adding a couple of examples or specifing these on the manual will help avoid such confusions.

This will not only highight the fact that it is much more than a simple calculator, it will also serve as a reference for users in case they need to look up if a particualr function exists/syntax amongst other stuff.

icasdri commented 8 years ago

I like the idea of a manual page. Shouldn't be too difficult: just copy some HTML (and edit it a little) from Math.js website and inflate a WebView should work. I'll look into it when I get some down time.

navid-zamani commented 4 years ago

May I suggest a more direct method, that doesn’t require memorization, and follows the principle of ”The user doesn’t know what he wants, until he knows what there is."?

As a long-time Qalculate! user (the best normal calculator in existence IMHO), I always appreciated its drop-down menu tree to browse and select functions, units, settings, etc. And there always was a display below the input line, that showed you the parameters that a function expects and that you still need to enter. Kinda like a simple autocompletion in programming IDEs.

Think of the Android equivalent, with a descriptive line of text next to each function name (and even parameter). Maybe it would even link to a Wiki, for cases where that improves things.