# 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.