スタンプカード スマホアプリ改修
期間: 2018年7月1日 - 2019年6月30日 (12ヶ月)
役割: バックエンド , フロントエンド
工程: 実装・検証 , 結合テスト , 総合テスト , 保守・運用
概要
飲食店向けスタンプラリーアプリのバックエンドAPI開発および管理画面の実装を担当しました。オフショア開発されたReact Nativeアプリに対して、Node.js + Express.js + MongoDBで構築されたRESTful APIサーバーの機能追加・改修を行いました。
担当業務
モバイルアプリ開発(React Native)
- クロスプラットフォーム対応: iOS / Android両対応のReact Nativeアプリ
- 認証機能の実装: Facebook、LINE、Twitterによるソーシャルログイン統合
- QRコードスキャン機能: 位置情報と連動したスタンプ付与システム
- 状態管理: MobXを使用したストア設計(AuthStore、AppStore、ShopStore、QRStore等)
- ナビゲーション: react-navigationによる画面遷移管理(Welcome → Tutorial → Login → Main)
- Firebase連携:
- プッシュ通知(Firebase Messaging)
- ディープリンク(Firebase DynamicLinks)
- リモート設定(Firebase RemoteConfig)
- 多言語対応: react-native-i18nによる日本語ローカライゼーション
- ネイティブモジュール: カスタムAndroidIntentHandlerModule実装
バックエンドAPI開発(Node.js + Express.js + MongoDB)
- イベント管理機能の実装(スタンプラリーキャンペーン、報酬申請、アンケート機能)
- 店舗管理API(店舗情報、クーポン、QRコード生成)
- プッシュ通知機能(Firebase連携)
- 位置情報を活用したスタンプ付与機能
- CSVデータのインポート/エクスポート機能
- Swagger UIによるAPI仕様書の整備
管理画面開発(Vue.js)
- Admin用管理パネル(イベント管理、ユーザー管理、店舗オーナー管理)
- 店舗オーナー用パネル(店舗情報編集、クーポン設定、統計表示)
- データ可視化ダッシュボード(日次ユーザー数、スタンプ数、シェア数の集計)
技術的な挑戦
React Nativeアプリケーション開発
- クロスプラットフォーム開発: iOS/Android共通コードベースでのアプリ実装
- ソーシャルログイン統合: Facebook SDK、LINE SDK v4.1.0、Twitter SDKの組み込み
- MobXによる状態管理: 複数ストアの設計とmobx-persistによる永続化
- ネイティブ連携: CocoaPods依存管理(iOS)とカスタムネイティブモジュール(Android)
- QRコードスキャンと位置情報連携: react-native-qrcode-scannerとGeolocation APIの組み合わせ
- パフォーマンス最適化: レスポンシブデザイン(PixelRatio)とテーマシステムの構築
国際開発プロジェクトへの対応
- オフショア開発されたコードベースの解析(英語・ポーランド語のドキュメント)
- 英語コメントのソースコードを読み解き、仕様を理解
- 海外開発チームとのコミュニケーション(技術資料の翻訳、GitHub Issue対応)
MongoDB地理空間インデックスの活用
- 緯度経度を使った店舗検索(GeoJSON Point型)
- 位置情報ベースのスタンプ付与ロジック実装
- 地図の初期表示位置の動的設定機能
イベント駆動型の報酬システム
- スタンプ数に応じた報酬申請フロー
- 申請期間管理と状態管理(申請可能/不可のステータス)
- CSV形式での報酬申請データエクスポート
成果
- モバイルアプリのリリース: iOS/Android両プラットフォームでのアプリ配信
- ソーシャルログイン統合: Facebook、LINE、Twitterの3種類の認証方法を実装
- QRコードによるスタンプ機能: 位置情報と連動した店舗チェックイン機能の実現
- イベント機能追加: スタンプラリーキャンペーンの運用が可能に
- 管理画面の整備: 店舗オーナーが自分で情報を更新できる仕組みを構築
- API仕様書の整備: Swagger UIにより、フロントエンド開発者との連携がスムーズに