686 Views
December 16, 23
スライド概要
NoCodeサービス作ってます!
沖縄モバイルアプリ開発勉強会 ChatGPTにどのアプリ上でも 質問できるキーボードを 作った時に困った事7選 2023.12.16 渡邊達明 @nabettu
目次 01_ 自己紹介 02_ アプリの紹介 03_ 開発で困ったことと解決策 04_ まとめ
自己紹介 渡邊達明 @nabettu Watanabe Tatsuaki フロントエンドエンジニア 主にJSとFirebaseを使って個人開発 でWebサービスやネイティブアプリ を作っています。
今回紹介するアプリ AIキーボードアプリ TypeAI キーボード上でChatGPTにどんなア プリ上からもメッセージを送って、 返信内容をまた入力欄に貼り付けら れるアプリ
TypeAIの利用イメージ
開発経緯 1.ChatGPT等のAIをどんな アプリ上からも使えたら便利かも? 2.キーボードアプリならできそう! 3.Swift書いたことないけど なんとかなるっしょ! 結果なんとかなった部分と ならなかった部分があった
キーボードではできずに困ったことがちらほら やれた やれたとは言えない 全アプリ上で利用 ↓ 入力欄があればOK 入力欄の内容の直接取得は不可 ↓ テキスト選択した内容はOK ChatGPTへの問い合わせ ↓ フルアクセスを許可すればOK Swift完全に理解できなかった ↓ 動くものはできたレベル
SwiftUIで全部書けると思ったら書けなかった件 設定アプリ側:SwiftUIで全部書ける!
SwiftUIで全部書けると思ったら書けなかった件 キーボードアプリ側:一部の機能はUIKitが必要 handleInputModeList hasFullAccess needsInputModeSwitchKey textDocumentProxy など
設定アプリとキーボード(Extention)で 同じFirebaseのAccessGroupを使いたい 1. キーチェーンの共有を有効にして、設定アプ リのキーチェーンにキーボードアプリから同 じキーチェーンにアクセスできるように 2. 匿名ログイン情報が引き継がれるので、同じ Firebaseのユーザーとしてアクセス可能に 💪
サブスクを導入したいけど管理が大変 1. ChatGPTのAPIが有料なので、無料でたくさ ん使われると困るのでサブスクを導入 2. しかしサーバーでレシート管理等は大変 3. RevenueCatとFirebase Pluginを使うこと で管理が楽に!導入もわりと楽 🤝
“ChatGPT”のワードが審査にひっかかる 商標問題 OpenAIが出している ブランドガイドライン に沿わないとNG。 スクショも文言も含めて “Powered by ChatGPT API” に統一して審査OK!
Apple「オフラインでも使えるようにしないとダメ!」 フルアクセスの許可をしないと ChatGPTに問い合わせできない ↓ オフラインでも機能提供が必要 ↓ _人人人人人人_ > 突然の死 <  ̄Y^Y^Y^Y^Y^ ̄ 的な吹き出しをつける機能を追加 ↓ 審査OK 🥳(ホントにいいの?w)
問い合わせが来たけど ユーザーが誰かわからない。。。 1. HyperFormというフォームサービスで問い合わ せを受信 2. しかしフォームだけだとどのユーザーか紐づかな い(匿名ログインユーザーなのでメールアドレス など無し) 3. 匿名ログインのユーザーIDをフォームにHidden で送るように設定(WebViewのパラメータに付与 &フォーム側でそれをセットするように) 4. 問い合わせ時に利用状況などがわかるように 💪
まとめ キーボードアプリは普通のアプリと勝手が違う点 が多く、またその情報もあまりネットに落ちてい ません。 ちょっと特殊な処理が必要だったりしますが、ネ イティブならではの使い方ができるのでぜひ作っ てみてください! 気になることがあったら ぜひ聞いてください!