富士ソフトのXamarinによるクロスプラットフォーム開発の秘密【前編】

富士ソフトは、ガラケーと呼ばれるフィーチャーフォン全盛期に、モバイル関連の開発業界ではなかなかのシェアを占めていました。ところがその後、モバイル業界の黒船とも呼ばれるiOS、Androidが日本のモバイル社会を変えました。当社は果敢にモバイル関連の新技術にも取り組んでおり、その一つがクロスプラットフォーム開発です。
今回、当社のスペシャリストたちを集め座談会を開催し、その秘密を探ってみました。前編・後編の2回に分けてお届けします。

前編では、当社のXamarinによるクロスプラットフォーム開発の始まりと、Xamarin導入のポイントを紹介します。

<メンバー紹介>

・システム事業本部 メディアネットワーク事業部 第2技術部
 小一原 宏樹
 スマートデバイス向けアプリ 開発プラットフォーム「smartCOCO」を開発。
 いち早く、クロスプラットフォーム開発に取り組む

・エリア事業本部 北日本事業所 システム&ソリューション第2技術グループ
 西田 篤史
 携帯電話開発のノウハウを活かした幅広い組込制御系開発の知見を持つ

・プロダクト事業本部 moreNOTE事業部 商品開発グループ
 小宮山 卓
 Windows/iOS/Androidで使えるペーパーレス会議システム「moreNOTE」担当

・イノベーション統括部 先端技術支援部 モバイルインテグレーション室
 松嶌 孝典
 Android端末の開発をはじめとするモバイル関連新技術の全方位スペシャリスト

富士ソフトでのクロスプラットフォーム開発の始まり

ーまずは、みなさんがクロスプラットフォーム開発に携わることになったきっかけを教えてください。

小一原:2013年頃からクロスプラットフォーム開発に取り組んでいます。当時は「Titanium Mobile」などのツールがあり、1つのソースコードでiOSやAndroid向けのアプリを開発する取り組みを始めていました。
私は2015年くらいからXamarinに取り組み、既に5年以上が経過しました。スタートはお客様の案件で、私がPMとして参画したプロジェクトです。当時は社内でも事例の少ない取り組みでしたが、お客様の反応もよく、やりたいことを実現できました。

松嶌:私の所属は社内の技術的な要望を吸い上げて支援する部署なのですが、2015年頃から「クロスプラットフォーム開発に取り組むことはできないか」等の質問を受けるようになりました。社内を調べたところ、既に小一原さんのプロジェクトで取り組んでいることを知り、情報を提供してもらって社内への情報展開を進めました。
その中で、当社のペーパーレス会議システム「moreNOTE」について相談をうけました。moreNOTEは既に、Windows/iOS/Androidに対応済みでしたが、さらに開発効率の向上を目指して複数のプラットフォームに対応していきたいとの相談でした。そこで、小宮山さんと一緒にmoreNOTEのクロスプラットフォーム化の検討を開始したんです。

小宮山:同じ機能のものを複数の端末やOSに対応して作ると開発に2倍、3倍という作業が必要になることがあります。お客様としては同じ機能の開発は1回で済ませたい、端末やOSが異なってもなるべくデザインなどを合わせたい、というニーズがあったことから、クロスプラットフォームに取り組むことに決めました。

小一原:2019年度の全社モバイル推進会議で全社的にクロスプラットフォームを推進することが決まりました。昨年から北日本事業所も参画し、moreNOTEの開発をコラボレーションして進めることになったんですよね。

西田:北日本事業所としてはクロスプラットフォームの経験がない状態からの参加でした。モバイル開発については2011年頃からiOS、Androidに取り組んでいましたが、お客様はXamarinなどのツールを使って共通化するところまで手が回っていない状況でした。モバイル関連の知見があったので、moreNOTEの開発を一緒にやらないかと声を掛けられ、参画しました。

moreNOTEになぜクロスプラットフォーム開発が必要だったのか

ーmoreNOTEの発売は2012年です。既に多くのユーザーにお使いいただいている中で、なぜクロスプラットフォームで新たに開発し直す必要があったのですか?

小宮山:moreNOTEはiPad向けアプリとしてスタートし、世の中のニーズの広がりに合わせてWindowsやAndroidでも動くように移植してきました。これまではエンジニアがそれぞれのアプリを開発してきましたが、これらを1つにすることを課題として取り組みました。
もちろん、既に完成し稼働しているアプリですので、これまでとは異なる開発ツールを使うことにリスクや不安を感じていました。しかし、ソースコードを1つにまとめられるのであれば今後の開発の効率化につながり、シンプルな設計にして1から再スタートできるというメリットも感じていました。
今回の取り組みで、小一原さんのチームには、しっかりバックアップしていただきましたね。

松嶌:もちろん、Xamarinの使用を前提としてクロスプラットフォームの取り組みをスタートしたのではありません。moreNOTEに最適なものは何か、様々なツールを検討しました。例えば、Webに統合する「Flutter」や「PWA(Progressive Web Apps)」、「Apache Cordova」など様々な手法を検討しましたよね。

小宮山:その中でも、オフラインやWindowsでも使えるようにするというmoreNOTEの特性を考えた結果、すべての希望条件を満たす訳ではありませんが、Xamarinの柔軟性の高さを評価して採用しました。当社はC#のエンジニアが多く技術力も高いので、プログラミング言語としてC#を使うXamarinは、C#のエンジニアにとってハードルが低いこともメリットでした。

松嶌:moreNOTEのクロスプラットフォーム開発プロジェクトでは、絶対に成功させるという決意のもと、全社横断で協力を求め、チームを立ち上げました。

西田:2019年にプロジェクトに参加することになり、北海道のオフィスから1か月間だけ出張し、クロスプラットフォーム開発のスキルを習得しました。直接コミュニケーションを取りながら一緒に開発できる環境が整備されるなど、会社全体のバックアップ体制があり、クロスプラットフォーム開発への注力を感じました。その後は、クロスプラットフォームの技術をオフィスへ持ち帰り、オンラインでプロジェクトに参加しています。

松嶌:富士ソフトは、開発効率や生産性などの問題があれば、全社として改善に力を入れていくことがあります。クロスプラットフォームが最高の手段というつもりはなく、実際に完璧ではありません。また、各OSでのネイティブアプリ開発のほうが速度面やデザイン面など自由にいいものが作れる、というエンジニアとしての思いもあります。しかし、Xamarinでどこまで実現できるのか、可能性に注目しながら、moreNOTEの開発に取り組んでいます。

小宮山:Xamarinの導入によって、ソースコードの量で考えると、80%から90%は共通のコードで実現できています。目標は6割でしたので、想定以上でした。

XamarinによるクロスプラットフォームでのmoreNOTE6の開発

Xamarinの導入で大変だったところは?

ーmoreNOTEの開発にXamarinによるクロスプラットフォームを導入することになって、いかがでしたか、大変だったことはありますか?

小一原:Xamarinの特性を知らずにアプリを開発してしまうと、Xamarinの良さを引き出せません。Xamarinを理解した上で、moreNOTEの開発をどのようなアーキテクチャにするのか考えています。

小宮山:特に考慮が必要だったのはサードパーティーのライブラリです。moreNOTEはこれまでOS毎にネイティブで開発しており、他社で作られたライブラリを使用していました。このように、既に動いているものをクロスプラットフォームに対応させるには、同じものをXamarinの上で実現する必要があります。

松嶌:同じ使い勝手を実現する必要もありますね。これは、他社で作られたライブラリと同じものを作ることを意味します。既にmoreNOTEは動いているので、同じ、もしくはそれ以上の期待値があり、相当なプレッシャーがありました。

小宮山:特にスマートフォンやタブレットの画面はスムーズに動くことが求められます。ネイティブアプリではスムーズに動きますが、Xamarinは1つのソースコードで実現できる一方で、若干動作が遅くなります。動きが気にならないように、パフォーマンスの調整にはとても苦労しました。

西田:私の部署ではこれまでのモバイルでの開発実績が豊富だったので、普通にネイティブで開発すると、このような動きをする、ということが想定できました。これをXamarinならどう実現するか、というところに取り組みました。

小一原:難しかったのは情報を探すところですね。ネイティブアプリで使われるObjective-CやSwift、JavaやKotlinにはサンプルコードが多くありますが、Xamarinに関する情報は少ないです。
そこで、私たちの経験から推測するだけでなく、日本語の情報に加えて海外の情報も含めてXamarinの情報を調べていきました。

松嶌:Xamarinについては書籍も少なく、海外のページは日本語のように丁寧に書かれていない部分もありますが、それを読み込んで調べられるようになりました。

小宮山:今後は、これまでに得た情報や知見を整理し、社外に発信していこうと思っています。お客様もまだまだネイティブのほうが良いと感じている方が多いので、Xamarinの良さを伝えていければと思います。

次回【後編】はクロスプラットフォームのメリット、注目新技術についてご紹介します。お楽しみに!

富士ソフトによるクロスプラットフォーム開発




小一原 宏樹小一原 宏樹(Hiroki Koichibara)

システム事業本部
メディアネットワーク事業部 第2技術部
部長

松嶌 孝典松嶌 孝典(Takanori Matsushima)

イノベーション統括部 先端技術支援部
モバイルインテグレーション室
室長

この記事を読んだ人はこちらの記事も読んでいます。