どうも、スティーブです。
どうも、ジールです。
どうも、シオンです。
どうも、ニーガンです。
TimeTree Tech Talk、今回2回目かな、始まりました。
はーい、始まりました。
よろしくお願いします。今日は4人です。
よろしくお願いします。
シオン、ニーガンが、iOSチームの2人で、今日手を挙げて出演してくれました。
まだね、2回目なのでかなり探り探りの収録、まだ続いてますが。
ここから数回は各チームいろいろ話を聞いて回ろうかなと思っているので、
今日は簡単なチーム紹介という回ですね。
最近というか、iOSチームって結構朝会とかやってますよね。
そうです。毎日朝会をやってるんですけど、朝会の監修というかがありまして、
まずオープニングとエンディングに何か映像を流すっていうのを続けてまして。
朝会のオープニングとエンディングがある。
そうですね。最初は景気づけに音楽かけるみたいなことをやってたんですけど、
だんだんセンタイモのオープニングとかを、シリーズを順番にやるみたいなところを流れになり、
今何をやってるかっていうと、歴代ゴジラ映画の予告編を見るというのをやっています。
予告編を見るっていう。
そうですね。
オープニングとかじゃなくてね。
予告編を見て、さらにその作品の解説を10分ぐらいやってます。
ゴジラの解説を調べながらやってる?
調べながらやってる。
あ、調べながら。
ここでね、たぶん聞いてくれてる人がだんだん分かんなくなってきてると思うんですけど、朝会の趣旨って何ですか?
朝会の趣旨は、普通に今何をやってるかと、相談事項を各自言うっていう。
その前後にね、ちょっと遊びを挟んでるという。
あくまでもゴジラはおまけですね?
そうですね。
そうなんですけど、すごいボリュームが最近ちょっとそちらの方に偏りがちっていうのはありますね。
大丈夫。
盛り上げ要素大事ですよね。やっぱりそういうことでね。
でもなんか盛り上がりすぎちゃうときがあると。
ちょっとみんな真面目なんで、しっかり調べて説明してくれるんですよね。
結構詳しくなりそうですね、いろいろ。天体に詳しくなるとか。
あと結構その時代時代のその社会情勢とかも含めて、非常に勉強になってます。
そのコンセプトはこういう背景から来ているとか、そういう話が出てくるってことですかね。
そうですね、あとはその当時の、例えば沖縄が返還されたから舞台を沖縄にしているみたいな。
時代背景があったりとかっていうのが、エンターテイメントを通して日本の歴史を学ぶみたいなところもあるので。
まあまあまあまあ、いいでしょう。
では早速今日の本編行ってみたいと思うんですが、いくつかそのチームについての基本情報を聞いていこうということで。
ジールに色々と用意してもらっているんですよ、話題を。
ちょっとジールにバトンタッチしつつ聞いていきましょうか。
iOSのプロダクトでどんな技術使ってるか、どんな言語を採用して、どんなアーキテクチャでとかっていう話とか、その辺りを聞ければいいなと思ってるんですけど、その辺りっていかがでしょう?
そうですね。
タイムツリー最初のバージョンが2015年とかなので、当時ちょうどSwiftが発表されたばっかりぐらいのタイミングだったんですよね。
はいはいはいはい。
なので、いきなりSwiftで書くっていうのはちょっとハードルが高すぎたので、オリジナルはObjective-Cで書かれてました。
そこから徐々に新しい部分をSwiftで書き始めて、今多分トータルでいうとSwiftの方が多くなってるかなと思います。
なるほど。
もちろん全部ネイティブで書いていて、アーキテクチャ的には割と伝統的なMVCを使っていて、
最近だとコンバインとかいうリアクティブっぽい感じのフレームワークを使えるようになってきたので、
MVVM的な感じで書かれているところもありつつ、ただ基本は伝統的な教科書通りのMVCみたいな感じになってますね。
こういう新しい技術の取り入れ方みたいなところとかっていうのはチームで結構話し合ったりとかするんですか?
そうですね。何かこういう風にやっていきたいみたいなのはチームで相談して決めてやっていったりとか、
あとは新しいプロジェクトが走り出した時に結構そこだけ今までとは別画面を作ったりするので、そこで何か新しいことを試したりとか、
最近だとSwift UIとかを導入していったりとかいうことをやっています。
なるほど。ウィジェットとかそういうところですかね、Swift UIって。
そうですね。ウィジェットはそもそもSwift UIでしか書けないみたいな制約があったりするので、
そういうところはもちろんそれを使ってますし、Apple Watchとかが出た時も多分そこも新しく作る部分なので最初からSwiftで書いたりとかっていうことはやってましたね。
なるほど。
最近のPGだとプレミアムとかでは割とSwift UIが使われていて、シオンが作ってくれた高速画面とかはもうフルほぼSwift UIですよね。
そうですね。あとプレミアムでいうと課金回りの開発をやったんですけど、そこもちょうどStoreKit 2っていう新しい課金回りが使えるようになったタイミングだったので、
それを導入することで結構楽に開発できた部分かなと思ってます。
結構その課金回りみたいなのは社内から聞こえてくる声としてすごい大変だったみたいな話をよく聞くんで、ここはぜひ別途詳しい話とか聞けたらいいなって感じですね。
そうですね。
今ちなみにSwiftとObjective-C、さっきSwift優勢みたいな話もありましたけど、何パーぐらいだと思います?
Swiftが50.6パー。
本当にちょっと優勢。
でもObjective-Cが8.1ってなってるな。ほんとか?C++が14パーもあるの?なんでだろう?
なるほど。でも体感的にだいぶSwiftの方が勝ってきてるっていうのがあると。
5対1ぐらいになってるっていうことですね、多分。
これそうですね。だいぶ優勢ですね、そうすると。
ちなみに今週自分が作ってた場所ももともとObjective-Cの画面だったものを今Swift化にするっていうので、2画面ほどSwift化にしましたんで、また多分そこの割合ちょっとだけ変わるかもしれないです。
なるほど。そういう意向っていうのは結構プロジェクトの進行と合わせてやれるところをやるみたいなスタイルでやってるんですか?
そうですね。
やっぱり手を入れてない画面はずっとそのまま残り続けているっていう感じですかね。
ちなみにニーガンがやった2カ所のページっていうのはどことどこですか?
NPSってユーザー満足度を測定する画面があるんですけど、そこの画面がもともとObjective-Cで書かれていて、
今回はプレミアム機能の満足度も取りたいっていうところで、
その機能を追加するタイミングで全部Swift化にするっていう風にやって進めてました。
ほんとにちょっとずつちょっとずつ今置き換えていってるってことなんですね。
例えばそのビルドするときのCIとかそういう環境っていうのはどんな感じなんですか?
そうですね。CIは基本今ビットライズを使っているんですけれども、
だいたいこのビットライズでアプリケーションのビルドだったり、
あとはFastlaneっていうアプリ開発、iOSアプリの開発するときに使っているタスクランナーみたいなものがあるんですけど、
その実行環境もだいたいビットライズを使ってやっています。
ただビットライズの方がプライシングがちょっと変わりまして、
今一応末置きでできてるんですけど、
新しくアップグレードすると新しい料金が提供されてしまうっていうところで、
今徐々にGitHub Actionsっていうものに置き換えを進めているところです。
今そこはじゃあ作業をしているところなんですね。
そうですね。ちょっとまだ進捗がかんばしくないですけど。
でもビットライズの料金の話は結構いろんなところが影響するっぽい感じなので、
多分ご存じの人多いと思いますね。
そうですね。あとはサンドボックス環境とかにアプリを配信するときは、
今はビットライズ経由でデプロイゲートを使って配信しているという形ですね。
なるほど。
それでテストアプリをみんなに入れてもらって試したりみたいなことをやってるんですね。
エンジニアじゃない視点からちょっと聞いてみたいんですけど、
その料金体系の話が出てきたんですけど、
やっぱりそういうコストとかは結構エンジニアの中でもシビアに見てたりするんですか?
そうですね。今回のビットライズの料金体系変わって、
ちょっと桁が変わるぐらいのレベルになったので、
さすがにちょっとそこは気になるみたいなところはありましたね。
結構現場から意識的に変えていこうみたいな話だったんですね。
そうですね。
桁が変わるだと確かにちょっとビビりますよね。
またメンバーの話とかを聞いていきたいんですけど、
さっきちょっとずつ平均的に入ってきてるみたいな話もあったんですけど、
どんなチームのメンバーの雰囲気っていうのは、ざっくり言うとどんな感じの雰囲気だと思います?
特に新しく入ってきたメンバーなのでニーガンとかから見て、
どういう感じの人たちだなって思われました。
結構朝会とかを経験してると、皆さんすごい喋るのが楽しいんだろうなってぐらい。
喋るのが楽しい。なるほど。
楽しそうにやってますか、朝会を。
朝会はもうなんでしょうね、さっきシオンが言ってたように、
今やってる、僕は勝手にゴジラガイロンって呼んでるんですけど、
ゴジラガイロン、はい。
ゴジラガイロン全員履修してると、もう静かに動画を見るというか、
意見をみんな言い合ってるっていうのがわきあいやとしていて。
そうですね、我々の中で履修をしてるっていう感覚ですね。
履修をしてる、なるほどなるほど。
ちょっと去年僕いなかったんですけど、
戦隊モード仮面ライダーガイロンの履修もしたかったなっていう。
今までのシリーズも結構良かったと。
ジールは仮面ライダーの時に専門家として抗議する側で来てもらって。
そうですね、シリーズ通して結構ずっと話に行ってましたね。
そういうコラボレーションもありなんですね。
で、あと週に一回iOS雑談会っていうのがありまして。
また喋るんかい。
当たり前と別なんですよね。
そうですね、それはちょっと僕立て付けまだよく理解してないんですけど、
基本的にはその週やってるプロジェクトの各自の進捗だったりとか、
あと共有したいこと、全体のチーム内で共有したいこととかをする時間をまとめて取るっていう意味で、
多分雑談会ってやってると思うんですけど。
そこも各自アイスブレイクですごい面白いネタを各自シーンで話していて。
で、それはシオンが毎回ラジオ化してくれていて、
社内ではそれを視聴する、聞くことができるので、それも楽しいんですけど。
何よりやっぱり雑談会の中でのやっぱりみんな喋るのが、
なんて言うんでしょうね、みんな好きなんだなっていうので、
そうじて仲がいいですね。
ちょっと説明すると、もともと
雑談会っていうのは週1あってそれしかなかったんですよ、もともとは。
目的として普段の進捗報告と、
それプラスチームメンバーの結束を強めるために雑談をするっていうのも半分目的として入れてるっていう形です。
朝会議はこのコロナ禍になってから、より密に話した方がいいなと思って始めたので、
そういう感じなんですけど、朝会の方でも雑談が徐々に幅を利かせてきたっていう。
なるほどなるほど、コロナ禍以降でさっきのシリーズの概論みたいなところがね、徐々に始まっていたんですね。
面白いですよね。雑談の部分を社内ラジオ配信しているというのが結構珍しいかもしれないですね。
結構好きで聞いてる社内の人もよくいるイメージですね。
いますよね。
あれでメンバーの近況を知るとかね。
そうですね。
あ、結婚してたんだ、みたいな。
急遽結婚が発表された回とかありましたよね。
結構あの場で発表する人が出てきてますね。
もう生まれるとか、結婚するとか。
それはね、社内の放送で乗るからね、という場合なのかもしれないですけど。
もちろん雑談もあるんですけど、結構意見の言い合いとか、
今回このプロジェクトでこういうふうにアプリの中の仕組みというか設計を変えるかもしれないというところで、
その雑談会の中で相談するということもありますし。
なので結構非同期での働き方の上での情報共有とかも結構盛んにできているのかなというふうに個人的には思っています。
なるほど。
結構僕から見ても、タイムツリーのエンジニアさんはみんな割とコミュニケーションの工夫をいろいろしているなって感じますね。
やっぱそれはオンラインが主体になったからっていうのもあると思うんですけど、多分以前からで、
やっぱ非同期のコミュニケーションというのを結構活発にさせとかないと、開発の効率が落ちるとか、
仕事に影響が出るっていうのがあると思うんで、
かなりみんな、たとえ雑談会というちょっと半分ふざけた会だとしても、みんなかなり真剣に取り組んでいるというか、感じる。
そうですね。雑談会だとはまた別に、例えば非同期での働き方で、個人的に思っていたのが、
例えばシオンとかシングが割とノーションにいろいろなドキュメントをまとめてくれているんですけど、
その内容がすごくわかりやすいですし、本人に質問する前にこのドキュメントを読めば大抵のことがわかるっていうような状況にはなっているのかなと。
なるほど。結構そういう文書化が進んでいるんですね。
意識しているかもしれないですね、その辺は。
なるほど、なるほど。
これあれですね、iOSが今回、iOSチームが第一弾で今ラジオ撮っているけど、いろんなチーム聞くと多分スタイルの違いとか出そうですよね。
スタイルの違い出そうですね。多分一番盛んだと思いますね、iOSチームが。
今、担当しているアプリとかプロダクトのコードとかCI環境とかでもいいですけども、
その中でざっくりどんなことに取り組んでいるかっていうのを、特に技術的な話題ですね、みたいなところを聞かせていただけたらなと思うんですけどいかがでしょうか。
はい、そうですね。
前のラジオでもあったと思うんですけど、今iOSチームでRebuildPJっていうもので走っていて、
僕も去年入社したときにオンボーディングでこのRebuildPJを最初やってたんですね。
このRebuildPJっていうのは何かというと、今RESTキットっていうフレームワークをタイムツリーのアプリで使っていて、
これがバックエンドからAPIで取得してきたレスポンスをアプリ内でモデリングして、
またアプリ内のDBに保存してっていうところを手軽にやってくれるフレームワークなんですけど、
ただそれがもうメンテナンスがほぼされてないのでそれをやめて、
もともとそれがオブジェクティブCで書かれてるっていうのもあるんですけど、
なのでこのタイミングで自前で作っていこうっていうところで置き換えていってるっていうのをやってるんですけど、
これがまだ100%完全に置き換わってないっていうところが今課題としてまだあって、
チームの中でも自分たちがやってるプロジェクトだったり機能の中で置き換えるタイミングがあったらその都度置き換えていってるんですけど、
というわけでちょっと先はまだ長いのかなと思いつつも、一応何とか進んではいるんですけど、
まだ課題感としては持っているっていう感じです。
チームの課題としては表に見えるところというより裏側のところが結構大事になってきてるっていう印象を感じました。
そうですね。
今日いくつか出てきたプロジェクトとか取り組みとかはまた今後の放送でも詳しく紹介できるところを紹介していきたいなと思っています。
じゃあ最後15秒ぐらいでですね、いきなり今思いついたんですけど、
今タイムツリーエンジニアさん全方位的に採用強化というか本当にいろんな人に来てほしいと思っているので、
最後15秒でシオン・ニーガンから採用アピールタイムとして何かメッセージを。
どんな人に来てほしいか。
そうですね。お聞きいただいた通りすごい仲の良いチームでわきあいあいとやっているとても楽しい職場なので。
とても楽しい職場。
興味があるはずなんて感じですね。
ピンときた方はそうですね。ニーガンからも何かありますか。
そうですね。やることがたくさんあるので。
我こそはという方と、あと多分朝会コンはもしかしたらNHKのアサドラガイロンとかが予定しているかもしれないので、
利収されたい方はぜひ購入していただければと思います。
アサドラガイロンちょっとだけ今興味持っちゃったな。
面白そうだな。
結構長いけどな。長い歴史だな。
長そう。
ゴジラも長いですよね。
ゴジラも長いですよ。1960何年とかから始まってますから。
すごいな。
ありがとうございます。じゃあ今日はiOSチームのチーム紹介ということで、シオンとニーガンにお越しいただきました。どうもありがとうございました。
ありがとうございました。