Estaty - Real Estate Flutter App

A modern, feature-rich real estate mobile application built with Flutter. Estaty provides an elegant platform for browsing, searching, and exploring property listings with a beautiful user interface.

🏠 Features

Home Screen

  • Custom Slider with Color Transitions: A unique home slider that smoothly transitions between images with dynamic background colors. The slider uses PageView for smooth infinite scrolling and color interpolation for seamless visual effects.
  • Category Filter System: Interactive category chips that allow users to filter listings by property type (Apartment, House, Duplex, Villa, etc.)
  • Search Functionality: Quick search bar for finding properties
  • Multiple Property Sections: "Explore Category", "Most Popular Listing", and "Latest Projects"
  • Language Selection: Multi-language support with custom language selector dialog

Listings

  • Staggered Grid Layout: Beautiful masonry grid view for browsing all properties
  • Detailed Property Cards: Each card displays property image, category badge, title and address, price (with previous price strikethrough), property details (square footage, bedrooms, bathrooms), and wishlist toggle
  • Category Filtering: Real-time filtering by property categories
  • Empty State Handling: User-friendly messages when no properties match the filter

UI Components

  • Custom Icon Button Widget: Reusable icon button with rotation support and customizable colors
  • Horizontal Listing Cards: Rich cards with gradient overlays and property information
  • Bottom Navigation: Clean navigation between Home, Listings, Projects, and Profile sections
  • Custom App Bar: Pinned app bar with notifications and language switcher

Folder Structure

All you need to follow the lib(Library) Folder for any logical and UI changes in this project.

lib/
β”œβ”€β”€ main.dart
β”œβ”€β”€ app/                      # Core application setup: theme, colors, styles.
└── features/                 # Main feature modules organized by functionality.
    β”œβ”€β”€ auth/                 # Authentication screens.
    β”‚   └── ui/
    β”‚       └── screens/
    β”œβ”€β”€ bottom_nav/           # Bottom navigation controller.
    β”‚   └── ui/
    β”‚       └── screen/
    β”œβ”€β”€ common/               # Shared components across features.
    β”‚   └── ui/
    β”‚       └── widgets/
    β”œβ”€β”€ home/                 # Home feed with slider and categories.
    β”‚   β”œβ”€β”€ data/
    β”‚   β”‚   └── models/
    β”‚   └── ui/
    β”‚       β”œβ”€β”€ screen/
    β”‚       └── widget/
    β”œβ”€β”€ listings/             # Property listings and details.
    β”‚   β”œβ”€β”€ data/
    β”‚   β”‚   └── models/
    β”‚   └── ui/
    β”‚       β”œβ”€β”€ screens/
    β”‚       └── widgets/
    β”œβ”€β”€ notifications/        # Notification center.
    β”‚   β”œβ”€β”€ data/
    β”‚   β”‚   └── models/
    β”‚   └── ui/
    β”‚       └── screens/
    β”œβ”€β”€ profile/              # User profile and settings.
    β”‚   └── ui/
    β”‚       └── screens/
    β”œβ”€β”€ projects/             # Real estate projects with filtering.
    β”‚   β”œβ”€β”€ data/
    β”‚   β”‚   └── models/
    β”‚   └── ui/
    β”‚       β”œβ”€β”€ screens/
    β”‚       └── widgets/
    β”œβ”€β”€ support/              # Customer support tickets.
    β”‚   └── ui/
    β”‚       └── screens/
    β”œβ”€β”€ vendors/              # Property vendor/agent information.
    β”‚   └── data/
    β”‚       └── models/
    └── wishlist/             # Saved properties management.
        └── ui/
            └── screens/
Project Folder Structure

Screens (Total: 20+)

AUTH

  • Splash Screen
  • Login Screen
  • Signup Screen
  • Forget Password Screen
  • OTP Verification Screen
  • Reset Password Screen

HOME

  • Home Screen (with custom slider, color transitions)
  • All Categories Screen
  • Bottom Navigation Bar

LISTINGS

  • All Listings Screen (staggered grid with filters)
  • Listing Details Screen (with image gallery, floor plan)

PROJECTS

  • All Projects Screen (with search and filters)
  • Project Details Screen (with gallery, floor plan)
  • Image Preview Screen (full-screen viewer with zoom)

PROFILE

  • Profile Screen
  • Edit Profile Screen
  • Change Password Screen

OTHER

  • Wishlist Screen
  • Notifications Screen
  • Support Tickets Screen
  • Vendors Screen

Requirements

Download and install any one from these IDE (Android Studio, VS Code) on your computer.

Setup Flutter and Dart SDK on your computer if you want to modify the source code

Must install Flutter and Dart plugin on your IDE

Install Flutter on Windows

Install Flutter on Mac

Installation

After downloading file from CodeCanyon you will get a zip file. Extracting the zip file you will get Documentation Folder and ... installable.zip included in there:

  • Unzip the source code and open it in your IDE.
  • On your IDE find for pubspecs.yaml file then click on pub get on top right side your IDE.
  • Please make sure you are using Flutter version minimum 3.30.0
  • Open an emulator or connect a real device and then click on Run Button for compile the project.
Installation Screenshot

Flutter Packages

UI / Visuals

πŸ“ cupertino_icons: ^1.0.8 >> iOS-style icons (Cupertino widgets)

πŸ“ flutter_svg: ^2.2.3 >> Render SVG images in Flutter

πŸ“ font_awesome_flutter: ^10.12.0 >> Font Awesome icons for Flutter

πŸ“ carousel_slider: ^5.1.1 >> Image carousel/slider widget for property galleries

πŸ“ flutter_staggered_grid_view: ^0.7.0 >> Staggered/masonry grid layouts for property listings

πŸ“ photo_view: ^0.15.0 >> Full-screen image viewer with pinch-to-zoom

πŸ“ flutter_launcher_icons: ^0.14.4 >> Configure app launcher icons

Maps / Location

πŸ“ flutter_map: ^7.0.2 >> Interactive map widget for property locations

πŸ“ latlong2: ^0.9.1 >> Latitude/longitude calculations

Utilities

πŸ“ intl: ^0.20.2 >> Date/number formatting & internationalization

Setup Application

Change App Name

Android

  1. Open <project>/android/app/src/main/AndroidManifest.xml
  2. Update the android:label value inside the <application> tag:
<application
    android:label="Evento"
    android:icon="@mipmap/ic_launcher">
    
</application>

iOS

  1. Open <project>/ios/Runner/Info.plist
  2. Change CFBundleName:
<key>CFBundleName</key>
<string>Evento</string>

Optional: Some setups also use CFBundleDisplayName for the home screen name.

Reinstall after rename

  • Uninstall the previously installed app from the device/emulator, then rebuild and run.
  • Optional (Android): uninstall via package id:
adb uninstall com.example.your_app

Change App Launcher Icons (flutter_launcher_icons:)

  1. Update the flutter_launcher_icons config in your pubspec.yaml (package already added):
flutter_launcher_icons:
  android: true
  ios: true
  image_path: "assets/icons/icon.png"
  adaptive_icon_foreground: "assets/icons/icon.png"
  adaptive_icon_background: "assets/icons/background.png"
        
  1. Place your icons at:
    • assets/icons/icon.png (square, 1024x1024 recommended)
    • assets/icons/background.png (solid/simple background for Android adaptive icon)
  2. Generate icons:
dart run flutter_launcher_icons
  1. Rebuild the app. If icons don't update, clear build caches and run again.

Notes

  • Android uses adaptive icons; prefer a simple, solid background and a centered foreground with padding.
  • iOS uses a single raster icon automatically generated from image_path (adaptive fields are ignored on iOS).
  • The runtime splash logo is loaded from the Admin Panel via API; launcher icons remain static and are generated with this package.

App Logo & Branding

All app logos, icons, and images are defined in lib/app/assets_path.dart. You can customize them by updating the file paths:

  • Core Images:
    • logoImage: SVG logo (assets/images/logo.svg)
    • logoImagePng: PNG logo (assets/images/logo.png)
    • splashImage: Splash screen background (assets/images/splash.png)
    • appbarImage: App bar background (assets/images/appbarbg.png)
    • placeHolderSvg: Placeholder for missing images
  • Navigation Icons:
    • homeIconsSvg, listing, project, profileIconsSvg
  • Common Icons:
    • notificationIconSvg, searchIconSvg, shareIconSvg
    • wishlistIconSvg, languageIconsSvg, wheelIconSvg
    • arrowIconSvg, envIconSvg
  • Lottie Animations:
    • askJson: Support/help animation

Replace the files in assets/images/ and assets/icons/ folders with your own branding assets. Keep the same file names or update the paths in assets_path.dart.

App Logo Assets Screenshot

Theme Colors

All app colors are defined in lib/app/app_colors.dart. Current color palette:

  • primaryColor: Color(0xFF23A8FE) - Main brand color (blue)
  • secondaryColor: Color(0xFFEAEAEA) - Light gray
  • backgroundColor: Color(0xFFFFFFFF) - White
  • cardColor: Colors.white - Card backgrounds
  • textPrimary: Color(0xFF0F172A) - Dark text
  • textSecondary: Color(0xFF64748B) - Gray text
  • iconColor: Color(0xFF94A3B8) - Icon color
  • successColor: Color(0xFF10B981) - Green for success
  • errorColor: Color(0xFFEF4444) - Red for errors
  • warningColor: Color(0xFFF59E0B) - Orange for warnings

The app theme uses Jakarta font family and is configured in lib/app/app_theme_data.dart.

Tip: After changing colors, hot restart the app to see the changes.

App Colors Screenshot

Build & Run App

Run the Application:

  • In the target selector, select an Android device for running the app. If none are listed as available, select Tools> Android > AVD Manager and create one there. For details, see Managing AVDs.
  • If you don't use Android Studio, Vs Code or IntelliJ you can use the command line to run your application using the following command:
flutter run
Run App Screenshot

Build Release & Publish App

1. Build Release Apk or other file type as your need.

After making all your changes and customizations, save the project. Then open the console, navigate to your project folder, and execute the following command:

flutter build apk --release

⚑ For Play Store deployments, it’s recommended to use App Bundles or split APKs to reduce the final APK size.

Build and Install App:

β€’ Generate App Bundle (recommended):

flutter build appbundle --target-platform android-arm,android-arm64,android-x64
Learn more

β€’ Split APKs per ABI:

flutter build apk --target-platform android-arm,android-arm64,android-x64 --split-per-abi
Learn more

Signing the App (required for Google Play):

Before uploading, you must sign your app. Generate a signing key by running:

keytool -genkey -v -keystore android/app/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

Create a key.properties file inside android/ folder with the following content:

storePassword = password from previous step
keyPassword = password from previous step
keyAlias = key
storeFile = location of the keystore file (e.g. /Users/username/key.jks)

Then update android/app/build.gradle with:

def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}

buildTypes {
release {
signingConfig signingConfigs.release
}
}

2. Android (Play Store)

Follow the official guidelines to publish your signed app or app bundle to the Google Play Store:

https://flutter.dev/docs/deployment/android

3. iOS (App Store)

Follow the official guidelines to publish your app to the Apple App Store:

https://flutter.dev/docs/deployment/ios

Run flutter build apk --release for Android.

Run flutter build ios --release for iOS.

Follow Flutter docs for publishing to Play Store / App Store.

Support

πŸ“© For support, customization, or queries, contact us via email.