「アプリの未来、可能性#1 -ネイティブアプリ編-」レポート(中編)
「アプリの未来、可能性#1 -ネイティブアプリ編-」では、長きにわたりアプリ開発に携わってきたDroidKaigi代表理事である@mhidakaをゲストにお招きし、ヤプリiOSエンジニア@k_katsumiとCTO佐野モデレーターのもと、「アプリ業界のこれまでとこれから」についてお話しています。
当日は「Google I/O2021振り返り」「アプリ開発の変遷・現在地 」「アプリ開発の未来」という3つのテーマでディスカッションを行いました。
今回の中編では「Talk2:アプリ開発の変遷・現在地 」についてレポートします。
前編はこちら
Talk2:アプリ開発の変遷・現在地
佐野:では次のテーマは「アプリ開発の変遷・現在地」ということで、これまでにどんな潮流があって、今をどんな時期と見ているか聞いていければと思います。岸川さんいかがですか?
岸川:まずはほとんどの人がスマートフォンを持っているということが前提になったっていうのがありますよね。今では行政の判断としても基本的にはモバイルデバイス向けのものから先に、と変わってきている印象です。Webで用意するよりも、モバイルデバイスに向けて用意したほうが多くの方に使ってもらえるという状況になっている。これが大きな変化だと思いますね。あとはユースケースもデバイスとしての能力を使うというより、サービスのフロントエンドのクライアントとしてのアプリケーションがすごく多くなりましたね。
日高:たしかに、そういうユースケースが主流になりつつありますね。
岸川:そういうものが増えてきたことで、アプリ開発でもデータのハンドリングとUIのマッチングをどういうふうにすればある程度の人数でうまく作れるのか、といったことが話されることが多くなってきましたね。
日高:ちょっと乱暴な表現をすると、昔って西部開拓時代というか、一人のカウボーイが頑張って自分の領地を増やしていくような。当時としては新大陸に見えて画期的だったという。ユースケースもやることも増えてきて、社会的意義も当然あるようになってきて、今はもう少しチーム戦になってきたというか。昔だったら確定申告をスマホで作ると聞くと「あ、やばいな」って思ってたでしょうけど(笑)
岸川:確かにそうでしょうね。でも、確定申告アプリはうまいこといってますよね?私はスマホでは確定申告してないですけど、ネットの情報を見ていると簡単だったって声もありますね。
日高:佐野さんは確定申告スマートフォンでやりました?
佐野:僕はWebでやっちゃいましたね〜(笑)
日高:Webネイティブの人ですね(笑)スマホになっているからといって複雑になっていると意味がないので、モバイルに合わせたワークフローと組んで価値を提供するというのが、開発者が今後考えていくポイントなのかなと。今それをリードできるような人たちって結局アプリの作り方を知っている人たちなので、立ち位置を見ながら提案していく必要があるんだろうなって感じます。そこかしこに課題があるタイミングなので楽しめるといいんじゃないかなと思います。
課題も多い分、モバイルの仕事はいっぱいある。
岸川:ちょっと前までアプリでどこまでやるのかっていう話もありましたが、それももう落ち着いてきましたね。ちょいちょいスーパーアプリ構想(*)みたいな話も出ますけど、期待しすぎずに捉えられるようになってきたというか。モバイルアプリに対する期待はこれくらい、といったリテラシーの部分かもしれませんが、開発者以外の方にも適正な期待を持たれるようになってきたというか。
(*) ひとつのアプリケーションに決済やメッセージ・商品紹介・予約・タクシー・出前など複数のドメインにまたがる機能を詰め込み、ひとつだけで完結する巨大なアプリへの統合を目指すことを指す
日高:そのあたりのバランス感覚っていうのが、アプリに一体なにを求められているのかっていうことに、しっかり芯を食った考え方をしておかないと、あれもこれもってなりやすい。概念としてできることの線引が受け入れられてきた背景からも、ミニアプリやマルチプラットフォームの話も出てきて、ネイティブのエンジニアにとってはすごく選択肢が増えてきていいなと。ただ今後どういうアプローチをすべきか?でいうと、迷うと思うんですよね。「KotlinやってればOK」という感じではなくなってきているので。周りにはいろんな通信プロトコルがあって、サーバーサイド技術が出てきて、やれGraphQLだっていうね。
岸川:それはもう究極的には全部の開発をやるっていう話にはなると思いますね。このiPhoneとかAndroidっていうのはデバイスの形がすごく丁度よかったでしょうね。これは個人的な意見ですけど、あと5年とか、もしかしたら10年くらいの間はこれに代替する画期的なデバイスとかプラットフォームは難しいと思います。やっぱり大きさとかも丁度よいし、そんなに無くしたりもしないし、持ち歩くにも邪魔にならないし、ぴったりハマるデバイスだったと思うんですよ。なので結局これにどんどん出来ることを増やしていくっていうほうが便利なので。モバイルデバイスにできることが詰め込まれていくし、広がっていくと思います。
日高:面が広がっている、というのが今すごく感じることですね。
岸川:チャンスはそこかしこにあるので、困ることはないというか。課題も多い分、モバイルの仕事はいっぱいある。
「結局は全部やらないといけない」
日高:AndroidだとJetpack Composeの話が出てきましたが、Composeの考え方っていうのはReactを中心としたリアクティブプログラミングが近いので、しっかりやっておけば他がわかり辛いということにはまずならない。裏側にあるアーキテクチャって実は似てるんだなって思いますね。
岸川:結局は技術選択に過ぎないので、制約が違うだけという。何で作るにしても自由度や限界や得手不得手がそれぞれにあり、SwiftとSwiftUIの知識でAndroidアプリが作れるかと言ったら、まぁ難しい。勉強したらいけるかもっていう話ですが。いわゆるFlutterやReact Nativeを使ったら、ある意味で両方を簡単に作れる部分はありますが、別の制約っていうのはありますよね。
日高:そうですね。逆にネイティブのカスタマイズしようとすると深い知識を求められる、クロスプラットフォームがフォローできないdomain-specificな部分なので、それをどう捉えるかで全然違ってくる。データに対するユーザーインターフェースとしてのスマートフォンというのが用途として増えている、というところだけ見ると効率的なんですけど。
岸川:そういう目的でいうと、UIの表現力がそこそこあって、データの構造が少し変わっただけでクラッシュしたりせず、チーム共通の開発としてのデータ構造とアーキテクチャが用意されていれば…というのが皆が求めているものだったりしますね。
日高:面のうち8割くらいはそれでカバーできますね。いわゆる動画編集であったり、カメラを使ったり、デバイスのセンシングといった部分はカバーできないですけど、分野によっては非常に価値が高いと思います。
岸川:どの技術にベットするかというのは難しい。とはいえFlutterはGoogleがやってるからいいんじゃない?って気はします。エンジニアの立場でいうと、自分がピンとくるものをやればいいんじゃないかと思いますね。
日高:お、いいですね。もし岸川さんが今リセットされて就職活動中の学生だとしたら、どの技術を選びますか?
岸川:リセットするんですか〜〜〜
日高:リセットしてみましょう!一回!(笑)
岸川:経験とかはリセットするにせよ、ずっとMacを使ってて...みたいのは残しておいていいですか?(笑)
日高:もちろんもちろん。
岸川:それでいうとやっぱり私はiPhoneを買って、iPhoneやると思いますよ。ノースキルだったとしても。
日高:なるほど。我々の感覚ですけど、モバイルっていうのは5~10年は大丈夫だと思っていて。外れたらすごい格好悪いんで、クローズドなほうが言いやすくて良いんですけど(笑)
岸川:いやそこは外さないですよ。そこは自信がありますね。
日高:僕の立場だとKotlin使ってればサーバーサイドもいけるし、クライアントもいけるし、言語自体もSwiftと似てて良い言語だと思うし、なんでも応用きくよっていう気持ちではあります。
岸川:まぁでも結局は、全部やらないといかんのですよ。エンジニアとしての価値というのは、ある意味そこにある。領域のかぶらないところに存在する問題というのを拾える人っていうのは大分価値のある人だと思うので。色々生きやすくなると思うんですよね。
日高:そういう意味でいうと黎明期、最初に比べると専門性が活きるジャンルになってきたなと思いますね。
岸川:そうですね。いろいろなところで、さっき話したような領域の間に落ちる問題が増えたというか。
日高:大抵のもの落ちますからね。(笑)
岸川:あとは向き不向きですね。自分にとって全然興味がない分野でも、人にとってはめっちゃ興味があることだったりとか。
日高:わかる。僕アニメーション苦手なんだけど…って時にやってくれる人がいると、人口ボーナスが効いてるなって思いますね。こういうのも業界自体が繁栄している、受け入れられているからだと感じます。
岸川:問題に対して取り掛かるツールとして、合う合わないは重要だなと思います。
日高:そういうツールがJetpack ComposeだったりSwift UIだったりで良いんですよね。
岸川:必要に応じて、そのへんをやらなきゃいけない時っていうのは当然来るので...
日高:逃げ続けるのは、無理ですね。
岸川:私もAndroidの仕事はついぞ来なかったからやってないですけど、その気になったら...というといろんな人に怒られそうですが(笑)究極的にはエンジニアとして全て自分でできるようになる、というのが目指すべきところだとは思うので。
日高:理想ですよね。自分で面倒見切れるっていうのは、やりやすくなることでもあり、追い込むことでもあるという。ただAndroidで特殊なのはライブラリが割とたくさんあって、機種も前のバージョンの互換が沢山あったりするのがポイントですかね。これっていう解決策はなくて地道にやるだけなので特に答えもないんですけど。
岸川:そういうのはAndroid開発の方に聞いたら教えてもらえますしね。
日高:知らなければ、知らないっていうコミュニケーションで全然OKですね。
岸川:そこは大事なところですね。やることが増えてきて、もはや会社とか個人でカバーできる範囲を超えているので。
日高:なのでOSSとかも使うだけじゃなくて、学ぶ対象だったり、良い知見を得ることもできますね。これまでは「会社が技術者を育成する」というのもあったと思いますが、今は「会社が技術者の育成を支援する」というのが多くて。
岸川:そうですね、多分そうしていくしかないですね。
日高:その会社独自の問題に注力していくのが重要であって、それ以外はどんどん外部に頼ったほうがいいですからね。
岸川:共通的な問題はそうですね。
日高:いや〜でも進化しちゃったなモバイル開発!
岸川:個人が何かを作って一点突破することは難しくなりましたけど、そのぶん再現性のあるキャリアを積めるようになってきたと思いますね。会社が変わっても「モバイルのエンジニア」というところであれば大半の業務は想像がつくというか。
日高:手に職ついてきた、という感じはしますよね。転職そのものの難しさはありますが、スキルという意味ではかなり一般化されてきてますね。
岸川:スペシャリストを目指しにくくなったというのはあるんですかね。逆なのかな。
日高:ジェネラリストも難しくなってるし、スペシャリストもどんどん深くなっているので。
佐野:これは難しいところですよね。
日高:まぁ簡単になることではないので。
岸川:無いですね、うん。私も結構苦労しているので。
日高:社会が複雑になっていくので、それを簡単にするのは誰にもできないはずですからね。
次回は「Talk3:アプリ開発の未来 」についてレポート予定です!(6/21公開予定)
告知:6/25(金)19:00-「アプリの未来、可能性 #2 -マルチプラットフォーム編- 」開催予定!
これからのヤプリを一緒に創りませんか?
現在株式会社ヤプリでは、複数ポジションを募集しております。これからの「Yappli」はもちろん、組織づくりも一緒にチャレンジいただける方、ぜひお気軽に一度話を聞きに来てください!