thos@portfolio:~$ cd ~/projects/meky && cat README.md
projet personnel · September 20, 2026
[React Native] [Expo] [TypeScript] [NativeWind] [MMKV] [Android] [USSD]
Meky
A USSD code notebook for Android: save the operator codes you use every day, turn the parts that change into variables, and launch them from the dialer pre-filled, ready to call.
Why Meky exists
Everybody has that one USSD code — balance, transfer, airtime — typed from
memory, wrong half the time, and retyped character by character each month.
Saving them is only half the answer: the interesting codes are the ones with
changing parts. *145*{NUMERO}*{MONTANT}# isn't a fixed code, it's a template.
Meky makes the template first-class: you define the variables once, fill them
at execution time, and the dialer opens with the complete formula.
Codes with variables
- Templates, not copies:
{NAME}placeholders in any code are detected automatically and typed by convention —{NUMERO}becomes a phone field,{MONTANT}a numeric field with the right keyboard, anything else free text. - Fill & launch: variables are substituted at execution, the code is
sanitized to USSD-safe characters, and the dialer opens via
ACTION_DIALwith the formula pre-filled — one tap on Call runs it. NoCALL_PHONEpermission, works on Android 8+. - Offline storage: everything lives in local MMKV storage. No account, no sync, no telemetry.
Fees & savings calculator
Discreetly tucked behind a calculator icon on the home screen, a withdrawal fees & savings calculator answers the real question about cash-out fees: should I withdraw the amount in one go, or split it?
It computes the optimal split of any amount against the withdrawal fee
schedule (dynamic programming over fee-band tops) and shows the savings. For
101 000, one withdrawal costs 3 400 Ar — but 100 000 + 1 000 costs
2 000 Ar:
| Withdrawal | Fees |
|---|---|
101 000 (single) | 3 400 Ar |
100 000 + 1 000 (split) | 2 000 Ar |
| Savings | 1 400 Ar |
The fee schedule is generic — no operator or country branding — and versioned
(updatedAt), so it can be adjusted and re-released when rates change.
Distribution
Meky ships as a versioned APK attached to GitHub Releases — installable without any app store — alongside a bilingual FR/EN landing page hosted on GitHub Pages. The landing follows the app's adaptive dark/light identity and points straight to the latest APK download.
Tech Stack
- React Native + Expo (Expo Router)
- TypeScript
- NativeWind (Tailwind for React Native)
- react-native-mmkv (storage)
- expo-intent-launcher (dialer launch)
- Jest (unit tests for parsing, fees, and launch logic)