Mahjong-Meetup is a feature-rich iOS social
platform connecting players with local events and competitive leaderboards. I architected a scalable system
integrating Firebase for authentication and real-time data, implemented advanced visualisations using radar
and line charts, and engineered a multi-service layer handling location services, geocoding, and media
management.
The app demonstrates full-stack iOS development capabilities including complex
UICollectionView implementations, RESTful API integration, and thoughtful UX design.
My Contributions
I architected this iOS application from scratch, implementing a
service-oriented design with Firebase integration and singleton pattern services for authentication,
database operations, and location services. I engineered complex UICollectionView interfaces with
multiple custom cells and integrated professional charting libraries for data visualisation. I
built real-time Firestore synchronisation with intelligent error handling, designed polymorphic game
systems, and implemented geocoding with fallback strategies. I solved critical edge cases around event
filtering and state management while delivering a seamless user experience across six feature modules.
Screenshots of the Application
Showcasing My Creative and Modern Design
Building
Mahjong-Meetup was a transformative experience that took me from concept to a fully-functional iOS
application. I started by defining the core problem: creating a community platform for Mahjong players to
discover events and track performance. This clarity shaped every architectural decision that
followed. Early on, I recognized that scalability and maintainability were critical, so I invested
time in designing a service-oriented architecture. I implemented singleton pattern services for
authentication, database operations, and location handling—decisions that paid dividends as the project grew
in complexity. The UI development proved challenging but rewarding. I built dynamic UICollectionView
interfaces with multiple custom cell types, learning to balance aesthetics with functionality. Integrating
professional charting libraries was a turning point; seeing player statistics transform into interactive radar
charts and score trajectories made the data meaningful. Real-time Firebase synchronisation introduced
me to asynchronous programming challenges. I debugged state management issues, implemented proper error
handling, and learned to think about edge cases like cancelled events and network failures. The
geocoding feature tested my problem-solving skills. I initially used CoreLocation, then expanded to the
Nominatim API for better coverage, implementing intelligent fallback strategies and caching mechanisms to
optimise performance. Throughout development, I discovered that great apps aren't just about
features—they're about solving real problems elegantly. Every service I created, every edge case I
handled, and every optimisation I implemented reflected my growing understanding of iOS development best
practices. This project taught me that persistence, thoughtful architecture, and attention to detail
transform ambitious ideas into polished, production-ready applications.
Personal Project
Mobile Application Developer
August 2025 — December 2025
Want to work together?
If you like what you see and want to work together, get in touch!