Flutter に触れてみた

Flutter は Google が提供している iOS / Android 向けのフレームワークです。Dart を書くことで両方の OS で動くアプリを書くことができます。

Flutter は iOS/Android 向けのモバイル UI フレームワークとうたっているだけあり、特徴は UI フレームワークが完備されているところです。

私は GUI アプリに憧れを持っています。ただ GUI スキルはまったくなく、指を加えて遠くから見ているだけにしています。自分におまえの専門はミドルウェアなんだ憧れるだけにしておけと言い聞かせています。

ただ、新しい技術に触れておくことはとても大事だと思うので、Flutter でハローワールドくらいはやっておこうと思い、触れてみることにしました。

まずはどんなものかを触ってみることにしました。ドキュメントをなぞります。

$ git clone -b beta https://github.com/flutter/flutter.git
$ export PATH=`pwd`/flutter/bin:$PATH
$ flutter create myapp
$ open -a Simulator
$ cd myapp
$ flutter run

これでもう動きました。そして何よりホットリロードがあります。コードを変更したら自動でリロードしてくれます。Django 好きとしては嬉しい所です。

最低限動くことを確認したら簡単なチュートリアルをやってみることにしました。

ただ、Flutter で Dart を書くのは VSCode が良いというのが書いてあったので VSCode に Dart プラグインを入れて、書き始めました。素晴らしい補完機能。また設定ファイルをいじったらかってに依存を解決してくれました。あとはコードを書いて見るだけです。これが Flutter のコードです。

import 'package:flutter/material.dart';

void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: 'Welcome to Flutter',
home: new Scaffold(
appBar: new AppBar(
title: new Text('Welcome to Flutter'),
),
body: new Center(
child: new Text('Hello World'),
),
),
);
}
}

初見でも何となく読めるのはいいですね。new がうざいなとなんとなく思いましたが Dart 2.0 からはオプションにやるようです。

そして、まずはこの辺で手を動かすのは止めておきます。自分の場合はこの分野を仕事としているわけではないため、楽しそうと感じたところで止める勇気が必要です。

自分は色々やれるほど器用ではありません。それをよく理解しているから手を止めるのです。

さて、なぜ Flutter に興味を持ったのか、という話をしようと思います。

ただそのまえになぜ専門ではない分野なのに調べたりしているのか?という話をしてみようと思います。

私はミドルウェアという味気ない世界で仕事をしています。ただなんだかんだ言ってそれらを管理するツールは必ずといっていいほど GUI が必要になります。

俗に言う管理画面と呼ばれるものです。私自身は残念ながら Web もネイティブも素人同然です。そのため、仕事でこの辺りを行うことはありません。プロに任せます。

ただ、プロに要望を出す時に少しくらいは使うツールのことを理解しておくのは大事だと考えています。なので少しだけ触って、あとはドキュメントを読むことにしています。

こうすることで仕事をプロにお願いする時、会話をしやすくなります。なんとなく知っているとまったくしらないであればなんとなく知っている方がいいというのが私の考えです。

そのため、新しい技術で興味を持ったものは自分の分野から離れていてもできるだけチュートリアルを動かして、一通りドキュメントを読むようにしています。

さて、本題の Flutter に興味を持った理由ですが、 Flutter は最初から完成度の高い UI が入っているのが一番の理由です。iOS と Android という全く違う UI を持っている世界に共通の UI を持ち込むというのはとても素晴らしいと感じています。

どの UI フレームワークを使うかで悩みたくないというのがすごくあります。Flutter はそこで悩む必要がありません。

実際、仕事で PoC (Proof of Concept) 的な iOS や Android で動くネイティブアプリを作る必要が出てきた場合にとても採用しやすいのではないか?と感じました。

Flutter は Firebase との連携も強そうです。リアルタイムなアプリを作るのにも向いていそうとも感じています。

自分が普段扱ている WebRTC との相性も良さそうと考えています。ただ WebRTC と Flutter はまだ手がつけられていないようなので、ここは自社でなにかしら取り組んでいこうと考えています。

Written by

Erlang/OTP / 時雨堂 / WebRTC / E2EE

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store