🐶

[Flutter]初めてのiOSアプリ開発で使ったパッケージについて[permission_handlerなど]

2021/08/25に公開

初めまして、いもりん(@imorin_basson)です。

独学で(プログラミングスクールやメンター、有料記事などを用いず)Flutterを始め、無事iOSアプリをリリースし、何回かのアップデートの経験を経て、記事を書いてもいい実力かと思い今回からアプリ開発のことについて少しづつ書いていこうと思います。

今回は初投稿ということで、初心者目線で感じた「アプリ開発に用いたおすすめパッケージ」をピックアップして書いていこうと思います。

こういった記事の文章を書くのは初めてで読みにくいものになるかもしれませんがご了承ください。

どんなアプリを作ったの?

パッケージの紹介の前に宣伝がてらリリースしたアプリを紹介させていただきます。
私が作ったアプリは「QRコード読み取り・作成アプリ」です。

https://apps.apple.com/us/app/qrコード読み取り-作成アプリ/id1569144582?itsct=apps_box_link&itscg=30200

その名の通りのアプリですが、一応機能について書き出すと、

  • カメラでQRコードとバーコードを読み取る機能
  • スマホのアルバムの中からQRコード画像を選択して読み取る機能
  • オリジナルのQRコードを作成する機能
  • 読み取ったデータを履歴として保存して閲覧できる機能

大きく4つの機能があります。
簡単なアプリでありきたりだと思われるかもしれませんが、初めて作った習作ということで暖かい目(?)でみてください。
また比較的珍しいFlutter製のアプリになると思うので、興味があればダウンロードしていただけると非常に嬉しいです。よろしくお願いします。

おすすめパッケージ

permission_handler

https://pub.dev/packages/permission_handler

最初に紹介するのはpermission_handlerです。

今回のアプリのようにカメラ機能やアルバムへのアクセス権限を求めるアプリの場合、誤ってアクセスを許可しないように押してしまうと、該当するアプリの設定画面までいかないといけません。
これは利用者目線でいくとめんどうですが、このパッケージで

openAppSettings();

を入れるだけでボタンひとつで設定画面に飛べるようになるのでアプリの利便性が高まります。

カメラやアルバムの他にも位置情報などのスマホの機能へアクセスする必要のあるアプリを作る際には是非とも入れておきたいパッケージです。

flutter_launcher_icons

https://pub.dev/packages/flutter_launcher_icons

続いて紹介するのはflutter_launcher_iconsです。

アプリの顔とも言えるアイコンを簡単に設定できるパッケージです。Flutterでアプリを作る場合ならほぼほぼ使うことになるのではないでしょうか?

ちなみに私はアイコン作りをcacooというWebサービスを利用してお手軽に作りました。
https://cacoo.com/ja/blog/how-to-create-app-icons-easily-with-cacoo/

アプリ開発者の皆様はアプリのアイコンをどのように作っているのでしょうか?ぜひコメント欄でご教授ください。

image_pickerとimage_cropper

https://pub.dev/packages/image_picker
https://pub.dev/packages/image_cropper

画像関連でimage_pickerimage_cropperをご紹介します。

今回のアプリではオリジナルのQRコードを作成する際にQRの中心にお好みの画像を挿入するときに利用しましたが、SNSなどのユーザーログインが必要で、プロフィールアイコンを設定するようなアプリを作る際にも同じ原理で活用することができると思うので、応用範囲の広いパッケージと言えます。

admob_flutter

https://pub.dev/packages/admob_flutter

最後に紹介するのはadmob_flutterです。

Googleが提供している広告サービスを利用できるパッケージです。

似たようなパッケージとしてfirebase_admobがありますが、こちらは広告がレイアウトデザインとは無関係に画面の下部・上部に固定で表示されるらしく、admob_flutterの方を選択しました。

どうやらFlutter2が発表された際に新しくgoogle_mobile_adsが登場したらしいのですね。
素人考えながら今後はこちらが主流になるのかなと思うので一応こちらもリンクを貼っておきます。
https://pub.dev/packages/google_mobile_ads#prerequisites

おまけ

技術系記事を自分の今後の勉強の指針として残しておこうと思うので、アプリに搭載したものの、いまいち理解が不十分だと感じたパッケージについてもおまけとして書いていこうと思います。

provider

https://pub.dev/packages/provider

こちらは状態管理用のproviderパッケージです。
現状ただ写経しているレベルの理解にとどまっており、いまいち使い所を自分で考えて書くことができていないので、私を含めFlutter初学者の方は優先的に学習するべきパッケージなのではないかと思います。

sqfliteとshared_preferences

https://pub.dev/packages/sqflite
https://pub.dev/packages/shared_preferences

こちらはローカルデータベースを扱う際に使う人気パッケージとされるsqfliteshared_preferencesです。
他にもHiveなどローカルDBパッケージはあるのですが、調べていた感じshared_preferencesはこれらの同じ形式のデータを大量に保存する時に用いるローカルDBと違い、比較的小さいデータを保存する際に用いるらしいです。
私の解釈ではダークモードなどのON/OFFで表現できるアプリ設定に使うのかなと考えていますが、実際よくわかっていません。

最後に

ここまで読んでくださりありがとうございました。以上でおすすめパッケージの紹介を終わります。

今後もFlutterやアプリ開発に関する記事や、他のプログラミング言語に関して書いていきますので、この記事がよかったと思いましたらぜひいいねとフォローをよろしくお願いします。

また質問やご意見などございましたらぜひDiscussionやTwitterにてコメントいただけるとありがたいです。

Discussion