思い立ってFlutterで簡単なアプリを作ってみました。 はてなブックマークの状態を閲覧する(監視する)アプリです。
先日作ったアプリのデモ。 pic.twitter.com/AMLzD93ALB
— Koji Wakamiya(だぐりば) (@D_R_1009) 2019年11月16日
開発経緯
ここのところを振り返って考えてみたところ、個人でアプリを作れていませんでした。作っても小さなライブラリっぽいもの程度。 本業の中でKotlinによるAndroidアプリ開発はそこそこやっているので、KotlinではなくSwiftやFlutterで作らねば、とも。
そんなわけで11月頭に「3ヶ月間で3つ(なんでもいいから)アプリを作る」ことを目標にしました。 今回は1つ目のFlutterアプリになります。
やったこと
開発要件
この半年ほどの挫折の原因を考えてみると、大抵が「ログイン処理」でした。 Googleアカウントによるログインにしたい、けれどGoogleログインにするためにはアプリ開発者の情報を……匿名アカウントで代用……匿名アカウントからメールアドレスへの昇格が……めんどい……みたいな感じで取りやめてしまうことがしばしば。 このため「ログイン処理」が不要であることを第1の条件に、合わせて今時っぽく公開されているAPIを利用したアプリにすることを第2の条件にして開発することに。
そんな中、はてなブックマークドキュメントを眺めていたところ「はてなブックマークエントリー情報取得API」がに気づきました。
これなら「ログイン不要」でユーザーに任意のURLを入力してもらうことで「はてなブックマーク情報取得API」のデータを表示できます。 合わせて、ユーザーの入力したURLをローカルDBに保存するなど、ネイティブアプリらしいリッチさも多少取り込めそうでした。 そんなわけで、「URLを入力するとはてなブックマーク情報を表示する」アプリの開発を行った次第です。
機能紹介
- URL入力によりはてなブックマークエントリー情報(lite版)を取得
- 取得した情報内のScreenShotをキャッシュしながら読み込み
- (ただ、どの画像をとってもno_imageのような……?)
- 取得した情報内のScreenShotをキャッシュしながら読み込み
- 入力されたURLは端末内DBに保存
学び
- AndroidのRoomでSQLiteの書き方を覚えたので割とDBはなんとかなる
- BLoCやProviderによるロジック記述の概要を掴んだ
- まともに作り終えていたのがWebViewCheckerだけだったので……
- BLoCによりSteamBuilderを使ってあらかたをStatelessWidgetで組めることを実感
- 休日とか寝る前とかに書くならやっぱりFlutter
- BitriseでAndroidのリリースステップ書くのはやっぱり簡単
スクリプトはこちらの relase
でaabを作成するところまで対応しました。
--- workflows: release: steps: - activate-ssh-key: run_if: '{{getenv "SSH_RSA_PRIVATE_KEY" | ne ""}}' - git-clone: {} - flutter-installer: inputs: - is_update: 'false' - flutter-build: inputs: - project_location: "$BITRISE_FLUTTER_PROJECT_LOCATION" - android_output_type: appbundle - android_output_pattern: "*build/app/outputs/bundle/*/*.aab" - platform: android - sign-apk: inputs: - android_app: "$BITRISE_AAB_PATH" - deploy-to-bitrise-io: inputs: - deploy_path: "$BITRISE_SIGNED_AAB_PATH"
今後
機能的にAppleの審査に通るわけもなく、またAndroidでリリースしても利用者いないと思うので(ブラウザで十分……)今回の開発は「Bitrise上でリリースステップが回せる」状態になったここで完了としようと思っています。
作成したアプリアイコンはそこそこよくできたんじゃないかな、と気に入っているのでどこかで使うかもしれません。。。
次はもうちょっと機能のあるものを作ってみようと思います! アプリ開発者がんばっていくぞ!