IOS Mahjong Meet-up

Web Design
Project Overview
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
Event Details
Event Details 2
My Score