• Home
  • Projects
  • Tech Stack
Neura App

Neura App

Neura is a Flutter-based mobile application for iOS and Android that provides an AI-powered chat interface with real-time streaming responses. The application supports both authenticated users with persistent chat histories and guest users with temporary sessions.

Core Features

AI Chat Interface

The main functionality centers around the ChatScreen component which manages real-time conversations with an AI assistant. Users can send messages through a text input component and receive streaming AI responses displayed in a conversational format with markdown rendering support.

Message Display System

The chat interface includes specialized widgets for different message types:

- User messages displayed with right-aligned styling and support for image attachments

- AI assistant messages with markdown rendering via gpt_markdown package, image display capabilities for AI-generated images, and feedback controls (like/dislike)

- Real-time typing indicators during AI response generation

- Skeleton placeholders for loading states during image generation

File Upload & Image Generation

Users can attach images from camera or gallery to their messages using the image_picker plugin. The app also supports AI image generation through a toggle button, allowing users to request image creation alongside text responses.

Authentication & User Management

The application provides authentication with JWT tokens stored securely using flutter_secure_storage. Users can access the chat interface either as authenticated users with persistent chat histories or as guests with temporary sessions that are automatically created.

Chat Management

Authenticated users can create multiple chat sessions with persistent storage of the active chatId. The application maintains chat state through Riverpod state management with reactive updates.

Technical Architecture

Mobile Framework

Built with Flutter 3.29.0 targeting iOS and Android platforms. The application implements clean architecture with clear separation between presentation, domain, and data layers. Uses custom fonts (Roboto) and a consistent dark theme design pattern.

Real-time Communication

The chat system implements streaming HTTP responses using Dio client for real-time AI message delivery. Messages are accumulated progressively as chunks arrive, allowing users to see responses as they're generated. The streaming protocol supports metadata, text chunks, image data, and completion markers.

State Management

Uses Riverpod with StateNotifier pattern for managing chat data, messages, and loading states. The ChatNotifier handles all chat operations including message completion, feedback submission, and chat creation.

Data Persistence

Active chat sessions are persisted using shared_preferences to restore user context across app restarts. Authentication tokens are stored securely using flutter_secure_storage with platform-native implementations (Android Keystore and iOS Keychain).

Application Branding

The application is branded as 'Neura' with a consistent visual identity throughout the interface, including custom app icons and splash screens for both iOS and Android platforms.

Technologies
Flutter
Dart
Riverpod
DeepSeek API
Gemini API
Dio
Clean Architecture
Real-time Streaming
JWT
Secure Storage
Image Generation
Markdown Rendering
Mobile App