FunCalc: Revamping the calculator

Hi, I’ve been making a calculator app for myself for fun as a side project, and I’ve been building it in a way that ill use it in daily life. It’s currently in the VERY foetal stages, and i would like input and speculation on it. Here are the few features.

Simple UI

  • The calculator at first glance has a 4 x 4 grid of buttons, with a full 0 to 9 keypad, equals, decimal, copy answer, ‘more’ panel, and + and - symbols.
    – The + button will mean addition clicked once, multiplication clicked twice, and exponent clicked thrice.
    – similarly the - button will mean subtraction clicked once, division clicked twice, and nth rooting clicked thrice.

  • the viewing panel will take up most of the space and will actually be a huge canvas (1000 x 2000 px) in a horizontal and then vertical scroll arrangement.

The Viewing panel

I am trying to code idea for the viewing panel in a different way than others. This one resembles that of a rough page, where you go anywhere on the screen, and type a calculation.

Demo

Features shown
  • decimal and zero softlock
  • 0 o 9 number support
  • pushing the number to the right when it reaches the border
  • tapping on the canvas to delete the latest number
  • tapping on the empty canvas to set the location for the calculation

More features I would like to add (Apart from normal calculator functions)

  • graphing: a way to enter equations, plotting them on a graph on the canvas, finding intersections, and other formulae (will try to make it dynamic)
  • variables: since this is treated like a canvas, I want to add full variable support to it.
  • Units: This will help in everyday life, with quick conversion between different units of the same physical quantity or complex physical quantities.

(edit) For those who prefer a larger size of numbers, the size of each cell is adjustable by one variable in the blocks, but ive tried increasing the canvas size and my device crashes, so if you keep a larger cell size you would have less space for calculation.

(edit) Also a feature of keeping multiple of these page since obviously at one point calculations wouldn’t fit into one single page.

Conclusion

This is just the start of something I will follow through with. Of course, it is a long process to code all of this, and that’s why I would like your help. With anything you may think is right for this, maybe optimised code (It may get slow because the entire display is just a canvas), or more or improved features to add to this.

I hope I receive your feedback on this prototype, and wish me luck! :crossed_fingers:

Thank you!

Also forgot to mention about the fonts used
keypad: fraunces
canvas display: sf mono