Smart WebView is designed to be easily customizable. You can modify various aspects of the app, from visual styles to text strings and assets built upon the core project.


App Name and Bundle ID

* **App Name:** Change the `app_name` string value in `app/src/main/res/values/strings.xml`. * **Package ID:** Right-click on `mgks.os.swv` in the `java` directory (Project view), select `Refactor > Rename`, choose "Rename package", enter your ID (e.g., `com.yourcompany.yourapp`), and let Android Studio refactor. Also update `applicationId` in `app/build.gradle` if necessary. Changing the Package ID after release complicates app updates on Google Play. * **App Name (Display Name):** Modify the `Bundle display name` (`CFBundleDisplayName`) key in your `Info.plist` file. * **Bundle ID:** Modify the `Bundle identifier` (`CFBundleIdentifier`) key in `Info.plist` and also update it in your Xcode project's target settings (General > Identity). Changing the Bundle ID after release complicates app updates on the App Store.

Launcher Icons

Replace icons in `app/src/main/res/mipmap-*` directories. Use Android Studio's "Image Asset Studio" (Right-click `res` > `New` > `Image Asset`) for adaptive icons. Manage app icons within your Xcode project's `Assets.xcassets` file. Add an "AppIcon" set and provide the necessary sizes.

UI Appearance

* **Colors:** Define your palette in `app/src/main/res/values/colors.xml`. * **Themes:** Modify app themes in `app/src/main/res/values/styles.xml` and `app/src/main/res/values/themes.xml`. * **Splash Screen Background:** Customize in `app/src/main/res/drawable/background_splash.xml` and the `SplashTheme` in `themes.xml`. * **Colors:** Define colors in `Assets.xcassets` or programmatically. * **Appearance:** Customize UI element appearance using Storyboards, XIBs, SwiftUI modifiers, or Appearance Proxies (`UINavigationBar.appearance()`, etc.). * **Launch Screen:** Use a Launch Screen storyboard (`LaunchScreen.storyboard`) or configure it in `Info.plist`.

Layouts / Views

Modify XML layout files in `app/src/main/res/layout/` (e.g., `activity_main.xml`, `drawer_main.xml`). Modify views using Storyboards, XIB files, or construct the UI programmatically using UIKit or SwiftUI code.

The drawer layout (ASWV_LAYOUT = 1) is an Android-specific implementation using DrawerLayout.

* **Menu Items:** Define items in `app/src/main/res/menu/activity_main_drawer.xml`. * **Header:** Customize in `app/src/main/res/layout/drawer_main_header.xml`. * **Item Click Handling:** Modify `onNavigationItemSelected` in `Functions.java`. ```md ```

Local Assets

Bundled files accessible by the WebView.

Place files in `app/src/main/assets/`. Access them in the WebView using the path `file:///android_asset/YOUR_FILENAME`. - error.html - front_splash.png - offline.html - script.js - sponsor.png - style.css Place files within the Xcode project structure (ensure they are added to the target's "Copy Bundle Resources" build phase). Access them using `WKWebView`'s `loadFileURL(_:allowingReadAccessTo:)` method, referencing the file's URL within the app bundle. The base URL structure differs from Android.

Text Strings

Centralize user-facing text for easy modification and localization.

Use `app/src/main/res/values/strings.xml`. Add translations in `values-es/strings.xml`, etc. Use `Localizable.strings` files. Create separate files for different languages (e.g., `en.lproj/Localizable.strings`, `es.lproj/Localizable.strings`). Access strings using `NSLocalizedString("key", comment: "")`.

Manifest / Info.plist

Core application configuration file.

Located at `app/src/main/AndroidManifest.xml`. Modify this file with care. Used for: Permissions declaration, Activities/Services registration, Intent Filters (Deep Linking), Hardware features, etc. Typically named `Info.plist`. Modify this file with care. Used for: Permissions usage descriptions (required!), Bundle ID, Display Name, Supported Orientations, URL Schemes (Deep Linking), Background Modes, etc.

By leveraging these customization points, you can tailor the Smart WebView foundation for your target platforms.