FLUTTER ECOSYSTEM

alperefesahin/flutter_social_chat

Firebase および GetStream を使用したリアルタイムソーシャルチャットアプリ — オープンソースで機能豊富

Flutter ソーシャルチャット のプロジェクト画像
Stars
216
Forks
51
最終プッシュ(UTC)
2025/05/19
プロジェクト状態
公開中
Alper Efe Sahin GitHub avatar
GITHUB User

Alper Efe Sahin ↗

Senior Flutter Developer

NeuronicTurkey
言語DartRubySwiftMakefileKotlinObjective-C

技術トピック

使用している依存関係

依存関係一覧 30 件

ランキング

元の README

以下は英語原文のスナップショットです。最新版は GitHub をご覧ください。

README を開く / 閉じる

Flutter Social Chat

Flutter Version License Sponsored by Stream

A modern, feature-rich social chat application built with Flutter following the MVVM architecture. This app combines social networking features with robust real-time messaging capabilities.

🤝 Sponsored by Stream

Stream Logo

Flutter Social Chat is proudly sponsored by Stream, the leading provider for chat and activity feed APIs.

This marks another exciting collaboration with Stream after our initial release. The powerful Stream Chat SDK enables us to implement robust, scalable, and feature-rich chat functionality with minimal effort.

📖 Official Blog Coverage

The latest blog post dives into our architectural decisions, feature set, and how the Stream Chat SDK powers real-time communication in this modern Flutter app.

🚀 Technical Highlights

  • MVVM Architecture: Clean separation of UI, business logic, and data
  • 🔄 BLoC Pattern: Efficient reactive state management with Flutter BLoC
  • 🔌 Stream Chat SDK: Powerful real-time messaging capabilities
  • 🔐 Firebase Integration: Authentication and data storage with Firebase
  • 📱 Responsive Design: Adaptive UI for different device sizes
  • 🧩 Modular Structure: Well-organized codebase with clear separation of concerns
  • 🌐 Environment Configuration: Secure management of API keys and secrets
  • 🔌 Dependency Injection: Flexible service location with GetIt
  • 🧪 Functional Programming: Elegant flow with FPDart

💬 Core Features

  • 🔑 Phone Authentication: Secure sign-in with SMS verification
  • 💬 Real-time Chat: Instant messaging powered by Stream Chat
  • 🔍 User Discovery: Find and connect with other users
  • 📊 Chat Management: Create, list, and manage conversations
  • 🔔 Connectivity Handling: Graceful online/offline state management

📱 App Showcase

App Flow Demo
App Flow Demo
Demo Video

Flutter Social Chat Demo

Click the image above to watch the full app demo

Screenshots
Authentication Flow
Landing Page
https://github.com/user-attachments/assets/263c86d4-0d1e-4bf6-9a97-762f0baf8eb5
Sign In
https://github.com/user-attachments/assets/dfbbae03-a31d-414b-839d-adec763febc0
SMS Verification
https://github.com/user-attachments/assets/f9abe4f2-e41b-463a-ba0d-f2d6917f70f4
Onboarding
https://github.com/user-attachments/assets/b392e820-00fe-4e49-93cf-2fd3534fd883
Main App Features
Dashboard
https://github.com/user-attachments/assets/c2e6c74c-4a94-4502-936d-295ef333f746
Search Users
https://github.com/user-attachments/assets/a4f3a5db-c060-4fcd-ae10-ef28c3ff2f35
Chat Options
https://github.com/user-attachments/assets/b52a1363-dbf7-4500-8409-52e403031340
Chat Creation
Create Private Chat
https://github.com/user-attachments/assets/6a7d8590-4784-4105-ab8f-f0b31c250b4c
Create Group Chat
https://github.com/user-attachments/assets/9fc1f1c5-d613-4e98-a06e-e127171a5dbe
Chat Experience
Chat View
https://github.com/user-attachments/assets/480a9760-07be-4f78-9ded-904e0f7ce7ac
Message Details
https://github.com/user-attachments/assets/1dd38298-cf30-410a-a0c1-170a61d730d9
Message Reactions
https://github.com/user-attachments/assets/6005b3d5-2faa-495e-b11d-f0f8af38cf20
Profile View
https://github.com/user-attachments/assets/56061aff-c75f-4c16-bc01-71c0e6b6820a

🏗️ Architecture

Flutter Social Chat follows the MVVM (Model-View-ViewModel) architecture, with a clean separation of concerns:

lib/
├── core/           # Core functionality, utils, and app-wide services
├── data/           # Data layer with repositories and data sources
├── domain/         # Domain layer with models
├── presentation/   # UI layer with views, blocs, and design system
└── main.dart       # Application entry point
State Management

The app uses BLoC (Business Logic Component) pattern for state management:

  • Separation of UI and Business Logic: Clear distinction between presentation and business logic
  • Testability: Easy unit testing of business logic
  • Reactive Programming: Stream-based approach for handling state changes
  • Equatable: All state classes use Equatable for efficient state comparison

🔧 How to Run

Setup Steps
  1. Clone the repository
git clone https://github.com/yourusername/flutter_social_chat.git
cd flutter_social_chat
  1. Install dependencies
flutter pub get
  1. Firebase Setup
  • Create a new Firebase project at Firebase Console
  • Add Android and iOS apps to your Firebase project
  • Download and add the google-services.json to the Android app directory
  • Download and add the GoogleService-Info.plist to the iOS app directory
  • Enable Phone Authentication in the Firebase Authentication section
  • Set up Firestore Database with appropriate security rules
  1. Stream Chat Setup
  • Create an account on Stream
  • Create a new app in the Stream dashboard
  • Get your API Key and Secret from the app dashboard
  • Create a .env file in the project root with your Stream credentials:
STREAM_CHAT_API_KEY=your_stream_chat_api_key
STREAM_CHAT_API_SECRET=your_stream_chat_api_secret
  • For detailed environment setup instructions, see ENV_SETUP.md
  1. Run the app
flutter run

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.