Files
NoGooleApps/replica/rechner/recon.md
T

79 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.