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

iOS,Android両OSのアプリを開発するための手法検討

More than 1 year has passed since last update.

概要

クロスプラットフォーム開発のまとめは色々な所にあるので改めてここでまとめる必要はないかもしれませんが、個人的に整理したかったのでまとめます。結局この手の話は結論(これがいい!)というのはなく、開発する人やその時の状況によって変わってくると思うのであくまで参考程度に。

開発手法

まとめ

手法 使用言語 特徴
ネイティブ iOS:Swift
Android:Kotlin
ネイティブアプリ
Cordova HTML,JS,CSS WebViewベース
Xamarin C# ネイティブアプリ
Unity C# ゲーム用
Cocos2d-x C++ ゲーム用
TitanumMobile JS WebViewベース
React Native JSX,JS,CSS ネイティブアプリ
Swift Swift ネイティブアプリ
Kotlin Kotlin ネイティブアプリ

トレンド

スクリーンショット 2017-12-19 23.54.43.png
https://trends.google.co.jp/trends/explore?q=react%20native,Cordova,Xamarin,Titanum

ネイティブ

  • iOSをSwift(Objective-C)で、AndroidをKotlin(Java)で開発するパターン
  • リソースが十分にあるならこれが一番いいと思う
  • この後出てくるワンソースで両OSのアプリを開発できる手法でも必ずそれぞれのOSの知識は必要になってくると思うので複雑なアプリを作ろうとすればするほど逆にネイティブで書いた方が良いということはありそう

Cordova

  • WebViewベースでアプリ開発ができる
  • 基本はWebベースの技術でアプリを開発するため言語としてはHTML,JS,CSSを使う
  • Monacaを使った開発が一般的
    • MonacaとはCordovaアプリを開発するために特化した統合開発環境
  • Hello Worldくらいならすぐにできる(以下iOSの場合)
$ npm install -g cordova
$ cordova create MyApp
$ cd MyApp
$ cordova platform add ios
$ cordova run ios

Xamarin

  • XamarinはMicrosoftよりVisual Studioの一部として提供されている
  • C#で開発する
  • XamarinのAPIはネイティブのAPIを100%移植しておりロジックの共通化が可能
  • Xamarin.Formsを使うとUIの共通化もできるが一部しか提供されていない
  • そのため共通化としてはだいたい60%くらいが妥当のよう
  • 参考

Unity

Cocos2d-x

UnityとCocos2d-xではUnityの方がよく使われていそう
スクリーンショット 2017-12-24 17.14.59.png
https://trends.google.co.jp/trends/explore?q=Unity,Cocos2d

TitanumMobile

  • WebViewベースでアプリ開発ができる
  • JSで開発できる
  • Cordovaとの違いはネイティブのUIコンポーネントをJSで扱えるところ
  • 2011年頃少し流行ったが現在はあまり積極的に使われているイメージがない(ReactNativeなどが出てきたためだと思われる)
  • 参考

React Native

  • JSX,JS,CSSを使って開発できる
  • WebViewではなくあくまでもJavaScriptランタイムでNativeのAPIを叩いて、Naitveによる描画を実現しています
  • 最近話題のライセンス問題ではReactの方はMITに変わったが、ReactNativeは未だBSDになっている
  • 参考

Swift

Kotlin

参考資料

hikarut
【本業】Webエンジニア/マネージャー/データサイエンティスト【複業/副業】B.LEAGUEクラブデータ分析 / Nuxt+Netlify+Firebase+Herokuを使ったエンジニア向け複業メディアサイト「Fukugyou 」運営 → https://fukugyou.dev
https://fukugyou.dev
yahoo-japan-corp
Yahoo! JAPAN を運営しています。
https://www.yahoo.co.jp
Why not register and get more from Qiita?
  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
No 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
ユーザーは見つかりませんでした