00:01
今回もAirSapやっていきましょう。
今日は79回目ということで、最近話題のFlutterについてゲストを招いて話してみようかなと思って、結構皆さんに集まってもらいました。
で、今日はですね、前回最初の方に、AirSap最初の方にゲストで来てくださった菅原さん、それからFlutterを開発バリバリやってらっしゃる松浦さん、阿部さん、
それから最近Flutterを初めてiOSから移植してガリガリやってらっしゃる小林さんと、あといつもの若林さん、そして私水口の合計6名で収録しています。
Flutterについていろいろ話していきますので、楽しんで聞いていただけたらと思います。よろしくお願いします。
お願いします。
Flutterの話するのは、実は今回2回目なんですよね。
前回2019年の5月の収録で、実は今日来ている阿部さんに来ていただいて、Flutterの話をね、実はしてるんです。
だから3年ぶり。
もう3年経つんだ。
そうそうそうそう。
コンテストで盛り上がったよね、あれね。
そうそうそうそう、Flutterのコンテストに阿部さんが出してみたいな。
あれね、なんかデジタル証明書送るよって言ってから連絡来なくてね、届いてねえよって送ってもね、無視されてまだ来ないんですよ。
何なんですか、デジタル証明書って。
なんかね、ブロックチェーンでGoogleにコンテストに出したっていうのを証明するやつを、証明書を出すよっていうのを最初売りにしてたんだよね。
あとはMac当たるとかってそういうのもあったんだけど、参加賞がとにかくブロックチェーン由来の証明書がGoogleから発行されるっていうから、
これすごい張ったり効くな、いいなって思ったんだけど、俺なんかもらってないんだよ。
なのに、Flutterのイベントででっかいスクリーンに俺の作ったテトリスが表示されてるのにもらえない周知をされて、もう許せないって気持ちになった。
すごいコメントしづらい話から始まった。
だいたい私を呼ぶとそういうことになります。
じゃあもうその流れでね、Flutterって何だろうみたいな、今回ね、初めてFlutterっていう言葉を聞く人も結構いると思うので、
なんとなくFlutterって何って話を、じゃあ安倍さんにしてもらおうかな、この流れで。
そうですね、このFlutterはやっぱりソフトウェアを作る人たちのロマンが詰まってるんですよ。
03:00
みんなXamarinとかCordovaとかTitaniumとかいろんなのがあったんですけど、もう今見る影もないですよね。
あれですね、マルチプラットフォームでアプリを作れる環境としてそれらがあったけど、今生き残ってるというか。
昨日あったの、一番最後に出てきたReact Nativeが全部いいところをかっさらっていったんじゃないの?
違うのあれ、Xamarinとかってもう誰も使ってないんじゃないの?そんなことないのかな。
React Nativeはまだ効きますもんね。
だってあれReact Native確かマイクロソフトも使ってるでしょ?
なんかね、iPad用のオフィスがReact Nativeって聞いたんだけど。
確かにそうですね、聞いたことあります。
なんでお前らXamarin使わねえんだよ、Xamarinで作り直せよ。
ひどいでしょあの人たち。
だって人には素晴らしいマルチプラットフォームのツールですとか言ってビジュアルスタジオとXamarinが最高だみたいなことを言っときながら自分たちはオフィス作るのにReact Nativeだよ。
もうはーってなるよ。
そういうことなんですよ。
それを言うとAppleも同じなんだよね。SwiftUIとか出してるけど自分たちはあんまり使ってないでしょ?
使ってる使ってる。
そんなに使ってる?OSは書いてない?
OSは書いてないけど、天気アプリとか株価とか。
そんな中学生がやるようなことをやっても納得しないんだよ俺らは。
もっと自分たちですごいの作ってみんな使えって言ったら熱狂するのにさ、画面ちょろっとロードするだけのビジュアルスタジオみたいなの作って使ってますよなんて納得しねえよ本当に。
そういうことなんですよ。SwiftUIも。
結局Flutterとは何かっていう話がまともにされなかったので。
しまった。
最初に言ってたよ、ロマンが詰まってるって言って。
ロマンが詰まってるね。
今までの環境と違ってどんなところにロマンが見られるのかっていう。
ちゃんと動くとろうよ。
ユニティの次にちゃんと動くから結構感動してるんだよね。
Googleが作ってるんですよね。
そうですね。
これ最初からGoogleだよね。
最初からGoogleですね。
そうだ、そのダートとFlutterが出てバージョン1.いくつの時にもうなんか世の中に出ないで中断しちゃってたんですよ。
ベータみたいな。
そうです。唐突に3年くらい前にベータが取れてリリースして世の中がドヨメイたのがその3年くらい前ですよ。
06:04
でもその時すでにコトリに出てたんだよね。
コトリに出てたんだよね。
コトリはありそうですね。
みんな使ってたからなんでコトリをリリースして安定して使えてる時にこんなの出してきたのっていうのが世間ではこう思ってたんじゃないかな。
あれ結局自分のところじゃないからじゃないですか。勝手にやってる。勝手にやってるだけだから多分気にしてないというか。
でも公式としてコトリとAndroid Studioを買ってるっていうか支援はしてるんだよねGoogleはね。
そうなんですね。
オープンソースだからそういうオープンソースやってるというように支援をしてAndroid用の開発環境を用意してもらってるっていう。
だからちょっと整理するとFlutterはGoogleが作っているアプリ開発の環境でマルチプラットフォームでAndroidだけではなくてiOSとか最近だとWindowsとかMacとかWebとかも作れる開発環境で。
Googleは元々Android用にAndroid StudioとJavaで書けるようにしててそれがコトリンっていう言語も出てきてそれと同じようなタイミングでFlutterが出てきたのがちょっとおかしいよねみたいな話ですよね。
でもあれって確かコトリンとかってJetBrainsが作ってるんですよね確か。
確かそうですね。
しかもJavaの上って動いてるんでしたっけ。
Java互換があるってところがいいのか悪いのか。
Java互換があるのがGoogle的にはリスクで、
オラクルが権利を持ってるから多分そうじゃないオプションを1個持っておきたいっていうインセンティブはずっとあったんじゃないですかねきっと。
そうだね。オラクルでJDKが配布するのやるとかやめるとかってなって揉めてたもんね。
揉め事もありましたよね確かね。
ちょっと今どうなってるかよくわかんないんだけどJavaね。あんま使ってないから。
今すごく盛り上がってきているFlutterという開発環境があって、
今今日はゲストに来ていただいた方はなんやかんや触ってるかなんやかんや一言言いたいかみたいな。
てかFlutterそんなに盛り上がってるの?
盛り上がってる気はしますね。
そうなんだ。なんかiOS使ってる人Flutterで盛り上がってる感じしない気がするんだけど。
僕の周りだとiOS、Android両方開発する。
09:05
受託開発とかだと割と引き合いがあってって感じですね。
どっちもやりたいというか、iOSの人もやりたいしAndroidの人もやってるって感じですね。
そんな盛り上がってるんだ。
なんかTwitterとか見てるとね、Flutterやってますみたいな人いっぱいいますよね。
いやこれ単に新しいものだから、先駆者がいないからやっとけばでかい顔できるからやってるんじゃないのこいつらって顔は感じはするけどね。
そうなんすかね。
だってやってる人いないから自分は日本の第一人者ですよみたいな顔、
Twitterでやたら投稿してる人とか見てると。
それだけなんじゃねえのって気はするけどね。
あとは個人開発で両方やらなきゃいけないような人とかにも人気あるかなって印象ですね。
例えば今iOSやっててAndroidのKotorinとかJavaで作るのは結構重いのでFlutterでやろうとか、
あとはそもそもFlutterで書いちゃえば両方リリースできるのでいいよねっていう話もあるので、
やる気のあるって言っていいのか、受託系の会社と個人開発っていう印象ですね。
個人開発はそうですね、iOSとAndroid両方作ってますけど、
本当に同じ機能をSwiftとKotorinで2回も書かなきゃいけないのは毎回面倒くさいなと思ってました。
そうですね、ビジネスロジックをワンソースにしたいっていうのも割と聞くので、
KMMとかありますけど、Flutterでロジック組んじゃえばUIも一緒だけど、
そういうロジックの部分、計算的な、そこが共通だから楽っていう話も聞きますよね。
確かにね、2回仕事しなくていいのはすごい魅力的なんですけれど、
実際にはAndroidとiOS一人でやっちゃうと2倍の仕事を背負い込むことになるんですよ。
極めて現実的な話をすると。
そんなのね、短期間でプロトタイプ作るぐらいならいいんだけどね、
継続してずっと仕事で、じゃあお前AndroidとiOS2つ全部よろしくって言われると結構ゲロ吐くよ。
そうですね、これは後でもうちょっと詳しい話をする時に出そうなんですが、
高数削減ではあまりないっていう。
一つだから半分だよねっていう話、半分というか、
要は一つのiOSだけ作るやつでついでにAndroidも作れるっていうよりかは、
12:00
全然労働時間が2分の1で両方できるかという話でもないので、
ただワンソースの魅力はみんな感じているのかなとは。
感じているけど、それはでも自分のプロダクトを作る時はワンソースでしたいですよ、もちろん。
AndroidもiOSも両方いけるんだったら2回同じ仕事をしたくないけれど、
人の仕事を2回やる仕事を1回でやれって言われると、
なんでお前のためにそんなことをするのよ。
じゃあ金2倍積むのかっていう話をしないといけないと思うよ。
だってこんなめんどくさいことをやってコースを短くするためのノウハウとかスキルとかって
絶対個人が担保しなきゃいけないじゃないですか。
それをフラッター使えば半分ぐらいはいくんだよねって言われて、
同じ金半分って言われたらやる必要ないなと思う。
何なのかそこが個人で住宅でやってる人がこれを使うっていうメリットが私なおさら浮かばないんですよね。
安くやりますよってダンピングには変わんないんだよやっぱり。
AndroidとiOSを他よりちょっと安くできますよっていう風にやるのはやっぱりダンピングだから、
安売りしてるのと変わんないんですよね自分も。
個人の住宅というよりかは個人の自分プロダクトの印象があるんですね。
それはよくわかる。2回仕事したくない。
個人でやってる人は両方、要はより母数を確保したいからっていうので採用してる感じですね。
住宅で採用は結構よくわからなくて、
というのはリソースが足りないとかだったらアリなんですけど、
あとはAndroidの人がやるとかAndroidの素材を用意したり、さっきも言いましたけど、
そういう場合かなとは思ってて、
リソースがある状況でFlutterをやるっていうのは割とマーケティングに近くて、
多分お客さんの中でもFlutterっていうワードなんか出てるよねみたいな。
で、この会社Flutterできるんだ。
なんかいい感じに2つ作れるんでしょみたいな感じでその仕事につながってみたいな。
マーケティングが広報的に会社としてFlutterもできますよみたいな。
っていうのはありそうですね。
さて早くも結構盛り上がってきましたけども。
盛り上がってきた。
皆さんちょっとどういうスタンスなのかっていうか、
Flutterとの関わりとかそういうのをちょっと、
今誰喋ってるかもよくわからない。
自己紹介が。
15:00
話をしてもらいたいなと思うんですけど、
まず僕からですね。
皆さんお馴染み。
エアスワップではお馴染み若林です。
ちょっと触っただけなんですよFlutterは。
Flutterに関してはね、
ちょっと3年くらい前からたまに触ってみるんですけど、
結局うーんと思って会議的な感じで結局普通のiOSのネイティブ開発に戻っていくということを
2,3回繰り返したという感じの人です。
じゃあちょっと次水口さんに振ろうかな。
はい、水口です。
Flutterに関してはこの後出てくる松浦さんに話を聞きまして、
個人で出してるって言ってもほとんどアップデートしてないんで、
あれなんですけど、
出してるiOSのアプリを
アンドロイドの需要もあるので、
個人でね、
さっき菅原さんもおっしゃってたように、
個人のアプリを2つのプラットフォームで出そうかなというところで
ちょっと勉強しているというところですね。
まだ全然途中です。
じゃあ次は松浦さんに振ろうかな。
自分はどっちかっていうとFlutter用語派というか、
ガンガン言っちゃえみたいな感じのスタンスでいるタイプかなって思うんですけど、
3年くらい前からFlutterを見てて、
去年の末ぐらいに、
そろそろFlutter行けるんじゃないのかなっていうタイミングで、
たまたまちょっとiOSでアプリを開発してたんですけど、
Android版も出さなくちゃいけないっていう風になって、
Androidネイティブを学ぶかFlutterで行くかっていう選択肢があった時に、
じゃあちょっとFlutterで書いてみようかっていう形で、
ちょっとFlutterを導入してみたという感じですね。
iOSの方はネイティブで書いてたんですけど、
やってるうちに、
この感じだったらiOSもFlutterから書き出ししてしまおうみたいな感じになって、
今は某アプリなんですけど、
iOSとAndroidを両方ともFlutterから書き出すという形で、
仕事をさせてもらってるという感じですね。
これからFlutterを使ってWindowsとかWebとか、
今Webの書き出しもやってるんですけども、
そういうのが案外使えるなっていうところがあるので、
僕も受託ではやろうとは思わないんですけど、
自分のプロダクトとか、
設計の段階から入らせてもらってるプロダクトに関しては、
Flutterは今後使っていけるかなっていうような、
どっちかっていうと、
楽観的にFlutterを見てるっていう立場で、
今回ちょっと話させてもらえればなと思います。
よろしくお願いします。
じゃあ、
18:00
阿部さんは結構話してますけど。
そうですね。
多分DevSuppだと、
ベータ外れた頃からFlutter使ってるのって私。
あと誰いたっけ?
いないんじゃないですかね。
阿部さんは相当前走ってた感じがしますね。
全然使ってないんだよね。
Flutter最初やってたのは、
Xamarinを捨てれるかなと思ってて、
やり始めたんですよ。
確かにこれはXamarinよりすごくいいものだってことに、
当時から気づいてたんですけど。
やっぱり当時出始めた頃って、
ランタイムが遅くてデカかったんですよね。
でもこの3年ぐらいで、
モバイルプラットフォームのハードウェアの進歩も、
結構してきたっていうのもありますし、
ダートのVMの速度も性能がゴンゴン上がってきて、
この3年でめちゃめちゃアプリの起動とかも早くなって、
今ぐらい始めるのがすごい美味しいんじゃないかなって気はしてます。
私としては、個人でFlutterで、
TwitterのTwitterKitってライブラリが、
昔Objective-Cで書かれてたのがあったんですけど、
あれの置き換えをFlutterでやろうってやり始めて、
まだまだ終わってなかったんですよね。
2年ぐらいかけても全然終わってなくて、
その間にFlutterで公開された、
ハーピーっていうGPLのTwitterクライアントが出てきたんで、
ちょうどいいからこれ使ってやってやろうって風にやり直したのが、
たぶん2021年ぐらい、1月ぐらいかな。
そこからもう1年経っちゃってるんですよ。
全然家でコードを書かないで、
Splatoonばっかりやってたらダメだなって反省して、
今年の夏ぐらいからまた始めて、
ようやくちゃんとiOSで動くようにしたところ。
昨日審査出したんだけど、
いつものリジェクトされたんで頑張ると思うんです。
よろしくお願いします。
今ぐらいから始めるのが一番おいしいという話なんで、
今ぐらいから始めた小林トッチーさんに話を聞きましょう。
小林です。Twitterとかネット上ではトッチーと名乗ってます。
普段はiOSアプリをSwiftで開発してるんですが、
プライベートでは個人でアプリも出していて、
そちらはKotlinでAndroid版も書いていたりします。
Flutterに関しては去年の年末ですね、
12月末頃に入門して、
そこからガンガン勉強しているっていう感じで、
今はFlutterめっちゃ楽しいっていう感じで学んでいます。
サンプルアプリをいくつか実装したりだとか、
21:00
個人開発アプリの移植作業などを進めているという感じで、
まだリリースした経験はないですが、
開発体験などぐらいは語れるかなと思っています。
よろしくお願いします。
そして最後、菅原さん。
はい、菅原です。
AirSapは何回かお招きいただいて話しました。
僕自身は受託開発を、
ここ数年も受託開発しかやってない感じですね。
Flutterに関しては、
最近特にここ半年以内にめちゃくちゃ効くなって印象で、
またサマリンとかかと思ったんですけど、
意外とネイティブ開発者の人が書いてるってところで、
今までと流れが違うのかなっていう感じで気になっています。
僕自身はFlutterは全然書いてないんですけど、
Flutterを受託の案件で受注している会社さんと付き合いがあって、
そこでFlutterどうなんですかみたいな話を色々聞けているので、
そういった話で今日も話せたらいいなと思っています。
はい、という感じの6名でお送りしております。
結構収録始めてから時間が経ってますけどね。
ここまでが長い。
ここまでが長かった。
ここからが本題ですね。
本当最近流行ってるっていう言い方はあれなんですけど、
Flutter流行ってますよね。
Twitter上のタイムラインでは結構そういうFlutterで開発してますみたいな、
それだけのアカウントとかもあったりして。
でもそういう人って駆け出しプログラマーと繋がりたいとか書いてて、
もうすぐ結構外すんだけど。
ちょっとそういうこと言わない?
言わない言わない。
インターネットの闇ですから言わないの。
ちょっと印象深く残ってるのがサッカーのHonda Keisukeさんが、
最初Swiftに興味を持ってSwift勉強したいなってつぶやいたところに、
Flutterいいですよってどんどんリプライが飛んできて、
最終的にFlutterに流れてしまったというちょっと悔しい思いをします。
あ、Flutterに行っちゃったんですね、最終的に。
今もやってるのかちょっとわかんないんですけど、その時は。
最近見なくなったのに、そういえば。
開発で忙しいのかもしれないですね。
SNSどころじゃないのかな。
忙しい人は繋がりたいとか言わないですからね。
Flutterはお客さんからFlutterで開発できませんかっていう指定が増えてて、
それ結構びっくりしてて、
24:00
実際受注してる会社さんで見積もりとかどんな感じで出してますかって話を聞いたら、
IOSとAndroidで例えば1と1で2かかるとするじゃないですか。
その時の大体20パーぐらいマイナスか同額で提示する。
だから1.8から2。
多分期待されるのは1.5とか。
雑すぎる。
雑すぎるとかだと思うんですけど。
ただお客さん的にもFlutterやりたいっていうのは、
その工数を半分でできるでしょうっていう感じよりかは、
技術面の魅力で、
要は普通お客さん別にFlutterとか知らないじゃないですか。
わざわざ作りたいって多分そもそも発想としてないんですよ。
ないのに言ってるってことは、
技術面でワンソースでバグが少ないのかロジックが共通だからちゃんと、
理想的な話ですけど、
テストもちゃんと書いてワンソースをちゃんと確認してれば、
ちゃんとしたアプリができるというか、
っていうところに惹かれてるっぽい。
すごい幻想を掛けてるのがいつもの話だと思うんですけど、
やっぱり2つの仕事を1つにまとめるっていうのは、
2ついっぺんに動かなくなるってリスクを最初に考えるべきだと思うんですよ。
そこを忘れてる。
例えばiOSとAndroid別々でアプリを作りましたよ。
iOSの例えば16.1とかが出て、
突然アプリが動かなくなりました。
作り方が悪くて。
でもAndroidは巻き込まれずに動くんですよね。
ですよね。
それをFlutterを使ってて、
FlutterのランタイムがOSのアップデートで動かなくなると、
AndroidとiOS両方とも吹っ飛ぶんですよ。
そういうリスクのこと考えとくと、
ネイティブで2個作るって何も悪いことじゃないんですよね。
確かにリスク分散。
それってXamarinとかでも、
Xamarinだと結構違いますよね。
Xamarinの苦労をめちゃくちゃ聞いてたので。
Xamarinの苦労もあるしCordobanの苦労もあるし、
みんなそれぞれまとめると、
運用してる時の苦労が出てくるんですよ。
開発する時は構成減るかもしれないけど、
運用乗せた時に動かなくなった時の損をする部分。
そこをちゃんとヘッジしてるのかなって気が。
全然そこ分かんないんですよね。
そこを考えるんだったら、
絶対ネイティブでやったほうが安全安心なんですけど。
作る構成ばっかり考えて、
客着いた後の運用のことを本当に考えてるの。
本当に本当に本当にって100回くらい着いて、
こういう事例あって水穂銀行みたいになりますよって言わないと、
わからないんじゃないかな、あの人たちと思うので。
27:00
ちょっと水穂銀行はちょっと同じ土俵じゃない気がするので。
あれも3つの銀行のシステムを1つのシステムにまとめて、
それぞれにいい感じに接続しますよみたいな話ですよね。
水穂はフラッターだったんですね、概念としては。
まとめちゃいけないんですよね、そんなにたくさん。
そうですね、なるほど、確かに。
だってiOSだってバージョン1つ違うだけでさ、
なんかサファリンの挙動おかしくなって言わなくなったりするよ。
その場合って、要は共通ですけど、
iOSの場合だけこうするみたいなコードは書けるんですか?
ちゃんとね、イフ文でプラットフォームがiOSだったらこっち使ってっていう。
地獄みたいな。
それワークソースって言うのって言うと俺は違うだろうと思うけどね。
だってそんなのディレクティブ切ってコンパイルするのと何も変わらないもん。
タイタニウムモバイルとかサーマリンとかリアクトネイティブとかと同じような感じで、
フラッターはずってるけど、いつも言われる銀の弾丸じゃないっていう話ですよね、結局は。
そのリスクをね、発注する人がちゃんとわかってるんだったら、
はいはい作りますよってやるんだけれど、
その代わり運用何かあっても知らんですよって。
確かにそうですね。
なんかフラッターの、多分主に受託需要なんですけど、
なんか単価が、回ってくる単価がすごいバブルってて、
来たのは人日8万とかですね、人月160万のプログラマーってあんまないんですよ。
スイフトの普通のプログラムで人日8万とかってほぼ聞いたことないですよね、PMとかもっと。
その人日8万でブラウザでできる仕事をフラッターにさせるっていうのは、私意味全くわかんないんですよね。
そうですね、結局フラッターを選択したことによって単価上がっちゃってるじゃんっていうのが、
なんとなく予想は、こういう場合の単価って特急料金またはフラッターのスペシャリスト、
自分たちが解決できない問題を解決してほしいっていう上乗せみたいなイメージがあるので、
バブルってるけど需要があるっていうのは、この高単価でも解決したい人たちがいて困ってるっていう部分で、
自分がやりたいかはちょっと置いといて、フラッターかけるとこういうのでちょっとしたお小遣い稼ぎみたいな。
30:08
たぶんフルコミットではないような気がするんですよね。ちょっと困ってて10日とか5日とか、
そういうやつで日日8万の3ヶ月何件をみたいな話じゃないと思うので。
あれじゃないですか。調子こいてフラッター使い始めた会社がうまく動かなくて、
その道のちょっと始めてる人に何とかしようって泣きつくパターンなんじゃない?
そうですね、たぶんそれな気がしてるので。
それで一番おいしいよ。
おいしいんですよ。
ダメだよ。
使い方しちゃうとか言って直してちょちょっと動かして、はいおしまいって感じだから。
そうなんですよ。
めちゃめちゃおいしいよそれ。
だから意外とそういう長期的にはどうなんだろうと思うんですけど、
短期的にはフラッター詳しいは稼げそうだなっていう。
実際フラッターのコミュニティでもそういうやり始めたんだけどちょっとよくわかんないところがあるから、
助け手的な需要は結構あるみたいですね。
そんなの困る人たち。
使っちゃダメだよ。
自分で道を切り開けないやつがこういうポッドでのやつを使うなって感じですよ本当に。
説教しなきゃならない。
確かに。
あとはフラッターでちょっと忘れちゃいけないのは本当にあるかわかんないですけど、
GoogleのFuchsiaっていうAndroidをリプレイすると噂になっているOS。
それの開発環境になってるっていうのが確かスタートで、
その拡張というか後からですよね。
クロスプラットフォームでAndroidとかiOSできますって。
いや、もともとクロスプラットフォームだったんですよ。
iOSじゃないけれど、
VMができる前からJavaScriptのトランスパイラーとして動いて、
マルチプラットフォームを狙ってたんだよ。
だけどそんなんじゃダメだよねって思い直して、
ちゃんとコンパイルできるVMとホットスポットのVMちゃんと2種類作ってやってるから、
割と本気でマルチプラットフォームやり始めたんだよね。
そうですね。なのでそこがちょっと違うから、
Xamarinとかと違ってGoogle手動っていう部分でも将来性として、
Flutterの一時期のバブルっぽい感じもあるし引き合いもあるけど、
そっちが本当に実現するなら、何かありかなとは思いますね。
Fuchsia自体は今現在リリースされていて、
Google Nest Hubの中で動いてるんですよね。
あれめっちゃちゃんとアプリ動くようにしてほしいよね。
何もできないですもんね。
アプリを追加できるようにしたらめっちゃ欲しいんだけどさ。
なんでやらないんだろうね。
33:00
でもやっぱり家に末置きでずっと音聞いてて、
場合によってはカメラ回る機械にAndroid的なセキュリティーで物追加されるのはちょっと嫌ですよ。
そうなんだ。
開発環境自体はXcodeと比べてちょっと話変わりますけれども。
開発環境ってプログラムを書くIDEのこと?
そうですね。Android StudioとかVisual Studio Codeとか2つ使いますね。
これちょっと変わってるっていうか、
スイフトだったらXcodeだし、コトリンだったらAndroid Studioじゃないですか。
Flutterは開発環境を自社で持ってないんですよ。
Android StudioのプラグインでDartとFlutterを使うようにするっていうのと、
Visual Studio CodeのこれもプラグインでDartとFlutterを使うようにするっていうやり方してて、
独自の開発環境を持たないんですよね。
どっちかを使うしかない。Visual Studio CodeかAndroid Studio。
あとは例えばテキストベースの他のエディターを使って、
コマンドラインでコンパリとかデバッグすることもできますよ。
シミュレーターってなんとiOSシミュレーターのこと?
それね、各プラグインからAndroidだったりiOSのシミュレーターを実行するみたいなのがあって、
どこのシミュレーターにプロセスをつなげるかみたいなプラグインがあるので、
そういう設定ができるようになっています。
だからシミュレーター自体はXコードに入っているやつとかAndroid Studioに入っているやつを使う?
使う。それが必要なんですよね。
そうですね。Flutter SDKをインストールする手順の中にAndroid StudioとXコードのインストールも含まれているという感じです。
iOSでやるならMac必須。
そうだ、そういえば昔この手のマルチプラットフォームのソフトを作る人たち、
MacないからWindowsでXamarinで作っておいて、あとはMacでビルドすれば動くっていうようなことを理想としてやってた人たちもいたんだけれど、
動かねえからっていうのはね。
冗談の気にさ、昔のXamarinはライブラリのバリエーションがいっぱいあってて、
iOSとAndroidとWindowsで動かした場合はこのバージョンいくつのライブラリを使えとかってすごい変な表があったんですよ。
パターンがあってて。変なプリセットを使うとiOSでは動くけどAndroidはダメとかその逆になったりとか。
これパズルなのかなっていうのがすごい面白かったんだけれど、
そういうのをよくわからない人がよくわからない組み合わせのプリセットでライブラリを組み合わせてて、
ビルドしてAndroidで動くようにしました。
じゃあこのプロジェクトをiOSでビルドすれば多分動くよって渡したら、
36:03
いやそれは動かねえんじゃねえかなってなってたのね。
しかもそれも独自のUIがないとかあるとかそういう部分だったら全然構わないんだけど、
すごく深いプリミティブなライブラリの部分、暗号化のライブラリのSHA2があるとかないとか、
そういう部分でリンク失敗して起動できませんとか出てきても、
例えば受託開発でプロジェクトをもらった人がそんな根っこのライブラリのリンクが切れてるってやつなんて絶対わからないと思うんだよね。
何これ動かないよってしか言えないと思うよ。
そういうのがXamarinいっぱいあったんですよ。
でもFlutterに関してはよほど変なプラグインじゃなければ大体動くんじゃねえかなとは思うんだけどね。
なるほど、だから動くのがいいってことなんですね。
動くのがいいってこと。
まずは。
Xamarinは動かなかったときがある。
ネイティブ部分のバインドが広すぎて、結局そこに依存がひどいっていうか範囲が広すぎて動かないことが多すぎる。
じゃあ割とそういう部分ではFlutterはとりあえず成功はしてるんですね。
成功っていうか機種依存する部分をカバーする範囲がめちゃめちゃ広いんですよね。
広いんですね。
全描画する部分を全部自前で作ってるっていうのが正気の沙汰じゃない?
いやそうですね、そこが良いのか悪いのかっていう。
いや絶対良いと思うよ。
そうなんですね。
だってそこを中途半端に、例えばiOSはWebKitに依存させてAndroidはChromeに依存させますっていう風にすると。
タイタニウム。
AndroidのWebKitのバージョンアップで動かなくなったり、セキュリティだから次のバージョンでなくすねって言われて動かなくなったりするとこに振り回されるんですよ。
なるほど。レンダリングをWebブラウザー、Webのレンダリングエンジン任せにするとそこの差分できついから、もう自分でレンダリングエンジン作ったプラッターは割と安定して動かすことができると。
それを過去にやったプラットフォームはやっぱりFlashっていうのがあって、それは長らく使われてたんですよね。
だからFlashはAppleとJobsに嫌われて死んでしまったんだけれど、その仇を取るものが出てきたんじゃないかなと思う。
なるほど。Flashって言ってる人はいなかったですけどね。確かにそうですね。
あとはパッケージっていうんですか、Pub.devとかでいろんな機能をポンポンって追加できる、しかもレビュー付きっていうのがあって、
39:01
使いやすいのかな、安心して使えそうだなっていうような印象を受けるんですけど、どうですかね。
あれは面白いですよね。中央集約みたいな形で、そこを見に行けばライブラリが揃っているっていう場所が提供されているっていうのは、
iOSにもAndroidにもなかったなっていう感じはありますね。
とりあえずまずそこで探すっていう感じになりますよね。
それ公式のやつなんですか?
公式の。
じゃあちゃんと整備してるってことですよね、みんなに使ってもらうための。
そうですね。
iOSは最近Swiftパッケージマネージャーが出てきて、あれもでも探しづらいですもんね、結局。
探す感じじゃないですね。
結局GitHubで探して、どれに対応してるかな、Cocoapodsかな、とかSwiftパッケージマネージャーかなみたいな。
そうですね。
Cocoapodsの仕組みね、あれどっちが言ってたかわからないですけど、
今日たまたまFirebaseのドキュメント読んでたらSwiftパッケージマネージャーで入れるの推奨って書いてあったんですよね。
そうですね、最近ね。
推奨に変わったんですね。
Cocoapodsでも入るけどSwiftパッケージマネージャーで入れるの推奨と書いてあって、なんか変わったのかなと思って。
SPMの方が楽ですね、基本的には。
Xコードがちゃんとコンパイルしてくれるので、あと依存を、たまにおためなXコードは謎のエラーを依存解決できないとか。
キャッシュ削除しなきゃいけないとかはあるんですけど、だんだん安定してきて、Xコード上で要は追加できるっていう部分はいいかもしれないですね。
でもプロジェクト開いてすぐビルドできないの微妙にストレスじゃないですか。
わかります。
それはわかりますね。
ダウンロード始めますもんね、バック後ろで。
そうそう、でコンパイルしてんのかな、あの段階で。
そうですね、ちょっと早いですけどね、活性時よりかは早いですね。
両方同じXCフレームワーク作ってるんですけど、なぜかちょっとだけ早い気はします。
気はするというか、CIで回した時に明らかに早かったですね。
ココアポッドに近いですよね。
ココアポッドもビルド時に初めてフレームワーク作る、ダイナミックフレームワークをコンパイルする。
活性時はビルドフェーズより前にフレームワーク作ってそれをリンクするやり方。
SPMはその中間というか、Xコードを管理してビルド時にやるけど、
42:03
キャッシュとか管理系も全部組み込まれてるっていう、いいとこどりなのかな。
あんまりわかんない人でもXコードで追加できるのは楽だなという感じだと思いますね。
なぜかiOSの話になったので、このメンバーで話すとやっぱりiOSの話になっちゃうけども。
なぜかiOSの話になったところで、まだまだフラッターの話できそうなんで、ここで一旦全編終了ということで、
この後また後編でフラッターの話をしていこうかなと思います。
それではまた次回ということで、ご静聴ありがとうございました。
ありがとうございました。