β οΈ Project Status: In DevelopmentThis project is still under active development.
Features, structure, and dependencies may change frequently until a stable release is published.
Contributions and feedback are always welcome!
Social Mate is a cutting-edge, high-performance social networking platform engineered with Flutter π. It represents a sophisticated mobile solution designed to provide users with a fluid, engaging, and secure environment for social interaction.
Built upon the robust foundations of Clean Architecture ποΈ and the BLoC pattern π§©, the application ensures exceptional maintainability and scalability. By leveraging Supabase βοΈ as its backend infrastructure, Social Mate delivers real-time data synchronization and secure authentication, all wrapped in a visually stunning, responsive interface that adapts perfectly to any device size via ScreenUtil π±.
Whether it's sharing moments through rich media, navigating a dynamic social feed, or enjoying the seamless onboarding experience, every aspect of Social Mate is optimized for peak performance and visual excellence. β¨
- π― Key Features
- β¨ Badges
- π Getting Started
- π¦ Dependencies Used
- πΈ Screenshots
- π οΈ Contributions
- π License
- Secure Sign Up & Sign In - Robust authentication flow using Email/Password π§.
- Social Login Support - UI integration for Google and Microsoft authentication π.
- Supabase Integration - Backend authentication powered by Supabase β‘.
- Form Validation - Real-time validation for user inputs with localized feedback β .
- Dynamic Home Feed - Scroll through posts and updates π°.
- Stories System - Interactive story viewing experience with immersive transitions π±.
- Post Creation - "What's on your mind?" widget with multi-media support πΈ.
- Media Gallery Integration - Seamless browsing and selection of local media πΌοΈ.
- Bottom Navigation - Quick access to key modules like Home, Add, and Groups π§.
- Modern & Premium UI - A polished, high-fidelity design focused on user engagement π.
- Responsive Layout - Adapts perfectly to various screen sizes and densities π±.
- Efficient Media Loading - Optimized image caching and shimmering effects for a fluid experience β¨.
- Interactive Toast Notifications - Sleek, non-intrusive feedback for app actions π.
- Clean Architecture - Organized folder structure (Data, Domain, Presentation) π.
- BLoC Pattern - Predictable state management using
flutter_blocandcubitπ. - Dependency Injection - Scalable service locator using
get_itandinjectableπ. - Routing - Declarative navigation with
go_routerπ£οΈ. - Localization - Full multi-language support setup π.
This project follows Clean Architecture principles to ensure a highly scalable, maintainable, and testable codebase. The separation of concerns is strictly maintained across three primary layers:
- Widgets & Pages: Pure UI components built with Flutter.
- BLoC / Cubit: Handles state management and interacts with Domain usecases.
- Routing: Managed via
go_routerfor declarative navigation.
- Entities: Simple Dart classes representing the core data models.
- Use Cases: Contains specific business logic and coordinates data flow.
- Repositories (Interfaces): Defines contracts for data operations, ensuring the domain layer is independent of external dependencies.
- Repositories (Implementations): Implements the contracts defined in the Domain layer.
- Data Sources: Handles direct communication with local storage or remote APIs (e.g., Supabase).
- Models: DTOs (Data Transfer Objects) that handle JSON serialization/deserialization.
lib/
βββ core/ # Shared utilities, themes, DI, and routes
βββ features/ # Modular features (e.g., auth, home)
β βββ [feature_name]/
β βββ data/ # Repositories & Data Sources
β βββ domain/ # Entities & Use Cases
β βββ presentation/ # UI (Pages & Widgets) & State Management
βββ global/ # App-wide BLoCs and Global State
βββ main.dart # Entry point
The application follows a consistent and modern design language to ensure a premium feel across all screens.
- Primary:
#007AFFπ΅ - Used for main actions, active states, and branding. - Secondary:
#0779B8πΉ - Used for accents and secondary elements. - Surface:
#FFFFFFβͺ - Clean white background for a minimalist look. - Error:
#FF1E1Eπ΄ - Clear visibility for error states and destructive actions.
- Body & Headings: Utilizing the default Material Design typography scale, optimized for readability.
- Responsive Scaling: All text sizes are dynamically scaled using
flutter_screenutilto ensure consistency across various device densities.
- SVG Icons: Custom managed high-quality SVGs via
flutter_genfor sharp visuals at any size. - Cupertino Icons: Standard iOS-style icons for a familiar and native mobile experience.
To run this app locally:
git clone https://github.com/AmrSalahDev/Social-Mate-Flutter-App.git
cd Social-Mate-Flutter-App
flutter pub get
flutter run- π¦ Flutter SDK 3.9.0 or higher
- π― Dart 3.9.0 or higher
- π’ Android Studio / Xcode (for iOS development)
- π± Android/iOS device or emulator
- π₯ Clone the repository
- π Install dependencies:
flutter pub get - βοΈ Generate code:
flutter pub run build_runner build --delete-conflicting-outputs - π Setup Environment: Create a
.envfile with yourSUPABASE_URLandSUPABASE_ANON_KEY. βΆοΈ Run the app:flutter run
Below is a list of key packages used in this Flutter project:
flutter_bloc: ^9.1.1- State management library π§©.bloc: ^9.2.0- Core business logic component βοΈ.bloc_concurrency: ^0.3.0- Concurrency transformers for Bloc events β‘.get_it: ^9.2.0- Service locator for dependency injection π.injectable: ^2.7.1+4- Code generation for GetIt ποΈ.go_router: ^17.0.1- Declarative routing package π£οΈ.
supabase_flutter: ^2.12.0- Supabase client for Auth and Database β‘.flutter_dotenv: ^6.0.0- Load environment variables from.envπ.equatable: ^2.0.5- Simplify object equality comparisons βοΈ.photo_manager: ^3.8.3- Handling local media assets with ease πΈ.
flutter_screenutil: ^5.9.3- Screen adaptation tool π±.flutter_svg: ^2.2.3- SVG rendering support πΌοΈ.toastification: ^3.0.3- Customizable toast notifications π.cached_network_image: ^3.4.1- Caching and displaying network images efficiently πΌοΈ.shimmer: ^3.0.0- Shimmer loading effects for a premium feel β¨.story_view: ^0.16.6- Full-featured story viewing experience π±.dotted_border: ^3.1.0- Easily create dashed or dotted borders π³.readmore: ^3.0.0- Expandable/collapsible long text segments π.smooth_page_indicator: ^2.0.1- Page indicators for onboarding π.cupertino_icons: ^1.0.8- iOS style icons π.
talker_bloc_logger: ^5.1.10- Logging tool for Bloc state changes π.my_flutter_toolkit- Custom utility package π§°.get_time_ago: ^2.3.2- Human-readable time formatting β³.number_display: ^3.0.0- High-performance number formatting for UI π’.flutter_localization: ^0.3.3- Advanced localization support π.build_runner: ^2.10.5- Build system for code generation ποΈ.flutter_gen_runner: ^5.12.0- Asset generator π.
β¨ Check out the app UI design in Figma:
π Click the image to view the live Figma prototype.
π€ Feel free to fork the repo, open issues, or submit PRs to improve the app!
- π΄ Fork the repository
- πΏ Create your feature branch (
git checkout -b feature/AmazingFeature) - πΎ Commit your changes (
git commit -m 'Add some AmazingFeature') - π€ Push to the branch (
git push origin feature/AmazingFeature) - π Open a Pull Request
If you like this project, please give it a star β
βοΈ This project is licensed under the MIT License - see the LICENSE file for details.
π¬ For questions or support, feel free to open an issue on GitHub or contact the development team.
Built with β€οΈ using Flutter







