はじめに
FlutterはiOSやAndroidアプリの作成が可能なUI Frameworkです。
今回のサンプルでは、kintoneアプリに記録されているレコード情報をFlutterで開発したモバイルアプリにリストビュー表示してみたいと思います。
kintoneの顧客リストアプリを利用して実現してみます。
kintone APIをたたくためのAPIトークンを秘匿にする方法も紹介します。
顧客リストアプリの作成
kintoneアプリストアより顧客リストアプリを選択します。
表示されていない場合、「アプリストア検索」欄に「顧客リスト」と入力して検索してください。
「サンプルデータを含める」をチェックし、「このアプリを追加」をクリックしてアプリを作成します。
アプリ欄に顧客リストアプリが追加されていればアプリの作成は完了です。
サンプルデータがすでに登録されていることを確認します。
「アプリの設定」で各フィールドの「フィールドコード」を確認します。
デフォルトでは以下のような設定になっています。
| フィールドの種類 | フィールド名 | フィールドコード | 備考 |
|---|---|---|---|
| 文字列(1行) | 会社名 | 会社名 | |
| 文字列(1行) | 部署名 | 部署名 | |
| 文字列(1行) | 担当者名 | 担当者名 | |
| 文字列(1行) | 郵便番号(数字のみ) | 郵便番号 | |
| 文字列(1行) | TEL(数字のみ) | TEL | |
| 文字列(1行) | FAX(数字のみ) | FAX | |
| 文字列(1行) | 住所 | 住所 | |
| ドロップダウン | 顧客ランク | 顧客ランク | 選択肢:A, B, C |
| 文字列(1行) | メールアドレス | メールアドレス | |
| 添付ファイル | 会社ロゴ | 会社ロゴ | |
| 文字列(複数行) | 備考 | 備考 | |
| レコード番号 | レコード番号 | レコード番号 |
APIトークンの生成
アプリの設定においてAPIトークンを生成し、「レコード閲覧」をチェックします。
APIトークンの値をメモしておきます。
カスタムコードの作成
開発環境の設定
今回のiOSアプリの作成にはFlutterを使用します。
詳細は
公式ドキュメント
を参考にしてください。
インストールされていない場合は、以下のドキュメントを参照してインストールしてください。
Get started > Set up an editor
コードのエディタにはMicrosoftのVisual Studio Codeを使用します(以下、VSCode)。
Flutterのインストールおよび設定は以下のドキュメントを参照してください。
Get started > Install
iOSアプリの作成
以下のドキュメントを参考にFlutterのプロジェクトファイルを作成します。
Get started > Test drive
任意のプロジェクトフォルダーを選び、適当なプロジェクトの名前を入力します。
今回はflutter_kintone_applicationとしました。
また、シュミレータには「iOS Simulator」を選択します。
するとシュミレータ画面が表示されます。
ライブラリのインストール
iOSアプリからkintone APIをたたくので、httpリクエストを実行するためのパッケージhttpをインストールします。
VSCodeのコマンドラインで以下のコマンドを実行します。
|
|
詳細は以下のドキュメントを参照してください。
Fetch data from the internet
また、kintoneのAPIトークンを秘匿するためのライブラリ「flutter_secure_storage」もインストールします。
|
|
詳細は以下のドキュメントを参照してください。
flutter_secure_storage
コードの作成
上記で作成したプロジェクトのファイルより「main.dart」を開きます。
こちらを参考にコードを作成します。
|
|
コードの解説
今回のカスタマイズで使用するライブラリを読み込んでいます。
使用しているライブラリは以下のとおりです。
-
foundation
-
material
-
dart: async v.3.1.2
-
dart:convert v.3.1.2
-
http v.1.1.0
-
flutter_secure_storage v.9.0.0
|
|
main関数です。
MyAppクラスで定義されたアプリを実行します。
|
|
アプリ全般の設定をします。
アプリ名および、ホームページのウィジェットの設定をしています。
|
|
MyHomePageウィジェットを設定します。
アプリのトップバーにタイトルを表示し、ボディにkintoneの顧客リストから所得したレコードをリストビュー表示します。
|
|
kintone顧客アプリからレコードを取得する関数です。
Customerクラスのリストを返します。
{kintoneアプリID}には、上記で作成したアプリのIDを設定してください。
また、{kintoneのURI}には、お使いのkintoneのURLを指定してください。
URLを指定する際はhttps://を除き、mykintoneuri.cybozu.comの形式で指定してください。
|
|
kintoneの顧客アプリへのAPIトークンを秘匿するため、iOSのKeychainに格納します。
{kintone APIトークン}には、上記で設定したAPIトークンの値を設定します。
|
|
今回はデモのため同じコード内にて削除、書き込み、読み込みを行っています。
セキュリティ保護の観点から、
注意事項
を確認してください。
Keychainからkintone APIトークンを取得して、アプリからレコードを取得します。
レスポンスのコードが200ならデータ取得成功ですので、結果をJSONに変換します。
|
|
parseCustomersは、HTTPリクエストで取得したkintone APIからのレスポンスをJSON形式に変換する関数です。
また、Customerクラスを定義しています。
|
|
リストビューのウィジェットを設定しています。
|
|
Keychainに秘匿情報を保存、読込、削除するクラスを定義しています。
|
|
注意事項
セキュリティリスクを軽減するためにAPIトークンは秘匿してください。
実運用の際は次の注意事項を踏まえ、各自判断の上、設定してください。
-
kintone APIトークン設定用のページを用意してください。
-
APIトークンをそのままコード内に書き込まないでください。
ただし、アプリを端末にインストールする際に、以下のコマンドでリリースバージョンをbuildすると、APIトークンをコード内に書き込んだ場合も秘匿できます。1flutter build apk --obfuscate --split-debug-info=/<project-name>/<directory>
動作の確認
kintoneの顧客リストアプリにレコードを追加します。
今回は、インストールの際にサンプルデータを含めました。
VSCodeのステータスバーよりシュミレータのメニューを起動し、「iOS Simulator」を選択します。
画面上に以下のようなシュミレータが表示されます。
「実行」→「デバッグの開始」をクリックします。
または「F5」を押下します。
iOSシュミレータ画面に顧客リストのレコードがリストビュー表示されれば成功です。
まとめ
今回はiOSのアプリをFlutterで作成し、kintoneのアプリと連携してレコードをリスト表示するサンプルを紹介しました。
Flutterでは、iOS以外にもAndroid等のモバイルアプリを簡単に作成できます。
kintoneのアプリとAPIでデータを連携すれば、kintoneアプリをモバイルアプリに変換できます。
このTipsは、2023年9月版kintoneで動作を確認しています。
