1. TimeTreeラヂオ
  2. Androidチームについて聴いて..
2023-04-11 25:21

Androidチームについて聴いてみた #TimeTreeTechTalk

AndroidチームのAndyをお呼びして話を聴きました! MCはいつも通りエンジニアのZeale(@____lazy_____)とブランドのSteve(@Shinyawatanabe_)でお送りします。

インターネットが落ちた/AndroidだからAndy/Wear OSにも対応していきたい/Kotlin化 74%/AndroidX/非同期処理はKotlin Coroutines/greenDAOからRoomに移行中/OkHttp/OpenAPI Generator/Joda-TimeからThreeTenABPへ移行/Androidチームが「アレ」と呼ぶMTGとは?/職人集団

◎TimeTree Company Deck(会社案内資料) ⁠https://bit.ly/timetree_company_deck⁠

◎一緒に働く仲間を募集しています!(採用応募ページ) ⁠https://bit.ly/timetree_jobs⁠

番組の感想・コメント・ご要望はハッシュタグ ⁠#TimeTreeラヂオ⁠ でつぶやいてください!

サマリー

今回のTimeTree TechTalkは、Androidチームについての話題です。アンディが自己紹介し、Androidチームの担当領域や使用している言語・ライブラリについて話をする予定です。

アンディの自己紹介
どうも、アンディです。
どうも、ジールです。
どうも、スティーブです。よろしくお願いします。
よろしくお願いします。
はい、TimeTree TechTalkの今回はもう何回目かもちょっと忘れちゃったんですけど、
Androidチームからアンディにお越しいただいて、
Androidチームについて紹介してもらおうかなと思っております。
あっ、ジールが一回落ちたかもしれない。
あっ、子供にネットワークを切られたらしいです。
ちょっとじゃあ、ジール復帰を待ちつつ。
ネットワーク切られるってどういうことだ?
不思議ですね。
怖い。
もうそんな攻撃ができる年なんですね。
知能、攻撃ができる知能が。
アンディ家はお子さんアタックは大丈夫?
うちは大丈夫ですね。手の届かないところに置いてます。
これで大丈夫かな。
多分さっきの録音は大丈夫だと思うので。
はい、わかりました。
僕がいなくなっていることは特に気にしなくてよかったですか?
録音はね、繋がるはず。大丈夫なはず。
あっ、そうですか。
はい、びっくりした。
ちなみにネットワークが切れるほどのアタックって何があった?
電源抜かれたの?
電源ですね。全部の電源いかれました。
マジで?
ネットワークのルーターから全部の電源を抜かれました。
リール系は脆弱性が高いんじゃないですか?
脆弱は脆弱なんですよ。コンセントが下にあるんで。
セキュリティレベルが悪くないですね。
アンディに聞いたら、やっぱりアタックはあるらしいけど、
手の届かないところに置いてるって言ってました。
はい、そうですよね。
今度はそうします。
はい、では今回は冒頭に紹介したアンディにお越しいただいて、
Androidチームについて簡単に紹介をしていこうかなと思っております。
まず最初にアンディに軽く自己紹介をお願いしてもいいですか?
はい、アンディです。
Androidエンジニアとしてもう10年ぐらいになりました。
ちょくちょくウェブとかもやってたりするので、
途切れ途切れではあるんですけど、個人で開発してたりとかで、
およそ10年ぐらいです。
タイムツリーにご入社してからは?
4年経ちました。
4年か。
Android開発者だからタイムツリーでのニックネームはアンディ。
そうですね、わかりやすくアンディ。
とてもいい。
そんなアンディを今回お招きして、
いつも通り自由に進めていただきながら、
アンドロイドチームについて聞いていきましょう。
最初にそうですね、
アンドロイドチームというチームの担当領域っていうんですかね、
どこのチームでも聞いてるんですけど、
タイムツリーのアプリありますけど、
アンドロイド版ってことは想像できるんですけど、
他に何かやってるプロダクトとかってあるんでしょうか?
チームはタイムツリーのアンドロイド版だけです。
iOS版はウォッチとかもやってるみたいなのあるけど、
タイムツリーに関してはアンドロイドのスマホアプリですね。
スマホアプリが担当ということで、
他はちょっとまだ余裕がないって感じですよね。
余裕ができたらウェアOSとかも対応していきたいですね。
確かに確かに、そうですよね。
ピクセルウォッチとか出てきたので、
ちょっと盛り上がってくるんじゃないかなっていう。
確かに確かに、そういったところも視野には見えつつ、
今のところはスマホ版というところだけですね。
Androidチームの担当領域
ピクセルウォッチ、そうですね。
しかもマールUIでデザインしがいもありそうですよね。
今、アンディはつけてるみたいです。
買ってつけてます。
それの開発もいいですね。楽しみ。
結構そうですね。
自分もつけてた時期があって、
ウェアOS結構昔からあるんで、
つけてた時期があって結構便利ですよね。
アプローチとかもされてる方は多分イメージしやすいと思うんですけど、
やっぱり通知がそこでパッと見えたりとか。
直近の予定とか出したりですね。
あとアンドロイド版タイムツリーの中で、
例えばどういう技術、言語、
アンドロイドの場合はJavaとかKotlinとか、
そういうのがあるかもしれないですけど、
どういう言語で、あとどういう技術スタック使ってますよみたいなのを
ざっくりお聞かせいただけると嬉しいです。
言語はKotlinが基本的にメインですね。
神経は基本Kotlinで書いていて、
Javaもまだ残ってはいるんですけど、
基本的に神経では書かないです。
変更がある時はKotlin化してから変更を加えるみたいな形で、
Javaを減らしていくような形で進めてます。
テジュールとか影響範囲とかで難しかったらJavaのままで、
そのまま変更するようになりはするんですけど、
できるだけKotlinに変えていこうという形でやっています。
なるほど。
結構この辺りはアンドロイドエンジニアの方なら
わかるんじゃないかなと思うんですけど、
実際どれくらい今Kotlin化できてるとかっていうのはどのくらいなんですか?
今でいうと74%がJava24%という形です。
結構いってますね。
もうちょっとですね。
なるほどなるほど。
結構この辺の昔の言語から今の新しいモダン言語に切り替えるみたいなのって、
手入れやすいところは早く切り替わって、
手入れない機能は後になるみたいなの結構聞きますけど、
結構そんな感じですか?
そんな感じですね。
なかなか触らないところはやっぱりJavaのままになりやすいっていう形ですね。
そうですよね、確かに。
あとなんか言語、
アンドロイドの周りいろいろライブラリとかもあると思うんですけど、
こういうライブラリでやってますよみたいなのってざっくりありますか?
そうですね。
基本はAndroidXっていうアンドロイド公式が出してるライブラリとか、
iabaseとか使ってたりして、
非同期処理にRX使ってたんですけど、
徐々にコルチンを入れてきているっていう形。
使用している言語・ライブラリ
なるほど。
どっちかというとコルチンのメインストリームな感じなので、
そっちに使っていってるって形ですね。
その辺とかはモダンなコルチンとかにしていこうかみたいな時っていうのは、
どういう感じでコミュニケーションが発生して変えていこうってなっていくんですか?
そうですね。
雑談ベースとか定例とかで使いたいねみたいな話が徐々に出ていって、
ちょっと使えそうなところとかが出てきたら、
ちょっと準備してそれを入れてみるみたいなことをやって、
ちょっとみんなで触ってみるみたいな形で少しずつ入れてる感じですね。
なるほど。
それは誰かがそれの担当になるとかじゃなく、
なんとなく事故発生的にというか、
やってみようかなってやる人が結構いるって感じなんですか?
やっぱりそういう新しいものに感度が高い人が、
やりたいなあ、やりたいなあっていうところを気持ちを踏ませていって、
ちょっとタイミング見つけたから入れましたみたいな、入れてみましたみたいな。
なるほどですね。いいですね。
なんかこう結構どんどんやっていこうっていう感じの姿勢って感じですよね。
そうですね。
他にライブラリーとかそういったところって他にありますかね?
データベースのライブラリーを昔からあるアプリなので、
GreenDAOっていうライブラリーをやってるんですけど、
それが結構古いライブラリーなので、
新しいAndroid公式のRoomっていうやつに置き換えていってる。
これは完全に移行するのはいきなりは難しいので、
新しいテーブルから徐々にRoomを使っていくっていう形で移行してます。
すごいですね。なんかどんどんこの辺りのライブラリーも変わっていきますもんね。
そうですね。やっぱり公式というかスタンダードなものがどんどん出てきたりするので、
徐々に移行していく形で。
通信とかそういうあたりはあんまり変わってないですか?
通信はもうOKHTTPっていうやつである程度安定していて、
あとはオープンAPIを使ったAPIエンドポイントがあるので、
オープンAPIジェネレーターっていうので自動生成してあげるみたいな形のこともやったりしてます。
なるほど。確かに確かに。
最近タイムツリー内のAPIもそういうところを使って楽にやっていこうみたいなのがありますもんね。
そうですね。はい。
技術としてはそんな感じかなっていう気がするのと。
もう1つありました。
デートタイムライブラリーで日付関連の処理ですね。
それをJodatimeっていうライブラリーから310ABPっていうライブラリーに今移行しようとしている。
へー。
それはどういう感じの経緯で、どういうところがイケてなかったのかあるんですか。
Jodatimeは初期化が最初のデートタイムAPIを使ったタイミングで行われるんですね。
なのでそのタイミングで遅くなるみたいな、初期化が時間がかかったとなるみたいな形で、
そこで画面とかが遅くなってANRっていう画面が、アプリがフリーズしたみたいな形でちょっと止まっちゃうので、
それをアプリ起動時に初期化してくれる310ABPに移行している途中ですね。
なるほど。これあの有名なJakeさんのやつなんですね。
そうですね。はい。
有名なJakeとは。
ちょっとアンディー説明してもらおうか。
ごめんなさいね。水をさしたかもしれない。
いやいやいや。
Android界では知らない人はいないみたいな感じの有名なエンジニアですね。
ライブラリとか結構いくつか作ってたりして、すごい人って感じです。
そうですね。よく名前を見る方ですね。
日付回りね。私たちのサービスだと大事ですからね。
この辺りもちゃんとモダンなものにっていう感じかな。
じゃあ今度はちょっとそうですね。
さっきも少し他のメンバーの話とかも出ましたけど、
皆さんのチームのメンバーの雰囲気とか、
どんな感じでいつもやってんだろうみたいなのをちょっと聞ければなと思うんですけど。
アンディーは4年ぐらいですもんね。
4年って言ってましたね。
真ん中ぐらいですか?チームの中で。
そうですね。真ん中ぐらいですね。
今何人ぐらいなんですか?
今6人います。
6人の中の真ん中ぐらい。
4番目ですね。
全体としてはどんな感じでいつも定例とか、
集まりとかもあるんですか?
週1回の定例であれっていう呼ばれてる。
あれっていう会議ですか?
あれっていう会議、今週のあれをやりましょうみたいな感じで。
あれで伝わるかな。
あれで伝わるから。
軽く雑談したり、
先週と今週のやったことやることとは相談共有とか、
2週目陸のチェックとか、
リリースしてやるみたいな話とか、
ここでさっき言ったコルチン使いたいみたいな話とか、
そういった話もあったりします。
結構そこでいろいろ各自の進捗だったり、
相談とかが行われるってことなんですね。
そうですね。
なるほど。
それ以外にはどういう感じで、
普段は皆さん別々のプロジェクトとかに入られていて、
コード書いたらレビューとかもしますよね。
そういうのもPGAをまたいでやっていくって感じなんですか?
そうですね。
それぞれでプロジェクト分かれてるので、
お互いが他のPGAのコードだったりもレビューします。
GPGAに2人とかいたらその間でレビューとかしますけど、
1人だったら誰か近しい人がレビューしたりします。
アンディから見てでいいんですけど、
Androidチームの特徴
このチーム、このAndroidチームはどんなチームだと思いますか?
そうですね。
特徴的なのありますか?
プロフェッショナルなチームですね。
プロフェッショナルなチームはどういうところに出てますか?
職人的な感じでゴリゴリ作っていったり、
どんどん足直したり、どんどん依然したりみたいな感じで。
うちの会社はよく重戦車みたいな言い方しますけど、
結構1人1人の馬力が強くて、
ゴリゴリ開発していくスタイルが割と多いってことなんですかね。
そうですね。
なるほど。
それぞれで進めていくっていう形で。
結構そういう時も進む方向が被ったりとかしないもんなんですか?
ゴリゴリの方向が。
基本的にプロジェクトで分かれているので、
めちゃめちゃ被ることはないですね。
会社とかだったらクラッシュリティクス見てたりして、
ちょっと被っちゃったみたいなことはあるかもですけど、
基本的にそれぞれの方向で行っています。
なるほどなるほど。
結構そういう仕事ぶりみたいなところはプロフェッショナル感を感じましたけど、
例えば人となりって言うんですかね。
どんな人たちですか?この人たち。
雰囲気って言うんですかね。
結構落ち着いてる感じですかね。
落ち着いてる。
大人な感じです。
大人な感じ。なるほど。
ちょっと控えめな点はあるかもですね。
そうなんですね。なるほど。
僕が初めて来るくらいなので。
なるほど。こういう場には。
でもアンディも落ち着いてますもんね。
あまりこういうところには出てこないタイプなんですけど、
仮に出てくる人もいないので。
結構あれとかは好きって回してくれる人とかが、
アンディとかは結構回したりするタイプなんですか。
1週代わり2週で変わってファシリテーション変えるスタイルですね。
なるほど。そこはみんなで回してくれるんじゃないですか。
みんなで回してます。
あとそうだな、ちょっとさっき、
ライブラリとか使ってる技術スタックみたいな話とも
少し被りますけど、
採用してるアーキテクチャであるとか、
それを今後どうしていこうかみたいな話とかが
もしあればお聞きしたいですけど、
今採用してるアーキテクチャで言えば、
一言で言うとMVVMクリーンアーキテクチャみたいな形で、
ビューがあって、ビューモデルがあって、
ユースケースがあって、リポジトリがあって、
データソースがあって、
アーキテクチャの変更と新しい技術
基本的な構成で、
Androidのガイドトゥアップアーキテクチャから
大きく外れていないような形になっています。
あまり大きなことをやっても、
やっぱりキャッチアップコストとか、
新しい人が大変になるだけなので、
大きく外れないような方針でやってますね。
なるほど。
この辺りは結構以前から採用して、
日が経ってるものなんです?
そうですね。
僕が入社する前からだいたいこんな感じですね。
なるほど。
じゃあ結構全体がそういう感じには、
ちゃんとできてるって感じなのかな?
そうですね。
今のところそこにちゃんと合わせながら、
あとは流れも見つつ決めていくっていう感じってことなんですね。
そうですね。
あとそうですね、
そしたらAndroidチームの技術的課題、
抱えてる課題みたいなものがどういうところなのかみたいなのを
ざっくりお聞きしていけたらなと思うんですけど、
今例えばコトリン科がまだあと何十パーかあるよとかありましたけど、
他にもいろいろとどういった課題がありますか?
Androidチームの中では。
とにかくやっていかなきゃいけないことが多いんですけど。
なるほどね。
さっきのコトリン科も進めていきたいですし、
データベースライブラリのルーム移行もやっていきたいですし、
データタイムライブラリの3.ABPへの移行もやっていきたいですし、
あとビューの作り方で、
XMLベースからコンポーズの方へ移行していきたいっていうところもあったりして、
全方位やっていきたいっていう形ですね。
なるほど。
なかなかプロジェクトっていう事業を推進するようなことをやりつつ、
そのあたりもチームとしてはやっていきたいんだけども、
なかなか手が回ってないところもあるよねっていうことですよね。
そうですね。
新規から徐々に移行していくっていう形で何とかやっていってる感じですね。
確かに確かに。
そこはどんどん変わってきますもんね。
技術のスタンダードとか、
モダンなものが出てきてスタンダードが変わっていくみたいな感じでね。
じゃあそのモダン化みたいなところをどんどんやっていきたいってことなんですね。
そうですね。
なるほどなるほど。
作のスループットを落とさずに移行していくっていう形で徐々に徐々にやってます。
スティーブは何かありますか?今割と一通り行っちゃったんだけど。
いやなんか今みたいなアンディのコメントに職人感出てるなと思ってて。
普段のプロジェクトのパフォーマンスは落としません。
でもこっちもやってきますみたいな。
堂々と言い切る感じアンドロイドっぽいなみたいな。
確かに確かに。
本当にでも言った通りに黙々と進んで実現していってるっていうイメージがあって。
ちょっと他のチームとの比較は難しいですけど、他のチームは割とわちゃわちゃしてる感じが見えるんですよね。
大変そうだなーみたいな。アンドロイドは全くそれを感じ取れないから。
やっぱりそうですね、みんなプロジェクトとかをちゃんとやるっていうのは大事にしてるので、そこをやり続けて徐々に移行していくっていう形で。
やっぱり職人感ありますよね、プロフェッショナル。
面白いなと思って。チームの色とこんなに変わるんだなって。
あと僕もう一個面白い話題があって。
僕入社したの2020年なんですけど、その時実はアンドロイドチームのチームスラッグがプライベートチャンネルだった。
タイムツリーで唯一。
そうですね。恥ずかしがり屋が多かった。やっぱり。
何度か多分聞かれてきたと思うんですよね。なんでプライベートなんですかって。っていうのが徐々に徐々に。
そんなに差し迫った問題があったわけでもないし、公開しちゃいけないことがあったわけでもないし。
今のパブリックチャンネルとそう変わらない内容で話してたんですけど。
プライベートで行きましょうみたいな感じで濁していき続けていた。
歴史的背景がちょっと。
ずっと開国要求があったんですけど。
すごい話ですね。
ちょっと引き伸ばしてね。
引き伸ばして。
やっぱこうやって聞いて回ると本当にチームの色が出て面白いですよね。
そうですねね。
アンドロイドチームの個性
誤解を恐れずに言うと多分一番個性的なチームな気が、アンドロイドは。
確かにアンディが言ってくれたように、仕事に対するスタンスっていうか、みたいなのは確かにパリッとしてるかもしれないですね。プロフェッショナル感。
そこはすごい感じるな。
そうですね。
ちょっと例えるとでも、スーツ着たパリッとしたプロフェッショナルというよりはなんかこう、お館みたいなちょっと。
現場のお館感が。
そうですね。科目ですよね。
そうそうそうそう。
多分科目だけど、きちっと仕上げてくる感じの。
そうそうそうそう。
ありますね。
職人が似合うんですね。
そうそうそうそう。
職人、そうですね、職人。確かに確かに。
また今後ね、詳しいプロジェクトの何か話題とか、今日出てきた技術についてさらに深掘りする回とかも今後やっていけたらいいなと思うので、またよろしくお願いします。
はい、よろしくお願いします。
アンディ以外のメンバーもちょっと引っ張っていきましょう。
頑張って。
ちょっとなかなか来たがらないと思うんですけど。
はい、それではアンディありがとうございました。
はい、ありがとうございました。
ありがとうございました。
25:21

コメント

スクロール