kazu22002の技術覚書

PHPer, Golang, AWS エンジニアの日々

flutter + NFCについて検討中

アプリ開発から離れて2,3年が経過しており、AndroidiOSアプリを作る自信はあまりない状態になりました。

ただwebのみでまだできない機能が多く、アプリ化をして便利にしていきたい要望は多い状態です。

NFCやプッシュ通知が代表例になります。

両方をメンテナンスする自信がないので、前々からFlutterが気になっておりNFC調査とFlutterアプリを試してみようと思っています。

NFC

ja.wikipedia.org

ICカードの読み書きの機能であり、規格いくつかあります。

Type-Aはタバコ購入時に使うカードのTaspoなど、Type-Bは免運転免許証やマイナンバーカードやパスポートなど、Type-F(FeliCa)は各種電子マネーカードやおサイフケータイなどで使われている。海外ではType-AとType-Bが主流だ。

日本だとsuicapasmoなど交通系が流行っているが、規格はType-Fになり海外での主流ではなく独自文化になっています。そのためType-Fのみ使えない時期があったほど、日本は独自文化が強いと感じている。

NFCの読み書きは端末によって可否があるが、現代の端末であれば大体できると思っています(iphone7以降ならいけるみたい)

リーダーは個別の端末で買うこともでき、ソニーPasoriが有名だと思います。

amzn.to

開発で使用するとなるとwindowsなどのPCが必要になったり、法人で使うにはライセンス料を支払う必要があり、現在の考慮には入っていない感じです。

raspberrypiとリーダー端末を使った開発はかなり気になっていますが、個人の趣味程度での開発に収める必要がありそうです。

料金やお手軽さでスマートフォンでのNFC開発を試したいという流れになっています。

Flutter

flutter.dev

Flutter is Google’s UI toolkit for building beautiful, natively compiled applications for mobile, web, and desktop from a single codebase

Nativeアプリのコンパイルやweb, desktopアプリを一つのソースから作成できるGoogleのUIツールキット。みたいです。

Androidを開発している企業が作っているというところが個人的には採用できそうと考えたきっかけであり、発表されてから時間も結構立っているため情報がかなり出てきた時期だと感じているので、試してみたい。という動機です。

言語がdartというプログラム言語になるみたいですが、言語自体はやればできるので最初の理解までの時間を努力するだけです。

実際に期待しているだけのソースコードの共有ができるのか気になっているところですが、サンプルソースをみてもいまいち理解できていないです。

まずはサンプルソースを動かすところからはじめていきます。

(Flutterのソースがよくわからず、Androidで試すまで至っていません。。。)

検索

「flutter nfc」で検索すると、情報に溢れているので作るのは問題なさそうな気がしています。

github.com

qiita.com

qiita.com

flutterのnfcプラグインもあったりするので、早めに試してみます。

過去にやっていたこと

cordovaを使用してアプリを作成していたが、OSのバージョンが上がるごとにソースコードを直していく余裕がなくなりメンテナンスにかなりの時間を使うことになり、Native化のツールには抵抗がありました。

アプリ専門で対応するほどアプリの改修がないため、問題がある場合に自分が対応をしていた時がありましたが、両方のアプリのバージョンアップごとに1ヶ月ぐらい時間を取られ、自分の仕事ができずあるサービスの開発が止まることがありました。

cordova自体の機能をそのまま利用していればよかったのですが、特殊な仕組みをいくつか入れていたためにデフォルトの関数が使えなくなるケースが多く、反省をした開発でした。

Native化のツールを使う場合には、できるだけ用意されている内容で勝負をする必要があるだろう。と考えている節があります。

基礎から学ぶ Flutter

基礎から学ぶ Flutter

参考

k-tai.watch.impress.co.jp