diff --git a/android/README.md b/android/README.md index 39a7a7ee..1ec69e81 100644 --- a/android/README.md +++ b/android/README.md @@ -30,7 +30,24 @@ Project Structure - `build.gradle`: The top-level Gradle build file for the project. - `AndroidManifest.xml`: The manifest file that describes essential information about the application. ---- +### **Why Local Is the Default** +- **Performance:** Local assets load instantly, without network latency. +- **Reliability:** Works offline or in poor connectivity environments. +- **App Store policy compliance:** Apple and Google generally prefer that the main experience doesn’t depend on a remote site (for security, review, and performance reasons). +- **Version consistency:** The web bundle is versioned with the app, ensuring no breaking updates outside your control. +### **When Remote (No Local Assets) Is Used** +Loading from a **remote URL** (e.g. `https://myapp.com`) is **less common**, but seen in a few cases: +- **Internal enterprise apps** where the WebView just wraps an existing web portal. +- **Dynamic content** or **frequent updates** where pushing a new web build every time through app stores would be too slow. +- To leverage the low latency of ISR and SSR. + +However, this approach requires: +- Careful handling of **CORS**, **SSL**, and **login/session** persistence. +- Compliance with **Google Play policies** (they may reject apps that are “just a webview of a website” unless there’s meaningful native integration). + +A middle ground we use: +- The app ships with **local assets** for core functionality. +- The app **fetches remote content or updates** (e.g., via Capacitor Live Updates, Ionic Appflow). ## 2. Prerequisites