開発環境の調査

月)
iOS

開発者
アップル
OSの系統
macOS / Unix
開発状況
現在開発中
ソースモデル
プロプライエタリコンポーネントにはオープンソースも含む)
最新安定版リリース
iPhone 5s 以降
iPad Air 以降
iPod touch(第6世代)
12.0.1 (16A404/16A405) - 2018年10月9日(1日前) [±]
最新開発版リリース
iPhone 5s以降
iPad Air以降
iPod touch (第6世代)
12.1 beta 3 (16B5077c) - 2018年10月10日(0日前) [±]
対応プラットフォーム
ARM(iPhoneiPod touchiPadiPad mini
カーネル種別
ハイブリッド(XNU)
既定のユーザインタフェース
iOS(アイオーエス)は、アップルが開発・提供するオペレーティングシステム(組み込みプラットフォーム)である。iPhoneiPod touchiPad各全モデルに搭載している。
2008年まではOS X iPhoneという名前だった[1][2]が、2009年にはiPhone OS(アイフォーン オーエス)という名前になり[3]、2010年6月21日にリリースしたバージョン4.0からは現在の名称となった。

 

 

はじめに
私はiOSアプリのフロント側を趣味や仕事で開発しています。
そんな中、時折聞かれるのが「iOSアプリってどうやって開発するの?」という質問です。答えは千差万別だと思うのですが、僕がもう一度最初からやり直すとしたら、フロント側についてはこうやるだろうなというのを書いていきます。また、この記事では、「プログラミングができるようになる」ではなく、「iOSアプリが開発できるようになる」を主眼においています。
こういった記事は他にもあって、個人的にオススメはこの辺りです。
これからiPhoneアプリを作ろうと思ってる人に正月休みを使って読んでみてほしい書籍
アンドロイドだけど参考までに
Androidアプリ開発を独学で学ぶ人への効果的な勉強法

大原則
まず、プログラミングの話をする前に心構え的として語っておきたいことがあるので短めに書き連ねたいと思います。

1. 巨人の肩に乗るという意識
僕が最初の頃に描いていた幻想はプログラミングというのは完成されたものであり、学校の勉強のように決められた範囲を勉強すれば、あとはそれを使いまわすだけである、ということでした。ところが実際は、日々進化していて、昨日まで確立されていた手法は今日は違うということもあるということです。それでも、先人たちの築いてきた土台の上に新しいものが乗っかっているものです。この記事でも後半でライブラリというものに触れますが、先人たちの知恵に恩恵を受けることはとても重要です。

2. 英語への抵抗を減らす
上述した巨人の肩に乗るという意味でも英語への抵抗をなくすことは非常に重要です。ただ安心して欲しいのはネイティブスピーカー並に話させるようになる必要は無いということです。iOSアプリ開発において最低限身につけておきたい英語力は読んである程度理解する事ができる程度で十分です。このぐらいの英語力があると、後述する「ググる」段階であなたを大いに助けることでしょう。

3. 言語はSwiftを選ぶべし
iOS開発はその登場以来、Objective-Cというプログラミング言語が使われてきました。ところが、2014年6月にAppleからSwiftという言語が発表され、今後はこちらに移行していくことが発表されました。この記事を執筆している2015年5月現在は移行期ですが、今後どんどんSwift化が進んでいくので、これから始める人はSwiftで開発するのがよいでしょう。Objective-Cは読むことが必要な段階が来ると思いますが、その時に理解できるように学べば良いと思います。

実際の開発
ここからは実際のiOSアプリ開発についてみていきます。

0. 基本的な文法を理解(最初は飛ばして良い)
これは今回の目的のためには最初は飛ばして良いのですが、書く場所が無いので第0段階として書きます。iOSアプリ開発プログラミング言語(Swift)を用いて行われるため、プログラミング知識が必要になります。しかし、このプログラミング言語そのものを学ぶことは多くの人にとって退屈です。それは何に役立つかがわかりにくいからです。ちょうど英語を勉強するのに文法から入ると挫折しやすいのに似ています。それよりも、まずはよくわからないけど書いてみる。そして実際にアプリが動く事を体験する。そして、より難しいことをやるときに必要に駆られてプログラミングを勉強する。そうすると自然にモチベーションがあがって効率が良くなるはずです。私はこの順序を推奨します。参考までに初心者がプログラミングを学ぶのに易しくてお勧めの書籍を掲載しておきます。言語はSwiftでなくRubyですが、プログラミングのイメージを掴むのにちょうどいいです。

Webアプリでの開発環境
一口に開発環境といってもその中には様々な要素を含んでいます。例えば統合開発環境(IDE)やエディタ、コンパイラ、コード整形(フォーマット)、構文解析などのコーディング作業に直結するようなツールやテストツール、タスクランナー、ソースコードのバージョン管理などの周辺ツール、さらにはバグ/イシュートラッキングやデータベースなどの操作ツールといったものまで幅広い内容となっています。
これらの全てを扱うと考慮事項が膨大な数となってしまいますので、当記事では取り掛かりとして運用側(Ops)の担当領域とも重なる開発時のサーバ周りを中心にみていきます。
開発時のサーバ
Webアプリの開発を行う場合、動作確認のためにサーバが必要になります。
まずは手元のマシンや社内に立てた開発用サーバで動作確認してから本番投入といった流れになっていることが多いと思います。
開発中のWebアプリを手元のマシンで動作確認する場合、Webサーバを手元のマシンにインストールしたり、プログラミング言語フレームワーク(と周辺ツール)が提供してくれるWebサーバ(例: Ruby on Railsの場合「rails server」コマンドで起動する開発用サーバ)を利用することになります。
開発用サーバで起こりがちな問題
ここでよく起こりがちなのが、「開発環境では動くのに本番環境では動かない」という問題です。開発用サーバと本番用サーバの設定の違いや利用するデータの違い、動作の違い(例: 本番環境ではコンパイル済みのアセット(JS/CSS/画像など)を利用するなど)などが原因になり、本番環境では期待する動作とならないというものです。
本来であれば最終的にWebアプリを動かす本番用サーバそのもの、もしくは本番環境とほぼ同等の条件を持つサーバで動作確認するのが理想ですが、以下のような様々な理由により難しいことも多いでしょう。
すでに稼働しているアプリや本番環境のデータには影響を与えたくない
本番環境には開発時にしか必要とされないリソースは置きたくない
セキュリティの都合上、本番環境にアクセスできるユーザーを限定している
本番環境と同等の環境を用意するには費用がかかる
本番環境と手元のマシンがネットワーク的に離れており手元のマシンでの変更を反映するのに時間がかかる
このため、アプリの特性や後続プロセスとの兼ね合いといった様々な面でトレードオフを考慮したうえで本番環境とは別のサーバ環境を構築する必要があります。具体的には以下のような項目がトレードオフを考慮するポイントとなります。
環境構築や変更適用の手順の容易さ
変更適用までの速度
セキュリティ
本番環境での安定動作に対する安全性
費用
以下では大きく分けて3つの具体的な方法をご紹介していきます。実際にはこれらの方法のいずれかだけを利用するのではなく、アプリの特性や組織からの要請に合わせて適宜組み合わせ/調整して利用することになるかと思いますので、各方法を組み合わせて利用するケースについても解説いたします。

感想

アプリ開発に向けて調べましたが

とてもきょうみがわきました。

頑張ってアプリ開発したいとおもいます

需要のあるアプリを考えらえたらなと思います。