マガジンのカバー画像

iOSプログラミング

13
運営しているクリエイター

記事一覧

UITableViewDiffableDataSource

iOS13 から登場したUITableViewのセルを更新する手法です。今までよりも簡単かつ安全に更新することが可能になりました。

1. セクション情報とデータを Hashable で定義するセクション情報とセルに渡すデータモデルは一意に識別できるように Hashable に準拠している必要があります。Swift の enum は Hashable に準拠しているのでセクション情報は enum

もっとみる

Swift 文法その10 - Delegate(デリゲート)

Delegate(デリゲート)とは、とあるクラスの情報を他のクラスで受け取るための仕組みのことです。UITextField や UIScrollView ではこのデリゲートを利用することで、テキストフィールドの入力値や画面のスクロール状態などを他のクラスに伝達します。

UITextFieldDelegateでの例
以下の公式ページでは、UITextField に関する情報を受け取るためのデリゲー

もっとみる

Swift 文法その9 - Protocol(プロトコル)

プロトコルは「仕様書」という意味で、クラスで実装すべきプロパティ・メソッドをあらかじめ定義するものです。クラスではプロトコルで定義されたプロパティ・メソッドを必ず実装する必要があります。

クラスでプロトコルを採用することを「プロトコルに準拠する」といい、書き方は以下のようになります。

protocol プロトコル名 { var プロパティ名: 型 { get set } func

もっとみる

Swift 文法その8 - Enum

Enum は定数をまとめて定義するためのデータ型です。たとえばサイズを定義する場合は以下のように記述します。

enum Size { case S, M, L}// またはenum Size { case S case M case L}

これをそのままデータ型として使用することができるので、クラスなどで変数宣言する場合は以下のようになります。

var size: S

もっとみる

Swift 文法その7 - Struct(構造体) -

Structは(構造体)はクラスと同様データを保持するクラスですが、その挙動には違いがいくつかあります。最近出た機能の SwiftUI、Codable などで Struct を使う機会が多くなっているので、使い分けを把握しておきましょう。

使い方struct User { var id: String? var name: String var email: String

もっとみる

Swift 文法その6 - クラス -

クラスとは、特定のデータの値や振る舞いを変数(プロパティ)と関数(メソッド)によって定義したものです。たとえばユーザ登録が必要なサービスでユーザをクラスとして定義すると、

class User { var id: String? var name: String? var email: String? var createdAt: Date? func regist

もっとみる

iOS14/iPadOS14 からの WidgetKit

iOS14/iPadOS14 からホーム画面にウィジェットを表示できる機能がつきました。当社でリリースしている予定管理アプリ「My Schedule」も本日のアップデートでウィジェット対応となり、「今日の予定」がアプリを起動せずに確認できるようになりました。

ウィジェットについて簡単にまとめると、

・サイズは3種類(small, medium, large)
・1つのアプリで複数のウィジェット

もっとみる

Swift 文法その5 - ループ処理 -

同じ処理を指定回数繰り返します。for、forEach、while の3つの書き方があります。

forループ回数を指定する

// 3回ループする場合for i in 1...3 { print(i) // 1, 2, 3}// またはfor i in 1..<4 { print(i) // 1, 2, 3}

「1...3」は「1から3まで」の意味で、i には順番に「1」「2」「3

もっとみる

Swift 文法その4 - 分岐処理 -

一見難しそうに見えるプログラミングも、処理の仕方は3つしかありません。上から順番に処理する順次実行、条件によって処理を分ける分岐処理、同じ処理を繰り返し実行するループ処理です。ここでは Swift の分岐処理についてご紹介します。

if 、guard 、switch のいずれかを用いて書くことができます。

if 文「もし...であれば処理を実行する」という分岐処理の最も基本的な書き方です。

もっとみる

Swift 文法その3 - 辞書 -

辞書は ["name": "taro", age: 10] のように複数の key: value の組み合わせを1つの変数に保存できます。

let で宣言するとKey/Valueの追加、削除、値の変更ができないので注意してください。また、辞書型は並び順が保証されません。ループして順番に処理しようとすると以下のように思ったような順番にはならないので注意しましょう(ループについてはまた後日ご紹介しま

もっとみる

Swift 文法その2 - 配列 -

配列は ["a", "b", "c"] のように複数のデータを1つの変数に保存できます。配列の中にあるデータは要素、要素が配列のどの位置に入っているのかをインデックス番号 で表します。インデックス番号は「0」から始まり、["a", "b", "c"] で言うとaのインデックス番号は「0」、bは「1」、cは「2」です。

let で宣言すると要素の追加、削除、値の変更ができないので注意してください。

もっとみる

Swift 文法その1 - 変数とデータ型 -

よく使うデータ型
・String: 文字列
・Int: 整数
・Float: 小数(32ビット)
・Double: 小数(64ビット)
・Bool: 真偽値
・Any: 不特定の型

Swiftはデータ型に厳しい言語で、たとえば計算処理をする時に、Int と Double のような異なる型同士での計算はエラーになり、どちらかの型を変換して同じ型同士にする必要があります。

データ型の変換例

le

もっとみる

これからiOSアプリ開発を始める方へ

iOSアプリの開発をするようになってかれこれ5年くらいが経とうとしています。プログラミングにも慣れ、仕事もだいぶ早くこなせるようになり、今となっては仕事だけでなく趣味でも作るようになってしまうくらい好きになりました。

一方、アプリ開発はやってみると最初はわからないことだらけで、私も結構苦労した覚えがあります。特にiOSのバージョンはほぼ1年ごとにアップデートされ、それと同時に開発ツール(Xcod

もっとみる