初心者でも絶対に始められるiPhoneアプリの作り方&Xcode・シミュレーターの使い方:初心者のためのSwiftで始めるプログラミング入門(8)(4/5 ページ)
本連載では、これからプログラミングやiPhoneアプリ開発を始めてみたい方を対象に、開発に必要な知識を基礎から解説していきます。今回から動く絵本アプリを作っていきます。まずは、iOSシミュレーターでアプリを実行するところまでやってみましょう。
iPhoneアプリを作るときに覚えておきたいSwiftの文法
テンプレートからXcodeプロジェクトを作成した時点で、実は既にiPhoneアプリとして動作する状態になっています。そのため、そのまますぐにiOSシミュレーターや実機上で実行できます。
実行する前に、作成されたプログラムを少しだけのぞいてみましょう。アプリ起動後、初めに表示される画面を制御しているのは「ViewController.swift」というファイルの中に書かれているViewControllerクラスです。プロジェクトナビゲーターの中にある「ViewController.swift」をクリックしてください。エディタ領域にプログラムが表示されるはずです。
「.swift」という拡張子が付いているファイルが、Swiftで書かれたプログラムファイルです(Swiftファイル)。一つのSwiftファイルには複数のクラスを書くことができますが、通常、一つのSwiftファイルに一つのクラスを書きます。
ViewControllerクラスに書かれているプログラムを、一行ずつ見ていきましょう。
1.フレームワークのインポート
import UIKit
いきなり、なじみのない文法が出てきましたね。「import」から始まるプログラムは「インポート」と呼ばれる機能です。これは、あらかじめ用意されているフレームワークを、Swiftファイル内で使えるようにするためのプログラムです。
iPhoneアプリの画面をレイアウトしたり、管理したりするためのクラスは「UIKit」フレームワークに含まれています。そのため「ViewController.swift」では、「import」を使ってUIKitフレームワークを利用できるようにしています。
2.クラスの継承
2.にはViewControllerクラスの定義が書かれています。ここでも、またもや見慣れない書き方が登場しています。
class ViewController: UIViewController { }
このクラスでは「継承」という機能を使っています。継承とは、既に存在するクラスの派生として、新しいクラスを定義することです。その名の通り、新しく定義するクラスに既に存在するクラスの機能(プロパティやメソッドなど)を受け継がせることができます。新しく定義したクラスでは、継承元のクラスに定義されたプロパティやメソッドを、自分のものとして使えます。なお、継承元のクラスは「スーパークラス」と呼びます。
クラスの名前の後に続いている「:」以降が継承の定義です。「:」の後にクラス名を書くことで、指定したクラスをスーパークラス(継承元のクラス)とすることができます。
class クラス名: スーパークラスの名前 { }
ViewControllerクラスは、UIViewControllerクラスを継承したクラスです。UIViewControllerクラスはUIKitフレームワークに含まれているクラスです。つまり、UIViewControllerクラスを使うために「import」を書いていたというわけです。
3.viewDidLoadメソッドのオーバーライド
ViewControllerクラスの中に書かれている二つのメソッドは、いずれもスーパークラスであるUIViewControllerクラスから受け継いだメソッドです。これらのメソッドの初めでも、またもや見慣れない書き方をしています。
override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. }
メソッドを受け継ぐ場合、スーパークラスで決められていた動きを上書きすることができます。この機能のことを「オーバーライド(Override)」と言います。呼び出し方は同じにしておいて、呼び出されたときに実行する動きをスーパークラスのものからアレンジできます。
メソッドをスーパークラスからオーバーライドしたい場合は、メソッドの宣言である「func」の手前に「override」と書きます。メソッド名は、スーパークラスに定義されているメソッド名と同じ名前にします。
override func 継承元で定義されているメソッド名() { }
viewDidLoadメソッドは、アプリの画面上に表示されたときに自動的に呼び出されるメソッドです。このメソッドをオーバーライド(つまり、上書き)することで、画面上に表示されたときに好きな動きができます。
また、メソッド内に記述している「super.viewDidLoad()」は、スーパークラスの同名のメソッドを呼び出しているプログラムです。「super.メソッド名」の形式で、スーパークラスで定義されているメソッドを呼び出せます。よって、このメソッドではスーパークラスのviewDidLoadメソッドの処理に新しい処理を加えることができる状態になっています。
4.didReceiveMemoryWarningメソッドのオーバーライド
didReceiveMemoryWarningメソッドは、アプリがメモリ不足(アプリで扱っているデータの量が多過ぎて容量が足りなくなる状態)になったときに自動的に呼び出されるメソッドです。
override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. }
プログラムの内容は、viewDidLoadメソッドとほぼ同じです。メソッド内でスーパークラスのdidReceiveMemoryWarningメソッドを呼び出しているので、スーパークラスのdidReceiveMemoryWarningメソッドの処理に何かしらの処理を加えることができる状態になっています。
クラスにプログラムを追加してみよう
ViewControllerクラスの内容が理解できたところで、プログラムを追加してみましょう。viewDidLoadメソッドに、次のようなプログラムを書いてみてください。
override func viewDidLoad() { super.viewDidLoad() print("アプリが起動したよ!") }
「super.viewDidLoad()」の次の行に書かれていたコメント行を消し、新たに「print」関数を呼び出しています。Playgroundで「print」関数を呼び出していたときは結果が即座に表示されていましたが、アプリ作成ではそのようなことはありません。アプリをiOSシミュレーターまたは実機上で実行し、画面が表示されるようになったときに呼び出されるようになります。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 初心者でもiOS 9/tvOS向け2Dゲームが作れる標準フレームワークSpriteKitの基礎知識とチュートリアル
iPhoneゲームをSwift言語で作成してみたいという初心者向けにiOSのゲームフレームワークを使った作り方を一から解説する入門連載。初回は、SpriteKitの概要とサンプルゲームの動かし方、主要なクラスやメソッドなどを紹介する。GameplayKitなど他のゲームフレームワークの概要も。 - iOS 8のPhotoKitの概要&Xcode 6.1/Storyboard/Auto Layout/iOSシミュレーターの基本的な使い方
iPhone 6/6 PlusアプリをSwift言語で作成してみたいという初心者向けにiOS 8の新機能を使ったアプリの作り方を一から解説する入門連載。今回は、iOS 8のPhotoKitの概要とXcode 6.1の画面構成、新規プロジェクトの作り方、StoryboardとAuto Layoutによる画面作成方法、iOSシミュレーターの使い方などを解説する。 - 開発者向けiOS 9、WatchOS 2、Swift 2、Xcode 7の新機能と新しいApple Developer Programの参考情報まとめ
iOS 9、WatchOS 2、Swift 2、Xcode 7の新機能や、Apple Developer Programについて、その概要とアップルが公開している参考情報をまとめて紹介します。 - iOSアプリ開発でObjective-CからSwiftに移行するための手順、注意点まとめ〜言語仕様の違いは? 連携時の呼び出し方は?
開発生産性や品質を向上させたいiOSアプリ開発者のためにObjective-CからSwiftへ移行するメリットや手順、注意点など勘所をまとめて紹介します。 - アップル、新プログラミング言語「Swift」「iOS 8 SDK」「Xcode 6」のベータ版を発表
米アップルが新しいプログラミング言語「Swift」と開発ツール「iOS 8 SDK」「Xcode 6」のベータ版を発表。その特徴と注目ポイントを紹介。 - 外から見るWWDC 2014キーノート――Swiftに感じるAppleの本気
WWDC常連のドリキンが今年もキーノートを斬ります! 今回はメディアとエンジニアとで、反応が真っ二つに分かれる内容となりました。その理由をエンジニア視点で解き明かしていきたいと思います。 - Excelでプログラム作成を始めるメリットとマクロの基本
プログラミング初心者を対象にExcelマクロ/VBAを使った業務自動化プログラムの作り方を一から解説します。初回は、そもそもプログラミングとは何か、Visual BasicとVBAとマクロの違い、マクロの作り方、保存/削除、セキュリティ設定などについて【Windows 10、Excel 2016に対応】。