🤳

【個人開発】Bardと一緒に初めてのFlutterアプリ開発

2023/10/31に公開

はじめに

前々からスマホアプリの開発に興味があったので、Bardと一緒に開発・リリースしてみました。Flutter自体触ったことがなく、また他AIもそうだと思いますが時々嘘を言います。まったく知識がないので本当のことの中に嘘(古い情報)を混ぜられるので苦しかったです。ですがやはりコードを書いてそれが動くのは面白かったです!
https://bard.google.com/chat?hl=ja

成果物

QRコードを読み込んで保存もできるアプリをリリースしました。以前、店員さんが見せてくれたQRコードを読み込んで会員登録をする機会があったのですが、操作を誤ってQRコードを読み込むところからやり直しになってしまいました。一度読み込んだものを保存しておいて、もう一度遷移する機能が欲しいと思ったので自分で作ってみました。
やってみたかったですがPCスペック、実機の都合上App Storeへのリリースはできませんでした。
https://play.google.com/store/apps/details?id=com.appli.qrs

余談ですが、QRコードという文言を商用利用するにあたって株式会社デンソーに問い合わせをする必要があったため行いました。とてもとても丁寧に対応・説明してくださいました。
https://www.denso-wave.com/ja/system/qr/contact/

利用状況

記事作成時点では…ユーザー数は5人です。そしてなんと1円の広告収入を得ることができました!とても嬉しいです、金額的には少額ですがモチベーションが上がりました!
また、QRコードというありふれた題材ということもあると思いますが、やはりDLしてもらうためには作ってリリースするだけではだめで、DLをしてもらうための準備も必要なんだなと改めて実感しました。ただ、このアプリは私自身でも利用していて満足しています!

機能

各画面単位で簡単に記載します。

QRコードの読み取り画面

mobile_scaner で実装しています。基本的にサンプルに従って導入することで十分に動作します。ただ今回は読み込み時に保存まで行いたかったので少し手を加えています。読み込み時に自動で保存するか否かの設定の変更も可能です。
また、私は必要になったことはなかったので実装する予定はありませんでしたが、同様アプリのレビューコメントでライトの機能が欲しいと書かれていたのでこちらでも実装しました。
https://pub.dev/packages/mobile_scanner/score

一覧画面

小さな開発のため外にDBを持ちたくなかったので、保存時には sqflite に書き込んでいます。単純に保存したものを取得して一覧化しています。遷移先のタイトル要素を取得して、保存したQRコードのタイトルとして設定されるようにしていますが、書き換えも可能です。
https://pub.dev/packages/sqflite

問合せ画面

本当はチャット形式?できちんとユーザに対してきちんと回答ができるような作りにしたかったのですが、外にDBを持ちたくなかったこと、何より無知からのスタートだったので今回は断念しました。というわけで今回はGoogle Formのアンケート画面を埋め込んでいます。 webview_flutter を使って実装しています。
https://pub.dev/packages/webview_flutter

以下のようにすることでGoogle Formにパラメーターを渡すことも可能です。
https://hajiritsu.com/google-form-defalut-value/

@override
Widget build(BuildContext context) {
  return Scaffold(
    body: WebViewWidget(
      controller: WebViewController()
        ..loadRequest(Uri.parse("Formから取得したURL"))
        ..setJavaScriptMode(JavaScriptMode.unrestricted),
    ),
  );
}

リリース

リリースに関する手順自体は色々な方が記事やブログなどで解説されているため部分的に残します。

プライバシーポリシー

プライバシーポリシーを作成して、どこかの環境にデプロイする必要があります。以下で紹介されているように、プライバシーポリシーを作成してデプロイまでできるサービスがあるようです。私の場合はこちらではなく、色々な方のサービスのポリシーをを参考にさせていただきNotionに作成・Web公開をして対応しました。
https://note.com/danchi_kun/n/n216824317df6

広告

リリースそのものとは少しそれますが、利用状況を知る一つの指標かつモチベーションにもなるため Google AdMob を導入しました。リリースして1円の収益?を得たタイミングで規約違反との連絡があり広告がはがれてしまいました。理由としては問合せ画面としてGoogle Formを使用していたことで、外部(他者)のコンテンツに広告を貼り付けているという扱いになったようでした。今思えばですが当然ですね…。急ぎ修正をして審査に回しました。
https://admob.google.com/intl/ja/home/

おわりに

最初にも書きましたが全く知識がない中、本当のことの中に嘘(古い情報)を混ぜられるので苦しかったです。とは言え、書籍など買わなくともそんな中でもちゃんと動くものを作れるのはすごい時代?だなーと思いました。もっと色々なことをしてみたくなりました。
やはり何かを作るっていいですね…!!

Discussion