PES Arena
Mobile app tổ chức giải đấu PES — chạy được cả khi LAN party mất wifi
Vai trò
Solo
Công nghệ
Mobile app cho dân PES tự tổ chức giải đấu — tạo group, sinh lịch round-robin, nhập tỉ số, track bảng xếp hạng, chat với crew. Online thì sync real-time qua Firebase, offline thì rớt về SQLite local — giải vẫn chạy mượt khi LAN party mất wifi giữa chừng.
Tải app: App Store · Google Play. Open source trên GitHub.
Background#
Cộng đồng PES Việt Nam hay tự tổ chức giải nhỏ — bạn bè, công ty, quán game. Workflow phổ biến: Excel kẻ bảng đấu, group chat ghi tỉ số, nhớ ai thắng ai thua qua… trí nhớ. Đông người, mất wifi giữa chừng là chương trình loạn.
PES Arena rút gọn vòng đó: tạo group → invite member → app tự sinh lịch round-robin → enter tỉ số sau mỗi trận → bảng xếp hạng tự update (W/D/L, bàn thắng, hiệu số). Free, không bắt buộc đăng ký, chạy được hoàn toàn offline.
Tech stack#
- Flutter + Dart — một codebase cho iOS, Android và web shell. App đang dùng Flutter SDK
>=3.41.0, Dart SDK>=3.10.0. - BLoC + Clean Architecture — feature tách theo
presentation,domain,data; state management chính bằngflutter_bloc, phụ trợ bằngprovider. - Firebase — Auth cho email/password + Google Sign-In, Firestore cho real-time tournament/group/chat, Storage cho avatar/media, Messaging cho push notification, Remote Config cho cấu hình runtime.
- SQLite / sqflite — local database cho offline mode. Tournament data lưu trong máy nên vẫn tạo giải, nhập tỉ số, xem bảng xếp hạng khi không có mạng.
- go_router + get_it — điều hướng declarative và dependency injection cho bloc/repository/use case.
- fl_chart + Google Mobile Ads — chart thống kê trong app và monetization nhẹ bằng ads.
- Fastlane + Store release flow — có cấu hình release cho Android/iOS và app đang public trên Google Play + App Store.
Challenges#
(Sẽ viết sau — bro fill phần này: cái gì khó nhất khi build, decision nào regret/đáng giá nhất.)
Lessons#
(Sẽ viết sau.)