Help us understand the problem. What is going on with this article?

クロスプラットフォームフレームワーク比較 2019(Flutter, React Native, Xamarin, Unity)

近年、Flutter や React Native といった新しいクロスプラットフォームフレームワークが登場してきました。

今、クロスプラットフォーム開発をするときに、どのフレームワークを選定すれば良いのか迷っている人のために、各フレームワークを比較して解説します。

フレームワーク比較表

Flutter React Native Xamarin Unity
開発会社 Google Facebook Microsoft Unity Technologies
オープンソース ×
言語 Dart JavaScript, TypeScript C#, F# C#
開発環境 Android Studio, IntelliJ IDEA, Visual Studio Code Nuclide, Visual Studio Code Visual Studio Visual Studio, JetBrains Rider
GitHub スター数 79k 82.5k 3.9k -
プラットフォーム iOS, Android, Web, Windows, Mac, Linux iOS, Android, Web(, Windows) iOS, Android, Windows, Mac(, Web, Linux, Tizen) iOS, Android, Web, Windows, Mac, Linux, PlayStation 4, PlayStation Vita, Nintendo Switch, Nintendo 3DS, XBox One
ホットリロード × ×
UI 独自UI ネイティブUI ネイティブUI/独自UI 独自UI
3D グラフィック × × ×
採用例 Xianyu, Hamilton, Google Ads Instagram, Facebook, Facebook Ads, Skype, Tesla NHK 紅白, Nintendo Switch Online 白猫プロジェクト, ドラゴンクエストVIII 空と海と大地と呪われし姫君, ポケモン Go

Flutter と React Native はどちらを選べば良いのか?

フレームワーク比較表を見ていただければ分かる通り、両者は非常によく似ています。

React Native が既存の Web 技術をベースに設計されているのに対して、Flutter は全く一から設計されています。

すでに React を使って開発しているのであれば、ほとんど学習コストなしに React Native を導入できるでしょう。

Flutter は Google 社の開発した新しいプログラミング言語「Dart」を使って開発します。
Dart は Java や C# と似た構文を持っており、これらのプログラミング言語を使用したことがある人であれば、習得は容易です。

また、UI にも違いがあります。
React Native はネイティブ UI を採用していますが、Futter は独自 UI を採用しています。
つまり、React Native アプリはプラットフォームによって見た目が変わりますが、Futter アプリはどのプラットフォームでも統一された見た目になります。
どちらが好ましいかはケースバイケースですが、UI の違いは確認しておいた方が良いでしょう。

別記事で入門チュートリアルを書いていますので、もしよかったらそちらも参考にしてみてください。

Xamarin はどのような開発に向いているのか?

Xamarin は最近のアップデートで「Xamarin.Forms Visual」が追加され、異なるプラットフォームでも同じ見た目の UI を実装できるようになりました。

また、他のクロスプラットフォームフレームワークよりも簡単にネイティブの機能を呼び出すことができるのが強みです。

しかし、開発元の Microsoft が「React Native for Windows」を発表したことから、将来性にやや不安を感じます。

※参考:マイクロソフトが「React Native for Windows」を公開
https://jp.techcrunch.com/2019/05/07/2019-05-06-microsoft-launches-react-native-for-windows/

C#(.NET) の資産を活かしてクロスプラットフォームアプリケーションを開発したい場合は、Xamarin を選定すると良いでしょう。

ゲーム開発するなら Unity で決まり!

Unity はクロスプラットフォームフレームワークとして豊富な採用例があり、数多くのゲームが開発されているゲームエンジンです。

Flutter も将来的に 3D をサポートすると発表されていますが、まだ先のことなので、ゲーム開発するなら Unity を選定しておけば間違いないでしょう。

他のフレームワークは?

ほとんどの場合、フレームワーク比較表にあるものから選定すれば問題ないと思いますが、他にもクロスプラットフォームフレームワークがあります。

もし今回紹介したフレームワークでしっくりこなければ、以下のフレームワークも検討してみてください。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away