Flutter開発案件は無いんですか?
チュートリアルが英語でも問題ない
日中はCodelabsのFlutterチュートリアルで勉強していた。Googleが運営するCodelabsの文章は英語のみだが、Google翻訳でページごと日本語にしてしまえば全く問題なし。おかしな表現や、日本語として意味をなさない部分に突き当たった時は、その部分にカーソルを合わせると原文が表示される。便利。
開発ドキュメントに英語版しか存在しない、というのは昨日きょう始まった問題ではなく、それこそ数十年前からBBSで「英語が読めないやつが悪い」という上から目線の御高説を垂れる奴が散見されましたけど、もうあんな奴らの言うことなんか全部無視してGoogle翻訳に頼りましょう。
私は英語を読めなくもないけど、いやそんな大層なものではなく、英語アレルギーは無い、程度で大したことないですが、一旦読んでしまうと英文読解にのみ脳のエネルギーが割かれてしまい、肝心の技術習得が疎かになってしまうので機械翻訳はありがたい。
サーバー(サイドロジック)レス
Codelabsには、フロントはFlutterでサーバーはFirestoreを利用するチュートリアルがあるのですが、実際に動いているところを見ると感動します。「サーバーレス」という言葉が紛らわしい事は確かで、この技術スタックをもっとうまく表現するなら「サーバー(サイドロジック)レス」なのですが、本当にサーバーサイドロジックを書かずに、フロントからのデータがサーバーのDBに入っているところを見ると感動します。もう、これでいいんじゃないか?2019年の今更、サーバーサイドロジックなんて1から書いていられるか。なぜプログラミングスクールはド初心者にRuby on Railsを教えるんだ。やめてくれ。今は2019年だ。いやでも明日のメシのためならPHPでも書きますけど。
FlutterってFlash(Adobe Flex) 2019なのでは?
2000年代のWebアプリケーション開発において、その当時貧弱であったJavaScriptや回線速度を考慮して、ビジネスロジックは全てサーバー側で書いてしまうというのが当たり前だったのですが、そんな時にある程度の処理まではクライアント側でやろう、というのがFlash(Flex)でした。あれも速度以外は結構良いと思ったのですが、AppleがFlashを殺してからの2010年代、結局JavaScriptで全てをやれとフレームワークなど探してみると、underscore.jsだかbacknone.jsだとかナントカjsだとかが乱立し、最近ようやくReactかVueかの二択で落ち着いてきた感があります。しかし開発効率で考えれば、これらJavaScriptフレームワーク達は、JavaScript開発の混沌に一定の秩序をもたらしたという点では評価できるけど、開発効率が上がるとは言っていない。その点だけでもFlashは良かったと思うのだけど。
そしてなぜか私には、Flutterが当時のFlash(Flex)と同じに見えてしまう。それはJavaScriptという標準技術を使った開発の苦労をすっ飛ばして未来を見せてくれる技術だからだと思う。
Dart言語は素晴らしい
JavaScriptやTypeScriptに比べてパワフルかつ素晴らしい。Javaジョッキーとしてのキャリア17年生の自分にとって、Better JavaはKotlinではなくDartなのでは?とも思う。とにかくわたしは貧弱なJavaScriptから逃げたいんだ。というかNode.js生態系が嫌なんだ。Pubの方が美しい。
Dart言語の仕様を絶賛しているのは、日本ではドワンゴとかいう、憎悪犯罪を擁護するようなク、じゃなかった、現政権のように差別主義者を擁護する会社に在籍しておられる、江副ナントカいう天才C++エンジニア様だけなんだよな。名もなきJavaジョッキーたちは、もうちょっと騒いでもいいんじゃないか?
Flutterの開発案件ありませんか?
まずはトライアルとして、数画面作って、サーバーはFirebaseを使って、それくらいの規模のモックを作って、良さそうなら予算を増やす、みたいなお試しで採用してみませんか?iOSとAndroidのアプリ開発に予算を2倍掛けるなら、Flutterの方が工数が掛かりません。御社はスタートアップで、開発速度でライバルを出し抜きたいのでしょう?それならなぜ、ライバルと同じ技術を採用するのですか?Flutterの開発効率が「常識」になる前に、ノウハウをためておけばよいのです。
そんなマルチプラットフォーム技術ならReact Nativeがあるじゃないか、とか思うじゃないですか。
米Airbnbは、React Nativeの利用を取りやめてネイティブアプリにシフトすることを6月に発表した。理由として、初期化の問題や未成熟さといった技術的な要因を挙げている。また、エンジニアが専門外のプラットフォームについてデバッグを余儀なくされるといった組織的な問題も生じていたという。AirbnbがReact Nativeに傾倒していたために、iOSやAndroidのエンジニアの中には、同社の仕事の応募に二の足を踏む人も多かった。
https://tech.nikkeibp.co.jp/it/atcl/idg/14/481709/082000458/?ST=cio-appli&P=2
GoogleはDart VM生態系に本気だと思う
私、React Nativeも、ネイティブアプリも開発実績が無い癖にこんなことを言っても信用されないと思いますけど、2019年時点での、スマートフォンにおけるマルチプラットフォーム展開の最短距離はFlutterだと思います。
そうはいっても作ってるのはGoogleでしょ?あの会社、見込みがない技術はすぐに捨てるから怖くて採用できない、とか思ってますか?そのとおりです。ですけど、Flutterは生き残ります。これも「お前Googleの社員じゃない癖に何を言ってるんだ。信用できない」と仰りたい。そのとおり。しかしGoogleはDart、というかDart VMは殺しませんよ。Googleは今、Fuchsiaという新OSを作っていますけどこの上に乗せるアプリケーション実行環境として、Dart VMを採用する筈です。Android?あんなダセーOS(Linuxの事ではない)とダセーJavaなんかでiPhoneに勝てるわけないでしょう?「何言ってるんだコイツ、Googleの偉いポジションでもなければAndroidの開発経験も無い癖に」って思いましたね?正解です。正解ですが、Android開発なんて、一口齧っただけでも吐き気がしましたよ。もうクライアントでJavaを採用するのは止めよう。Java Swingの時代からこっち、あのニセモノっぽいUXにはうんざりなんだ。Flutterもニセモノだって?そうですけど、どちらがよりマシなニセモノか?という話です。Dart VMって速いんですよ。沖ソフトウェアだったかの中の人がDart VM上にLispインタプリタを実装したらえらい速かったというページがあったのだけど、今検索したら見つからなかった。
Fuchsiaの開発が進んだら、そしてFuchsia上のAndroidアプリエミュレータが出来たら、Googleは5年以内にAndroid OSを置き換えますよ。Flutter 1.5でmacOSとWindowsでもFlutterアプリが動くようになるようですし、GoogleはDart VM生態系に結構本気だというのが、私の意見です。
Androidは意味が無かったわけではない。旧Android社をGoogleが買収することによって、巨大なスマートフォン市場の半分に食い込めたのですから、これは価値ある買収でした。Microsoftを見てください。PC時代の勝者が、スマホ時代には付いてこれませんでした(ビル・ゲイツが「生涯最大の失態」と呼ぶほどの)。
しかしAndroidの限界は、Javaにとっての限界であると私は思います。Javaだって悪くないのですが、それはJavaが登場した1990年代中盤に、C++と比べてメモリ管理が無いから楽だよね、という「悪くない」です。
Androidの、あの洗練されていない見た目、カクカクの操作感、そして開発者にとってのAPIの混乱。このままではiPhoneに勝てない事は、業界最高水準の頭脳集団である、Googleのトップエンジニア達は当然認識している筈で、だからこそFuchsiaを開発しているのだと思います。Goは知らん。
それで、何の実績も無いアンタ誰?
私は数年前からDartを密かに応援していた者です。証拠はプログラミング言語DartのAmazonレビューの日付参照。