Appointment Booking Seller UIKit
Flutter Setup & Installation Guide
Overview
This is a complete Flutter UI Kit for building appointment booking seller/provider applications. It includes 37+ pre-built screens, modern design, and clean architecture.
- 37+ pre-built screens
- Complete UI components
- Centralized demo data in
lib/data/demo_data.dart - Responsive layouts using ScreenUtil
- All assets (40+ SVG icons, demo images, Inter font)
- GetX state management and routing
- Clean architecture with separation of concerns
Project Name:
appointment_booking_seller_appZip File:
appointment-booking-seller-ui-kit-flutter.zipExtracted Folder:
appointment-booking-seller-ui-kit-flutter/Source_Code/appointment_booking_seller_app/Main Directory:
appointment_booking_seller_app/Entry Point:
lib/main.dart
Prerequisites
Required Software
- Flutter SDK version 3.0.0 or higher
- Dart SDK (bundled with Flutter)
- Android Studio or VS Code with Flutter extensions
- Xcode (for iOS development on macOS only)
- CocoaPods (for iOS, install via:
sudo gem install cocoapods)
Verify Flutter Installation
Before proceeding, verify your Flutter installation:
flutter doctor
Make sure all required components are installed and configured correctly.
Installation & Setup
Extract Files
Extract the downloaded package to your desired location on your computer.
# Example location
cd ~/Projects
unzip appointment-booking-seller-ui-kit-flutter.zip
cd appointment-booking-seller-ui-kit-flutter/Source_Code/appointment_booking_seller_app
Install Dependencies
Navigate to the project directory and install all required Flutter packages:
flutter pub get
This will download and install all dependencies listed in pubspec.yaml.
iOS Setup (macOS only)
If you're developing for iOS, install CocoaPods dependencies:
cd ios
pod install
cd ..
Run the App
Run the application on your device or emulator:
flutter run
The app will launch with demo data. All screens are accessible and functional for UI demonstration.
Verify Installation
Check that everything is set up correctly:
flutter doctor
flutter pub get
flutter analyze
All commands should complete without errors.
Customization Guide
Change App Colors
Primary Colors
Edit lib/core/values/app_colors.dart:
static const kPrimaryColor = Color(0xff133960); // Your primary color
static const primaryColor = Color(0xff1d2a3a); // Secondary color
Customize Button Border Radius
Global Button Border Radius
The buttonBorderRadius constant in lib/core/values/app_values.dart controls the border radius for all buttons throughout the entire project. This allows you to change the button style globally with a single parameter.
File Location: lib/core/values/app_values.dart
abstract class AppValues {
static const double buttonBorderRadius = 10; // Update this value to change all button radius
// ... other constants
}
buttonBorderRadius value, all buttons in the app will automatically update their border radius. This provides a consistent design across the entire application.
Button Border Radius Examples
Here are visual examples of buttons with different border radius values:
Border Radius: 0 (Sharp/No Radius)
Border Radius: 10 (Default - Slightly Rounded)
Border Radius: 40 (Fully Rounded/Pill Shape)
buttonBorderRadius value, you need to hot restart the app (not just hot reload) to see the changes applied to all buttons.
How to Update Button Border Radius
- Open
lib/core/values/app_values.dart - Find the line:
static const double buttonBorderRadius = 10; - Change the value to your desired radius (e.g.,
0,10,40) - Save the file
- Hot restart your app:
flutter runor pressRin the terminal
Recommended Values:
0- Sharp corners (modern, minimalist)5-10- Slightly rounded (balanced, professional)20-40- Fully rounded (pill-shaped, friendly)
Replace Demo Data
Update Demo Data
Edit lib/data/demo_data.dart or replace with API calls in controllers:
allAppointments- Appointment datafaqList- FAQ questions and answerschatMessages- Chat message samplesnotifications- Notification datapaymentMethods- Payment method optionsquickWithdrawAmounts- Withdrawal amount options
lib/data/demo_data.dartAll static demo data is centralized in this file for easy management and updates.
Modify Screens
Screen Structure
Each screen is in lib/screens/[feature]/:
[feature]_screen.dart- UI layout[feature]_controller.dart- Business logicwidgets/- Feature-specific widgets
Add Your Backend
Backend Integration Steps
- Create API service in
lib/network/(structure provided) - Update controllers to call your APIs
- Replace demo data with real API responses
- Implement authentication logic
- Add payment gateway integration
Update App Icon & Name
Android
- Replace icons in
android/app/src/main/res/mipmap-*/ - Update app name in
android/app/src/main/AndroidManifest.xml:<application android:label="Your App Name" ...
iOS
- Update icons in
ios/Runner/Assets.xcassets/AppIcon.appiconset/ - Update app name in
ios/Runner/Info.plist:<key>CFBundleName</key> <string>Your App Name</string>
Update App Package Name
Android Package Name
Update in android/app/build.gradle.kts:
android {
namespace = "com.yourcompany.appointmentbooking"
...
}
iOS Bundle Identifier
Update in ios/Runner.xcodeproj/project.pbxproj or Xcode:
PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.appointmentbooking
File Structure
├── android/ # Android platform files
│ ├── app/ # Android app configuration
│ │ ├── src/ # Source files
│ │ └── build.gradle.kts # Build configuration
│ └── build.gradle.kts # Project build file
├── ios/ # iOS platform files
│ ├── Runner/ # iOS app files
│ └── Podfile # CocoaPods dependencies
├── lib/ # Main application code
│ ├── bindings/ # Dependency injection
│ ├── core/ # Core utilities
│ │ ├── dialogs/ # Reusable dialogs
│ │ ├── utils/ # Helper functions
│ │ ├── values/ # Colors, themes, images
│ │ └── widgets/ # Reusable widgets
│ ├── data/ # Data layer
│ │ ├── model/ # Data models
│ │ ├── local/ # Local storage
│ │ ├── repository/ # Repository pattern
│ │ └── demo_data.dart # Centralized demo data
│ ├── localization/ # Localization files
│ ├── network/ # Network layer
│ ├── routes/ # Routing configuration
│ └── screens/ # UI screens (37+)
│ └── [feature]/ # Feature-based organization
├── assets/ # Images, icons, fonts
│ ├── icons/ # UI icons (40+)
│ ├── images/ # Demo images
│ └── fonts/ # Custom fonts (Inter)
├── pubspec.yaml # Dependencies
├── README.md # Documentation
├── setup-guide.html # This file
└── CHANGELOG.md # Changelog
appointment_booking_seller_appZip File Name:
appointment-booking-seller-ui-kit-flutter.zipExtracted Path:
appointment-booking-seller-ui-kit-flutter/Source_Code/appointment_booking_seller_app/Main Entry Point:
lib/main.dartDemo Data Location:
lib/data/demo_data.dart
Device Compatibility
Supported Platforms
- Android: All devices running Android 5.0 (API 21) and above
- iOS: iPhone and iPad running iOS 11.0 and above
- Tablets: Optimized for both phones and tablets
- Screen Sizes: Responsive design works on all screen sizes
Minimum Requirements
- Android: API Level 21 (Android 5.0 Lollipop)
- iOS: iOS 11.0 or later
- RAM: 2GB minimum (recommended 4GB+)
- Storage: 50MB for app installation
Deployment
Android Deployment
Step 1: Generate Keystore
Create a keystore file for signing your app:
keytool -genkey -v -keystore ~/upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload
Save the keystore file securely and note down the password and alias.
Step 2: Configure Signing
Create android/key.properties file:
storePassword=your_keystore_password
keyPassword=your_key_password
keyAlias=upload
storeFile=/path/to/upload-keystore.jks
Step 3: Update build.gradle
Update android/app/build.gradle.kts to use the keystore:
android {
...
signingConfigs {
create("release") {
val keystorePropertiesFile = rootProject.file("key.properties")
val keystoreProperties = Properties()
keystoreProperties.load(FileInputStream(keystorePropertiesFile))
keyAlias = keystoreProperties["keyAlias"] as String
keyPassword = keystoreProperties["keyPassword"] as String
storeFile = file(keystoreProperties["storeFile"] as String)
storePassword = keystoreProperties["storePassword"] as String
}
}
buildTypes {
getByName("release") {
signingConfig = signingConfigs.getByName("release")
isMinifyEnabled = true
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
}
}
}
Step 4: Build Release APK
Build the release APK:
flutter build apk --release
The APK will be generated at: build/app/outputs/flutter-apk/app-release.apk
Step 5: Build App Bundle (for Play Store)
Build the App Bundle for Google Play Store:
flutter build appbundle --release
The AAB will be generated at: build/app/outputs/bundle/release/app-release.aab
iOS Deployment
Step 1: Configure Xcode
- Open
ios/Runner.xcworkspacein Xcode - Select the Runner target
- Go to "Signing & Capabilities"
- Select your development team
- Update Bundle Identifier if needed
Step 2: Update Version
Update version in pubspec.yaml:
version: 1.0.0+1
Format: version: MAJOR.MINOR.PATCH+BUILD_NUMBER
Step 3: Build iOS App
Build the iOS app:
flutter build ios --release
Step 4: Archive in Xcode
- Open
ios/Runner.xcworkspacein Xcode - Select "Any iOS Device" or a connected device
- Go to Product → Archive
- Wait for the archive to complete
- Click "Distribute App"
- Follow the App Store Connect wizard
Pre-Deployment Checklist
- App name is updated in AndroidManifest.xml and Info.plist
- App icon is replaced with your branding
- Package name/Bundle ID is unique
- Version number is updated
- All demo data is replaced or removed
- API endpoints are configured (if backend is ready)
- Permissions are properly declared
- Privacy policy URL is added (if required)
- App is tested on multiple devices
- Release build is tested thoroughly
Google Play Store Submission
Requirements
- Google Play Developer account ($25 one-time fee)
- App Bundle (.aab file)
- App screenshots (phone and tablet)
- App icon (512x512px)
- Feature graphic (1024x500px)
- Privacy policy URL (if app collects user data)
- App description and metadata
Apple App Store Submission
Requirements
- Apple Developer account ($99/year)
- App archive (.ipa file)
- App screenshots (various device sizes)
- App icon (1024x1024px)
- Privacy policy URL (required)
- App description and metadata
- Age rating information
Troubleshooting
Common Issues & Solutions
Issue: "flutter: command not found"
Solution: Add Flutter to your PATH environment variable.
- Windows: Add Flutter bin directory to System PATH
- macOS/Linux: Add to
~/.bashrcor~/.zshrc:export PATH="$PATH:/path/to/flutter/bin"
Issue: "Error: CocoaPods not installed" (iOS)
Solution: Install CocoaPods:
sudo gem install cocoapods
Issue: Build errors or dependency conflicts
Solution: Clean and rebuild:
flutter clean
flutter pub get
flutter run
Issue: "No devices found"
Solution:
- For Android: Start an emulator from Android Studio or connect a device via USB
- For iOS: Start a simulator from Xcode or connect an iOS device
- Verify with:
flutter devices
Issue: Missing assets or images not showing
Solution: Ensure assets are properly declared in pubspec.yaml and run:
flutter pub get
flutter clean
flutter run
Issue: Gradle build failed (Android)
Solution:
- Update Android SDK and build tools
- Check
android/build.gradle.ktsfor correct versions - Run:
cd android && ./gradlew clean
Issue: Pod install failed (iOS)
Solution:
- Update CocoaPods:
sudo gem install cocoapods - Clean pods:
cd ios && rm -rf Pods Podfile.lock - Reinstall:
pod install
Additional Resources
- Flutter Documentation: https://flutter.dev/docs
- Dart Documentation: https://dart.dev/guides
- GetX Package: https://pub.dev/packages/get
- Flutter Deployment Guide: https://flutter.dev/docs/deployment
- Google Play Console: https://play.google.com/console
- App Store Connect: https://appstoreconnect.apple.com
- Project README: See
README.mdfor detailed information
Frequently Asked Questions (FAQs)
Q1: How do I install Flutter on my system?
▼A: To install Flutter:
- Download Flutter SDK from flutter.dev
- Extract the zip file to your desired location (e.g.,
C:\src\flutteron Windows or~/development/flutteron macOS/Linux) - Add Flutter to your PATH:
- Windows: Add
C:\src\flutter\binto System Environment Variables - macOS/Linux: Add to
~/.bashrcor~/.zshrc:export PATH="$PATH:/path/to/flutter/bin"
- Windows: Add
- Run
flutter doctorto verify installation and check for missing dependencies - Install any missing dependencies as suggested by
flutter doctor
Q2: What should I do if "flutter pub get" fails?
▼A: If flutter pub get fails, try these steps:
- Check your internet connection
- Run
flutter cleanto clear cached files - Update Flutter:
flutter upgrade - Delete
pubspec.lockand runflutter pub getagain - Check
pubspec.yamlfor syntax errors - Verify your Flutter version is compatible:
flutter --version - If using a proxy, configure it:
flutter config --no-analyticsor set HTTP_PROXY environment variable
Q3: How do I set up Android Studio for Flutter development?
▼A: To set up Android Studio:
- Download and install Android Studio
- Open Android Studio and go through the setup wizard
- Install Android SDK (API 21 or higher) via SDK Manager
- Install Flutter and Dart plugins:
- Go to File → Settings → Plugins (Windows/Linux) or Android Studio → Preferences → Plugins (macOS)
- Search for "Flutter" and install it (Dart plugin will be installed automatically)
- Restart Android Studio
- Create an Android Virtual Device (AVD) via Tools → Device Manager
- Verify setup:
flutter doctor
Q4: How do I set up Xcode for iOS development?
▼A: For iOS development on macOS:
- Install Xcode from the Mac App Store
- Open Xcode and accept the license agreement
- Install additional components when prompted
- Install CocoaPods:
sudo gem install cocoapods - Open Terminal and run:
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer - Run
flutter doctorto verify Xcode installation - If you see errors, run:
sudo xcodebuild -license accept
Q5: What does "No devices found" error mean and how do I fix it?
▼A: This error means Flutter can't detect any device to run the app. Solutions:
- For Android:
- Start an Android emulator from Android Studio (Tools → Device Manager → Start)
- Or connect a physical device via USB and enable USB debugging
- Verify with:
flutter devices
- For iOS:
- Start an iOS simulator from Xcode (Xcode → Open Developer Tool → Simulator)
- Or connect an iPhone/iPad via USB
- Verify with:
flutter devices
- General: Make sure you have at least one device/emulator running before executing
flutter run
Q6: How do I fix "Gradle build failed" errors?
▼A: To fix Gradle build failures:
- Update Android SDK and build tools in Android Studio
- Check
android/build.gradle.ktsfor correct Gradle version - Clean Gradle cache:
cd android && ./gradlew clean - Delete
android/.gradlefolder and rebuild - Update Gradle wrapper: Edit
android/gradle/wrapper/gradle-wrapper.properties - Check for Java/JDK compatibility issues
- Run
flutter cleanandflutter pub get - If using proxy, configure Gradle proxy settings in
~/.gradle/gradle.properties
Q7: How do I fix CocoaPods installation errors on macOS?
▼A: To fix CocoaPods issues:
- Update Ruby:
brew install ruby(if using Homebrew) - Update CocoaPods:
sudo gem install cocoapods - If permission errors occur, use:
sudo gem install -n /usr/local/bin cocoapods - Clean pods:
cd ios && rm -rf Pods Podfile.lock - Reinstall pods:
pod install --repo-update - If still failing, try:
pod deintegrate && pod install - Check Xcode command line tools:
xcode-select --print-path
Q8: Why are my assets/images not showing in the app?
▼A: If assets aren't displaying:
- Verify assets are declared in
pubspec.yamlunder theflutter:section:flutter: assets: - assets/images/ - assets/icons/ fonts: - family: Inter fonts: - asset: assets/fonts/Inter/Inter_Regular.ttf weight: 400 - Check file paths are correct (case-sensitive on Linux/macOS)
- Run
flutter cleanandflutter pub get - Restart the app completely (hot reload won't pick up new assets)
- Verify asset file names don't contain special characters or spaces
- Check that asset files exist in the specified directories
- For SVG files, ensure
flutter_svgpackage is installed (already included)
Q9: How do I change the app package name/Bundle ID?
▼A: To change package identifiers:
- Android:
- Update
android/app/build.gradle.kts:namespace = "com.yourcompany.appname" - Update package name in
android/app/src/main/AndroidManifest.xml - Rename package folders in
android/app/src/main/kotlin/to match new package name
- Update
- iOS:
- Open
ios/Runner.xcworkspacein Xcode - Select Runner target → General tab
- Update Bundle Identifier to
com.yourcompany.appname
- Open
Q10: How do I build a release version of the app?
▼A: To build release versions:
- Android APK:
flutter build apk --release - Android App Bundle:
flutter build appbundle --release - iOS:
- Run
flutter build ios --release - Open
ios/Runner.xcworkspacein Xcode - Select Product → Archive
- Follow the distribution wizard
- Run
Note: Make sure to configure signing certificates before building release versions.
Q11: How do I integrate my backend API with this UI Kit?
▼A: To integrate your backend:
- Add HTTP package to
pubspec.yaml:http: ^1.0.0ordio: ^5.0.0(dio is already included) - Create API service class in
lib/network/directory (structure already provided) - Update controllers in
lib/screens/[feature]/[feature]_controller.dartto call your API - Replace demo data in
lib/data/demo_data.dartwith API responses - Implement error handling and loading states
- Add authentication tokens/headers to API requests
- Test API integration thoroughly before deployment
lib/network/. You just need to configure your API endpoints and base URLs.
Q12: What should I do if the app crashes on startup?
▼A: If the app crashes on startup:
- Check console/logs for error messages
- Run
flutter cleanand rebuild - Verify all dependencies are installed:
flutter pub get - Check for null safety issues in your code
- Verify all required assets exist and are properly declared
- Check
main.dartfor initialization errors - Review platform-specific configurations (AndroidManifest.xml, Info.plist)
- Try running on a different device/emulator
Q13: How do I update Flutter to the latest version?
▼A: To update Flutter:
- Run
flutter upgradein terminal - If upgrade fails, manually download the latest Flutter SDK and replace your current installation
- Run
flutter doctorto verify the update - Update your project dependencies:
flutter pub upgrade - Check for breaking changes in the Flutter release notes
Q14: Can I use this UI Kit for commercial projects?
▼A: Yes, this UI Kit is designed for commercial use. However:
- Review the license file included with the package
- Ensure you have proper licenses for any third-party assets or fonts
- Customize the design to match your brand identity
- Replace all demo data with your actual content
- Test thoroughly before deploying to production
Q15: How do I customize colors and themes?
▼A: To customize the app theme:
- Open
lib/core/values/app_colors.dart - Update color constants with your brand colors
- Modify theme settings in
lib/main.dartif needed - Hot restart the app to see changes (hot reload may not apply theme changes)
- Test on both light and dark backgrounds if applicable
Q16: Where is the demo data located and how do I update it?
▼A: All demo data is centralized in one file for easy management:
- Location:
lib/data/demo_data.dart - What's included:
- Appointment data (
allAppointments) - FAQ list (
faqList) - Chat messages (
chatMessages) - Notifications (
notifications) - Payment methods (
paymentMethods) - Withdrawal amounts (
quickWithdrawAmounts) - And more...
- Appointment data (
- To update: Simply edit the values in
lib/data/demo_data.dartor replace the data with API calls in your controllers - To remove demo data: Update controllers to fetch data from your API instead of using
DemoDataclass
Q17: How do I change the default font (Inter) to a different font?
▼A: To change the default font:
- Add your font files to
assets/fonts/directory - Update
pubspec.yamlto include your font:flutter: fonts: - family: YourFontName fonts: - asset: assets/fonts/YourFontName/YourFontName_Regular.ttf weight: 400 - Update
lib/core/values/app_values.dart:static const String fontName = 'YourFontName'; - Run
flutter pub get - Hot restart the app
Q18: What is the project structure and where are key files located?
▼A: Key project locations:
- Main Entry:
lib/main.dart - Routes:
lib/routes/app_routes.dartandapp_pages.dart - Demo Data:
lib/data/demo_data.dart - Colors & Theme:
lib/core/values/app_colors.dartandtheme_data.dart - App Values:
lib/core/values/app_values.dart(font name, button radius, etc.) - Images/Icons:
lib/core/values/app_images.dart - Screens:
lib/screens/[feature]/(37+ screens) - Widgets:
lib/core/widgets/(reusable components) - Dialogs:
lib/core/dialogs/(reusable dialogs) - Network Layer:
lib/network/(API integration structure)
See the File Structure section for complete details.
Contact Us
Need help or have questions? We're here to assist you!
Email Support
For technical support, questions, or feedback, please contact us at:
We typically respond within 24-48 hours during business days.
- For installation and setup issues, please check the Installation & Setup section first
- For common errors, refer to the Troubleshooting section
- For detailed questions, see the FAQs section above
- When contacting support, please include:
- Your Flutter version (
flutter --version) - Your operating system
- Error messages or screenshots
- Steps you've already tried
- Your Flutter version (