1. AirSap
  2. #32 Flutterってどう?マルチ..
2019-05-24 42:54

#32 Flutterってどう?マルチプラットフォーム開発の今

Flutterのコンテストに応募した阿部さん(もっさりさん)にFlutterについて聞きました。
00:00
はい、みなさんこんにちは。
今日ですね、AirSap第32回ということで、お送りしていきたいと思います。
今回は、私水口と若林さんの他にですね、前回23回目に出演していただいたもっさりさんにですね、またゲストで来ていただきました。
では、もっさりさん、いらっしゃいませ。
よろしくお願いします。
お願いします。
お願いします。
今回ですね、もっさりさんに来ていただいたのは
ちょっと待って、もっさりさんでずっと続けるの?
そうしましょう。
安倍さんに代わります。
本名でいいです、本名。
安倍さんでいいですか?
はい、安倍でいいです。
オッケーになったんですね。
オッケーになったんですね。
いや、もうどれでもいいや、もう。
じゃあ、安倍さんにね、来ていただいたということで、安倍さんはガチガチのiOSプログラマーっていう感じの、アンドロイドとかも
アンドロイドっていうとね、私別にiOSプログラマーとかそういうふうに細かい分類されるわけじゃなくて、ただ単に自分のことをプログラマーって呼んでますね。
なるほど、なるほど。
そんな雑食系の安倍さんが、最近はフラッターをすごいやってるっていうことなんで、今日はフラッターの話をいろいろ聞きたいなと思ってます。
すごくやってるっていうわけじゃないです。
ところでフラッターって何ですか?
フラッターっていうのは、Googleがだいぶ前にJavaScriptもうやめようぜって言ってた時期があってて、確か2010年とか2011年くらいだと思うんですけど、そのぐらいにJavaScriptの代替にする言語を作ろうってできた言語があるんですよ。
ダートって言うんですけど、それをGoogleがうまいこと次世代の標準としてブラウザに突っ込む計画があったんですけど、うまくいかなくてGoogleぶん投げちゃったんですよね。
そこから軽く8年9年くらい経っちゃって、なぜか去年ぐらいにGoogleがそのダートを使ってマルチプラットフォームのユーザーインターフェース開発環境を作るよみたいなことをできたのがフラッターです。
マルチプラットフォームっていうのがAndroid、iOS、Windows、Macとか、この間Webとか出てましたっけ?結構幅広いんですよね。
幅広いんですけど、去年のGoogle IOSかな?2018年のGoogle IOSでフラッターってものが発表になった時にはAndroidとiOSだけだったんですよね。モバイルだけですよって言ってて。
確か1.0っていう正式リリースがあるところにこれからWebもやっていくよって発表があって、
先月か?先月?違うな、今月か。Google IOSの2019で初めてWebとMacとWindowsもやるよっていうものすごい積極的な発表があって、ちょっと今すごく賑わってますよね。
03:04
今ちょうどフラッターのページ見てるんですけど、今1.5なんですね。
5がね、もうこれ公式リリースなのかな?でもWebに関してはWeb版はまだ全然遅いから使い物にならないよとかいう感じで出てるんですよ。
なんか一応フラッター1.5 is liveって書いてるから。
ライブ。なんか常にベータみたいな感じが。でもiOSとAndroidに関してはちゃんと動いてる。
なんか先日、何ヶ月か前もDevSuppの勉強会で阿部さんがフラッターのデモをしてくれてて。
あれだいぶ前じゃない?それ。
もっと前でしたっけ?
去年の12月とか。DevSuppって奇数月だよね?
そうです。11月か?
11月だ。今年まだやってないから。
じゃあもう半年前ですね。
早いね。
早いですね。
あの時は確かフラッターで計算機みたいなの見せて、普通にビルドしてiOSとAndroid両方動くよって話をしたんですけど。
やっぱり実行環境のフォントが変わるとレイアウト微妙に違うよねって話をした覚えがあります。
そうですね。なんか僕もあれを見て見た目がキモいから使いたくないみたいなことを言ってた記憶があります。
それもちゃんと同じフォントをOSの標準のものを使うって風にしないで、自分でリソースにフォントを含めて同じフォントを使うよってやるとちゃんと統一されるんですよ。
そうなんですね。
だから当時はそんな面倒くさいことしたくなかったから、とりあえずビルドすれば動くよね、フォント違うけどみたいな話はしたんですよね。
今フラッターのページのウィジェットカタログっていうのを見てて。
ウィジェットカタログ、はい。
UIのウィジェットカタログみたいな。
これのKupachinoってやつを使うとiOSっぽくなるんですよね。
アンドロイドもiOSっぽくなります。
逆にMaterialってのもあるんですよ。
それ使うとアンドロイドのマテリアル準拠のUIがiOSの方にもやってきます。
なんかGoogleのアプリとかそんな感じですもんね。
オススメしたいのは、フラッター使うのはこのマテリアルがこなれてるかなって気はするんですよね。
なんでかっていうと、iOSでそのKupachinoスタイルを使うと、iOSネイティブと比べられる偽物っぽいUIキットっぽいのが動くんですよ。
安全に再現はできてるわけですね。
できてない、そうそう。似てるんだけどなんか違うんじゃね?って詳しい人から見るとここ違うじゃんとか突っ込まれる原因になりかねないんで。
似てるようなものをするんじゃなくて、マテリアルでもUIを構築しちゃって統一する風にした方が、iOS詳しい人も混乱しないんじゃないかなと思うんですよね。
なんか似てて微妙に違うのが一番キモいんですよね。
06:00
いやキモいとか、それだってクローズドなUIキットだから難しいよ完全に再現するの。
音を聞いて耳コピーするって人たちいるじゃない。
あんな感じで見てアップルのこんな感じで作ってるよねって風に作ってるからやっぱり完全じゃないんだよね。
そのフラッターがやっぱりその自分で全部描画してるからそういう風になるっていう感じですよね。
そうなんですよそれがまあ利点でもあって欠点でもあるんですけどこれやっぱりただ事じゃないんですよね。
リアクトネイティブとかだとネイティブのパーツを呼び出して使ってるって感じですね。
そうです正式で言うとUIキットってアップルが作ってるものあるじゃないですか。
あれに対して呼び出してるから正確に言うとリアクトネイティブにはバインディングっていう繋げるってことなんですよね。
自分たちのプログラムは最小限にしておいてアップル純正の機能を使おうぜっていうやり方がリアクトネイティブだったりする。
そういう人とかみんなそうですよね標準の機能があってそれを使おうぜって考え方で。
そうなるとその逆に互換性の問題とかも出てきやすいし。
そうですよね例えばあの絶対アプリで使うようなスクロール機能UIスクロールビューとかあるじゃないですか。
あとはリスト関連のやつとか。
テーブルビューとか。
そうそうそういうテーブルビューとかマルチカラムにするためのものいろいろありますよね。
それも標準のものをバインディングして使うとIOS標準のものとしてなるんですけどそれそっくりのものを作るってなるとやっぱりそれなりにコストっていうのが大変ですよね。
そうですよね。
めんどくさいでしょ。
ちっちゃいビュー重ねていってスクロールしていって画面から1.5画面ぐらい消えたらメモリから取り除くっていうすごい地道な仕事をプラットフォームごとに作り直すっていうのはやっぱり大変なんですけどそこみんなやっぱり逃げちゃってるんですよね。
昔のタイタニウムとかもそっち方向でしたよね確か。
タイタニウムはね私古い時代しか知らないんですよ。
JavaScriptのコードにそのまま動かしててWebView乗っけるっていう昔のやつしか知らなくて今どうなってるか全然わかんない。
今はちょっとネイティブに変わってるからリアクトネイティブっぽくなってるって聞いたけど触ってもいないのね。
それも理由があってタイタニウムのビルド環境がクラウドビルドだけになっちゃってから全く触ってないんですけど今ってあれクライアントでビルドできるようになったんですか?
知らないです。僕も昔のタイタニウムしか知らなくてネイティブっぽくなったの今初めて聞いたぐらいなんで。
2点3点しててなんかもうどうでもいいやって感じになっちゃった。
どうでもいいやってなったのはXamarinを使い始めたからなんですよね当時。
09:01
Xamarinはどっち方向なんですか?
Xamarinもねフレームワークが細かいのがいくつも固まってて私が当時使ってたのはXamarinっていうCシャープのライブラリの方からiOSのネイティブの機能を呼び出すっていうバインディング形式。
Xamarinの方ではブリッジとかいう言葉を使ってるんですけど自分たちはユーザーインターフェースに関わるものはOS標準のものを呼び出すよってものがまずあって。
その次にXamarin Formsっていうのが出てきたんですよ。
マイクロソフトとかその近所の人たちってよくないのは同じようなもののバリエーションっていうの。
ちょっとだけ違うちょっとだけいいよってものをいくつも作ってずっと残しておくんですよね。
そういうことをやられるから同じものが3つも4つもあって俺らどれ使えばいいのって風にいつも混乱するんですけど。
Xamarin Forms出た時に結構その辺も混乱っていうか勘違いとかあったような気がしますね。
2種類一時期並行している時期があって。
そのXamarin Formsを使うとAndroidとiOSも同じようなインターフェースを作れるよっていうのが売りだったと思います。
じゃあそのXamarin Formsはどちらかというとフラッターみたいな描画は独自でみたいな?
いやそれもねなんか微妙なんですよ。
Xamarin Formsっていう仕組みになってるけどこれ中身ネイティブにブリッジしてるんじゃねーのって私は思ったんですけどね。
その辺がわけわかんなくてXamarin Formsは結局使ってない。
なるほどなるほど。で結局今はフラッター一押しって感じですか?
一押しってわけじゃなくてねやっぱりちゃんと動くなって部分で試してる段階ですね。
マルチプラットフォーム環境ってそんなに今使ってる人いるのかな?
仕事で仕方なくコードベースを共通化したいって人が使うものだと私は思ってるんですけどどうなんですかねその辺。
どうなんですかねなんか最近なんかツイッターで見た人でiOSはネイティブで作ってAndroidはフラッターで作るみたいな話をしてる人がいましたね。
いる。そういうのもありなのかなって気もするけどそこまでやるんだったらフラッター両方でやればいいじゃんと思うんだけどね。
やっぱあの見た目問題とか。
見た目問題。個人的にはSwift使いたいって気持ちはわかるんですけどね。周辺ライブラリがいっぱいあるから勉強する量がすごく済む。
少なく済む。手早くアプリケーションを作るんだったらSwiftのエコシステムってものはすごく強い心強いんですけど。
じゃあ同じものAndroidでやるって言った時にまたコトリン全部最初からやるのとかね。そういう風になっちゃうんですよね。
12:03
なんか物によりそうですよね。OSのセンサーとかGPSだとかカメラだとか加速度とかそういうのをガチガチ使う時はこういうのって微妙なのかなって思うんですけど。
微妙なんですけど、それ言うとリアクトネイティブとかも、あと何だっけ、昔流行ったWebのコルドバっていうJavaScriptでアプリを作る同じようなマルチプラットフォームの環境があるんですけど。
あれもデバイスごとの機能っていうんですか。フィットネスの機能だったりヘルスキットだったりそういったものはアクセスできないんですよ。
ただアクセスするためにやっぱりネイティブの機能とつなぎ込むためのブリッジみたいなものの考え方は存在していて、ネイティブのプラグイン使えばいいよっていう風なやり方はみんなやってるんですよね。
結局でもそこでネイティブを一部書かなきゃいけなくなってしまう問題っていうのが宿命として出てきてしまう。
それもネイティブを書かなきゃいけない問題っていうよりは、ネイティブとつながっているプラグインを呼び出すんですよ。やり方としては誰かが加速度センサーとかカメラとかのプラグイン絶対作ってるんですよ、こういうの。
それを借りてもらってきて使えばいいっていう。
誰かっていうか大体このプラットフォームを作っている人たちが、ないと困るからカメラ使えるよとか、ファイルシステムにアクセスできるとか、そういう最低限のものは作ってあるんですよね。
ただ困るのが、プラットフォーム、OSごとによって動きが違うとき。
iOSはカメラに対してプライバシーの設定を返さないと使えないけど、Androidはちょっと古いやつだとプライバシー関係なしにカメラ動いちゃうとか。
その違いをどうやって吸収させるのかっていうと、自分でそこら辺のことをダート側の方で書いてあげて制御してあげるとか、そういうのが必要になったりするのが結構めんどくさい。
それはめんどくさそうですね。
だってプライバシーの設定、今Androidも必須になってるけれど、じゃあ3つぐらいバージョン前のAndroidどうだったかっていうと、バージョン7から入ったのかな、カメラとかのプライバシーとかって。
じゃあ6とか5とかどうなってんのっていうと、その辺すごい雑なんですよね。
あれですよね確か、Googleプレイから落とすときに一括で許可しますかみたいな。
それね4.4とかじゃないか、違ったかな。
確か5ぐらいから実行時にチェック入るようになったんじゃないかな。ちょっとうろ覚え。もう3、4年ぐらい前の話だからうろ覚えなんですけど、でもその辺くるくる変わったりするんですよ。
今ってもうほぼほぼiOSぐらいの厳しさになってる。
そうなんです、iOSぐらいの厳しさになってて、実行時に確認して、一旦アロー出ないってやつ出ない、やめだよってふうにやると、2回目使うときも必ずチェック入るようになってるから、おかしな動きはしないんですね。
15:07
だからこっそり録音だとか、こっそりカメラ監視とか、こっそりキーボード監視とかそういうのもできなくなってるはず。
正しいですね。
正しいって言うけど、アップルすごいよね。もう自分たちが入力フォームからクレジットカードの番号だとか電話番号とかを入力してサーバーに送るときに盗まれるってことを考慮してプロセス分離してたんだから、アップルちゃんと考えてんだなって。
なんかもう感心しちゃいましたね。それを何もやらずにやってたマイクロソフトのWindowsフォンって本当にクソだなって今諦めて思いますね。全部スルーじゃんって。すごいのは、そこまでちゃんとそういう未来を予見してたってところだと思うんですけど。
たぶん携帯電話っていうところで、より人のプライバシーと近くなるっていうところを考えたんでしょうね、きっと。
それをまず盗まれる、守んなきゃいけないっていう発想があったのがすごいですね。技術者の観点から言うと、そんなのは、例えば承認性にするっていう考えはあっても、盗んだやつが悪いんだから後で裁けばいいじゃんって考え方なんですけど、絶対守るっていうのを先に持ってくるのが、顧客ファーストみたいな考え方ですよね。
だからこの辺、アップルは普通のIT企業と違うなって、私が尊敬する部分でもあります。
いい話。
すごくいい話。だってみんな技術の話いっぱいするけどさ、自分たちの利用者のデータを保護しようって考え方が先にくるかっていうと、そんなことないもん。セキュリティとかどうでもいいからプロダクト作ろうぜ、わーって作って、ちょっと成長したら、すいません、セキュリティホールありましたとかっていっぱいあるでしょ。
Facebookとかですね。
いや、もっともっと前。例えばEvernoteとかDropboxとかって、昔データスクランプかけないで保存してて、一時期騒いじゃなかった?2000何年ぐらいだろう、あれ。iPhoneの3GSとかそのぐらいの時代の話ですよ。
ありましたね。
ちゃんと守るからごめんねっていう声明出したりしてる、Dropboxも、Evernoteも。
Evernoteは確かベーシック印象の周りでちょっとあった気がしますね。
そうなんですよね。そこら辺のところを技術のやる人たちはまずプロダクトを作りたいって考え方があって、わーって進めちゃうんですけれど、そういうところに水を差す、ちょっと待とうぜ、ちゃんとやろうぜっていう考え方ができるのすごい良いですよね。
良いですね。
忘れちゃいけないですね、こういうの。
そうですね、見習わないといけないですね。
ちょっとフラッターの話とはずれちゃったんですけど、どっからずれたんだっけ?
じゃあとりあえず一旦フラッターに話に戻して、阿部さんなんかコンテストみたいなの出してましたよね?
あ、はいはいはい。去年の12月にフラッターの1.0っていうのが正式公開されたんですよ。2018年12月ですね。
18:11
で、その時に発表になって、2月にコンテストをやるよっていう発表だけあったんで、だから勉強してねみたいな感じがあったんですね、告知が。
で、フラッターその後1.1が出たのかな?1.0だと1月ぐらいか2月ぐらいに1.1だかが出て、その時にコンテストの発表が2月の上旬ぐらいにあって、
プログラムのコンテストやるんだけれど、ダートのプログラムを5キロバイト以内で表現してねっていう、なんかトンチみたいなコンテストが発表されたんですよ。
すごいですね。
5キロバイトって、あまり今時聞かない容量?5メガとかじゃなくて5キロバイトなんですよね。5000文字なんですよね。5120文字。
はいはいはい。
で、その中でプログラムを表現するって、なかなか今の時代難しいと思うんですよね。
ですね。
昔はね、パソコン自体のメモリが16キロバイトとか8キロバイトとか、8ビットパソコンでそんなのばっかりだったから、プログラムで使えるエリアって3キロとか4キロとか普通だったんですよ。
で、あとは当時その外部ライブラリって考え方がなかったから、例えばそのプログラム作るのに、昔のパソコンだとベーシックっていうものが使われたんですけど、ベーシックで使える機能以外のものはできないから、なんかライブラリをインポートするだとか、なんかコールバック用意するとか、そういう宣言がほとんどいらなくて、命令一つでどんどん組み立てていけば最終的にプログラムになるから、
5キロバイトを収めるってことは簡単だったんですけど、今時の言語ってまあとにかくライブラリのインポートから始めなきゃならない。なんかUIの何かをインポートするよ、データ読み込む機能をインポートするよってなると、そのインポートする宣言部分だけで普通に2キロバイトとかになっちゃうんですよね。
ああ、なりますよね。
どんなに絞ってても、例えばダートのプログラムでクパチーのスタイルで書くよとか、マテリアルで書くよとか、画面にレイアウト調整するためのいろいろ機能あるんですけど、それを使って複数の解像度をカバーできるようにするよとかいうだけで、もう軽く数百バイトいっちゃって、最小限のコールバック、OSが使う、OSとかフラッターが使うコールバック書いちゃうと、2キロバイトスタートみたいなところになっちゃうこともあります。
そんな中、5キロバイトに収めてやりなさいと。
最初はユーザーインターフェース全く何も使わずに、自分でタップ機能のハンドラーを使ってゲームを作ろうと思ってたんですよ。
インポートをできるだけしたくないから。
21:01
キャンバスっていう考え方があって、空っぽの画面のどこをタップされたかっていう最小限のコールバックを用意しておいて、画面のこの部分が押されたら左キー、この辺は右キーみたいなものを自分で作ろうとしたんですよ。
当然やってるとコード膨らむんじゃねーのってなってきて、そういうユーザーインターフェース作る以前のゲームの操作機能を作るだけで、もう4キロバイトになっちゃった。
笑えないですよね。これダメなんじゃねーのって。
実際プログラム作るときにコマンドでダートのプログラムの容量を自分でワードカウントするんですよね、何倍とか。
でも4000って出た時点で、もうやめって風になりました。
結局どんな風にしたんですか?
結局そのユーザーインターフェースに関しては、なんとか最小限で構築しなきゃならないなってことで、マテリアルデザインと、
あとはボタンを行とローと絡むで管理するユーザーインターフェースがあるんですよ。ボタンに限らずそのウィジェットってもの。それを使って操作パネルみたいなものを作るようにしました。
最終的に、結局ゲームを作ったってことなんですかね。
ゲームを作ったのはね、これちょっとインチキなんだけど、ゲーム自身はJavaScriptで作ったんですよ。
テキストベースのテトリスを作って、ウェブで作って、ブラウザで作って、JavaScriptで動くようにして、そのプログラムをFlutterのリソースに含めた。
プログラムはキーボードみたいな、10キーっていうのかな。4,6,2,8でキャラクターを動かすようなユーザーインターフェースを作っておいて、それでゲームを操作する。
Flutter自身は何をするかっていうと、WebViewを画面上にボンと置いて、そのWebViewを操作するためのコントローラー、キーボードを置いておいて、その2つを繋げ合わせるっていう小さいフレームワークを作ったんですよね。
作品としてはコントローラーってことですね。
エントリーした作品で何を作ったのかって説明があったけど、私は最小限のゲームエンジンって名前をつけて送りました。
かっこいい。
かっこいいでしょ。何を作ったのかって言われたときに、私はゲームを作りましたって人たちはいっぱいいると思うんですけど、私はミニマム、最小限のゲームエンジンを作ったって送ったんですよね。
結果は?
結果はダメでした。
残念。
応募者数どうせ数百ぐらいだろうって、私高く振ってたんですよ。
24:00
そしたら、このフラッターのコミュニティのところで、外国のフラッター関連のコミュニティがあるんですけど、そこの掲示板みたいなところでは、俺も出したとかいう人たちが結構出てきてて、そこで観測できる範囲で100ちょっとぐらい、150ぐらいあったんですよね。
え?って、コアな人たちで150ってことは、じゃあこれから初めてこういう掲示板を知らない人たちって何本いるの?ってちょっと想像できなかったんですけど、トータルで公式発表では750ぐらいって言ってました。
でも、そこまでは多くはない。
何千いくのかな、何万いくのかなと思ったんだけど、何千はいかなかったね。でもやっぱりコンテストだから敷居高いっていうか、そこまでやり込む人もやっぱりいないんだろうね。
5キロバイト縛りでまず応募するに至るっていう時点でだいぶ絞られてるっていうか、やる気のある人に絞られてるから。
パズルだよね、これね。
やっぱり変数名とか一文字ですか?
変数名は一文字にしてるところもあるんですけど、あまりこだわってないっていうか、結局フラッターとダートの標準機能で、例えばどのクラスから継承しますよっていう時に、例えばクラスって書くじゃないですか。
クラス、私のゲームアップだから、ゲームAPPとかいう部分を例えばGとかにしますよね。
ゲームアップっていうクラス名をGとかにしました。
でも、クラスとかクラスを継承するextendsっていうキーワードだったり、継承元がStatelessWidgetとかいうウィジェットがあるんですよ。
これがもう10文字20文字とか使うから、変数文字1文字にしたくらいあんま変わんないんですよ。
じゃあそこは見やすさを優先して、短めだけどわかりやすいみたいな。
わかりやすいようになんとかするけど、それでもね、1回しか2回しか使われない変数だったらそこまで削る価値はないって感じで、そんな削ってないですね。
なるほど。
この辺のプログラムは外国の掲示板でみんなで情報交換してるところがあって、自分こういう風に作ったよってみんなでキャッキャ騒いでるところがあるんで、そこに私もGitHubでコードこれを応募したよって登録したんですよ。
これPodcastでこのURL説明するときってどうやるんですか?
後でください。入れときます。
プログラム自体はそんな難しいこといつも私言うんですけどやらないです。
JSONっていうデータ各データファイルあるじゃないですか。みんながよく使ってるJSONですね。
そのJSONにキーボードをこういう風に作りたいよっていうレイアウトを置いておいて、それを読み込みますと。
27:02
読み込んだプログラムはそのキーボード作った後、WebViewをロードしてゲームを始めるっていうだけなんですよね。
じゃあ結構すごく汎用性の高いゲームエンジンっていうぐらいですから。
そうですね。汎用性高すぎて何でもできるよってやつなんですけど。
ゲーム自身を例えばキーボードとか、あとWeb系のゲームでよくあるWASDだっけ?
キーボードを使ってゲームするような感じで、4つのキーで操作するようなものだったら割と簡単に移植ができる。
WASD、そういうことですね。クワティキーボードの。
そのコンテスト自体はソースコードを見られるんですか?それとも作品自体なんですか?
作品も全部見れるわけではなくて、フラッタのフラッタクリエイトっていうコンテスト名なんですけど、
そこのページでアニメGIFを使った画面と動画かな?こういうのが応募されたよっていうプレビューみたいな動画があって、受賞作品のスクリーンショットが見れるだけですね。
ソースコードはこの応募した人が、俺はこんなの作ったぜってのを掲示板だとか、そういうコミュニティでツイッターも含めて公開しているぐらいで、全部が全部公開されているわけではないですね。
そうなんですね。今ちょうどフラッタクリエイトのサイト見てみてますけど。
動画見えます?
動画ありますね。動画があって、今再生すると大変なことになるんであれですけど。
その動画の秒数忘れたんだけど、28秒だか38秒だか下1桁8の秒数のとこに、私の作ったゲームエンジン。
ゲームエンジンのサンプルとしてテトリスを組み込んだアプリ、ノーゲームノーライフっていうやつが画面の左側に出ます。
多分0.5秒くらいしか映ってない。いっぱい切り替わるから。
見ときます、後で。
750エントリーあって、全部ここの動画の中に入ってるわけないから。
じゃあ結構目に留まったというか、審査員の中では良い線行ってたってことですね。
じゃないのかなと思うんですけど、この話にはオチがあって、コンテストの受賞者には商品が送られるんですよ。
一番高いのがフルリローデッドiMac?
iMac Pro。
あれプロなんだ。あれ今あんなディスプレイついてるの?iMac Proって。
そうですよ。iMac Proですから。
あ、しまった。iMacってゴミ箱のイメージまだあったから、あんなんじゃないんだ今。
Mac Proがゴミ箱で。
ごめんなさい、iMac Proか。すみません、勘違いしてた。
これ1万ドル以上の価値があるって書いてますね。
30:03
フルリローデッドっていうか、それ欲しいなと思ったけど当たりません。ダメですね。
そのフルリローデッドiMacが当たった人はコンパスかな?
地球規模のコンパスとマップアプリと天気予報を合体させたようなものを作ってゲットしましたね。
ここにFlutter CreateのページにGIFアニメが載ってますね。
そうそう、地球儀がぐるぐるっと回ってて、地域を選択すると温度が出てくるような動画だったかな。
これすごいですね。
でもこれ本当に5キロなの?っていう感じがするけど、プログラム見てないからなんとも言えないけど、確かにデータ中心でプログラム作ればできなくはないかなっていう。
画像とかをうまいこと使ってやってるんですかね。
そうですね。あとはどういうものがあったかちょっとよく覚えてない。
ゲームがあったり、ユーザーインターフェース、綺麗なものがあったり、いろんな書の基準があってて、その書の基準に沿ったものが1個ずつ受賞してるような感じかな。
はいはい、なんかビジュアルが美しいものとか、コードのクオリティとか。
水滴が表現されるようなものが確かビジュアル部分で、コードの美しい部分で日本人受賞してなかったかな。違ったかな。
これはですね、ポケットピアノっていう。
ポケットピアノがコードの美しい人だ。
ローディーデイビスさんですね。
日本人1人いますよね。名前ちょっと忘れちゃったけど。
日本人います?
下の方に確かいるんですよ。
このページにはとりあえず出てないですね。
あれ?フラットクリエイトのページにいない?
グランドウィナーとカテゴリーウィナーが4人。
カテゴリーウィナーじゃないとこだな。その下の方でおそらくGoogleホームとかもらえるショーのやつかな。
はいはいはい。25人Googleホーム見にもらえる人がいるはずで。
25人いるはずなんだけど25人いないんだよね。
アップトゥー25って言うと最大25ってことなの?
そうですね。アップトゥーですね。
なんだ。じゃあ表示されてないけどもらえるかもしれないってドキドキしたけどダメだったんだ。
トピオカ達也さんですかね。
フラッターの記事の中でメディウムにリンクしてるところがあって、ここで全員のショーが見れますね。
そうなんですね。
タッチ・ザ・プログラミングっていうやつを使って。
その人はねえらいなと思ったのはフラッターのこのコンテストに応募したって書いた後、あんまりコンテストについてあんまり騒いでないんですよ。
なんかすごい落ち着いてる。淡々としてるっていうか。ツイッター見に行ったんですけど。
33:01
他の人はエントリーした後、やっぱり騒々するんですよね。私を含めてね。
フルリオデットマック欲しいなとかそういう横島な心でやってるから、みんな騒々してるんですけど。
だから重症した人って何個か連絡言ってると思うんですけどね。
そうですよね。
あれ?重症者のページわかんなくなっちゃった。
重症者のページ僕も見つけられてないですね。
チェックアウトディスアーティクルってやつかな?これかな?
そうですそうです。ディスアーティクル。
どっちかというとページの上の方にありますね。
あ、あった。タッチ・ザ・プログラミング。この達也飛岡さんですね。おめでとうございます。日本人唯一じゃないですかね。
見つけました。
だって私いろいろフラッター関連のニュース日本国内見てるけど、この飛岡さんのツイッターとかフォローしてなかったんで。
これソースコード公開されてますね。
ですね。
公開してますね。
これ最初から公開されてた?途中からリンク入ったのかな?
私が公開された時にはこれリンク貼られてなかった気がした。
徐々に貼ってったとかありそうですね。
そうですね。いいですね。ちょっと勉強しようと思います。
またあるんですかねコンテストは。
やってもおかしくはないと思うんですけどね。この5キロバイトどうなのよって思いますけど。
そうでもしないと、例えば資本突っ込んだ企業がでかいの突っ込んできて、みんなグダグダになるんですよコンテスト。
やっぱりコンテストで人を集めるっていうのは、はじめの言語とかよくあるがちで、マイクロソフトとかも昔やってたんですよね。
私がコンテスト見てひでえなと思ったのは、どこだったかな。窓の森だがなんかのコンテストで、あれはネットフロントっていうブラウザーだったかな。
Windowsモバイルのコンテストがあった時に、アクセスって会社がネットフロントをエントリーしてきて、それが受賞して。
アマチュアプログラマーが死ねよクソがっていうふうに騒いでたのを思い出します。
それもね、エントリーするプログラムがこのコンテストのために作ったものだとか、未公開のものを含むとか、そういう縛り付けないから悪いんだと思うんですよね。
そうですね。普通についてますよね。
確かにインプレス主催の窓の森だっていう記憶あるんだけど、ちょっと間違ったらごめんなさい。何せよ主催者は考えてなかった。
まあそうですよね。今例えばiOSアプリコンテストとかって言ってね。
Facebookアプリ突っ込まれたら困るでしょ。
そう困りますもんね。
インスタグラム来たら負けるでしょ。
1位インスタグラム2位Facebookとかになったらもう暴動ですよね。3位ポケモンGOとか言って。
それは面白いよね。Googleアプリはね。バトルベルワイヤルで。
そういう意味じゃこのダートのコンテストフラッタークリエイトっていうのはちゃんと未発表のものだとか、ちゃんと縛りあるからちゃんと考えてるなって感じですね。
36:06
これでも750エントリーでしたっけ?
そうですね。そのぐらいって言ってましたね。
っていうのがわかったから、次回はもっと増えるんじゃないですか?
増えるのもありますけど、私この海外のニュース見てると、このフラッターを頑張ってる人たちってインドとかの人が多い気がするんですよ、なぜか。
なんでですかね。
おそらく、リソースいっぱい使える人たちは全然ネイティブで問題ない。
人を突っ込んで、Swiftとコトリに作ればいいって考え方なんですけど。
新興国の方ってあんまりそんな資源がないし、そういうSwiftだとかコトリとかを今から勉強するがやったら両方いっぺんにできるダートを突っ込んだ方が先の先行者との差を詰めれるっていう考え方でやってるのかもしれないです。
ありそうですね。
私の見たことのないインドで使ってる言葉、このウニョウニョってなってるのとか、よくわからないタイ語なのか何なのかわからない言葉を使ってる人たちがやたらフラッターについて語られてるから、
これもしかすると、このアジア圏の方ですごくブレイクするのかなって気がしますね。
中国とかはどうなんですか?
中国はあんまり見ない。韓国語と何語かわからない人たちがフラッターっていうキーワードを使って喋ってるのがツイッターで結構多く観測されるぐらいかなっていう。
そうなんですね。中国は人も資源もあるから、結構両方をしっかりネイティブで作りますもんね。
力押しですよね。
それ考えると、少ない資源で両方のプラットフォームを最小限の労力でカバーできるっていう部分に合致してるのかなって気がしますね。
このGoogleとかフラッターのチームが狙ってるんだとすると。
そういう意味でも5キロワイト縛りっていうのがいいのかもしれない。
なんかね、トンチっぽいの私大好きなんですけど。
どっちかというとアメリカの人たちはダートとフラッターはどうでもいいのかなって気がしますね。そんな盛り上がってないのかなっていう。
Googleはこっちにシフトしたいんですかね。どうなんですかね。
それも気持ち悪いですよね。Google、Kotlin今標準になってるじゃないですか、Androidは。
なってますね。
なってますけど、でもKotlinはGoogleが作ったわけじゃないですよね。
ジェットブレインズが企画を作ってやってる。
それはAppleと違うよっていうアピールなのかもしれないです。
Apple自分たちでシフトデザインしてオープンソースにするからみんなでちゃんとやろうねって公開してやってるんですけど、
Googleは自分たちでデザインしないで、よその会社がいいっていったものを支援するっていうやり方で、ちょっと前のJavaのやり方ですよね。
39:09
その一方でFlutterで全部言語からプラットフォームまで全部やるっていうのを平行でやってるってことですよね。
噛み合う、噛み合うってか食い合うんですよねやっぱり、FlutterとKotlinのAndroidの部分が。
何かあったらこっちに行けるぞっていうオプションとして育ててるのかもしれないですね。
人的リソースをふんだんに使えるから、両方用意しとくよっていう部分が非常に気持ち悪くて。
このやり方は私が昔からこのソフトウェア業界見てると、IBMがよくやるんですよね。
例えばマイクロソフトと仲良くやってWindowsってものを作る反面、自分たちはOS2っていう独自のOSを作ってて、
うまくいかねえなってなるとOS2のチームばっさり切り捨てるとかいうことをIBM、ビジネス上の判断でやるんですけど、
それに近いような動きをやってて、じゃあこれどっち切られるんだろうなってのがやっぱり心配になるわけですよ。
GoogleといえばChrome OSも持ってますもんね。
そうなんですよね。Chrome OSもサポートするよっていう風になってるんで、
デスクトップのユーザーインターフェースを作るんなら、フラッターがいいよっていうところに持っていきたいみたいですね。
なるほど。じゃあ最後に安部さんから、今からフラッターをやるべきかどうかっていうところをなんとなく聞いて締めたらいいかなと思うんですけど、どうですか?
やるべきかどうかっていうのは、人に言われて決めるんじゃなくて、自分がね、面白いな、いいなっていうものをやっぱりやった方がいいと思うんですよ。
いい話。
いい話ってか、俺がいいよって言っていいんだっていう人はもうプログラマーやめろ。
人に何か言われてそっちへフラフラするぐらいだったら、もう何も決断しない方がいいと思う。流された方がいいと思う。
流されて使う側にいた方が幸せなんじゃないか。
なるほどなるほど。じゃあ聞き方を変えて、安部さん的には乗っかっていきたいっていう感じですか?
乗っかるっていうよりはね、私はね、なんかもう乗っかるっていうよりは使えるものは全部使うんですよ。
ですので、基本はSwift使ってiOSのネイティブ書きますし、いまだにObject to BCのブリッジ書くこともしますし、コトリンも使わなきゃならない。仕事なんでしょうがないです。そういうのはあります。
ただその上で、じゃあこの労力をどうやったら最小化できるのかなっていう部分は常に考えてて、XamarinだったりCordovaだったり、そういったものの一つとしてFlutterがある。
これを使えばコスト、お金と時間をかけずにアプリケーションをたくさんの人に使ってもらえるっていう考え方で、今このFlutterを勉強してます。
42:03
なるほどなるほど。やりたいことを実現するための引き出しを増やす一つってことですね。
そうですね。引き出しの一つとして、やっぱり現実的な答えを出してくれるっていうものの一つですね。
水口さんなんかありますか?
安部さんの話を聞いてて、いろいろ開発環境とかを整える際に、Googleのお墨付きって言ったら変ですけれども、
そういうバックボーンがあるところで、世界中の開発者もいるような状況のFlutterっていうのはいい選択肢になるんじゃないかなと思いましたね。
今日こんな感じですかね。
はい。
ではありがとうございました。
ありがとうございました。
ありがとうございました。
42:54

コメント

スクロール