iPhone用言語SwiftでAndroidアプリを開発できるのか
GoogleのAndroidのアプリ開発ではJavaを使います。そしてアップルのiPhoneでは現在Swiftが使われています。開発者としては同一の言語でアプリが開発できれば非常に効率がいいわけですが、ライバル企業同士なので、こうしたことも仕方ない、という感じでした。
ところが最近、Androidアプリ開発でSwiftが採用されるらしいという話が現実味を帯びてきました。なぜGoogleはアップルのSwiftの採用を検討しているのか、その辺の事情を探ってみましょう。
Swiftはオープンソース化している
Swiftはアップルのパソコン上のOS、iOSでそれまで採用されてきたObjective-Cにかわって2014年から標準開発言語として採用されています。このため、アップル社の公式開発言語=Swiftという印象が強いのですが、実はアップル社では2015年12月にSwiftをオープンソース化し、GitHubに公開しています。
Swiftのライセンス基準は「Apache License 2.0」となっています。オープンソースのライセンスにはいくつ種類がありますが、「Apache License 2.0」では自分で作ったプログラムに組み込んだ上で利用してもソースコードを公開せずに販売・配布することができます。また、もともとの「Apache License 2.0」にしばられることなく、自分が新しく決めたライセンスポリシーを設定してソフトウェアを公開することができます。
例えばGPLでは、こういうことは不可能です。GPLの資産で作ったコピーレフト(copyleft)が基本なので、ソースコードは公開することが必須ですし、自分で独占的なライセンスなどを新たに設定することはできません。
なぜJavaでなくSwiftなのか
こうした好条件がSwiftにはあるわけですが、ではなぜ、JavaからSwiftを採用しようという動きがあるのでしょうか。それは、Javaの提供者であるオラクルがJavaの著作権侵害についてグーグルを訴えているという現実があります。
「自由でオープンな言語=Java」というイメージがありますが、JavaはLGPL(Lesser General Public License )で公開されています。 GPLでは、ソフトウェアの配付にあたっては、ソースコードを公開することが必須ですのでLGPLは商用にも広く使われていますが、問題となっているのはGoogleが独自に開発した仮想マシン「Dalvik VM」です。オラクルの言い分ですとこの「Dalvik VM」ではJavaのソースコードを使っておりGoogleがJavaのAPIをコピーして独自のVMとして公開しているということでした。そして司法的にも2015年にはその主張が認められたのですが、Googleはその後も訴訟で正当性の主張を継続しています。
ちなみに、オラクルはこの訴訟でGoogleの著作権侵害によって不利益を得たということに加えて、Androidビジネスの成功でグーグルが不正に利益を得たとして日本円で約1兆円の損害賠償を請求しています。
このような背景があるので、Googleは訴訟の長期化をクリアして、こうした問題が起こらない「Apache License 2.0」ベースのSwiftを採用したいというわけです。
まとめ
一見すると「スマホ市場でのライバル企業のSwiftを取り込むというのはなんで?」という感じがしますが、以上のような理由でGoogleはSwiftを自社製品の開発言語にしようとしています。実際に「Fuchsia」というGoogleが開発中の新OS では「Fuchsia」仕様のSwiftの派生版が公開されています。
現在は、AndroidとiPhoneのハイブリッドアプリを開発するには、独自のプラットフォームを使うことになりますが、ネイティブアプリに比べて動作が遅かったり、ネイティブアプリで実現できる動作に制限があったりするという欠点があります。
GoogleのSwift採用の流れが正式に定着すると、Swiftという言語をマスターすれば、ネイティブアプリとしてAndroidもiPhoneも開発できるということになりますので、スマホプログラミングのやり方がガラッと変わるかもしれません。
株式会社キャパでは、アプリの企画・開発についてご相談を承っています。
アプリを作りたいので、具体的な提案が欲しい。頭の中にあるアイデアを本当に実現できるのか知りたい。予算内に収まるのか?
などのお客様のご相談に、親身に応じます。
アプリ開発:実績のご紹介