Launched
スピンカードのアイコン

スピンカード

特徴: 回転する単語カード ※作った目的: 生成AIを活用し、最小限のライブラリと標準機能で単語アプリを作りました。クロスプラットフォームを使いながらもiOSのUIを作り出すことができる。Swiftアプリとぱっと見違いを感じない。

Visit Product
プロダクトの感想・意見はこのエリアに表示されます
アイキャッチ画像

AI時代に相性が良いフレームワークという選択肢

React Native Expoを使用して初めて個人アプリを作りました。

普段は、Flutter/TypeScript/Pythonでお仕事をしております。SwiftUIもやったことある。

今回は、生成AIと相性が良いという噂のExpoを使用して、自身のアウトプットとWebの言語でモバイルアプリを開発できるという可能性を試してみたくて、挑戦してみました。

使った技術構成はこちら💁



state管理は、zustandを使用しました。Reduxだと複雑だし小さなアプリには向いてないなと思い選びました。アクションもストアもいらない。楽だった。

覚えたい単語を保存するために、ローカルDBを使うのですが、Drizzleを使うと直接SQLを書くよりはコードを書きやすいというのもあり使用しました。

タブで画面を切り替える機能は、Expo Routerの機能を使用しました。画面の移動はこれだけしかない。ページも複数作ろうと思ったのですが、今回は見送りました。

Flutterと比較してどうなのか?

生成AIと相性が良い気がした???
噂で聞いていたのですが、どうやら本当みたい。claude-codeを使用したのですが恐ろしい速さで作ってくれました😅

コンポーネントも分けて綺麗なコードを書いてくれた気がした!

Flutterの場合だと流行りのパッケージや自動生成のパッケージを使うと結構修正が必要だった。そしてなぜか、AIは関数コンポーネントを作りたがる😅

技術的な悩みだと。。。
以前だと、Expoがあるのに、Flutterを選ぶNext.js/Reactの開発者がいました。
当時はエラーが多いとか情報が少ない使いずらいがあったとか?

しかし使ってみると、彼らの悩みは、Riverpod/freezed/go_routerなど覚えることが増えすぎて、学習コストが上がり悩みが多かったようです。

個人開発なら不要ですけどね。仕事だとそうはいかない👋😇

TypeScriptとReactの資産を活かせないのか?
そんなある日、Expoが使いやすくなった。

まだ感覚掴めていないのですが、私のみた感じだと。。。

メリット

  • ReactのコンポーネントやHooksの知識を使える
  • Reactで使われている状態管理ライブラリを使える
  • API通信や単縦なロジック作るアプリ
  • iOS/AndroidのUIを別々で作れる。NativeのViewを呼ぶので

デメリット

  • UI作るのはFlutterの方が早い
  • Firebaseの設定が手間だった
  • eas buildの無料範囲が1ヶ月30回まで

リリースの作業をするときには、独特の方法を使うので、有料プランにしないと厳しい場合もある😅

画像の説明を入れてください
公式の翻訳

無料プランだと、リリース作業をすると制限がかかるのでタダでアプリ作りたい。片方のOSしか作らないよって人は、Swift/Kotlinを勉強するといいでしょう。

  • iOS: ipaファイルをXcodeからArchiveするだけ
  • Android: aabファイルをGoogle Play Consoleにuploadするだけ

私は、SwiftUI/Jetpack Composeの方が慣れてるのとUI作るのは早い方なので、無料でリリースできるのもあり制限がさらに強くなるなら、やめてSwift/Kotlinで作りますね👋🍎🤖

最後に

Expoを使ってみた感想ですが、作るものが決まっていて、Native固有のOSに依存する機能を使わないのであれば、個人開発に向いていると思います。

センサーとかBlueToothですかね。

コード書いてアプリ完成なら、こっちの方がいいですね。

AppStoreへ申請するときに送付するのを義務付けられているPrivacy manifest filesというものがあって設定の仕方が独特なのですが、claude-code使ったらいい感じに作ってくれたので、早く作るアプリには最適だと思いますよ。

SwiftUIでもAIに自動生成させることはできますけどね😅

ですので、是非是非個人開発で使ってみてください!

Explore More
関連記事はありません。