This Flutter app converts the EAU Galkacyo student exam portal website into a native Android application with full WebView support.
- ✅ Full WebView integration with JavaScript support
- ✅ Session & cookie persistence (students stay logged in)
- ✅ Loading indicators for better UX
- ✅ Error handling with user-friendly messages
- ✅ Back button navigation support
- ✅ Pull-to-refresh functionality
- ✅ Native Android app experience
- ✅ Custom app bar with refresh button
- Flutter SDK installed (version 3.38.3 or compatible)
- Android Studio or VS Code with Flutter extensions
- Android SDK and build tools
- Java JDK 11 or higher
flutter pub getEnsure your Flutter environment is properly set up:
flutter doctorFix any issues reported before proceeding.
Option A: Physical Device
- Enable Developer Options on your Android device
- Enable USB Debugging
- Connect via USB cable
Option B: Emulator
- Open Android Studio
- Start an Android Virtual Device (AVD)
Verify device is connected:
flutter devicesRun the app in debug mode to test functionality:
flutter runFor testing purposes, build a debug APK:
flutter build apk --debugFor production/distribution, build a release APK:
flutter build apk --releaseThe APK will be located at:
build/app/outputs/flutter-apk/app-release.apk
If you plan to publish on Google Play Store:
flutter build appbundle --releaseThe bundle will be located at:
build/app/outputs/bundle/release/app-release.aab
| Build Type | Location |
|---|---|
| Debug APK | build/app/outputs/flutter-apk/app-debug.apk |
| Release APK | build/app/outputs/flutter-apk/app-release.apk |
| App Bundle | build/app/outputs/bundle/release/app-release.aab |
- Transfer the APK file to your Android device
- Enable "Install from Unknown Sources" in Settings
- Tap the APK file to install
- Grant necessary permissions
adb install build/app/outputs/flutter-apk/app-release.apkEdit android/app/src/main/AndroidManifest.xml:
<application
android:label="Your App Name"
...>Replace the launcher icons in:
android/app/src/main/res/mipmap-hdpi/ic_launcher.pngandroid/app/src/main/res/mipmap-mdpi/ic_launcher.pngandroid/app/src/main/res/mipmap-xhdpi/ic_launcher.pngandroid/app/src/main/res/mipmap-xxhdpi/ic_launcher.pngandroid/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
Or use the flutter_launcher_icons package for easier icon generation.
Edit android/app/build.gradle:
defaultConfig {
applicationId "com.yourcompany.eau_portal_app"
...
}Edit lib/main.dart in the ThemeData section:
theme: ThemeData(
primarySwatch: Colors.blue, // Change this color
...
),Solution: Update Gradle version in android/gradle/wrapper/gradle-wrapper.properties
Solution: Run flutter doctor and follow instructions to install Android SDK
Solution:
- Check internet connection
- Verify the URL is accessible
- Check Android permissions in
AndroidManifest.xml
Solution:
- Run
flutter cleanthenflutter pub get - Rebuild the app
Solution: The WebViewController automatically handles cookies. Ensure you're using the latest version of webview_flutter.
The app requires the following permissions (already configured):
- Internet access
- Network state access
These are defined in android/app/src/main/AndroidManifest.xml
- HTTPS: The portal uses HTTPS, ensuring secure communication
- Cookies: Automatically managed by WebView
- Session: Persists across app restarts
- JavaScript: Enabled for full portal functionality
To reduce APK size, build split APKs per ABI:
flutter build apk --split-per-abiThis creates separate APKs for:
app-armeabi-v7a-release.apk(32-bit ARM)app-arm64-v8a-release.apk(64-bit ARM)app-x86_64-release.apk(64-bit x86)
For the fastest build (release APK):
flutter clean && flutter pub get && flutter build apk --releaseUpdate version in pubspec.yaml:
version: 1.0.0+1 # Format: major.minor.patch+buildNumber- ✅ Test the app thoroughly on different devices
- ✅ Customize app icon and name
- ✅ Test login and session persistence
- ✅ Verify all portal features work correctly
- ✅ Build release APK
- ✅ Distribute to students
For issues specific to:
- Flutter/App: Check Flutter documentation
- Portal Website: Contact EAU Galkacyo IT support
- WebView: Check
webview_flutterpackage documentation
Built with Jose Dev 💙