アプリ屋になりたいブログ

アプリ屋になりたいブログ

アプリの開発と仕事の効率化について紹介するブログ

【2019トレンド】クロスプラットフォームの比較 Unity、Flutter、Xamarinなど

クロスプラットフォームの比較の記事を書こうと思ったのですが、どれがどれと横並びに比較できるのかが色々なサイト見てもバラバラでした。
整理をしてみようと思い、記事を作成します。

クロスプラットフォーム開発とは

今回はアプリ開発においてクロスプラットフォームの種類について個人的に調べてみました。クロスプラットフォームがなにか知っている方は次の見出しまで読み飛ばしてください。

クロスプラットフォームとは。

クロスプラットフォーム(英: cross-platform)とは、異なるプラットフォーム(例えばPC/AT互換機とMacintosh、あるいはWindows・macOS・FreeBSD・Linuxなどのように、仕様が全く異なる機械(ハードウェア)またはオペレーティングシステム)上で、同じ仕様のものを動かすことが出来るプログラム(ソフトウェア)のことを言う。同様の呼称にマルチプラットフォーム[1]がある。(wikipedia引用)

要は異なるOSでも、同じ動作のものを動かそうと言うものです。
皆さんはスマホでLINEなどのアプリを使っているとおもいますが、Androidの人もiPhoneの人も同じように使ってますよね。ほぼ同じ機能ですよね。
ですが全く同じプログラミングで動いているわけではありません。動作環境が異なるので、それぞれのOSに合わせて作らなければなりません。
しかし、ほぼ同じ機能のものをわざわざそれぞれのOS用に作成するのはめんどくさいです。
そのため、OSの違いを吸収するようなプラットフォームの上にプログラミングする事で、さまざまなOSでもほぼ同じコードで動作します。
それがクロスプラットフォームです。

クロスプラットフォームの種類

クロスぷらっとフォームの種類は大きく分けると3つあります。

  1. ネイティブ型
  2. ハイブリッド柄
  3. 独自レンダラ型

ネイティブ型

描画はOSのシステムを利用します。フレームワークからOSのUI部分を操作するようなイメージです。
ネイティブを操作しているので、動作としては、後述のハイブリッド型よりも早くなります。
ネイティブフレームワーク→OS UIシステム

ハイブリッド型

WebView上にHTMLを描画する事で、描画が行われます。WebView自体はOSのUIシステムを利用しています。つまりはこういった感じですね。
ハイブリッドフレームワーク→WebView→OS UIシステム

独自レンダラ型

簡単に言うと、描画エンジンが独自のものです。
先述した2個はOSのレンダラやWebViewではなく、それぞれのプラットフォーム独自のUIエンジンを用いて描画しています。
独自レンダラフレームワーク→独自UI

代表的なクロスプラットフォーム

さて、代表的なクロスプラットフォームをあげてみましょう。

比較表

PF名 言語 ジャンル
Unity C# 独自レンダラ型
Flutter Dart,C言語 独自レンダラ型
Xamarin C# ネイティブ型
React Native Javascript ,JSX ネイティブ型
cordova HTML5,Javascript,css ハイブリッド型
Telerik Platform HTML5,Javascript,css ハイブリッド型

Unity

独自レンダラ型です。完全に用途がゲーム用となっています。GUIを用いてのアプリ作成が多くなります。また利用者も非常に多く、検索すればかなり情報量はあります。
クロスプラットフォームでゲームを作りたいならUnityで間違いないかとおもいます!

Flutter

読み方はフラッターです。作ったのはあのGoogleです。独自レンダラ型です。
2018年12月に正式にリリースされました。まだ歴史が浅いので情報が少ないかもしれませんね。
Dartという言語を使うので、多少ハードルがありますが、最近の言語を使える人であれば、学習コストは低いと言えます。

Xamarin

ザマリンと読みます。近年Microsoftに買収されたため、VisualStudioなどで編集したりが基本かと思います。.NETのライブラリもそのまま使えたりするので、その辺りに慣れている人は良いかもしれないです。

React Native

これはFacebook製ですね。やはりネイティブ型というところが特徴ですね。Javascriptが使えるので、この辺の学習コストは低いですね。

Cordova

ハイブリッド型のかなり王道ですね。様々なフレームワークのコアの部分に組み込まれていたりします。Monacaなどが利用していることもあり、かなり取っつきやすいです。
ちなみに私もよく使っています。

Telerik Platform

ハイブリッド型です。WEB上でアプリ開発が可能となります。公式サイトには多くのテンプレートが用意されていたので、まず触ってみてすぐに動かせると思います。
Google検索で「Telerik Platform」って検索してもあまり出なかったので、他と比べると情報量少ないかもしれません。

トレンド

最近の1年のトレンドを見てみました。
こんな感じです。Unityがダントツでほかの2〜3倍の検索量だったので、グラフからは外してます。
トレンド

こんな感じですね。

まとめ

とりあえず形式ごとにクロスプラットフォームをまとめました。歴史の違い等もあるし、用途による部分が大きいとは思いますが、少しでも参考になれば幸いです。