Case study
Phunplan
A Flutter app for discovering local activities, planning outings with friends and booking with activity providers. We built and integrated features across the mobile app, including bookings, maps, payments and notifications, and took it through release on Google Play and the App Store.
Building a Production Mobile Experience for Discovering and Booking Activities
Phunplan is a mobile platform built around a simple idea: make it easier for people to discover activities, make plans, and actually go out and experience them.
We contributed to the Flutter mobile application as a Mobile Engineering team, working across the product's mobile experience and helping take the application through development, testing, and production release.
The product is developed by Phunlife Technologies Ltd and is currently available on both the Google Play Store and Apple App Store.
The Product
Phunplan brings discovery and booking into a single mobile experience.
Users can discover activities and experiences around them, view available options, make bookings, invite friends, and plan outings from one application.
The platform also connects users with local activity providers, creating a marketplace between people looking for things to do and businesses offering experiences.
The application therefore had to support much more than a simple activity catalogue. It needed to coordinate discovery, location, activity details, booking, payments, social interaction, and user planning while remaining intuitive on a mobile device.
Our Role
We worked specifically on the mobile application rather than the entire Phunplan platform.
Our responsibilities included implementing and integrating mobile functionality across major product areas, working with the application's Flutter architecture and state-management layer, connecting the interface to backend services, handling complex application states, and preparing the application for production on both Android and iOS.
This was a production product rather than a portfolio prototype, which meant that reliability, platform differences, API behaviour, permissions, performance, and release requirements all had to be considered alongside the UI.
The Mobile Experience
The application was structured around several interconnected experiences.
Activity Discovery
The discovery experience allows users to find activities and experiences based on what is available around them.
Location is an important part of this workflow because the product is designed around real-world activities rather than purely digital content.
The public application currently describes location-based discovery as one of its core capabilities.
Activity Details
Activity pages bring together the information a user needs before deciding to participate.
The mobile application had to make this information easy to consume while providing a clear path from discovery to booking.
Booking
Booking is one of the central workflows in the product.
The experience takes a user from selecting an activity through the necessary booking information and confirmation flow.
This required careful handling of asynchronous states, validation, pricing-related information, availability, and successful or failed requests without making the interface feel disconnected from the user's action.
The current public app describes booking as an in-app experience intended to allow users to secure activity spots directly.
Location-Based Experiences
Because Phunplan deals with physical activities, location is not simply an optional profile attribute. It influences discovery and the relevance of activities shown to users.
The mobile application therefore had to deal with:
Location permissions
Current user position
Nearby activities
Map-based interaction
Location-aware discovery
Platform-specific permission behaviour
This also introduced platform-specific considerations between Android and iOS, particularly around permission flows and release requirements.
Social Planning
Phunplan is not only a booking application.
The product allows users to involve other people in their plans. The application includes social planning capabilities such as inviting friends and coordinating around activities. The public product description specifically highlights inviting friends and planning experiences together.
Our mobile implementation therefore had to support flows where an activity, booking, and social interaction could intersect rather than treating each feature as an isolated screen.
Timeline and Group Interaction
The product also introduced a more social layer around activities.
Users can interact around plans and activities through timeline and group-oriented experiences, creating a bridge between discovery and actually organising an outing.
This required the mobile architecture to handle dynamic content and state changes while maintaining a responsive interface.
Backpack / Cart
A dedicated Backpack experience was used to manage selected activities before completing the relevant booking flow.
This created another layer of state that had to remain consistent as users moved between activity discovery, activity details, and booking.
The challenge was ensuring that users could navigate through the application without losing the context of their selected activities.
Vendors and Activities
Phunplan operates across two sides of the experience:
Users discover and book activities.
Activity providers supply the experiences users can discover.
The mobile application therefore consumes structured information about activities, vendors, availability, locations, and bookings.
The public product description similarly positions Phunplan as a connection between users and local activity providers.
State Management
A significant part of our mobile engineering work involved managing asynchronous application state.
Different parts of the application could simultaneously be affected by:
API requests
Authentication state
Location state
Booking state
Cart/Backpack state
User data
Activity data
Vendor information
Social interactions
The application used Flutter's reactive architecture and BLoC-based state management to keep these concerns separated and make state transitions explicit.
This was particularly important for workflows where the UI should update immediately while background operations continued, rather than replacing the entire screen with loading states.
Production Considerations
Shipping a mobile product introduces a different set of engineering constraints from building a demonstration application.
The application needed to work across Android and iOS while dealing with:
Platform-specific permissions
Location access
API failures
Authentication
Network variability
Loading and empty states
Error handling
App lifecycle behaviour
Release configuration
Store requirements
The product ultimately reached production on both major mobile platforms. The current App Store listing identifies the application as version 1.0.1, while Google Play currently lists the application as published by Phunlife Technologies Ltd.
Working on a Real Product
One of the most valuable aspects of our work on Phunplan was that it happened against real product requirements rather than a static design specification.
Features evolved as the product was tested. Issues discovered during development had to be diagnosed within the context of the entire application rather than fixed in isolation.
That meant balancing:
Product requirements
UX decisions
API constraints
Mobile performance
Platform differences
Release requirements
The project strengthened our experience building and maintaining a mobile product where engineering decisions directly affect a live user experience.
What We Contributed
Our work on the mobile application covered areas including:
Flutter application development
Feature implementation
BLoC/state management
API integration
Activity discovery
Location-based functionality
Maps
Activity details
Booking workflows
Backpack/cart functionality
User flows
Social/group experiences
Timeline-related functionality
Vendor/activity data
Error and loading states
Android and iOS integration
Production release preparation
Bug fixing and stability improvements
Outcome
Phunplan moved from a development product into a publicly available mobile application on both Android and iOS.
The current production application allows users to discover activities, book experiences, find things to do nearby, and plan activities with friends.
For Kenresoft Technologies Ltd, the project represents hands-on experience contributing to a real, multi-feature Flutter application through the full product-development lifecycle, including the less visible engineering work required to make a mobile product reliable enough for public release.
Role
Mobile Engineering / Flutter Development
Product
Phunplan — Phunlife Technologies Ltd
Platforms
Android · iOS
Primary Technology
Flutter · Dart · BLoC · REST APIs · Maps & Location
More work
More from our portfolio.
Pathveragroup
The corporate site for a UK education group with five practices, from university admissions to scholarships. We built it in Astro, with separate paths for students, universities and employers.
Kenresoft CMS
An open-source headless CMS that runs in your own Cloudflare account. We designed and built the Hono API on Workers, D1 and R2 storage, a separate React admin, and the Astro integration that powers this site.
Let's talk
Have something similar in mind?
If your product or system has similar requirements, tell us about it and we'll talk through the approach.