見出し画像

自社プロダクトの発展につながるOSSコントリビューション

こんにちは。Monacaのプロダクトマネージャーの渡辺です。

私たちが自社プロダクトとして提供しているMonacaでは、「誰でも簡単にアプリ開発を」というミッションをかかげ、Web技術を活用したモバイルアプリ開発プラットフォームを提供しています。

Monacaサービス立ち上げ当初は、独自のSDK(ソフトウェア開発キット)を開発し、モバイルアプリを開発できるサービスを提供していました。しかし、サービスを発展させていく中で、オープンソース (以降、OSSと表記) の活用が有効であると気づき、徐々にOSSを利用する方針でサービス開発を進めてきました。

今回は、Monacaの基盤として活用しているOSSの「Apache Cordova」(以降、Cordovaと表記) へのコントリビューション(貢献活動)と、その活動から得られる経験やフィードバックを、どのように自社プロダクトの改善に活かしてきたかをご紹介します。


OSSへのコントリビューション(貢献活動)

OSSへの参加には、コントリビューター、コミッター、プロジェクトマネジメント委員会(PMC)、プロジェクトオーナー・リーダーなど、様々なレベルがあります(図1参照)。私たちの開発チームも、当初はCordovaを利用する立場でしたが、徐々にプロジェクトへの関わりを深めていきました。

図1. OSSプロジェクトへの参加役割

最初は、不具合の報告やプルリクエスト(PR) を作成することでコントリビューターとして貢献を始めました。OSSプロジェクトに対して、コードや文書の修正・改善を少しずつ行っていきました。Cordovaを使っていく中で気づいた問題点を報告し、解決策を提案することで、プロジェクトの品質が向上すればという思いで始めました。

その後、多くのPRを作成し、Cordovaのプラグインやサンプルアプリを開発して、一般公開する活動が増えてきたタイミングで、コミッターとして認められるようになりました。コミッターは、プロジェクトのリポジトリに直接コミットする権限を持ち、コントリビューターのコードレビューを行い、マージを決定する役割を担います。私たちは、コミッターとしてプロジェクトの方向性に影響を与えながら、Cordovaの発展に直接関わる立場になりました。

さらに、日本でCordovaを広めることを目的とした勉強会の開催なども実施していたタイミングでPMCに参画することとなりました。PMCは、プロジェクトの意思決定を行う立場であり、ロードマップ、リリース計画、ガバナンスなどを決定します。最近では、Monacaの開発メンバーのエリス・ブライアンがPMCメンバーから議長(PMC chair)として選出されるなど、プロジェクトの舵取りにも深く関わるようになっています。

PMCメンバーとして、私たちは、Cordovaの技術的な意思決定を下していく責務を負うようになりました。最近の大きな活動の一例として、iOSのプライバシーマニフェスト対応が挙げられます。Appleが昨年のWWDCで新しいプライバシーマニフェストの仕様を発表した後、他のPMCメンバーと対応方針について議論を行いました。そして、私たちの開発メンバーが設計を主導し、プロジェクトの設定ファイルであるconfig.xmlにプライバシーマニフェストに関する定義の記述方法を決定しました。

私たちはCordovaのユーザーからコントリビューター、コミッター、そしてPMCメンバーへと、段階的にプロジェクトへの関わりを深めてきました。こうした活動を通じて得られる経験やフィードバックは、自社プロダクトの改善にも活かされています。

OSSコントリビューションによるプロダクトの改善

OSSである「Apache Cordova」への貢献活動を通して、私たちはMonacaプロダクトならではの機能や価値を考えるヒントを得ることができました。Monacaは、以下のような独自の機能を提供しています。

1. クラウドIDE
アプリ開発の環境構築をせずに、すぐに開発をスタートできるクラウドIDE。ブラウザ上で開発を行うことができます。

2. リモートビルド
AndroidやiOSの開発環境がなくても、アプリをビルドできる機能。クラウド上でのビルドにより、ローカル環境の制約を受けずに、アプリを生成できます。

3. Monacaデバッガー
開発しているソースコードを実機端末上で確認できるデバッグアプリ。コードの変更をリアルタイムで反映できるため、スムーズなデバッグができます。

これらの機能は、Monacaならではの付加価値を提供しています。OSSプロジェクトへの参加は、こうした独自の機能を考案するためのきっかけになっています。また、Cordovaコミュニティとの交流を通じて、私たちは、モバイルアプリ開発における課題や要望を深く理解することができました。そこから得られた知見を活かして、Monacaの機能の設計・改善を行っています。

また、OSS活動によってCordovaが維持・発展することは、Monacaのサービス向上にも役立っています。Cordovaの新機能や改善点は、Monacaにも速やかに取り入れられるため、Monacaのユーザーは常に最新のモバイルアプリ開発環境を利用できます。

例えば、Cordovaのバージョンアップに伴う新しいプラグインの追加や、セキュリティ面の強化などは、Monacaにも反映され、ユーザーに提供されます。また、Cordovaのエコシステムが拡大することで、Monacaのユーザーもより多くのプラグインやリソースを利用できるようになります。こうしたOSSプロジェクトの発展は、Monacaの価値向上に直結していると考えています。

OSSコントリビューションによるエンジニアの成長

OSSプロジェクトへの参加は、自社サービスの向上だけでなく、エンジニアの成長にもつながると感じています。OSSプロジェクトでは、より汎用性が求められるライブラリの設計能力が求められます。Cordovaは、多様なプラットフォームやデバイスに対応する必要があるため、柔軟で拡張性の高い設計が必要とされます。こうした設計スキルは、自社プロダクトの開発にも活かされ、より堅牢で効率的なコードを書くことができるようになります。

また、プルリクエスト(PR)を通じて、世界中のユーザーからソースコードについてのフィードバックが得られ、開発者のコーディングスキルの向上も図られます。グローバルなコミュニティの中で、自分のコードを公開し、レビューを受けることは、エンジニアにとって価値のある体験だと思います。他の開発者から学べることも多く、スキルを向上させるチャンスにもなります。

OSSプロジェクトへの参加は、エンジニアのモチベーション向上にもつながります。自分のコードが世界中で使われているという実感は、エンジニアにとって大きな喜びであり、やりがいにもなります。また、コミュニティとの交流を通じて、新しい技術や知見に触れることができ、エンジニアとしての視野を広げることにもつながります。

こうしたOSS活動から得られる知見やスキルは、自社プロダクトの開発にも活かされています。Monacaの機能拡充や性能改善には、OSSコミュニティから得られた知見が数多く反映されています。

今後も、Cordovaをはじめとするオープンソースコミュニティとの関わりを大切にし、関係を築いていきたいと思っています。OSSプロジェクトへの参加は、自社サービスの向上と、エンジニアの成長にとって、重要な取り組みだと感じています。私たちは、オープンソースの力を最大限に活かしながら、より使いやすく、質の高いモバイルアプリ開発プラットフォームを提供できるよう、努力していきたいと考えています。


テクノロジーで人や社会の「できること」を広げる仲間を募集しています。 カジュアル面談で情報交換からはじめませんか?