どうも。
初投稿です。
タイトル通り、アプリの開発をしたことない人がAIを使ってアプリを作ることができるのかを試してみました。
当方のスペック
得意分野:インフラ・セキュリティ周り(色々やってますが13~4年くらい)
開発経験:Javaは知ってる、Pythonは認定基礎試験合格してる、VBAはそれなりに使ってるけど、効率化のために都度使い捨ててる程度。アプリは無。ザ・ド素人。
手元の環境:Windows11(surface Pro7+)
利用AI:Copilot
AIスキル:一般人レベル
前提条件
・なんとなく問題集のような学習アプリを作る。(作りたい)
・携帯アプリにしたい。iPhoneでもAndroidでも使えるようにしたい。
・とにかくAIにおんぶにだっこで作る。
・わからなくなったら先輩に聞くようにAIに聞く(何ができない。これはどういう意味。エラー出た。など)
ちなみに「作って」とお願いしたら断られました。
勉強用のアプリを作ってほしいです。
以下の要件でお願いします。
①iPhone/Android両方に対応
②持っている機能は以下
・選択問題に対応
・記述問題に対応
・PC上からでも自由に問題を作れる。
・履歴管理ができる
・オフラインでも利用可能
結論
まぁ作れます。ただ、多少勘所が必要だったり、ある程度ロジカルに考えられないと詰む(悩む)かもしれません。
ただ、今後さらに開発者向けのLLMや開発特化のプロンプトができればさらに容易になるかもしれませんね!知らんけど!
🎯 STEP1:どんなアプリを何で作るか決める。
作りたいアプリは決めてあり、とりあえず「前提条件」のプロンプトで以下のヒントをくれました。
- 開発環境の選択
・iOSとAndroidの両方に対応するため、React NativeやFlutterといったクロスプラットフォームの開発フレームワークを利用すると効率的です。- 主要機能の実装
・選択問題&記述問題対応:問題を作成・管理できるデータベースを用意し、問題の種類に応じてUIを変更できるようにする。
・PC上から問題作成:Webアプリを併用し、PCでも問題の編集や追加ができるようにする。
・履歴管理機能:ユーザーの解答履歴や成績を保存し、学習の進捗を可視化できるようにする。
・オフライン対応:アプリ内にデータを保存するために、SQLiteやRealmなどのローカルデータベースを利用する。- UI/UXの工夫
・ユーザーが快適に使えるデザインとシンプルな操作性を考慮し、学習のモチベーションを高める工夫を取り入れる。- 開発・テスト・公開
・アプリを実装したら、テストを行い、バグを修正しながら完成度を高めていく。
・App StoreやGoogle Playに公開するための準備をする。
環境用意はReact NativeもFlutterもしましたが、色々悩みFlutterで作ることとしました。
🛠 STEP2:開発環境の準備
勿論AIに聞きます。「Flutterでアプリ作りたいんだけど、どうやって環境用意すればよいの?」
とても丁寧に教えてくれますので、言われるがままに設定していきます。
↓こんな感じで教えてくれますし、躓いたら具体的に聞けば細かく教えてくれます。
ちなみに、flutter dockerでチェックしてエラーが出ましたが、都度聞いたら教えてくれました。(省略)※以下のようになったら環境準備OK
🚀 STEP3:実際に開発してみる
Flutterと言ったらDartで開発するのですが(初めて知ったレベル)どのようなコードが必要かを聞いてコードサンプルをもらいます。
ひたすらデバックとエラー解消を繰り返します。(エラーは都度聞きます)
コツは「最後に聞いたことの続き」を話してくるので、遡りたいときは遡ったやり取りをコピペするといいですね。
また、コード自体も「何に対して」がわかりにくかったり、ディレクトリ構造もあまり考慮されていないので、都度聞くといいです。
📱 STEP4:アプリのテスト
まぁ子供だましみたいなアプリですが「問題集アプリを作る」ということはできたので、目標は達成できましたかね?笑
✨ AIと開発してみた感想
作成期間は1日1~2時間で1週間くらいでできました。
個別に調べるとかやろうと思えばできましたが、やらずにAIにおんぶにだっこで進めました。
やり取りで結構煩わしいことはありましたが、前提を揃えつつ質問すれば適切に回答してくれる(例えばフォルダ構成や参照パス等考慮してくれる)ので、しっかりと作れます。
「AIによってプログラマーやSEの仕事無くなる」と言われていますが、まぁ確かにAIで技術的なことは賄えるな。とは思いました。
ただ、AIは一つのツールとしてうまく付き合えば自分の出来ることや可能性を広げることができるので、非常に便利なツールであることを改めて実感しました。
普段は「新規事業の壁打ち」や「目標設定等のブラッシュアップ」などに使っており、開発の手段に使うなんてことはしないので、今回の挑戦はとても楽しかったです。流行り(?)の言語に触れられたのも良かったですし。
今後もいろいろ視座を広げるべく挑戦したいと思いました。
最後に
内容(コードなど)についてはあまり具体的に書きませんでしたが、まぁQiitaも初めてですし、色々挑戦し始めた(今更…)ところなので、色々浅いところはお許しください。
今後は今回みたいな「やってみた」や「困った事・解消した方法」、「資格取得、資格勉強」とかいろいろとアプトプットしていきたいと思います。
どうぞよろしくお願いいたします!
P.S. 色々なエンジニアと交流を深めていきたいと思いますので、お気軽に絡んでください