どくぴーの備忘録

真面目なことを書こうとするクソメガネのブログ。いつ投げ捨てられるのかは不明

Bonfire Android #2に参加してきた

お詫び

色々あって投稿が本当に遅くなりました。申し訳ありません…

はじめに

yj-meetup.connpass.com

11/6にYahoo! JapanのLODGEで開催されたBonfire Android #2に参加してきました。テーマとしては「Kotlin × サービス」ということで、Yahoo! Japan内外問わず様々なプロダクトでのKotlin採用に関するトークがありました。Toggeterはこちらになります。

togetter.com

まとめ

スライドのまとめ等はconnpassのページから見ることができるので、トークを聞いていて個人的に思ったトピックを幾つか…

導入・JavaからKotlinへのコンバート

やはりサービスでKotlinを導入するとなると新規開発はともかく、既存で動いているアプリケーションのJavaコードをKotlinコードへと置き換えるというケースが多く、その点に関してのお話をたくさん伺うことが出来ました。

  • とりあえずAndroid Studioのconvert機能で1ファイルずつKotlin化する
    • コンバートした後にCompanion Object内のvalconst valにしたりNonNull/Nullableの考慮をしたり
  • 既存クラス置き換えは良い勉強になる。とりあえず「習うより慣れろ」でKotlinの学習を進めるのもあり
    • もちろんKotlin Koansもとっても有効
    • よく言われているように自由度が高いのでチームとしてのベストプラクティスを持つのが大事だと思いました
  • 成長のためのKotlin導入
    • 「使う技術・言語は自分で決める。いい道具で仕事をしよう」という言葉が印象的でした
    • 成長したら/勉強したらやるから… -> いつ成長するの?いつ勉強するの?というジレンマ

エンジニア外から見たKotlin採用

特に興味深かったのが、スクラムマスター、ビジネスサイドと言ったメインでコードを書くようなエンジニアではない視点からの言及がいくつかあったことでした

  • Kotlin導入にビジネスインパクトはあるのか
    • 一応品質向上や広報効果といったインパクトはある
      • Javaと比較してNull安全であること等による品質向上
      • 最新技術に挑戦しているという技術広報的なメリット
  • そもそもリプレースをやるべきであるか?という問に明確に答えが出せないなら踏みとどまるという策もある
    • 置換え中のサービスのグロースは?
    • 新機能開発は?
    • ビジはどう説得するの?
  • 業務の一部を使ってインパクトのないところで検証して新規モジュールからじわじわKotlinにというケース
    • 既存モジュールへの影響を廃していつでもやめられる状態を作り出す
  • 置き換えを頑張るくらいならユーザさんに新しい価値を届けることに時間を使いましょう
  • スクラムマスター的には…?
    • タイミングがあればチームのモチベーション・成長観念的にKotlin導入は全然アリ
    • Kotlinの時点でコストがかかる、けどポジティブな結果を呼べるので取り組みたい…!
      • 導入に対するネガティブチェック・ロードマップの作成で取り組みへの説得力をもたせたい
    • ここまで動けるスクラムマスター、素晴らしいし大変だしで尊敬する…

まとめ

KotlinがAndroid開発の1st languageになったことでみんな導入したいという思いがある中でこういうモデルケースをたくさん伺うことが出来たのはとても良かったなと思いました。ただ、その中でもAndroid FrameworkはJavaで書かれているという事実もあって、Kotlinを導入してもJavaからは逃げることが出来ないということや、プロタクトのインパクト的な観点から導入に際してどう付き合っていくのか、チームとしてどうKotlinを導入して実装を進めていくのかなど、課題と言うか考えるべき案件もまだまだあるなと…。でもそれを乗り越えて得られるものもたくさんあると思いました。

主催のYahoo! Japanさん、発表者の皆様、ありがとうございました :bow: