CSメリー

アプリ開発・ゲーム・ピアノが趣味のプログラマー。最近はコーヒーにもはまってます。 言語…

CSメリー

アプリ開発・ゲーム・ピアノが趣味のプログラマー。最近はコーヒーにもはまってます。 言語経験は Java、Ruby、Objective-C、Swift、Kotlin、Backbone.js、Marionette.js など。

マガジン

最近の記事

UITableViewDiffableDataSource

iOS13 から登場したUITableViewのセルを更新する手法です。今までよりも簡単かつ安全に更新することが可能になりました。 1. セクション情報とデータを Hashable で定義するセクション情報とセルに渡すデータモデルは一意に識別できるように Hashable に準拠している必要があります。Swift の enum は Hashable に準拠しているのでセクション情報は enum で、データモデルは手動で Hashable に準拠させましょう。 セクション情

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

      Delegate(デリゲート)とは、とあるクラスの情報を他のクラスで受け取るための仕組みのことです。UITextField や UIScrollView ではこのデリゲートを利用することで、テキストフィールドの入力値や画面のスクロール状態などを他のクラスに伝達します。 UITextFieldDelegateでの例 以下の公式ページでは、UITextField に関する情報を受け取るためのデリゲートメソッドがたくさん定義されています。 https://developer.a

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

        プロトコルは「仕様書」という意味で、クラスで実装すべきプロパティ・メソッドをあらかじめ定義するものです。クラスではプロトコルで定義されたプロパティ・メソッドを必ず実装する必要があります。 クラスでプロトコルを採用することを「プロトコルに準拠する」といい、書き方は以下のようになります。 protocol プロトコル名 { var プロパティ名: 型 { get set } func メソッド名() -> 返り値の型}class Sample: プロトコル名 {

        • Swift 文法その8 - Enum

          Enum は定数をまとめて定義するためのデータ型です。たとえばサイズを定義する場合は以下のように記述します。 enum Size { case S, M, L}// またはenum Size { case S case M case L} これをそのままデータ型として使用することができるので、クラスなどで変数宣言する場合は以下のようになります。 var size: Size = Size.S// もしくは型推論でvar size: Size =

        UITableViewDiffableDataSource

        マガジン

        • iOSプログラミング
          13本

        記事

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

          Structは(構造体)はクラスと同様データを保持するクラスですが、その挙動には違いがいくつかあります。最近出た機能の SwiftUI、Codable などで Struct を使う機会が多くなっているので、使い分けを把握しておきましょう。 使い方struct User { var id: String? var name: String var email: String var createdAt: Date}let user = User(nam

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

          Swift 文法その6 - クラス -

          クラスとは、特定のデータの値や振る舞いを変数(プロパティ)と関数(メソッド)によって定義したものです。たとえばユーザ登録が必要なサービスでユーザをクラスとして定義すると、 class User { var id: String? var name: String? var email: String? var createdAt: Date? func register(name: String?, email: String) {

          Swift 文法その6 - クラス -

          iOS14 の Pull-Down Menus

          iOS14 で UIBarButtonItem や UIButton を押した時にプルダウンメニューを表示する機能が追加されました。ActionSheet でメニューを表示している場合は、今後は代わりにこちらを使う機会が増えるのではないかと思います。 使い方UIMenu と UIAction というオブジェクトを使用します。 UIMenu iOS13 で追加されたメニューを設定するオブジェクトで、初期化時に以下の引数を指定します。(今回使用する引数のみ取り上げます)

          iOS14 の Pull-Down Menus

          iOS14/iPadOS14 からの WidgetKit

          iOS14/iPadOS14 からホーム画面にウィジェットを表示できる機能がつきました。当社でリリースしている予定管理アプリ「My Schedule」も本日のアップデートでウィジェット対応となり、「今日の予定」がアプリを起動せずに確認できるようになりました。 ウィジェットについて簡単にまとめると、 ・サイズは3種類(small, medium, large) ・1つのアプリで複数のウィジェットを作成可能 ・ビューはSwiftUIで作成 となっており、サイズに合わせてウィ

          iOS14/iPadOS14 からの WidgetKit

          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」という値が入り、今何回目のループなのかがわかります。「1..<4」は「1から4

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

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

          一見難しそうに見えるプログラミングも、処理の仕方は3つしかありません。上から順番に処理する順次実行、条件によって処理を分ける分岐処理、同じ処理を繰り返し実行するループ処理です。ここでは Swift の分岐処理についてご紹介します。 if 、guard 、switch のいずれかを用いて書くことができます。 if 文「もし...であれば処理を実行する」という分岐処理の最も基本的な書き方です。 if 条件式 { ...} if 条件式 { ...} else

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

          Swift 文法その3 - 辞書 -

          辞書は ["name": "taro", age: 10] のように複数の key: value の組み合わせを1つの変数に保存できます。 let で宣言するとKey/Valueの追加、削除、値の変更ができないので注意してください。また、辞書型は並び順が保証されません。ループして順番に処理しようとすると以下のように思ったような順番にはならないので注意しましょう(ループについてはまた後日ご紹介します)。 let dict = ["0": 0, "1": 1, "2": 2,

          Swift 文法その3 - 辞書 -

          Swift 文法その2 - 配列 -

          配列は ["a", "b", "c"] のように複数のデータを1つの変数に保存できます。配列の中にあるデータは要素、要素が配列のどの位置に入っているのかをインデックス番号 で表します。インデックス番号は「0」から始まり、["a", "b", "c"] で言うとaのインデックス番号は「0」、bは「1」、cは「2」です。 let で宣言すると要素の追加、削除、値の変更ができないので注意してください。 宣言・初期化 var a: [String] = []var b = [

          Swift 文法その2 - 配列 -

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

          よく使うデータ型 ・String: 文字列 ・Int: 整数 ・Float: 小数(32ビット) ・Double: 小数(64ビット) ・Bool: 真偽値 ・Any: 不特定の型 Swiftはデータ型に厳しい言語で、たとえば計算処理をする時に、Int と Double のような異なる型同士での計算はエラーになり、どちらかの型を変換して同じ型同士にする必要があります。 データ型の変換例 let a: Int = 1Double(a) // 1let b: Int = 1

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

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

          iOSアプリの開発をするようになってかれこれ5年くらいが経とうとしています。プログラミングにも慣れ、仕事もだいぶ早くこなせるようになり、今となっては仕事だけでなく趣味でも作るようになってしまうくらい好きになりました。 一方、アプリ開発はやってみると最初はわからないことだらけで、私も結構苦労した覚えがあります。特にiOSのバージョンはほぼ1年ごとにアップデートされ、それと同時に開発ツール(Xcode)やプログラミング言語(Swift)のバージョンアップも行われるので、新しい仕

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