Files
edgeever/docs/mobile-native-parity.md
T

48 lines
3.1 KiB
Markdown

# Mobile native parity and performance
The Android app is a React Native client of the EdgeEver API. The PWA remains the product reference for features and visual language, but it must not be embedded as the primary App workspace.
## Performance acceptance targets
These targets are measured on a mid-range Android device using a signed release build and an already authenticated account.
| Path | Target |
| --- | --- |
| Cold launch to native shell | under 1.0 s |
| Warm launch to cached notebook and memo list | under 0.5 s |
| Cached list to usable state | no network dependency |
| Memo list scrolling | no sustained dropped-frame sequence |
| Search typing | no request per keystroke; 250 ms debounce |
| Filter or sort change | keep prior content until replacement data is ready |
Build success is not a performance result. Before a Play production rollout, record cold and warm launch timings on a physical device and compare them with the currently published internal build.
## Architecture rules
- Render startup, navigation, notebook selection, memo lists, search, settings, and the Markdown editor with native React Native views.
- Reuse the shared API client and shared data types instead of duplicating backend contracts.
- Hydrate only the default notebook and memo-list queries at startup. Refresh stale data in the background.
- Clear persisted query data when the account changes, signs out, or becomes unauthorized.
- Keep optional heavyweight features out of the startup path. A WebView may only be used for an explicitly selected compatibility editor, never as the App workspace.
- Use virtualized lists and stable item components for collections.
## Mobile product scope
The App follows the mobile PWA for high-frequency layouts and interactions, but it is not a copy of every desktop management feature. Shared mobile interaction contracts belong in `@edgeever/shared`; platform-specific rendering, local persistence, protected resource loading, and save lifecycles remain separate when that preserves native performance.
| Mobile capability | Native status |
| --- | --- |
| Login and self-hosted instance connection | Implemented |
| Notebook hierarchy and management | Implemented |
| Memo list, filters, sort, pin, and batch operations | Implemented |
| Local-cache search | Implemented |
| Local TipTap create/edit and autosave flow | Implemented |
| Attachments, image compression, and resource library | Implemented |
| Tag management | Implemented |
| Revision history and restore | Implemented |
| Offline drafts, local mirror, and sync queue | Implemented |
| MCP/API token management | Implemented |
| Password change and multi-user management | Implemented |
Desktop-first management features such as unified ZIP import/export and trash browsing, restore, or empty-trash actions are intentionally excluded from the App core. Ordinary mobile deletion remains a soft delete so that recovery stays available from the desktop/PWA interface. Future mobile work should prioritize capture, reading, editing, search, sync reliability, startup speed, and interaction smoothness instead of restoring these excluded screens.