👔

【Swift】AIと一緒にスマホアプリを作る

に公開

はじめに

4回にわたってコーディネイトアプリを作るうえでの周辺情報を調べて、使ってみました。今日は実際にiOSアプリを作ってみようと思います。

つくるもの

私が作りたいアプリは天気情報からおしゃれなコーディネイトを考えてくれるアプリです。今までの技術をつかおうとすると裏でpythonを使うため、サーバーが必要になるのですが、今日はスマホ内で完結するようにしたいと思います。

MVVMを意識する

まず作り始める前に設計を考えます。前回スマホアプリを作った際にはこれを考えなかったのでコードやファイルがごっちゃごちゃでした。そこで今回はMVVMを意識して作ります。MVVMを知らない方にむけて簡単に話すと、ファイルごとに役割付けをしようねって話です。見た目を作る人と、中身を作る人、そして中身と見た目の橋渡しをする人で分けてあげることで、保守、点検がやりやすくなりますし開発中の修正もしやすいです。余談ですがSwiftUIにおいてはMVVMが不要なのではないかという話題があるそうですが、初心者の私には難しいお話ですし、なにより何もしないよりはいいだろうという気持ちのもと、今回はMVVMを採用します。

つくってみる

では実際にアプリを作り始めます。まずは、ハリボテのアプリを作ります。ここはGeminiにやってもらいました。私が前回作ったアプリの100倍きれいな見た目です。これをベースに機能を追加していきます。今回は簡単に実装できる、画像を追加する機能と、天気を取得する機能を実装します。

Geminiが作成したアプリのハリボテ

写真を追加できるようにする

アルバムから写真を追加できるようにしました。アプリ内にカメラ機能を追加することも考えましたが、前回のアプリで散々な目に遭ったのでいったんパスします。(前回のアプリではカメラ機能の実装だけで1か月費やしました)しっかりと永続化もしておきます。

天気を入手する

次に天気の情報を取得します。先ほどは適当に気温と天気を表示していただけですが、天気予報をAPI経由で得ることができるようにしました。これに合わせてGPSの情報から現在地を取得するようにしました。これによって、現在地の天気が表示されるようになります。(見た目が全く変わらないので画像はナシ)

次回までに実装したいこと

次回は簡単なコーデ提案をできるようにしようかと思います。ただ一つ問題があって、それはサーバーを立てないとVTONやCLIPが使えないということです。これまではコーデの採点にはCLIPを使うことを想定していましたが、サーバーを立てるのは少し面倒です。そこでGemini APIを使ってコーデを提案してもらおうと考えています。Geminiはサーバーを経由せずにスマホから直接呼び出すことができます。しかし、そのためには服の写真にタグをつけなくてはいけません。どのような服なのか、色はどんなものなのかといった情報です。(画像を直接Geminiに送る方法もありますが、通信料もかかりますし、何よりモデルに画像を読み込ませるのはかなりのトークンを使います。)次回はこれらの問題を解決していこうと思います。

Discussion