キャンペーンの今のうちに是非!!↓


⇒「ひろゆきの名著『1%の努力』を無料で全部読む方法

【Swift奮闘記ep29】iOSアプリ開発入門(SDKとフレームワーク、iOSアプリの動作の仕組み)

IPhoneアプリ作成Swift奮闘記

この本を見ながら進めてる↓

前回⇒「【Swift奮闘記ep28】型のキャスト後半(Any型とAnyObject型、プロトコルのキャスト)

Swiftの文法についての説明がep1~ep28までしてきたが、ここからはSwiftの話というよりはiOSのアプリ開発についての話だ。

題して「iOSアプリ開発入門」。

アプリ開発なんてもちろんしたことないから、初めて聞く言葉だらけでなかなか頭に入ってこなかったり理解できない事が多いと思うが(もちろん俺も)、慣れだと思うのでとりあえず見てみよう。

iOS SDKとフレームワーク

冒頭でも話したことと近い話であるが、アプリ開発はPlayground上でのプログラミングとはかなり違う。

というのも、自分でクラスを一から定義することはあまりないからだ。

なぜかというとiOSアプリ開発するためのクラス等は既に用意されているからだ。

いちからそれぞれ作っていくんでは膨大な時間がかかってしまうから、アプリ開発に必要な素材を予め用意・提供してくれているというわけ。

SDKとは

Appleが用意してくれている開発キットのことをSDKという。

つまりスマホの色んな機能(カメラ機能やマップ機能、写真を表示させる機能・・・)がパッケージに入っていつでも使えますよって状態になっている。

言ってしまえば、アプリ開発ってのはそれらのパーツ(機能)を組み合わせていくだけの作業だと思っている(作ったことない初心者の俺が勝手に認識している)。

iOSアプリの場合はiOS SDKを使うのだが、Xcodeをインストールした時に一緒についてくるから新たにダウンロードしたりする必要はない。

フレームワークとは

iOS SDKの中身はその機能ごとにパッケージングされている。

そのパッケージのことをフレームワークという。又はライブラリ

それらのフレームワークは次の下層構造で作られたレイヤーのいずれかに属している。

  • Cocoa Touch:アプリの基本的な構成や、見た目、タッチしたらどこが反応する、とか
  • Media:画像を表示させたり、音楽を鳴らしたり、映像を流したりする
  • Core Service:GPS機能だったりiCloudやネット接続に関して
  • Core OS:根本的なところ(アプリの土台的な)

非常にわかりづらいかもしれないが、こういった風にわかれているという事だ。

初心者のうちはCocoa Touchを使う機会が一番多いらしい。基本的なところだから。

各レイヤーにどのようなフレームワークが属しているか、Appleが詳細な情報を出しているので、自分でiOSアプリを開発しようとしている場合には、参考にしてみるとよい。

iOSテクノロジーの概要

(https://developer.apple.com/jp/documentation/iOSTechOverview.pdf)

PDFファイルで公開されている。一度は見てみた方がいいと思う。てか印刷してもいいくらいだ。(会社でやろっと。)

UIKitフレームワークとは

数あるフレームワークの中にCocoa Touchレイヤーに属するUIKitというものがある。

UIというのはユーザーインターフェースの事でiOSアプリ開発には必須のフレームワークであるので、まずはUIKitから扱っていくのがiOSアプリ開発の流れだ。

具体的にどのような内容かというと、ユーザーが見たり触れたりする部分、つまりボタンだったりスイッチを押せるようにしたり、画面構成や画面遷移を構築する事が出来る。

iOSアプリの動作の仕組み

iOSアプリがiOS上でどういう仕組みで動いているのかを理解しよう。

iOSアプリの動作に不可欠なもののうち、特に重要なのがUIApplicationというクラスとUIApplicationDelegateというプロトコルだ。

UIApplicationクラスから生成されるインスタンスはiOSアプリの心臓部分に当たるから非常に重要だ。

iOSとアプリの仲介役を担っていて、アプリに起こる様々な状態を管理している。

アプリが起動した、バックグラウンド処理された、プッシュ通知を受け取った等の「ある状態になった」事を検知して処理を実行してくれるというわけだ。

UIApplicationクラスは予め用意されているし、インスタンスを作成するのもiOSが勝手にやってくれるので、特段作業を行う必要は全くない。

UIApplicationDelegateプロトコルについて

ある状態になったらUIApplicationDelegateプロトコルに準拠したインスタンスを使うようになっている。

中身は自分で設定することが出来るので、例えば「どういう状態になったらこういった処理をする」と自分で決めることができるという事だ。

最後に

UIApplicationDelegateプロトコルが呼び出される部分はiOSアプリの根本の様な気がしたので、しっかりと理解したいところだ。

続き⇒「」

コメント