最近、ブログで長文を書く体力が落ちてきているので、かんたんに書こうと思います。
- Flutterが流行ってるようです
- Flutterエンジニアが足りてないようです
- iOSエンジニア、AndroidエンジニアはなぜFlutterをやらないのか?
- Flutterはどのくらい工数を圧縮できるのか?
- Flutter案件は今後更に増えるか?
- iOS/Flutterエンジニア、めちゃくちゃ少ない説
- Android / Flutter / iOSで分断が起こるのでは?
- SwiftUI+combineは増えてる?
- iOSエンジニアが問われる、SwiftUI or Flutter
- 結果、人材不足が予想される
- 新人に期待はできるか?
- まとめ
- 補足
Flutterが流行ってるようです
流行りそうとか、そういう「かもしれない」ではなく。
- ベンチャーの新規アプリ案件のFlutter率が明らかに高く以前より上がっている(半分を超えている)
- エージェントの立場でもFlutter案件がだぶついている認識らしい
という意味で。
(なおFlutterが良いか悪いかは今回は言及しません)
ただし、これはあくまでプロジェクト立ち上げ期における観測で、全体のプロジェクト数で言えばFlutterが過半数を行っているわけではないし、行かないと思います。今の所。
Flutterエンジニアが足りてないようです
足りてないので、募集が多く、一見するとFlutter案件がかなり多いように見えます。
これは以前RxSwiftで発生した現象と同じですね。需要過多、供給不足です。
iOSエンジニア、AndroidエンジニアはなぜFlutterをやらないのか?
大多数のモバイルアプリエンジニアは目の前にiOS/Androidの仕事がありますから。変える理由がありません。
フリーランスはどうかといえば、それもまず目の前に仕事がありますし、現状「ベンチャーの新規案件」という文脈でFlutterが多いわけですから、別に単価が上がるわけでもないわけです。Flutterの最大のメリットはコストカットですしね。
そう言う経緯で目の前の仕事が枯渇しない限り、Flutterに積極的に移行する人は限られると言う認識です。(あとDartが嫌)
ベンチャー側がFlutterを採用してるのは、さほど大きな理由ではないと思っています。「何か流行ってるしコストカットできそうだしGoogleだし」くらいで、なのにエンジニアの人材不足で「あ、やべ」となってるところが多い印象があります。まあモバイルアプリエンジニア全体が少ないのでどちみち人は居ないんですけど。
Flutterはどのくらい工数を圧縮できるのか?
噂レベルですけど、iOS100, Android100で合計200なのを、Flutterにすると130〜160くらいらしいですが、ただアプリのクオリティが若干落ちるので、それがどこまで売上に影響するかですね。
ただ、これは工数の話であって、もし今後Flutterエンジニアが足りなすぎて単価が上がるようなことが有ると話が変わります。もし1.5倍なんかになったらコスト変わらずです。
あと補足すると、Flutterはディレクション工数とテスト工数が若干少なく済むのでそっちのコスト圧縮にもなるかもですね。
Flutter案件は今後更に増えるか?
ほとんどのiOS/Android案件ではFlutterリプレースは起きないという認識です。
コストで考えれば「リプレースに伴うコスト<Flutter化でカットできるコスト」になるのはあまりないんじゃないかと思いますし、人材を入れかえるのか問題もあります(個々人のキャリアにも影響するので重い決断ですよね)。そしてアプリのクオリティが上がるわけでもありません。
コスト・人材・品質・納期で考えて、良さそうなのが納期のみです。
ただ、新規アプリがFlutterを採用するケースは多くなる(既になってる)と思います。特に受託やBtoB、Androidメインのプロジェクトでは多くなるでしょう。そして一回Flutterを採用したら、iOS/Androidに分けるのも結構厳しいです。
この場合は、コスト・人材・納期の全てでマイナスになるわけですから。あり得るとしたら
- 最速リリースを目指して一旦Flutterでやったが元々リプレースするつもりだった
- Flutterでできない機能が出てきた
- 金と時間にある程度余裕があって、もっと品質を上げたい
- Flutterエンジニアがあまりにも居ない
くらいでしょうか。
なおこの話は次の「iOS/Flutterエンジニア問題」も関わってきます。
iOS/Flutterエンジニア、めちゃくちゃ少ない説
当然ですが、Android/Flutterエンジニアはそこそこ数が出ると思いますが、iOS/Flutterエンジニアはどうでしょうか?
それはつまり、今進んでいるSwiftUI+combine化をちゃんとフォローしつつFlutterもやっていける人材なわけで、そんなやつどんだけおる??という印象です。
じゃあAndroid/Flutterエンジニアに全てお株を奪われるのかといえばそうでもなくて、彼らもiOSの知識が必要になってくるので、結局全部フォローするのは誰にとってもきつくなってくるはずです。
Android / Flutter / iOSで分断が起こるのでは?
多くの案件を抱える受託企業であったり、私のような馬鹿みたいに案件数をこなしているワーカホリックでもなければ、Android/Flutter/iOSの2領域を続けるのは結構きついと思っています。
受託企業では3領域のうちの1.5領域について詳しいみたいなところを目指すのではないかと思いますし、フリーランスはどうするんでしょうね?敢えてFlutterに飛び込もうとする人はそれなりに居ますけど、需要よりも少ないんじゃないかと予想しています。現に案件がだぶついてますし。
SwiftUI+combineは増えてる?
増えてます。私も最近SwiftUIしかさわっていません。
来年もっと増えると思います。iOS15まじで切りたいです、という雰囲気です。
iOS16で安定すると思っています。
あと、Appleがそろそろ強制移住させそうだなーって危惧してます。
iOSエンジニアが問われる、SwiftUI or Flutter
まあ大抵のエンジニアはプロジェクトや会社次第なので選択できないんですが。
受託企業だったり、フリーランスだったりする場合、まずどっちを攻めるかという選択が迫られます。両方は無謀です。
注意したいのは、FlutterもSwiftUI+Combineも、まだ成長途上で書き方が毎年バンバン変わっていることです。キャッチアップやフォローするために、勉強だけでは追いつかないという認識です。
結果、人材不足が予想される
たとえば1領域に3000人の技術者がいる場合と、3領域に1000人ずつ技術者がいる場合。
どちらがより人手不足が起こるかといえば、後者ですよね。人材の再配置がうまく出来ないので。
これはRxSwiftの時に強く感じました。モバイルアプリ市場はこれまで以上に人手不足が厳しくなると思っています。
新人に期待はできるか?
できません。
モバイルアプリ開発はそれなりに歴史を積み重ねすぎてしまって、覚えることが多すぎます。iOSだけだって今ならUIKitとSwiftUI、旧来のオブジェクト指向的プログラミングとCombineのような新しい書き方を両方覚える必要があります。FlutterならiOSとAndroidの両方について詳しくならなきゃなりません。
だから本当は育成が必要なんですが、モバイルアプリ開発はWebとは違って少人数体制であることが多く、育成なんてほぼありません。
てかどうなんでしょうね、今から始めるならWebの方が良いんじゃないですか?20年後もありそうだし、私はモバイル好きなのでWebには行きませんが。
まとめ
プロダクトオーナーには厳しい時代が続きます。
モバイルアプリエンジニアのフリーランスには嬉しい時代が続くと思います。
新人には「仕事はあるけど育成はない」が続きます。
てか、モバイルアプリの育成+人材紹介って需要ありそうですよね。
Web方面とかの人材枯渇具合ってどうなんでしょうか?モバイルほどではないと思うんですが。最近全然情報が入ってこなくて。
補足
私が分かっていないのは、Androidの新規アプリを作る際に、Flutterを採用することでデメリットがどのくらい有るか?です。もしデメリットゼロに近いのであればAndroidエンジニアがそのままFlutterエンジニアにスライドし、kotlinが絶滅する格好になりますし、そうなると今回の予測もちょっと外れてきますよね。
誰か教えて下さい。
あとGoogleとAppleがどう思ってるのかも謎です。マテリアルデザインが若干iOSっぽくなったのはFlutter意識してのことなんでしょうか?