replica(rechner): recon, feature matrix, reference screenshots

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
2026-10-17 15:50:45 +02:00
co-authored by Claude Opus 5.5
parent 7812f62c0f
commit f25e10d217
9 changed files with 107 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
feature,area,priority,original,clone,notes
Basic arithmetic + − × ÷,core,must,yes,no,
Live result preview while typing,core,must,yes,no,
Equals makes the result the new expression,core,must,yes,no,
Parentheses smart toggle key,core,must,yes,no,
Percent,core,must,yes,no,
Backspace and long-press to clear,core,must,yes,no,
AC clears,core,must,yes,no,
Exact arithmetic (no floating point errors),core,must,yes,no,BigDecimal/rational
Errors shown (division by zero domain errors),core,must,yes,no,
Auto-shrinking display for long input,display,must,yes,no,
Scientific row √ π ^ !,science,must,yes,no,
Expanded panel sin cos tan ln log e,science,must,yes,no,
Deg/Rad switch,science,must,yes,no,
Inv swaps to inverse functions,science,must,yes,no,
Implicit multiplication (2π 3(4)),core,should,yes,no,
History grouped by day,history,must,yes,no,
Tap a history entry to reuse,history,must,yes,no,
Clear history,history,should,yes,no,
Pull down the display to open history,history,should,yes,no,
Copy result / paste into expression,clipboard,must,yes,no,
Memory store and recall (MS MR),clipboard,should,yes,no,
Big numbers like 100! with scrolling,core,should,yes,no,
Locale decimal separator,display,should,yes,no,comma in German
Expressive keys with press morph,design,must,yes,no,
Dynamic colour (wallpaper) and dark mode,design,must,yes,no,
Haptic key feedback,design,should,yes,no,
Tablet / landscape layout with all functions,layout,could,yes,no,
Feedback and help,other,could,yes,skip,Google service
1 feature area priority original clone notes
2 Basic arithmetic + − × ÷ core must yes no
3 Live result preview while typing core must yes no
4 Equals makes the result the new expression core must yes no
5 Parentheses smart toggle key core must yes no
6 Percent core must yes no
7 Backspace and long-press to clear core must yes no
8 AC clears core must yes no
9 Exact arithmetic (no floating point errors) core must yes no BigDecimal/rational
10 Errors shown (division by zero domain errors) core must yes no
11 Auto-shrinking display for long input display must yes no
12 Scientific row √ π ^ ! science must yes no
13 Expanded panel sin cos tan ln log e science must yes no
14 Deg/Rad switch science must yes no
15 Inv swaps to inverse functions science must yes no
16 Implicit multiplication (2π 3(4)) core should yes no
17 History grouped by day history must yes no
18 Tap a history entry to reuse history must yes no
19 Clear history history should yes no
20 Pull down the display to open history history should yes no
21 Copy result / paste into expression clipboard must yes no
22 Memory store and recall (MS MR) clipboard should yes no
23 Big numbers like 100! with scrolling core should yes no
24 Locale decimal separator display should yes no comma in German
25 Expressive keys with press morph design must yes no
26 Dynamic colour (wallpaper) and dark mode design must yes no
27 Haptic key feedback design should yes no
28 Tablet / landscape layout with all functions layout could yes no
29 Feedback and help other could yes skip Google service
+78
View File
@@ -0,0 +1,78 @@
# Recon map: Google Calculator / Pixel Calculator (Android)
Scope: the whole app: keypad, scientific functions, live result, history, memory, copy/paste, settings
For: personal use, a calculator without Google services (project NoGooleApps)
Date: 2026-10-17
## Sources
| # | source | URL | notes |
| --- | --- | --- | --- |
| 1 | app store listing | https://play.google.com/store/apps/details?id=com.google.android.calculator | page did not load via fetch; listing images supplied by the user (ref-01..03) |
| 2 | screenshots | replica/rechner/screens/ref-01..07.png | supplied by user: history with "Current expression" sheet and MS/Copy menu (ref-01, -02, -06), scientific panel open (ref-03), launcher icon (ref-04), selection with Cut/Copy/MS (ref-05), empty dark state with Material You colours (ref-07). Reference only, never shipped |
| 3 | general knowledge of the app as a user | – | precise arithmetic (no 0.1+0.2 errors), very long results scroll, Deg/Rad, Inv swaps functions |
## Core loop
Type a calculation and see the result update live, then tap = to make it the new start value.
## Screens
| ID | screen | how to reach | purpose | key components | states seen |
| --- | --- | --- | --- | --- | --- |
| S01 | Calculator | launch | type and evaluate | display (expression + live result, right aligned, auto-shrinking font), scientific row (√ π ^ !) with expand chevron, keypad 4×5 (AC, ( ), %, ÷ / 7-9 × / 4-6 − / 1-3 + / 0 . ⌫ =), history button, overflow | empty (cursor), typing, live result, result after =, error ("Kann nicht durch 0 teilen"), too long (scrolls) (ref-05..07) |
| S02 | Scientific panel | chevron or swipe up on the row | more functions | extra rows: Deg/Rad, sin cos tan, Inv, e ln log, (with Inv: sin⁻¹ cos⁻¹ tan⁻¹, eˣ, 10ˣ, x²) | collapsed, expanded (ref-03) |
| S03 | History | pull the display down / history button | past calculations | list grouped by day ("Heute"), each expression + result, "Current expression" at the bottom of the sheet, tap to reuse, clear history | empty, filled (ref-01, -02, -06) |
| S04 | Context menu | long press on display or a history result | reuse values | Cut, Copy, Paste, MS (memory store), MR when memory set | (ref-01, -05) |
| S05 | Settings / overflow | ⋮ | options | history clear, choose theme, about, (original: send feedback) | |
## Flows
```
F01 Quick sum
S01: 1 2 + 3 4 → live result 46 → =
happy path taps: 6
F02 Scientific
S01 → expand → sin ( Deg … ) → =
F03 Reuse an old result
S01 pull down → S03 → tap a result → it is inserted at the cursor
F04 Copy the result
S01 long press → S04 Copy
F05 Store a value and recall it
long press → MS … later long press → MR
edge: memory survives app restart
edge cases everywhere: division by zero, unbalanced parentheses (auto close), 0.1+0.2 exact, 100! (big), %, implicit multiplication "2π", leading minus, very long input
```
## Components
| component | variants | states | used on |
| --- | --- | --- | --- |
| Key | digit (surface), operator (secondary container), AC (tertiary), equals (primary, fully round), function (text only in the collapsed row / tonal pills when expanded) | default, pressed (shape squishes to a squircle), disabled | S01, S02 |
| Display | expression (large, shrinks with length), result preview (smaller, accent colour), cursor | empty, typing, final, error | S01 |
| Sheet | history over display with drag handle | collapsed, expanded | S03 |
| History row | expression muted, result bold | pressed | S03 |
| Context menu | floating pill menu | | S04 |
| Chevron | expand/collapse | | S02 |
## Inferred data model
```
HistoryEntry id, expression (text), result (text), created_at
evidence: S03 "Today" grouping confidence: high
Memory value (exact number as text) confidence: high (MS/MR)
Settings angle_unit (deg|rad), theme confidence: high
```
## Feature matrix
See `features.csv`.
## Out of scope
- Google's feedback/help integration.
- Google's own number fonts and icons: Roboto Flex and own icon.
## Size
Screens 5, flows 5, entities 3. Hard parts: (1) exact arithmetic with big numbers and correct rounding/display of irrational results, (2) a parser that tolerates partial input for the live result (implicit multiplication, auto-closing parentheses, percent rules), (3) the expressive keypad (shape morph on press, auto-sizing display). Size: S–M.
Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 927 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 266 KiB