WebエンジニアのiOSアプリ開発入門 SwiftUI Tutorials編
今日はiOSアプリ開発に入門した話をしたいと思います。
私は普段はWebエンジニアとして働いており、経験年数は大学生のインターン時代から数えると約6年です。ちなみに、iOSアプリ開発はほぼ初めてです。(もちろんAndroidも)
iOSアプリ開発を始めた理由
私は普段の仕事では、モバイルアプリがメインのプロジェクトで、Reactを使ったWeb開発をしています。
プロジェクトの性質上、私のチームはモバイルアプリ内のWebViewで表示されるWebページを開発する機会が多いです。そのため、頻繁にiOS Simulatorを開いて開発環境のモバイルアプリを起動して開発・デバッグをしますし、Universal Links / App LinksやCustom URL SchemeをWebページ内に設置したりもします。
このようなモバイルアプリ開発が身近な環境にいるため、モバイルアプリ開発に興味を持ち、自分でもモバイルアプリを開発してみたくなりました。
MacBookとiPhone持ってたので、iOSアプリ開発を始めることにしました。
やったこと
ボリュームが大きい学習教材だとモチベーションが続かない気がしたので、1~2週間で修了できそうなボリュームで、かつ楽しそうな教材を始めることにしました。
SwiftUI Tutorials
いくつか調べてみて、Appleが提供するSwiftUI Tutorialsがとても良さそうだったのでまずはこのチュートリアルから始めました。結論、とても良かったです。
このチュートリアルでは、SwiftUIを使って、ユーザーがお気に入りの場所(Landmark)を見つけて共有するためのアプリを開発します。
アプリには、以下の機能があります。バックエンドの実装は無いので、UIに必要なデータは用意されたjsonファイルを使用します。
Landmarkをリストで表示する
各Landmarkの詳細ビューでMapや詳細情報を表示する
Landmarkをお気に入りに追加できる
ユーザーが訪問したLandmarkのバッジを付与する
アプリの使用中にユーザーが行ったハイキングを追跡するためのグラフを表示する
※最後のセクションでUIKitを使用したり、watchOSアプリの作成がありますが、そこはスキップしたので、一部未完成です。
以下、コースの感想です。
とても実践的で本格的なチュートリアルだと思います。説明も丁寧で、Swift完全初心者でしたが学習を進めることができました。
実は最初はiOS App Dev Tutorialsから学習を始めたのですが、私には難しく感じたのと、ボリュームが大きすぎて、かなり時間がかかりそうだったので、SwiftUI Tutorialsの方にスイッチしました。スイッチしなければ挫折してたかもしれません。
SwiftUI Tutorialsは所要時間 4時間25分と書いてありますが、私はほぼ全て写経しながら進めたのと、英語を翻訳しながらだったこともあり、実際には10~12時間かかりました。
私の理解力の低さや英語教材ということもあり、まだ理解できない箇所がいくつかあります。具体的には、struct、Binding、Observableの理解がとても浅いです。
次にやること
SwiftUI Tutorialsで理解できなかった箇所、理解が浅い箇所がいくつかあるため、次に以下の本を購入して読み進めています。
この本はいくつかのサンプルアプリをSwiftUIで開発していくスタイルで、かなり優しく、簡単な説明が付いており、初心者にとても優しいです。
日本語最高!
この本では写経せず、あくまでSwiftUIの理解を深めるという目的で、全体をざっと眺めるに留める形で進めます。写経は一定の効果がありますが、時間がかかりすぎてしまうのと、モチベーションを保つのが自分にとっては難しいためです。
本を参考にし、自分が作りたいアプリを実際に開発していきたいと思います。