Looking for a boutique Flutter team for your next release?
Let’s talk
ABOUT PROJECT
Our client is a startup founder from Estonia with an idea to develop a platform that connects users with local operators to explore any location live and vice versa allows individuals to become operators to stream their surroundings.
CLIENT REQUIREMENT
“This project required the development of a mobile application that enables: Explorers to select any place in the world, connect with available operators in the chosen area, and experience live streams as if they are physically present. Operators to accept requests, transform their smartphones into live portals streaming unique perspectives, and receive payments seamlessly for every live experience delivered.“
PHP 8.2
Laravel 11
MySQL 8+
Dart
Flutter
Freezed
Flutter bloc
Rest Api(dio)
Image picker(for working with media storage)
Google maps flutter
Widget to marker(for working with custom markers in google maps)
Permission handler
Ably flutter
Firebase Messaging
Flutter local notifications
Google Places API
Get storage(DB)
Shared preferences(DB)
Appsflyer
Stripe SDK
In-app web views
Geolocator(geolocation, work with gps)
Video player(for translate video in app)
Device info plus(get data about gadget)
Custom chats(websocket)
Stream IO chats API(chats inside stream)
Flutter dotenv(Secure part)
Lazy load(pagination)
Flutter Multi Formatter + Custom Formatter
Photo view(for working with images)
Stream video Flutter SDK(for working with stream and storage)
PHP 8.2
Laravel 11
MySQL 8+
Dart
Flutter
Freezed
Flutter bloc
Rest Api(dio)
Image picker(for working with media storage)
Google maps flutter
Widget to marker(for working with custom markers in google maps)
Permission handler
Ably flutter
Firebase Messaging
Flutter local notifications
Google Places API
Get storage(DB)
Shared preferences(DB)
Appsflyer
Stripe SDK
In-app web views
Geolocator(geolocation, work with gps)
Video player(for translate video in app)
Device info plus(get data about gadget)
Custom chats(websocket)
Stream IO chats API(chats inside stream)
Flutter dotenv(Secure part)
Lazy load(pagination)
Flutter Multi Formatter + Custom Formatter
Photo view(for working with images)
Stream video Flutter SDK(for working with stream and storage)

One of the key challenges in developing this app was implementing a seamless live streaming experience. To achieve this, we:
This solution ensured a high-quality, interactive live streaming experience that met the needs of both event organizers and viewers.
Designing an intuitive map interface that allows users to easily switch your location, locate operators, initiate streams by hiring (for customers) or applying to orders (for operators) and interact without confusion. We also provided detailed filters for the users to filter operators/customers via location, radius of the users and price for the operator stream. We used high-accuracy location APIs (Google Maps), and implemented location smoothing algorithms to reduce errors.We also ensured consistent behavior and rendering of maps across iOS and Android devices, using cross-platform library (Google Maps SDK), and thorough testing on multiple devices.
The app has various types of notification for both customer and operator. We ensured that push notifications reach users instantly, especially for time-sensitive actions (e.g., when an operator accepts a request or starts a stream). We also faced the challenge of sending notifications only to relevant users (e.g., an explorer receiving a notification when an operator in their selected area becomes available).
Implementing the payment system was challenging, especially with the requirement to avoid reliance on third-party services like Apple Pay or Google Pay. We designed a secure system where users grant access to their payment method only once. After that, all payments happen automatically and safely.
Integrating a real-time chat feature into the applications proved to be a complex task. We encountered and resolved issues with time zone discrepancies and timestamp displays, as well as challenges with custom bubble rendering in the chat interface. These fixes ensured a seamless and user-friendly chat experience.