Roadmap
What comes next, roughly in order. Each item has an issue with the problem, the proposal and when it counts as done.
Shells
- ✅ Wake the loop instead of polling (#12):
requestFrames()wakes an idle loop at once; idle apps stop drawing 5 frames a second. - ✅ One touch engine for iOS and Android (#13): one state machine for taps, scrolling, drags and long presses, fed by each shell.
- ✅ Safe-area insets and Android edge-to-edge (#14):
WorkPos/WorkSizeandmydear::SafeArea()keep clear of bars, notches and cutouts; the Android shell targets API 36. - iOS idles (#22): ✅ the Metal view pauses when nothing happens instead of drawing every display refresh.
- ✅ Android survives activity recreation (#24): a system theme or overlay change closes the app today.
- Skip identical frames (#20): ✅ macOS, iOS, Android and Windows; not Linux, where
GtkGLAreadoes not keep the last frame. no render or present when the draw data did not change.
Input and platform services
- Native text input on Android (#15): ✅ an
InputConnectionfor composition, suggestions and swipe typing; a composing underline, selection handles, and a password keyboard for password fields; next password-manager autofill. - File dialogs (#16): ✅ asynchronous open and save on every platform, saves through the system on mobile.
- Haptics (#18): ✅
mydear::Haptic(kind). - Font loading with icon merging (#23): ✅
AddFont, with the system CJK font merged in.
App API
- What a new app needs from the shell: ✅
Run(config, delegate)on desktops and Android,ContentRect(),DataDir(appName)withimgui.inithere,Delegate::closeRequested(), platform-default title bar heights, the title bar calls on iOS, alerts and prompts (alert.hpp). Next: window size and position restored across launches (no position on Wayland), and a CMake helper for the bundle, icon and installer.
Tooling
- Frame capture everywhere (#17): not doing; screenshots and recordings are the host’s tooling (see
docs/platform-shell.md), so mydear has none. - Standalone build and smoke test (#19): ✅ (run on macOS; Windows and Linux written, not run yet)
helloand its probe on every platform without a host. Also: draw background windows that are still visible (occlusionStateon macOS), verified for app switching with the screen unlocked; the loop only draws focused windows today.
Long term
- Screen readers (#21): expose labelled ImGui items to each platform’s accessibility API.