amr.essam

~ / work / basewhiz

BaseWhiz app icon

Education · Android · iOS

BaseWhiz

A number-base calculator for CS students. Converts between bases, two's complement, IEEE 754 floats, fixed point and text, and shows every step of the working, the way an exam asks for it.

Role
Design, code, release
Platforms
Android · iOS
Core stack
Kotlin Multiplatform
Status
v2.1 on Google Play. v2.3, with the iOS app, on the way.

Screens

What it does

Convert

Any base from 2 to 36. Two's complement, one's complement and sign-magnitude at 8 to 64 bits. IEEE 754 half, single, double and bfloat16. Fixed point in Q notation, BCD, Gray, Excess-3 and UTF-8 text.

Steps

Shows the working: repeated divisions, place values, and the sign, exponent and mantissa of a float. Says when an answer is exact and when it was rounded.

Calculate

Exact big-number maths. Bitwise ops in an 8 to 64-bit word with carry, overflow, zero and negative flags.

Bits

A bitboard of up to 64 bits to flip, shift, rotate, invert and byte-swap. Reads its bytes in both orders.

Practice

Rounds of ten questions with steps and a streak, plus a new question of the day.

Copy as code

Hold Copy for a C or Python literal, the word's bytes in big- or little-endian order, or the UTF-8 bytes of text.

Widgets

Home-screen widgets for the question of the day, with its streak, and the last conversion in four bases. Launcher shortcuts on Android.

From anywhere

Select a number in another app and choose Convert in BaseWhiz. On iPhone, Siri and Shortcuts run Convert number.

Private

No ads, no account, no internet permission. A searchable, pinnable history stays on the device.

How it's built

LayerTechNotes
SharedKotlin 2.4 Multiplatform, Room KMP with bundled SQLiteConversion engine, ViewModels, history, question of the day and widget data
AndroidJetpack Compose, Material 3Navigation Compose. Two panes on tablets, hardware keyboard shortcuts
Android extrasJetpack Glance, PROCESS_TEXT, launcher shortcutsTwo home-screen widgets; Convert in BaseWhiz on selected text
iOSSwiftUI + Observation, SKIE interopiPhone and iPad. iOS strings generated from the Android XML
iOS extrasWidgetKit, App Intents, action extensionTwo widgets, Siri and Shortcuts, Convert in BaseWhiz on selected text
iOS storageApp GroupApp, widgets and action extension share history and settings
EnginePure-Kotlin PortableBigIntegerUsed on iOS; fuzz-tested against java.math
BackendNoneFully offline

Origin

A rewrite

BaseWhiz started as a rewrite of an earlier Flutter app, Advanced CS Calculator.