書籍情報保管アプリ 『はじめに』
(2024/9/1 追記)アメリカでも公開できるように名前を修正しております。(リンクも貼りかえました)
(2,024.5.5追記)ついに公開できました!
アプリの概要
書籍メモアプリを作ろうとしています。参考にしたサイト。
最初は、1つ目の「PickBook」を参考にしようかと思っていたのですが、Barcodeモジュールのインストールで、google関係がうまくいかず(詳細は割愛)、ISBNをOpenBDから引用する2つ目のサイトを参考にしました。
BarCodeスキャナーの導入
Scannerの選択
最初は下記のスキャナーを導入しようとするが、色々エラーが発生。
Google Play関係の設定との情報も見つけたのですが、最終的に断念。確かにLikeの数も多いのですが、最終更新が2年前というのが少し気になってやめました。
最終的に導入したのはこちら。 mobile_scanner。問題なく導入完了。(もしかしたら、Firebase導入のところに記載のSDKバージョンの修正をしていたかも)
Android simulatorのカメラ
最初よくわからなかった。。
キッチンの奥のリビングの「壁」と「テーブル」にバーチャル画像が投影されるのね。ちょっと昔のファミコンのよう。
ページ間の変数受け渡し
Scannerが別ページでの呼び出しとなった(mobile_scannerのexampleから借用した)ため、読み込んだISBNを元のページに渡す処理を作成する。
以下を参考に「戻る」ボタンを作成。
appBar: AppBar(
title: const Text('Scanning ISBN code'),
leadingWidth: 85, //leadingWidthを設定する
leading: TextButton(
child: const Text('Back'),
onPressed: () => Navigator.pop(context, barcode),
))
Future<void> _navigateAndDsplayBarcodeScan(BuildContext context) async {
final result = await Navigator.push(
context,
MaterialPageRoute(
builder: (context) => const BarcodeScannerWithScanWindow(),
));
setState(() {
_isbn = result.displayValue;
});
}
Firestoreの導入
主に参考にしたサイトは以下です。
エラー対処
途中途中で、色々エラーが発生した。基本はSDKやら何やらのバージョンの指定の問題。
少し前のFlutterでは下記のように直接Projectのファイルに書き込みしていたみたい。
どうやら最近(3?)のFlutterでは、miniSDKversionやらの変数に格納されている。
下記のフォルダの flutter.groovy ファイルのバージョンの数値を変更して動いた。
./flutter/packages/flutter_tools/gradle/src/main/groovy
class FlutterExtension {
/** Sets the compileSdkVersion used by default in Flutter app projects. */
static int compileSdkVersion = 34
/** Sets the minSdkVersion used by default in Flutter app projects. */
static int minSdkVersion = 24 * <== ここ
/**
* Sets the targetSdkVersion used by default in Flutter app projects.
* targetSdkVersion should always be the latest available stable version.
*
* See https://developer.android.com/guide/topics/manifest/uses-sdk-element.
*/
static int targetSdkVersion = 34
/**
* Sets the ndkVersion used by default in Flutter app projects.
* Chosen as default version of the AGP version below as found in
* https://developer.android.com/studio/projects/install-ndk#default-ndk-per-agp.
*/
static String ndkVersion = "25.1.8937393" * <== ここ
下記に記載の細かなエラーも修正。
現時点の見た目
ひとまず、Android simulatorで下記の動作まで確認。
これからやりたいこと
ログイン画面
本一覧表示
ライセンス関係表示
書評保存
UI/UXの修正