Mobile App Installation Setup
This documentation explains the complete mobile application installation, setup, customization, and build process for the included Stoqio Flutter mobile app source. Every step must be followed carefully.
Prerequisite
- Android Studio (latest stable)
- Flutter SDK (latest stable channel)
- VS Code or Android Studio Flutter plugins
- JDK 17+ and Android SDK tools
- Xcode (for iOS build on macOS)
Environment Setup
Use official Flutter docs for current setup steps (recommended):
- Flutter Get Started
- Quick Setup (VS Code path)
- Custom Setup (Android Studio/manual path)
- Manual SDK Installation
After installation, verify your environment:
flutter --version
flutter doctor -v
Resolve any warnings shown by flutter doctor -v before continuing.
Mandatory setup
Open the mobile app source in IDE and run dependency setup:
flutter pub get
Then run the app on a connected device or emulator:
flutter run
Change App Logo
You can generate an app icon from this website https://appicon.co.
- Go to
<project>/assets/image/and replacelogo.pngwith your own logo. - Then go to
/android/app/src/main/resand replace all Mipmap folders with your<generated icon>/androidfolder. - Again go to
/ios/Runnerand replaceAssets.xcassetswith your generatedAssets.xcassetsfolder.
Change App Name
This guide explains how to rename your Flutter application using the rename CLI tool. The tool allows you to change your app's name and bundle identifier across multiple platforms including iOS, Android, macOS, Linux, Web, and Windows.
First, install the rename package globally using the following command:
dart pub global activate rename
Then, run the following command to change app name of the application:
rename setAppName --targets ios,android --value "<your_name>"
Change App Package/applicationId
This guide explains how to change your Flutter application's package name using the change_app_package_name tool. This package automates the process of updating package names across Android and iOS platforms with a single command.
Run the following command to change the package name:
dart run change_app_package_name:main <your_package_name>
Change Base URL
This project uses an EnvConfig object to define environment-specific values such as the API baseUrl. To point the app to your own backend server, follow the steps below.
Open lib/main.dart and replace baseUrl variable value with your own URL.
baseUrl: "https://your_domain.com",
Customization
Add New Local Language
Step 1: Create a New ARB File
Navigate to the following directory:
lib/l10n
Create a new .arb file and name it using the correct language code.
Example for Bengali:
App_bn.arb
The file name must use a valid language code. Using an invalid language code will cause the application to fail. You can verify valid language and country codes from the following reference:https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry
Copy all contents from app_en.arb. Paste the copied content into the newly created file.
Translate only the values in the key-value pairs. Do not modify the keys, as this will break
localization.
Example:
"home": "Home"
"home": "বাড়ি"
Step 2: Register the Locale in l10n.dart
Open the following file:
lib/l10n/l10n.dart
Add the new locale to the locals list.
static const locals = [
Locale('en', 'US'),
Locale('hi', 'IN'),
Locale('es', 'ES'),
Locale('bn', 'BD'), // Bengali
];
Important:
languageCode (bn) and countryCode (BD) must be valid. Invalid codes will cause localization to fail.
Step 3: Add a Language Checker Method (Optional)
For consistency with existing languages, add a helper method to identify the new locale.
static bool isBengali(Locale locale) {
return locale.languageCode == "bn";
}
Step 4: Update Language Display Name
Update the getLocalString method so the language name appears correctly in the UI (e.g., language picker).
static String getLocalString(Locale locale) {
final language = locale.languageCode;
switch (language) {
case "en":
return "English";
case "hi":
return "हिंदी";
case "es":
return "Español";
case "bn":
return "বাংলা";
default:
return "";
}}
Step 5: Build and Run the Application
Build the application. The build process will automatically generate the file:
app_localizations_<code>.dart
Run the application to verify that the new language appears and works correctly.
Change App Color
This application uses a centralized theming system based on AppColors and AppTheme. All UI colors (Light & Dark mode) are controlled from a single source of truth, ensuring consistency across the app.
Open lib/src/core/theme/app_colors.dart and update the color values (primary, text,
background, button, stroke, etc.) to change the application's branding colors.
Light theme colors are defined under Light Theme Colors, and dark theme colors are defined under Dark Theme Colors. After updating the colors, the changes will automatically reflect across the app through AppTheme.lightTheme and AppTheme.darkTheme.
Change App Font
Download your preferred font from the internet. Google has many free fonts you can check them: https://fonts.google.com/
Unzip fonts and paste them to <project>/assets/fonts/ folder
Mentioned them in <project>/pubspec.yaml file like:
fonts:
- family: YOUR_FONT_FAMILY_NAME
fonts:
- asset: assets/fonts/<YOUR_FONT_FILE_NAME>
weight: <YOUR_FONT_WEIGHT>
Replace the font family name: open lib/src/core/theme/app_textstyles.dart file and
change the code below:
static const String fontFamily = '<YOUR_FONT_FAMILY_NAME>';
App Build and Release
Build for Android
First, clean and fetch dependencies:
flutter clean
flutter pub get
Recommended Play Store artifact (AAB):
flutter build appbundle --release
APK release build:
flutter build apk --release
Split APK by ABI (optional, smaller per-architecture APK files):
flutter build apk --release --split-per-abi
Output locations:
build/app/outputs/bundle/release/app-release.aabbuild/app/outputs/flutter-apk/(APK files)
Build for iOS
iOS release builds require macOS + Xcode. For TestFlight/App Store distribution, follow the official Flutter iOS deployment documentation: https://docs.flutter.dev/deployment/ios