FlutterはDartで書かれたフレームワークになります。元々iOSやAndroidといったスマートフォン向けでしたが、今ではWebやWindows、macOSといったマルチプラットフォームで動作します。Flutter/Dartを覚えることで、多くの環境に対してアプリケーション開発が可能になります。
NCMBでは公式SDKを提供していませんが、非公式に開発を進めているFlutter SDKがあります。元々ベータとして0.1系でしたが、大幅な機能変更に合わせて v2 になりました。
この記事では、初期化の方法とファイルストアの使い方を紹介します。
インストール
pubspec.yaml を編集します。
dependencies: ncmb: ^2.0.2
そして dart pub get
でインストールできます。
使い方
任意のファイル上でライブラリを読み込みます。
import 'package:ncmb/ncmb.dart';
そしてNCMBオブジェクトを初期化します。
NCMB('APPLICATION_KEY', 'CLIENT_KEY');
ファイルのアップロード
ファイルアップロードは NCMBFile.upload
メソッドで行います。
テキストファイルのアップロード
テキストファイルをアップロードする場合には、Stringをそのまま適用してください。
var fileName = 'dart.txt'; var file = await NCMBFile.upload(fileName, 'Hello world');
mimeTypeを指定する場合には3つ目の引数を使います。
var fileName = 'dart.csv'; var file = await NCMBFile.upload(fileName, 'a,b,c', mimeType: 'text/csv');
バイナリファイルの場合
バイナリの場合はファイルのバイト文字列を渡します。
var fileName = 'dart.png'; var blob = await File(fileName).readAsBytes(); var file = await NCMBFile.upload(fileName, blob);
ファイルのダウンロード
ファイルダウンロードは download メソッドを使います。
テキストファイルのダウンロード
テキストファイルの場合は引数として text を指定してください。
var file = NCMBFile(); file.set('fileName', 'dart.txt'); var content = await file.download('text');
バイナリファイルのダウンロード
バイナリの場合は引数不要です。バイト文字列が返ってきます。
var file = NCMBFile(); var fileName = 'dart.png'; file.set('fileName', fileName); var content = await file.download();
ACLの使い方
ACLは3つ目の引数として指定してください。
var acl = NCMBAcl(); acl ..setPublicReadAccess(false) ..setPublicWriteAccess(false) ..setUserReadAccess(user, true) ..setUserWriteAccess(user, true); var fileName = 'acl.txt'; var file = await NCMBFile.upload(fileName, 'Hello world', acl: acl);
ファイルの検索
検索は query メソッドを使ってNCMBQueryを取得します。
var query = NCMBFile.query(); var ary = await query.fetchAll();
ファイルの削除
ファイル削除は delete メソッドを使います。
await file.delete();
コード
コードはオープンソースで、GitHub上で公開しています。ライセンスはMIT Licenseになります。
NCMBMania/ncmb-dart: NCMB library for Dart and Flutter.
Flutter依存の部分を削除していますので、純粋なDartライブラリとして利用可能です。また、ネイティブアプリ部分も削除していますので、Flutter for Webでも利用可能です。
まとめ
Flutterを覚えればiOS、Androidアプリともに一つのコードで書けるようになります。DartはJavaScriptライクな言語で、JavaScriptをマスターしている人であれば、それほど苦労せずにDartを書けるようになるでしょう。ぜひFlutterを使ったアプリ開発にNCMBをご利用ください!