Back to all Case Studies Flutter Case Study

Kampus Gratis App

A production education platform where I helped maintain the mobile app and integrated a real-time chat module into an existing Flutter codebase.

Kampus Gratis app logo
Mobile case study Kampus Gratis
Website Perusahaan
RoleFlutter Developer Intern
PlatformFlutter Mobile App
StackDart, Bloc, Socket.IO, REST API
FocusReal-time communication
Kampus Gratis app preview
Message Delivery <500ms

Real-time latency for user-to-user communication.

Connection Uptime 99.5%

Stable WebSocket connectivity across network transitions.

User Engagement +145%

Increase in active conversations post-chat feature launch.

Adding real-time communication to a product already in motion.

This project was less about building a standalone demo and more about integrating a complex feature into a real product context, where UI, socket events, API contracts, and state management all had to work together.

The Challenge

Integrating real-time chat into a production Flutter codebase required managing WebSocket connections within Bloc's state boundaries, handling network interruptions gracefully, and preventing message duplication across socket reconnections. The feature needed to scale with room member count while maintaining responsive UI during high message throughput.

Approach

I designed Bloc events for socket lifecycle management and implemented separate Cubit instances for room and message streams. Socket.IO reconnection logic was abstracted into a dedicated service layer, while message deduplication used message IDs and timestamps. UI updates optimized with StreamBuilder to avoid unnecessary rebuilds, and connection status indicators kept users informed of network state.

The Impact

  • Implemented Socket.IO connection pooling with automatic reconnection, achieving sub-500ms message delivery latency.
  • Designed Bloc event architecture for chat operations (send, receive, acknowledge) with proper state transitions.
  • Built message pagination with infinite scroll, handling initial load and new message streams without memory leaks.
  • Integrated presence indicators and typing states using Socket.IO event broadcasting with efficient state management.
Kampus Gratis screen previews
Build notes

Implementation Highlights

01

Real-Time Communication

  • WebSocket protocol via Socket.IO
  • Low-latency message delivery
  • Cross-platform Flutter implementation
02

State Management

  • Bloc pattern for chat state isolation
  • Stream handling for incoming messages
  • REST API integration for metadata
03

Mobile UX Patterns

  • Connection status indicators
  • Message bubble animations
  • Optimistic UI updates
Visual placeholder

Replace with chat flow mockup: room list, conversation, and message states.

Visual placeholder

Replace with architecture visual for Bloc + Socket.IO flow.

A production-minded feature built for real-time interaction.

The work shows my ability to add a meaningful feature into an existing Flutter codebase while coordinating UI behavior with live data updates.

Project Review

"Replace this with feedback from your internship mentor or team lead."

This placeholder is ready for a real testimonial once you can publish it.

RaafiHilmi

Mobile developer focused on Flutter, Android, API integration, and reliable app flows.