概要
今回のブログポストではpackage_info_plus
を使ってアプリの名前、パッケージ名、バージョンやビルド番号を取得する方法について説明します。
- package_info_plus: https://pub.dev/packages/package_info_plus
このブログポストで紹介するソースコードは下記のリンクで確認できます。
package_info_plusのインストール
Flutterでpackage_info_plusの使い方を確認するため、下記のコマンドを使ってFlutterの新しいプロジェクトを生成します。
flutter create package_info_plus_example
その後、次のコマンドを実行してpackage_info_plus
パッケージをインストールします。
flutter pub add package_info_plus
次は、このようにインストールしたpackage_info_plusを使う方法について説明します。
使い方
package_info_plus
を使うと次のような情報を取得することができます。
import 'package:package_info_plus/package_info_plus.dart';
PackageInfo packageInfo = await PackageInfo.fromPlatform();
String appName = packageInfo.appName;
String packageName = packageInfo.packageName;
String version = packageInfo.version;
String buildNumber = packageInfo.buildNumber;
- appName: アプリの名前
- packageName: アプリのパッケージ名
- version: アプリのバージョン
- buildNumber: アプリのビルド番号
例題
今までの内容を確認するため、lib/main.dart
ファイルを開いて下記のように修正します。
import 'package:flutter/material.dart';
import 'package:package_info_plus/package_info_plus.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: const MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget {
const MyHomePage({Key? key}) : super(key: key);
Future<PackageInfo> _getPackageInfo() {
return PackageInfo.fromPlatform();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Package Info Plus'),
),
body: Center(
child: FutureBuilder<PackageInfo>(
future: _getPackageInfo(),
builder: (BuildContext context, AsyncSnapshot<PackageInfo> snapshot) {
if (snapshot.hasError) {
return const Text('ERROR');
} else if (!snapshot.hasData) {
return const Text('Loading...');
}
final data = snapshot.data!;
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('App Name: ${data.appName}'),
Text('Package Name: ${data.packageName}'),
Text('Version: ${data.version}'),
Text('Build Number: ${data.buildNumber}'),
],
);
},
),
),
);
}
}
アプリを起動されると、FutureBuilder
が実行され、package_info_plus
で情報を取得します。
Future<PackageInfo> _getPackageInfo() {
return PackageInfo.fromPlatform();
}
FutureBuilder<PackageInfo>(
future: _getPackageInfo(),
builder: (BuildContext context, AsyncSnapshot<PackageInfo> snapshot) {
...
},
),
無事に情報を取得したら、次のようにアプリの名前、パッケージ名、バージョンやビルド番号を出力します。
FutureBuilder<PackageInfo>(
future: _getPackageInfo(),
builder: (BuildContext context, AsyncSnapshot<PackageInfo> snapshot) {
...
final data = snapshot.data!;
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('App Name: ${data.appName}'),
Text('Package Name: ${data.packageName}'),
Text('Version: ${data.version}'),
Text('Build Number: ${data.buildNumber}'),
],
);
},
),
確認
このように修正した例だを実行すると次のような画面を確認することができます。
完了
これでpackage_info_plus
を使ってアプリの名前、パッケージ名、バージョンやビルド番号を取得する方法について見て見ました。また、FutureBuilder
を使って非同期処理を実行する方法についても見て見ました。
私のブログが役に立ちましたか?下にコメントを残してください。それは私にとって大きな大きな力になります!
アプリ広報
今見てるブログを作成た
興味がある方はアプリをダウンロードしてアプリを使ってくれると本当に助かります。
Deku
が開発したアプリを使ってみてください。Deku
が開発したアプリはFlutterで開発されています。興味がある方はアプリをダウンロードしてアプリを使ってくれると本当に助かります。