iPad上で動作するApple純正の無料アプリ「Swift Playgrounds」は、もともとSwift言語の学習用として開発され、提供されているものです。この簡潔な開発環境内では、iOSの主要なフレームワークが使えるため、Swift言語の学習だけでなく、iOSアプリ開発の基礎を学ぶためにも適しています。この講座では、UIKitをはじめとして、マップキットやウェブキットなど、代表的なフレームワークを使って、iOSアプリ開発のための基本的な知識、定石などを学んでいきます。
この講座では、Swift言語そのものや、iOSアプリ開発に必要なフレームワークの内容そのものについて詳しく解説しているわけではありません。それよりも、iPadという身近なツールを使って、最新のSwift 4によるiOSアプリ開発の過程を自分の手、指で体験することで、その基礎を経験的にしっかりと理解していただくことを目指しています。
この講座は、SwiftによるiOSアプリ開発に関する入門書などを読んでも、本当に理解できたという実感が得られなかった人、入門書は読み終わったものの、実際のフレームワークのドキュメントなどを参照して自力で開発を進める前に、入門レベルと中、上級レベルの間に横たわるギャップを埋めたいと考えている人に最適な内容となるように設計されています。
したがって、Swiftを使ったiOSアプリ開発についての初歩的な事項についての予備知識があれば、スムーズに学習を進めることができます。とはいえ、プログラムのソースコードは、すべてその場で入力し、その場で実行して結果を確かめるようにしています。そうすることで、まったくの初心者でもアプリ開発の過程を容易に追体験できるように考慮しています。
また、SwiftによるiOSアプリ開発の中、上級者でも、iPad上のSwift Playgroundsを、iOSアプリ開発のプロトタイピングに使うための基本的な手法を学ぶことができます。この講座で学習すれば、Swift Playgroundsをアプリ開発の補助的なツール、開発中の機能のデモ用のツール、エンジニア同士のコミュニケーションを促進するためのツールなどとして活用できるようになるでしょう。
以下に、全部で6つのセクションの概要を示します。
§1:Swift Playgroundsを使ってiOSプログラミング学習を始めよう
Swift Playgroundsを使って、どのようにiOSプログラミングの学習が進められるのか、についての概要を示すとともに、このコースでの学習のプラットフォームとなる、iPadアプリ「Swift Playgrounds」の基本的な操作方法について解説しています。また、このコースで学んだことをXcodeを使ったiOSアプリ開発に活かすためのヒントなどについても触れています。
§2:ライブビューを使ってiOSアプリの動作をシミュレートしよう
実際にiOSデバイスと同様のアプリ画面を表示する「ライブビュー」の使い方の基礎を解説します。またライブビューの座標系について解説し、このコースのこの後の学習で、どのようにUI部品やビューをレイアウトしていけばよいのか、理解できるようにします。
§3:地図アプリ作成に不可欠なマップキットの基礎を学ぼう
比較的少ないコード量で、圧倒的に効果的な表示が可能なマップキットを利用したプログラミングを取り上げます。位置や縮尺を指定した地図の表示方法から、地図上のタップした位置の住所を割り出す「逆ジオコーディング」、入力した住所の地図を表示する「ジオコーディング」のプログラミング方法もマスターできます。
§4:オリジナルのブラウザーも作れるウェブキットを使いこなそう
URLという、比較的短い文字列データを元にして、全世界に氾濫している情報にアクセスすることを可能にするウェブキットの使い方を取り上げます。ローカルなHTMLデータを表示するところから始めて、シンプルなウェブブラウザーを作成するところまでをカバーしています。
§5:iOSアプリのUIの中でも出現頻度最多のテーブルビューの基礎を学ぼう
一般的なiOSアプリの中で、それと気付かないような使い方も含めて、いたるところで利用されているテーブルビューのプログラミングを取り上げます。単純な表形式のデータを表示するところから始めて、テーブルビューの編集機能をフルに活用したToDoリストアプリを作成できるようになるまで、学習を進めます。
§6:画面間の遷移に不可欠なナビゲーション機能の基本を学ぼう
iOSのユーザーインターフェースの中でも中核的な役割を果たしているナビゲーション機能を取り上げます。どのようにして複数のビューコントローラーを切り替えるのか、という基本をマスターしてから、「iOSフレームワーク辞典」的なミニアプリの作成を通して、テーブルビューとナビゲーションの連携についても学びます。