FJCT_ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

Flutter(Dart)用NCMB SDKの機能について(ファイルアップロード)

f:id:mbaasdevrel:20200110154553p:plain

非公式ですが、Flutter(Dartでも)で使えるNCMB SDKを開発しています。

ncmb | Dart Package

今回はファイルをファイルストアにアップロードする方法を解説します。

SDKのインポート

まずはSDKをインポートします。pubspec.yamlは以下のように記述します。

dependencies:
  ncmb: ^0.1.2

コードでは次のようにインポートします。

import 'package:ncmb/ncmb.dart';

flutter pub get でライブラリをインポートします。プッシュ通知はスマートフォンアプリでしか使えないので、Flutter以外の環境では利用できなくなりました。

SDKの初期化

次にSDKを初期化します。

NCMB ncmb = new NCMB('YOUR_APPLICATION_KEY', 'YOUR_CLIENT_KEY');

ファイルアップロード

ファイルはバイナリとテキストの二種類を想定しています。

バイナリファイルのアップロード

ファイルはあらかじめ読み込んでおき、バイト文字列として渡します。

var fileName = 'dart.png';
var blob = await File(fileName).readAsBytes();
var file = await ncmb.File.upload(fileName, blob);

テキストファイルのアップロード

テキストファイルはそのまま文字列を適用すればOKです。

var fileName = 'dart.txt';
var file = await ncmb.File.upload(fileName, 'Hello world');

さらにMimeTypeの指定もできます。デフォルトは text/plain です。

var fileName = 'dart.csv';
var file = await ncmb.File.upload(fileName, 'a,b,c', mimeType: 'text/csv');

まとめ

ファイルアップロード機能を使えばカメラの写真をアップロードすることもできるでしょう。今後、さらにバージョンアップを行っていきます。なお、ソースコードは下記のリポジトリにて公開しています。ライセンスはMIT Licenseです。ぜひFlutterでもNCMBを活用してください!

NCMBMania/ncmb-dart: NCMB library for Dart and Flutter.

中津川 篤司

中津川 篤司

NCMBエヴァンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。 2004年、まだ情報が少なかったオープンソースソフトの技術ブログ「MOONGIFT」を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶDXエージェンシー「DevRel」活動をスタート。