「ライブラリの守備範囲は狭い方がいい」こにふぁーが大切にする、ソフトウェア設計の流儀

ソフトウェアが果たすべき、機能、役割をどのように定めるか。多くのエンジニアを悩ませるこの問いに、Android開発者、こにふぁーさんは「守備範囲を狭く設定する」と答えます。こにふぁーさんがこの答えにたどり着いた道筋とは。

「ライブラリの守備範囲は狭い方がいい」こにふぁーが大切にする、ソフトウェア設計の流儀

そのソフトウェアは何をやり、何をやらないのか──。

ソフトウェア開発において、コードを書く前に考えるべきことのひとつが、「守備範囲の設定」です。あらゆる課題に対応するソフトウェアを作るのか、あるいは明確でブレようのない「たったひとつ」を解決するソフトウェアを作るのか。守備範囲を適切に設定する、とは、エンジニアにとって重要かつ悩ましいトピックでしょう。

そして、「ライブラリの守備範囲は狭い方がいい」と語るのは、マテリアルデザイン用のアイコンを生成するAndroid Material Design Icon Generator PluginなどのOSS開発者として知られる小西裕介(こにし・ゆうすけ/ 1@konifarさん。彼はなぜ、そのような思想に至ったのでしょうか。

小西さんの歩んだキャリアや設計哲学、OSSという文化への思いに至るまで、お話を伺いました。

会社の存続をかけたアプリのために、Android開発者に転身

──小西さんはAndroidアプリ開発者として有名です。Androidアプリに携わるようになったのはいつ頃から?

小西 2社目に入った会社で、初めてAndroidアプリの開発に携わりました。僕はもともとWebエンジニアで、その会社ではRuby on RailsでWebサービスを開発していたんです。

当時運営していたサービスが壁にぶつかっていて、DAU(Daily Active User:1日あたりのアクティブユーザー数)を上げることが至上命題という状態でした。そして、アプリを作り直すという決断が必要だったんです。そのアプリは『Airtripp』といって、いまでこそ多くのユーザー、しかもほとんが海外の方というアプリに成長しましたが、当時はかなり切羽詰った状態でした。

2

小西裕介さん:BtoBのサービス開発者としてエンジニアのキャリアをスタートさせる。その後、Androidアプリ開発者として経験を重ね、現在は決済サービスを提供する株式会社Kyashに所属する。共著書に『Android アプリ設計パターン入門』がある。

──いきなりの修羅場ですね……。

小西 アプリの作り直しが決まると、Androidアプリの新規開発にリソースを集中することになりました。でも、当時の社内にはAndroid開発の経験者がいません。「じゃあ、自分がやろう」となったのがスタートです。時間的な余裕もなく、「3か月後には絶対にアプリをリリースする」ということが既に決まっていました。悠長にキャッチアップしていたら、絶対に間に合わない。焦りましたね。

──スキルを短期間で習得するのは大変だったでしょう。どうやって勉強されたんですか?

小西 QiitaやStack Overflow、Googleの公式ブログ、Android著名人のブログ・書籍などをとにかく読み漁っていました。例えば、あんざいゆき3@yanzmさんが書かれた書籍『Android Layout Cookbook アプリの価値を高める開発テクニック』やブログ、さらに横幕圭真4@KeithYokomaさんのQiitaは本当に参考になりましたね。先人の知恵に助けられました。

OSS開発のきっかけは、自分のキャリアへの“焦り”

──OSSのライブラリを作り出したのはどうして?

小西 至上命題だったAndroidアプリ開発はなんとか区切りをつけることができました。でも状況が落ち着いてから自分のキャリアを振り返って、めちゃくちゃ“焦り”を感じたんですよ。

──焦り、ですか。

小西 ずっと僕は1人でAndroid開発をしていたので、身の回りにAndroidについて情報共有し合えるメンバーはいませんでした。それに、対外的に目に見えるような成果を出していたわけでもなかったわけです。

カンファレンスなどで優秀なAndroid開発者を目にすると「すごいなあ……」という気持ちでいっぱいになってしまう……。自分に劣等感を覚えていたんです。

──意外でした。てっきり、スキルには自信があったのかと。

小西 いえいえ、全然です。すごいアウトプットをしている人は世の中に山ほどいるので、いまだに焦りますよ。「もっと成長しないと」と常に思っています。

当時はその不安が強くて、「自分の代表作といえるような成果を出したい」と必死でした。そこで、OSSのライブラリを作ってリポジトリを公開するようになったんです。

──最初はどんなものを作ったんですか?

小西 パブリックリポジトリに最初にアップしたのは、Youtubeの好きなシーンをエンドレスに再生できるEndlessTubeというサービスです。

でもこれは公開しようと思って作ったわけではなく、単にプライベートリポジトリが上限に達していたので、パブリックリポジトリに公開したというだけの理由です(笑)。他の人に使ってもらうことを意識して作ったのは、2014年12月に発表したAndroid Material Design Icon Generator Pluginが最初です。

12月上旬から作りはじめて12月31日に公開したので、12月中は家でひたすら開発していました。妻に「何をずっと作っているの!」とすごく怒られた記憶があります(笑)。

──確かにそれは怒られそうです(笑)。アイコンを生成するプラグインを作ったのは、どんな理由からですか?

小西 当時はマテリアルデザインが出始めた頃でした。マテリアルデザイン用のアイコンもWeb上に公開されていたのですが、開発のときにそれを毎回ダウンロードして、用途に合ったものを探して、プロジェクトに取り込むのは面倒くさい。「じゃあ、アイコンを簡単に検索してプロジェクトに取り込めるプラグインを作ってみよう」と考えました。

5

Android Material Design Icon Generator Pluginのサンプルアニメーション。

──Android Material Design Icon Generator Pluginは、2300以上ものスターがつく有名プラグインになりました。人気に火がついたときは驚いたのでは?

小西 最初はスターの数なんて全く見ていなくて、たくさんの人が使ってくれていることに、気づきませんでした。このリポジトリがGoogle+のAndroidコミュニティで紹介されたらしく、そこから一気に広まったんです。あるとき、職場のポーランド人の同僚が「Android Material Design Icon Generator Pluginが載っているよ。すごいな!」と教えてくれて、驚きました。いつの間にか、すごいスター数になっていましたね。

開発の規模は「モチベーションが続く範囲」に抑える

エンジニアHubに会員登録すると
続きをお読みいただけます(無料)。
登録のメリット
  • すべての過去記事を読める
  • 過去のウェビナー動画を
    視聴できる
  • 企業やエージェントから
    スカウトが届く