iPhoneアプリ開発のはじめかた

作成日:2020/05/18

お役立ちコラム

iPhoneアプリ開発のはじめかた

iPhoneアプリの開発に必要なもの、必要な知識、その習得方法をご紹介します。
かつてはアプリと言えば Windows アプリでしたが、今やWebアプリの時代ですね。
計測制御やCADなどの特殊なアプリを除いては、経費精算から顧客管理まで一般業務アプリはWebアプリになっています。
一方でスマートフォンの普及により iPhone アプリと Android アプリが注目されています。
以前はWebブラウザーからアクセスするWebアプリを開発し、次いでスマホアプリを開発する流れでしたが、近年ではサービスによってはWeb UIを開発する前にスマホアプリを先に開発する流れも出てきています。
Webアプリよりスマホアプリの需要の方が高い、スマホアプリファーストの時代です。
今回は iPhone アプリに焦点を当てます。
貴社の iOS 開発者育成のお役に立てばと思います。

iPhoneアプリの開発に必要なもの

開発に必要なものは以下のとおりです。

  • Mac
  • Xcode
  • iPhoneの実機
  • Apple Developer Program メンバーシップ

iPhone アプリの開発だけなら Mac はどの機種でもかまいません。
しかし Mac 上でサーバー環境も動かしてテストする場合は、クアッドコアCPUで16GB以上のメモリがあった方が良いでしょう。

Xcode は Windows で言えば Visual Studio に相当するIDE(統合開発環境)です。
Xcode は Mac の App Store から無償でダウンロード可能です。

iPhone アプリは Xcode に付属するiOSシミュレーターでテストできますが、アプリ内課金などシミュレーターでは動作しない機能もあります。
そのため App Store で配布するためには iPhone 実機でのテストが必須です。

Apple ID があれば実機テストまで無償でできます。
しかし App Store でアプリを配布するには、個人または組織として有償の Apple Developer Program への登録が必要になります。
年間メンバーシップ料金は、個人は11,800円 (税別)、法人は37,800円 (税別)です。

iPhoneアプリの開発に必要な知識

  • 言語:Swift
  • フレームワーク:FoundationとUIKit
  • 統合開発環境:Xcode

iPhone アプリを開発するための言語には Objective-C と Swift という2つの選択肢がありますが、これから開発を始めるなら Swift で良いでしょう。
Swift は Apple が2014年に発表した新しい言語です。
初期は言語仕様が不安定で仕様変更が多かったのですが、Swift4 以降は落ち着いてきています。
Java か C++ か C# での開発経験があれば習得は容易で、近代的で安全な言語です。

Foundation は最も基礎的なフレームワークです。
文字列や日時といった型の操作や変換、ファイルの読み書きやオブジェクトの保存、HTTP や Bonjour などのネットワーク接続、プロセスやスレッド処理などの OS に近い基本的なクラスライブラリを提供します。

UIKit は iOS と iPadOS の UI をつかさどるフレームワークです。
通常は Xcode の Storyboard という機能で画面構成と画面遷移を定義し、Swift 言語のコードで UIKit の API を用いて動作を定義することになります。
Storyboard から Swift コードへは Outlet(プロパティとして)または Action(メソッドとして)で接続します。
「通常は」と書きましたが、Storyboard ではなく Swift コードと API だけで画面構成と画面遷移を定義することもできます。

UIKit での開発画面

Storyboard と Swift コードにビューとコントロールが分離されると不整合が生じやすく、チーム開発が難しいため、多くの企業では Storyboard を一切使わずに開発をします。
しかし、そうするとプレビューはできず、ビルドして動かしてみるまで画面を確認できないため非効率です。

昨年2019年の Apple Worldwide Developer Conference (WWDC19) で発表された SwiftUI という新しい UI のフレームワークは、この問題を解決します。
SwiftUI は Swift コード内に宣言型シンタックスで UI を定義すると、すぐに Canvas というデザインツールで画面をプレビューできます。
Canvas で画面を変更すると直ちにコードに反映され、コードとプレビューが同期します。

SwiftUI での開発画面

コードだけ共有してリビジョンコントールしていけばビューとの不整合はないので、チーム開発がしやすくなります。
また UIKit は iPhone と iPad 用のフレームワークで、Mac、Apple Watch、Apple TV の UI には別のフレームワークを使う必要がありますが、SwiftUI はすべての Apple プラットホームに対応します。
SwiftUI は、まだ発表されたばかりで UIKit のすべての機能には対応していませんので、一部の機能は UIKit を使う必要があります。
まだ仕様も品質も不安定な印象を受けますので、まずは UIKit を習得しましょう。
しかし将来は SwiftUI が UIKit を置き換える可能性があります。

UIKitとFoundation以外にも、アプリ内課金には StoreKit、3D CG には Metal、AR には ARKit など、用途に応じたフレームワークを使いアプリを開発していきます。

Apple Developer Documentation

習得方法

新しい言語と開発環境はオンラン講座か市販の書籍で学習される方が多いと思います。
Swift 言語と UIKit は市販の本がたくさん出ていますし、オンライン講座もあります。
注意点は新しいバージョンに対応しているか?という点です。
2020年2月時点の最新バージョンは Xcode 11 / Swift 5.1 / iOS 13です。
書店にはまだ2014年発売の Xcode 5 / iOS 7 対応の本なども並んでいますが、Xcode も Swift も UIKit も変化が早いので役に立ちません。
最低でも Xcode 9 / Swift4 に対応した教材で学びましょう。

Swift 言語に関しては Apple 純正の無償の教科書を利用する方法もあります。
Mac か iPad の「ブック」アプリの「ブックストア」で “ Swift ”で検索してみてください。

The Swift Programming Language (Swift 5.1)
という本が見つかります。
この本は1000ページ以上にも及ぶ英語の本ですが、Java か C++ での開発経験があれば A Swift Tutor の章(50ページ程度)のサンプルプログラムを見るだけでも理解が進むと思います。

Swiftによるアプリケーション開発:入門編
という日本語の教科書も見つかります。
残念ながら iOS 9 / Swift 4 対応ですが、初心者向けの本で、読み進めれば勉強にはなります。
しかし最新の Xcode だとうまく動作しないサンプルコードもあります。

Swift 言語を学ぶには Xcode の機能である Playground という対話型の開発環境で練習するのがお勧めです。
Swift Playgrounds というiPad 用および Mac 用アプリでも Playground が使えます。

以上、Swift 言語に関してですが、UIKit も市販の本やオンライン講座で学べます。
Xcode のエディター、Storyboard、ビルド、デバッガーの基本的な使い方は市販本で習得できます。

しかし、より詳細な使い側、例えば Git によるリビジョン管理、GitHub との連携、自動テスト、クラッシュログの解析方法、Instruments などは初心者向けの書籍や講座では説明されません。
Instruments とは Xcode のプロファイラーツール群です。
アプリを軽くするために CPU、メモリ、IO、ネットワークの使用量、オブジェクトのメモリ割り当て、アプリ起動時のパフォーマンスなどを動的に解析できます。

Xcode Instruments

いかがでしたでしょう?
iPhone アプリを作ってみようと思われましたか?
Xcode、Swift 言語、UIKit の基礎を習得したら、習うより慣れろ、実用的なアプリを開発してみてください。
実践的なアプリ開発を通じて、Apple のデベロッパー向けドキュメントを参照しながら、Swift と UIKit により詳しくなり、Xcode の詳細な使い方を習得することができます。
この場でも iPhone 開発者向け情報を少しずつ紹介していけたらと思います。
次回はデバッグと自動テストについてご紹介します。

お問い合わせ

Xcodeでの開発用にはMacレンタルをご利用ください。

追加で開発用機材が必要な時にご利用ください。

iPhoneアプリ開発 コラム一覧

お気軽にお問い合わせください

ページの先頭に戻る