無職が地図SNSアプリを2週間で作ってみた
はじめまして、生活費の捻出に四苦八苦している25歳無職です。もうすぐ26歳になります。今日も平日という現実から目を背けるために、例に漏れずふらふらと彷徨っており、昼下がりに笑顔が溢れる公園で腰を据え、幸せエネルギーをおすそ分けしていただきながらこの記事を書いております。雲の流れを目で追う日々に飽きてきたので、スマホアプリを作ってみました。何かを作る時はいつも勢いで作ってるので、計画書とか全体像とか一切考えてません。
今回作成したのは、地図上で思いを共有できる、「Wander」というアプリです。アプリ名のWanderは動詞で、あてもなく歩き回る、放浪する、ぶらつくという意味があります。投稿は基本的には友人間での表示になります。「おすすめ」のような情報は入ってきません。
アプリの機能
ホーム画面
投稿はテキスト、画像、動画、音声が使用できます。投稿に位置情報を共有するか否かが設定でき、位置情報が含まれていれば地図上に現れます。地図上のピンをタップするか、下の投稿一覧をスクロールすると投稿が閲覧できます。
地図上のピンをタップ
自分の投稿に絵文字を付ければ、同じ絵文字の投稿で絞ったりするなど、あとでアーカイブから簡単に見返せます。
投稿一覧から閲覧
画面下部から引っ張りだせる投稿一覧には、位置情報が含まれていない投稿も表示されます。メディアを長押しでダウンロードすることができます。また、写真は高画質でシェアされます。
地図上でも、投稿一覧でも、投稿をタップすると詳細ページへ行きます。
投稿ページ
「探す」ページで二点スワイプすると探索マップが表示されます。
これらの投稿はすべて、閲覧対象者を細かく指定できます。下記画像が投稿ページになりますが、
投稿作成ページ
公開範囲設定では、「公開、フォロワー限定、ユーザー指定、自分のみ」が選択できます。公開というのは、第三者でもユーザーのアーカイブから閲覧でき、ユーザー指定というのは文字通り閲覧できるユーザーを個別に設定できます。この他の選択肢に、保存先サーバーを選択したのちに出てくる「サーバー限定」というものがあり、これは選択されたサーバーに参加しているユーザーのみが閲覧できます。
「サーバー」というのは、ユーザーグループと捉えていただいて間違いありません。招待制のグループです。自分ひとりだけでも気軽に使えるのでサーバーという名前になってます。ユーザーページ上からアクセス・閲覧できるか否かを、公開・非公開という設定で選べます。
ユーザーページ
端末のライトモード・ダークモードにも対応しています。個人的にはダークモードの方が気に入っています。以上がアプリの機能の説明になります。
企画意図
なぜこのようなアプリを作ったかというと、グルメ通の友人の、美味しかったお店やおしゃれなお店の情報が閲覧したかったからです。Google Mapsでも絵文字でピンを刺して管理して、それを他者に共有できますが、それは一時情報であり、都度更新されません。それと、彼が行きたいお店の情報じゃなくて、彼自身が行って良かったお店の情報が知りたかったのです。
録音機能に関しては、学生時代の他愛のない会話を保存しておけば良かったなあ、とたまに回顧していたので追加しました。メタルギアのブリーフィングみたいでいいですよね。アプリテスト時もちょくちょく使いました。一番気に入っている無用の機能です。
アプリアイコンの鳥、カワイイ
追加の日々
Apple Store Connectに提出した際、通報システムやブロックシステムなど、主にユーザーを守る機能がなかったり、利用規約やプライバシーポリシー、サポート体制に不備があるなど、SNSアプリは作ったことがなかったので膨大な量の見落としてる点を指摘されました。却下事由が事細かに綴られていたので、対応は比較的容易に済みました。初回は問題点が多かったものの、2回目からは一瞬で直せるようなものばかりでした数往復やり取りをし、毎度1~3日待ってたので、すごく暇でした。
技術スタック
使用技術スタックは、
- フロントエンド:React Native, Expo
- バックエンド:Supabase, (Resend)
- ストレージ:Cloudflare R2
になります。お手軽にアプリを作れるシンプル基本構成です。特にSupabaseには大変お世話になってます。rpcはいつも死ぬほど使います。特に時間を浪費したのはExpoで、調べてなかった自分に覚悟が無かったのですが、ちょうどSDKの過渡期に開発途中でぶち当たってしまい、検索しても出てこないような問題が多くありました。かといってアップグレードしないと今後苦労するので、手動で根気強くちまちまエラーを解決していきました。自作して代用することも儘ありました。
感想
いつも勢いで作ってるので、どんな感じのものを作ろうかな...とかは事前に一切考えません。いつも事前に用意するのはゴールだけです。まず手を動かして、コードを書きながら考えてます。このことによる弊害がいつもありますが(主にデータベース設計)、長距離走の「次の電柱まで」理論で頑張れます。何より動くアプリが目の前にあるとすぐやる気が補充されるので楽しいです。今回も全体を通してとても楽しかったです。Expoのおかげです。
終わりに
ここまでお読みいただきありがとうございました。拙い文章ではありますが、少しでも楽しんでいただけたなら幸いです。また、是非「Wander」を利用していただければ嬉しい限りです!ご意見・ご要望をいただければ本当にありがたいです。
アプリリンク
IOS - https://apps.apple.com/jp/app/wander-your-archive/id6745153018
Android - https://cdn.wndr.it.com/apk/Wander.apk
(Androidはapkファイルになります。Google Playに提出できていません。しばらく後に公開します!)
日記を付けたり、美味しかったお店をサーバーでシェアしたり、友人との雑談をひたすら録音し続けたり、限定公開でデートの記録を恋人にシェアしたり…使用用途は無限にあります。自分史になるアーカイブを作りましょう!
余談になりますが、私に仕事をくださる会社様も探しています。この記事を書いているうちに冷静に自分を見つめなおしましたが、言わずもがな、個人開発アプリを作っている場合ではありませんでした。
Discussion