Kotlin の採用により、コード行を 20% 減らし、開発チームの士気も高めたスマートニュース

SmartNews は、多様なニュース提供元からのタイムリーなニュースを共有することで、毎日何百万人もの人々が世界の出来事を見つけられるよう支援しています。同社は 2012 年に日本で創業し、現時点でのダウンロード数は 5,000 万件を超えています。

2019 年 6 月、Android のアプリ開発の主軸が Kotlin に移行しつつあると判断した開発チームは、Kotlin を検討することを決めました。Kotlin 採用の決め手となったのは、Kotlin メインの Jetpack ライブラリを活用できること、コード量を減らして保守の負担を軽減できること、構文の表現性が高く理解しやすいことなどでした。

スマートニュース社の取り組み

スマートニュース社の開発チームは Java に精通していたため、Kotlin でのコーディングに難しさを感じることはありませんでした。Kotlin は Java との 100% 相互運用性を備えているので、既存のコードベースで作業しながら、Kotlin で気象レーダーやニュースなどの新機能の作成を簡単に開始できます。雨雲レーダー機能(特許取得済み)では、コルーチンを使用して画像のダウンロードとキャッシュを管理することにしました。コルーチン ディスパッチャでタスクの管理を抽象化することで、raw スレッドの管理に伴うピットフォールを避けることができました。

一部の Java コードをリファクタリングした開発チームは、Kotlin の null 安全性機能に感銘を受けました。Kotlin の構文では可変性、null 可能性、初期化を特定できるため、早い段階でエラーを捕捉できます。これにより、コード変更の検証にかかる時間を 10% 短縮することができました。Kotlin の簡潔で効率的な構文を使用することで、コードベースの読みやすさが向上して保守が容易になり、ビジネスの継続的な成長にも対応できる見通しが立ちました。

結果

Kotlin を採用したことにより、実装から公開までの全体的な生産性が向上しました。最大の改善点は、Kotlin で記述したことでコード行を 20% も削減できたことです。SmartNews アプリのコードはすでに半分ほどが Kotlin に移行しています。新機能はすべて Kotlin で記述することにしているほか、既存のコードのリファクタリングを進めてさらに保守性を高めることにしています。

Kotlin を実装し、ボイラープレート コードを削減する過程で、開発チームの士気も向上しました。メンバーがそれぞれのアイデアをより効率的に表現できるようになり、各自が将来のために読みやすいコードを心がけるようになりました。スマートニュース社でエンジニアリング マネージャーを務める大橋英雄氏によれば、Kotlin はエンジニアの募集採用にも効果的だといいます。「応募者から最も多い質問のひとつが、"Kotlin は使っていますか?どれくらい活用していますか?" というものです。多くのエンジニアが Kotlin への移行に関心を寄せており、弊社としてもこの動きを支援したいと考えています。」開発チームの士気向上や募集採用への好影響は、Kotlin の採用を決めた主たる理由ではありませんでしたが、競争が激しいこの業界で成長し続けるために必要なポジティブな変化をもたらしてくれました。

始める

詳細については、Kotlin で Android アプリを開発するをご覧ください。