見出し画像

【iOS個人開発】休日の外食先に悩まないようなアプリを自作した

こんにちは、趣味でiOSアプリ開発をしています。

普段は平日仕事で土日が休みなので、休日の昼食はよく外食します。
幸いなことに住んでいる場所の近くにはかなり多くの飲食店があり、毎回どこに行こうかかなり悩んでいました。

このような個人的大問題を解決するために自分でアプリを作ることにしました。

作ったアプリはこちら

なぜ自作したか

AppStoreにはルーレットアプリが数多くありますが、私のイメージしていたのは下記のようなアプリでした。

  • 地図から自分で好きな場所を選択肢として登録できる

  • 家から近いグループ、ファストフードグループ、10時から開店してるグループ・・・など選択肢のグループを分けて登録しておける

  • 自分の現在位置と選ばれた場所の距離感などがわかる

AppStoreにはこのようなアプリはなかったので「まあ自作した方が早いか」と思い作成しました。

主な機能

機能は自分が使いたかったもののみをとりあえず実装してストアに提出しました。

  • マップ上をタップすることで選択肢になる場所を登録できる

  • マップ上の地点を名称検索できるようにする

  • 登録した場所はマップ上にピンを立てる

  • 登録する場所をグループ分けして、グループ内から抽選されるようにする

  • 抽選中にはピンがアニメーションして、抽選してる感を出す

今後ユーザーが増えてくれたらサブスクでグループの名前を変えたりグループ数を追加できるようにしたりしようかなーとか企んでます。

ぜひ使ってみて、良くても悪くてもストアのレビューをお願いします!

技術的な話

ここからはアプリ作成の際の技術的な話なので興味なけれれば読み飛ばしてください

使ったのはSwiftUIです。というかSwiftUIしか使えないタイプの人間です。
地図の実装にはiOS17から便利になったMapKitを使いました。iOS16以前ではUIViewRepresentableを使わないと細かい機能が実装できませんでしたが、今回上で紹介した機能程度だったらすべてSwiftUIのみで実装できました。
詳細なコードは載せませんが、これだけでユーザーの現在位置を示したマップを表示できるようになります。ありがたい。

import SwiftUI
import MapKit

strudt mapView : View {
    var body : some View {
        Map() {
            UserAnnotation()
        }
    }
}


そのほかMap上のMarkerだったりも簡単に実装できてよかったです。iOS16以前のバージョンは対応していませんが、個人開発アプリなのでまあ許してもらいたいですね。

登録した場所の保存はいつも通りCoreDataを使用しました。
CoreDataに関しては結構使い慣れてきた感じがします。

場所の名称検索についてはMKLocalSearchを使ってます。これは以前作った他のアプリのコードをほぼそのまま使用しました。マップ系のアプリは3つ目なのでコードの使い回しができて嬉しいです。

その他このアプリにもStoreKitの課金機能など実装していきたいと思ってます。

以上


この記事が気に入ったらサポートをしてみませんか?