図書館にあったので、「絶対に挫折しない iPhoneアプリ開発「超」入門 第8版 【Xcode 11 & iOS 13】 完全対応」にまず取り掛かった。

2021-01-20 Progateの利用方法と同様にしようかと思ったが、サンプルコードがかなり単純だったのと、あとで検索したり読み返しやすくするため、グーグルスプレッドシートに用語等を記録していきながら読み進めた。

その際、サンプルコードを写経してはいたが、あまり内容を覚えようと意識してはいなかった。UI部品は大量だし、関係するプロトコルやクラスも膨大なので、利用する段になって改めて検索するなりスプレッドシートを見返したら良いと考えていた。一応、クラスの使い方はRuby等多くの言語と似ているし、Progateで概要は理解しているから同じようなノリでストラクチャーも雰囲気はつかめたし大丈夫だろうと。これぞまさに「完全に理解した」状態……。

実際は、クラスと継承、ストラクチャー、プロトコルやデリゲートの内容がごっちゃになってどれも実践で利用できるほど理解できていなかった。記法がうろ覚えなので、書かれている用語がクラスか、プロトコルか、はたまた型なのか区別できない。なまじIntDoubleは馴染みがあるので、それ以外のSwift特有の型表現(some ViewContext他いろいろ)が型だと認識できない。記法が頭に入っていればまだ対応できそうなものだが、Swiftは記述をよく省略するのでさらに難易度が上がる。型の省略、引数がなければカッコの省略、1行のみならreturnの省略、etc.。

区別がつかない以上、ネット上のサンプルコードをある程度でも理解しようとすると、片っ端から単語の意味を確認せざるを得ない。もちろん根本的な知識不足もあるが、概要すら把握できないので、サンプルコードを編集することすらままならない。

結果、「超入門」を一通り読み終えてから、通話関連のアプリを作ろうと考えてCallKitのサンプルコードをネットで見つけたが利用方法もろくにイメージできなかった。かなりの時間をかけてコードを理解しようと試みたにもかかわらず(一応、概要は理解できた)。

ちょっとゴチャついたが、現状の問題点は

  • Swift特有の記述方法をぼんやりとしか理解していないので他人のコードが読めない
  • オブジェクト指向の利用経験が皆無なので肌感がない
  • Swiftに慣れてなさすぎる

自分の力量を過信していたので、まずは「超入門」の実習にある見本コードを思い出しながら自分で同じアプリを作成してみる。その際、死ぬほど記法を意識する。結局自分で書いていないことがほぼ元凶なので、書く。

あと、通話関連のアプリは時期尚早と見て、実習にもあった英単語のアプリ作りにかかる。

以上。