スマホアプリの開発環境を調べてみた(随時追記)

# 調べた理由
今はスマホアプリが簡単に作れるって聞いて、簡単に作れるアプリ開発環境ってどう動いているわけ？って疑問から調べてみた。

# そもそもスマホアプリって？
スマホアプリと一概に言っても大きく分けて3種類のタイプがある。

## ネイティブアプリ
* スマホ内で演算や処理、データ保存をして動作・実行させ、インストールする必要のあるアプリ
* スケジュール帳やカメラなど、ネット通信をあまり使わずに、スマホ単体で使用できる
* スマホ単体で動くため、比較的レスポンスが早い
* 開発環境がOSに依存する
* Java、Swift、Objective-Cなどのプログラミングの技術で作るアプリ

## Webアプリ
* Webブラウザの上で動作・実行させ、インストールする必要がないアプリ(スマホ用に開発されたWebサイト)
* 例えばメールやFacebook、TwitterなどのSNSサイトなど
* レスポンスがネット状況に左右される(ネット環境がなかったら使えない)
* 開発環境がOSに依存しない
* HTML5、CSS、JavaScriptなどのWebの技術で作るアプリ

※Webアプリの定義はちょっと曖昧なのでここではWebサイトとします

## ハイブリッドアプリ
* アプリ内のブラウザでWebアプリを使うインストールする必要のあるネイティブアプリ
* 開発環境がOSに依存しない
* HTML5、CSS、JavaScriptなどのWebの技術で作るアプリ
* 要は「ネイティブアプリ + Webアプリ = ハイブリッドアプリ」

※ハイブリットアプリの開発環境には様々な方法があるみたいなので、後で別にまとめたいと思っております。


# 調べる観点
* 開発元
* 開発OS環境
* 使用言語・必要知識
* 導入コスト
* どのスマホアプリを作れるか(AndroidまたはiOS)
* 何のアプリ(ネイティブアプリ、Webアプリ、ハイブリッドアプリ)を作れるのか
* 実機テスト

# 公式の開発環境

## [Android Studio](https://developer.android.com/studio/index.html)
* Google Inc.
* Windows、MacOS、Linux
* Java
* 無償
* Android
* ネイティブアプリ
* 実機テストOK

## ※フレームワークを追加することでハイブリッドアプリも作成可能

-------------------------

随時調査して追記予定

-------------------------

## [Xcode](https://developer.apple.com/jp/xcode/)
* Apple Inc.
* MacOS
* Objective-CまたはSwift
* 無償
* iPhone、iPad、Apple WatchなどのApple製品全般
* ネイティブアプリ
* 実機テストOK

## ※フレームワークを追加することでハイブリッドアプリも作成可能

### [React Native](https://facebook.github.io/react-native/)
* Facebook
* MacOS
* Reactjs、Node、watchman、flow
* 無償
* iPhone
* ハイブリッドアプリ

-------------------------

随時調査して追記予定

-------------------------


# そのほかの開発環境

## [Visual Studio 2015/2017](https://www.visualstudio.com/ja/)
* Microsoft Corporation
* Windows
* HTML/JavaScriptまたはC# ※
* 無償
* Android、iPhone
* ハイブリッドアプリ
* Android実機テストOK、iOS実機テストにはXcodeが必要

※下記の組合せで拡張することで利用可能
- HTML + Monaca
- HTML + Cordova
- C# + Xamarin

### [Apache Cordova](https://cordova.apache.org/)
* Apache CordovaからApacheソフトウェア財団→コミュニティメンテナンス
* Windows、MacOS
* HTML5、CSS3、JavaScript
* 無償
* Android、iPhone
* ハイブリッドアプリ
* Android実機テストOK、[iOS での Apache Cordova アプリの実行](https://msdn.microsoft.com/ja-jp/library/dn757056.aspx)

## [Monaca](https://ja.monaca.io/)
* アシアル株式会社
* クラウド型IDE ※ローカルの場合はVisual Studioまたは[Localkit](https://ja.monaca.io/localkit.html)が必要
* HTML5、CSS3、JavaScript
* 250MBストレージ、3プロジェクトまで無償。以降は有料
* Android、iPhone
* ハイブリッドアプリ
* 専用のデバッガーがあるらしい [Monaca デバッガー](https://docs.monaca.io/ja/manual/debugger/)

## [Xamarin Studio / Visual Studio for Mac](https://www.xamarin.com/studio)
* Microsoft Corporation
* macOS
* C#
* 無償
* Android、iPhone
* ネイティブアプリ

## [Telerik Platform](http://www.telerik.com/platform)
* Telerik
* オンラインエディタ(AppBuilder)
* HTML5、CSS3、JavaScript、Kendo UI
* 無償
* Android、iOS、Windows Phone
* ハイブリッドアプリ
* ブラウザ上のエミュレータ

## [Unity](http://japan.unity3d.com/)
* Unity Technologies SF
* Mac, Windows, Linux
* C#、UnityScript (JavaScript)、Boo
* Personal(無料版)またはUnityPro(月額125ドル)
* Android、iPhone
* ネイティブアプリ？　※ゲーム
* Android実機テストOK、iOS実機テストにはXcodeが必要

## [GameSalad](http://gamesalad.com/)
* GameSalad
* ドラッグ＆ドロップ
* MacOS
* 無料 ※会員登録必要
* iPhone、iPad
* Webアプリ ※ゲーム

-------------------------

随時調査して追記予定

-------------------------

# 参考サイト
## Qiita
[2016年JSハイブリッドアプリの動向をまとめてみた](http://qiita.com/okmttdhr/items/b0e2082432390af470fc)
[統合開発環境はどれを使えば善いか？（独断と偏見の遥か彼方）](http://qiita.com/GeneralD/items/19affd5beba88517a708)
[[React Native] 作りながら覚えるiOSアプリ開発 はじめの一歩](http://qiita.com/rayray_py/items/3043ca5437ed6450f734#_reference-50d27283dcc7aae1d4d8)
[Xamarin(ザマリン) とはなんぞや](http://qiita.com/amay077/items/38ee79b3e3e88cf751b9)

## その他
[Visual Studio ではじめる iOS/Android/Windows クロスプラットフォームアプリ開発](https://www.microsoft.com/ja-jp/dev/campaign/x-platform.aspx)
[プログラミング不要！スマホアプリが開発できるツール10選 [Code部] ](https://blog.codecamp.jp/tool_for_app_development)
[ハイブリットアプリとは|おすすめ開発環境とフレームワーク比較](https://furien.jp/columns/135/)
[【2017年版】スマホアプリ開発環境の種類一覧と選び方](https://sastd.com/spapp-devenv-select/)
[エンジニアが知っておきたいスマホアプリの種類とは？ | ブレーンゲート](http://www.brain-gate.net/column/sp-application/kinds.html)