2
5

More than 5 years have passed since last update.

【Swift】初めてのXcode

Last updated at Posted at 2019-07-04

この記事では、Webページを表示するアプリを作ります。

プロジェクトを立ち上げる。

  1. Xcodeを起動し、起動画面から"Create a new Xcode project"を選択。
  2. 次に、"Single View Application"を選択。 SingleView.png
  3. 次の画面ではプロジェクト名を入力。"Organization Identifier"では、ドメイン名を逆に記入するが、練習なので、com.exampleとする。  Optimize.png
  4. 保存する場所を選択する。

実行する

  1. プロジェクトが立ち当たったら、どの種類のデバイスでシュミレータを実行するかを選択します。デフォルトではiPhone XRになっているはず。IPad AirやiPhone 8などいろいろ選択することができます。
  2. 機種を選択したら、実行してみます。左上にある三角のボタン(▶︎)を押すことでコードを実行することができます。Cmd+Rでも同じようにできます。
  3. 白い画面が現れたら成功。 run.png
  4. Cmd+.で実行をストップできる。

Webサイトを表示してみる。

今回は、Webページを画面に表示させてみます。

WebKitの導入

ViewController.swiftを開き、import UIKitの下にimport WebKitを追加する。

ViewController.swift
import WebKit

画面を作る

WKWebViewを生成。

ViewController.swift
var webView: WKWebView!

viewDidLoad()の前に以下のメソッドを追加

注:この段階ではまだ動かない。

ViewController.swift
override func loadView() {
    webView = WKWebView()
    webView.navigationDelegate = self
    view = webView
}
  • 厳密にはloadView()viewDidLoad()の前に置く必要はない。ViewControllerクラスのどこにloadView()を置いてもいいが、loadView()viewDidLoad()の前に呼ばれるため、実行される順番がわかりやすいように上のような記述にしている。
  • WKWebViewと呼ばれる部品のインスタントを作り、これをwebViewプロパティとひもづける。

デリゲートを実装する。

上記のエラーを解消する。

以下のコードを

ViewController.swift
class ViewController: UIViewController {

以下のように変更する。

ViewController.swift
class ViewController: UIViewController, WKNavigationDelegate {
  • class A: Bとすることで、AクラスはBの機能を実装できる。
  • class A: B, Cとなっている場合、AはBを継承していることを示し、Cがデリゲートされていることになる。
  • 上記のコードでは、ViewControllerUIViewControllerの子クラスであり、WKNavigationDelegateをデリゲートすることになる。

表示するURLの設定

viewDidLoad()super.viewDidLoad()の後に以下のコードを書く。

ViewController.swift
let url = URL(string: "https://www.apple.com/")!  //任意のURL
webView.load(URLRequest(url: url))
webView.allowsBackForwardNavigationGestures = true
  • string型のURL型に保存。
  • URLからURLRequestオブジェクトを生成する。
  • urlの冒頭はhttps://とすること。

実行

Cmd+Rで実行すると、シュミレータにWebページが表示される。
shot.png

終わりに

まずはWebページを表示するシンプルなアプリを作ってみました。
これから色々なアプリを作って練習していこうと思います。

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5