Neomorphic Chat Flutter is a modern chat application that showcases advanced Flutter development skills, clean architecture principles, and beautiful neomorphic UI design. Built as a technical demonstration, this project implements a complete authentication system with persistent sessions and an interactive chatbot interface.
Note: This project was developed as a technical assignment to demonstrate Flutter development capabilities, clean architecture implementation, and modern UI/UX design skills.
- User Registration with comprehensive form validation
- Secure Login with credential verification
- Persistent Sessions using SharedPreferences
- Professional Onboarding experience with smooth transitions
- Secure Logout with confirmation dialogs
- Interactive Chat with message bubbles and input field
- Smart Bot Responses with keyword-based logic
- Conversation Management with clear chat functionality
- Real-time Message Updates with smooth animations
- Responsive Design across different screen sizes
- Neomorphic Design Language with soft shadows and depth
- Custom Widget Library for consistent design patterns
- Typography System with Poppins font family
- Adaptive Icons with proper Android implementation
- Smooth Animations and micro-interactions
- Business logic
- Models (User, ChatMessage)
- Repository interfaces
- Repository implementations
- Data sources (local storage)
- External services
The app uses the BLoC (Business Logic Component) pattern for state management, which:
π lib/
βββ π Auth/ # Authentication Layer
β βββ bloc/ # BLoC State Management
β β βββ auth_bloc.dart # Business Logic Component
β β βββ auth_event.dart # User Actions & Events
β β βββ auth_state.dart # Application States
β βββ auth_provider.dart # Abstract Auth Interface
β βββ auth_service.dart # Authentication Service
β βββ cache_manager.dart # Local Storage Management
β βββ exception.dart # Custom Exception Handling
β βββ mock_auth_provider.dart # Mock Implementation
β
βββ π models/ # Data Models
β βββ chat_message.dart # Chat Message Structure
β βββ onboarding_page_model.dart # Onboarding Data
β βββ user_model.dart # User Data Structure
β
βββ π± screens/ # Presentation Layer
β βββ home_screen.dart # Main Chat Interface
β βββ onboarding_page.dart # User Onboarding
β βββ register_page.dart # User Registration
β βββ sign_in_page.dart # User Authentication
β
βββ π οΈ utilities/ # Shared Components
β βββ widgets/ # Custom Widget Library
β β βββ button_neomorphic.dart # Neomorphic Buttons
β β βββ chat_bubble_neomorphic.dart # Chat UI Components
β β βββ chat_input_neomorphic.dart # Message Input Widget
β β βββ dialog_neomorphic.dart # Custom Dialog System
β β βββ logo_neomorphic.dart # Branded Logo Widget
β β βββ textfield_neomorphic.dart # Input Field Components
β βββ Text_styles.dart # Typography System
β
βββ π main.dart # Application Entry Point
- Framework: Flutter 3.7.2+
- Language: Dart
- State Management: BLoC Pattern
- Local Storage: SharedPreferences
- Architecture: Clean Architecture
- Design: Neomorphic UI/UX
- Font: Poppins Typography
The application implements a comprehensive neomorphic design system featuring:
- Soft UI Elements: Subtle shadows and highlights creating depth
- Consistent Color Palette: Neutral grays with accent colors
- Smooth Interactions: Gentle animations and state transitions
- Accessibility Focus: High contrast and readable typography
- Modern Aesthetics: Clean, minimalist interface design
All UI components are custom-built following neomorphic principles:
- Reusable button components with consistent styling
- Chat bubbles with depth and shadow effects
- Input fields with soft, inset appearance
- Dialog systems with branded styling β βββ sign_in_page.dart # User login β βββ utilities/ # Utility classes and widgets β βββ widgets/ # Reusable widgets β β βββ button_neomorphic.dart # Custom buttons β β βββ chat_bubble_neomorphic.dart # Chat bubbles β β βββ chat_input_neomorphic.dart # Message input
- Flutter SDK (3.7.2 or higher)
- Dart SDK
- Android Studio / VS Code
- Android Emulator or Physical Device
-
Clone the repository
git clone https://github.com/your-username/neomorphic_chat_flutter.git cd neomorphic_chat_flutter -
Install dependencies
flutter pub get
-
Generate app icons
flutter pub run flutter_launcher_icons
-
Run the application
flutter run
-
Build APK
flutter build apk --release
-
Build App Bundle (for Google Play Store)
flutter build appbundle --release
- Onboarding Screen: Welcome interface with app introduction
- Registration: Create account with email/password validation
- Login: Secure authentication with credential verification
- Session Management: Automatic login for returning users
- Welcome Message: Automated greeting upon login
- Interactive Chat: Type messages and receive bot responses
- Smart Responses: Keyword-based bot logic for demonstrations
- Conversation Management: Clear chat history when needed
Try these sample interactions:
"hi"or"hello"β Greeting response"help"β Available commands"joke"β Random joke"weather"β Weather information"time"β Current time
- Predictable State: Unidirectional data flow
- Separation of Concerns: Business logic separated from UI
- Testability: Easy unit testing of business logic
- Scalability: Clean state management for complex apps
// Example: Authentication Event Handling
class AuthBloc extends Bloc<AuthEvent, AuthState> {
AuthBloc() : super(AuthStateLoggedOut()) {
on<AuthEventSignUp>(_onSignUp);
on<AuthEventSignIn>(_onSignIn);
on<AuthEventSignOut>(_onSignOut);
}
}// Example: Neomorphic Button Component
Widget neomorphicButton({
required String text,
required VoidCallback onPressed,
Color? color,
}) {
return Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(15),
boxShadow: [
// Neomorphic shadow implementation
],
),
// Button implementation
);
}- Lines of Code: ~2,000+
- Custom Widgets: 8 reusable components
- Screens: 4 main application screens
- Models: 3 data structure implementations
- Architecture Layers: 3-tier clean architecture
- Input Validation: Comprehensive form validation
- Error Handling: Custom exception management
- Code Organization: Clean architecture principles
- Documentation: Comprehensive code comments
- Git Workflow: Professional commit practices
This project welcomes contributions! Here's how you can help:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open a Pull Request
- Follow Flutter/Dart style guidelines
- Maintain clean architecture principles
- Add tests for new features
- Update documentation as needed
This project is licensed under the MIT License - see the LICENSE file for details.
- Flutter Team for the incredible framework
- BLoC Library developers for state management solution
- Neomorphic Design community for UI inspiration
- Open Source contributors and maintainers
Vineet - Flutter Developer
- π± GitHub: @DevNebula
βοΈ If you find this project helpful, please give it a star on GitHub! βοΈ







