個人開発(アプリの企画/デザイン/開発)
企画からデザイン、開発までワンマンで一貫して行いました。
開発言語はSwiftUIを用いています。
トリポ(toripo)は、旅程表を友達と共同編集できるアプリです。
ポイント
- 編集内容はリアルタイム反映され、何日にどこで何をするかなど、スムーズに旅程を計画できます
- 旅程がマップに描画され効率の良いルートを考えることができます。また、旅行中のルート確認にも使えます
- 最大24時間以内の最新の為替レートで割り勘・精算を自動で計算できます
- 旅行中に困らないように、現在地使用のON/OFFが設定できるなど、無駄な通信やバッテリー消費を抑える工夫をしました
App Storeからダウンロード可能です。→ toripo
開発のポイント
- 当アプリでは旅行時の費用の割り勘を精算できます。海外旅行にも対応すべく、APIで最新の為替レートを取得しています。そこで、APIのコール数を減らすべく、毎日バックエンドのファイル(python)を自動で発火させ(cron)、DBに保存しておき、ユーザーはそれを参照する形にしています。
- 友達が編集した内容のリアルタイム反映をさせるには、DBの監視が必要です。監視には多少ともリソースや通信量が発生してしまうので、対象の画面が表示されている時だけ監視するようリスナーを適切に管理しています。旅行中のバッテリー消費やデータ通信も最低限に抑えています。
- 旅行中、出先でもなるべく片手でも操作できるよう、マップのドラッグ&ドロップのズームをはじめ、要素の配置や操作感をこだわりました。
学び_wip
企画
- 反響を見て、追って振り返り予定
デザイン
- 実機で触るとPCの画面でデザインしてて気づかない部分に気づける。定義漏れはやはり発生したので、デザインをしてみて「良い感じ!」と思ってもプロトタイプを作ってみると良い。よりリアルに感じられて発見がある。
- slackのモバイルアプリのような画面設計(ワークスペース一覧がサイドメニューになっており、それ自体が1画面になっていない形)を試せて、このような画面設計にする際に考慮すべきことが見えた。
開発
- Firebase Realtime Databaseのお作法を知れた。リスナー管理や相互参照の必要性、セキュリティのためのルール設定
- アカウント認証周りの実装の仕方・仕組みを知れた。今回はAppleログイン・Googleログイン・メールログインを実装した。実装自体は意外と簡単だけど考慮すべきことは少なくない。
- メモリリークについてとその解消方法。メモリリークが結構発生してしまっており、クラスの使い方を終盤で大きく見直した。
- cocoapodsでのframewrok管理が大事。思わぬ部分で干渉してエラーになっていた。GoogleサインインとGoogleアナリティクスかなにか
- デバウンスという概念を知った
- ユーザーID設計を考えるきっかけになった



