現役エンジニアの私がプログラミング経験者とプログラミング初心者用にiPhoneアプリを開発するためにすべきことをまとめました。
ちなみに私はAndroid(java)から開発を行い、Android(Kotlin)を開発して、今年iOS(Swift)の開発を行いました。
内容としては、プログラミングまったくの初心者の方は全章、プログラミング経験者orエンジニアの方は最後のiPhoneアプリ開発のためのロードマップが参考になればと思い書きました。
iPhoneアプリの開発とAndroidアプリの開発の違い、iPhoneアプリ開発に必要なもの、iPhoneアプリ開発入門していくために必要なロードマップをまとめました。
私が苦労したことや思ったことも書いてあります、ぜひ参考にしてください。
iPhone(iOS)用アプリとAndroidアプリの違い
iPhoneアプリとAndroidアプリの開発に違いについて解説します。
iPhoneアプリの開発について
iPhoneのアプリを開発する場合は主にSwiftというプログラミング言語を使います。
アップル社がリリースしているプログラミング言語のSwiftですが、まだ歴史が浅く、バージョンによって書き方がコロコロ変わります。そのため、新しい知識を都度アップデートしてプログラミングしていく必要があります。
アプリのデザイン部分を開発する手法も、StoryboardやUIKitやSwiftUIと乱立しています。
このデザイン手法も、これからiOSのアプリを開発していく人にはSwiftUIという手法を使ってプログラミングしていくことが求められます。
このSwiftUIも2019年にアップル社がリリースしたでデザイン方法ですが、今後主流になってきます。
なので今からiPhoneアプリを開発していく方にはプログラミングはSwift、アプリのレイアウトはSwiftUIで勉強することを強くおすすめします。
Androidアプリの開発について
Androidのアプリを開発する場合はJavaかKotlinを使います。
ちょうど現在はAndroidアプリがJavaからKotlinに移行する過渡期です。
そのため、Androidエンジニアの需要も若干上がっているように見受けられますが、プログラミング初心者にはAndroidの開発を私はおすすめしません。
理由は、Android開発の方が難易度が高いからです。Android開発の難易度が高い理由を以下にまとめました。
- Androidのライフサイクルの罠にはまる
- Androidの開発をKotlinから入門できるサイト・本がない ※2021年現在
上記この2つに尽きます。
1の理由を詳細に記載すると、Androidにはライフサイクルという状態を独自に持っています。
そのライフサイクルを意識したプログラミング書かないとアプリが勝手に落ちたりします。
理由の2つめとしては、Kotlinで解説したAndroidの開発を入門する本やサイトが私が見た限りありません。
そんため、Androidのアプリ開発に入門する場合、Java入門 → Android(Java)入門 → Android(kotlin)入門となりかなり時間とモチベーションが必要になります。
そのため、モバイルアプリを開発したいというモチベーションであれば、iPhoneアプリの開発の方が入門はしやすと言えるでしょう。
Androidの開発を入門する方法は過去に書いたのでよければ参考にしてください。
iPhone(iOS)アプリの開発に必要なもの
最悪iPhoneはなくてもOKですが、iPhoneアプリの開発にはMacが必要になります。
iPhoneアプリ開発に必要となるパソコン
iPhoneアプリの開発はXcodeという開発環境が必要になります。
そのXcodeはMac環境でしかう動きません、またMacであればなんでもいいわけでもないです。
2021年4月にリリースされたXcode12.5を動かすためにはmacOS 11.3を入れられるMacが必要になります。
下記がXcode12.5動作をサポートしているMacです。
https://support.apple.com/ja-jp/HT211238
ざっくり見た限り2013年以降に発売されたMacで開発する必要がありそうです。
安くMacを入手する方法
Macは高いので中古を買おうと思う人は多いと思いますが、パソコンの中古は基本的におすすめしません。
なぜなら過去の持ち主がどういった使い方をしているかわからないからです。
パソコンは消耗品です、そのため過去の持ち主がハードに使用していたら長く使用できず安物買いの銭失いになってしまうかもしれません。
そこで、Macを安く購入する方法を教えます。
1つ目は、学校の教員や職員、高校生以上の学生、PTA役員は割引でMacを購入できます。
https://www.apple.com/jp_edu_1460/store
2つ目は、アップル公式の整備品を購入するとで正規品を少し安く購入できます。
https://www.apple.com/jp/shop/refurbished
整備品とは店頭でディスプレイとして使用したもの、初期不良があった正規品を修理して安く購入することができることです。
整備品であれば1年の保証もついてくるので安心です。
iPhone(iOS)アプリの開発入門ロードマップ
最後にiPhoneアプリの開発のロードマップを書いていきます。
iPhoneアプリを開発していく中で、プログラミング初心者とプログラミング経験者orエンジニアで分けてみました。
プログラミング初心者がiPhoneアプリの開発を行うロードマップ
プログラミング初心者であれば、プログラミングを勉強しながらiPhoneアプリの開発が学べる書籍がいいと思います。
私が、いくつか読んだ以下の本が網羅的に書いてありました。iPhoneアプリのデザイン方法が網羅されています。
この本を一通り理解してSwiftでプログラミングが書けるようになれば、次はカピバラさん(カピバラ@SwiftUI学習中)という人が運営しているカピ通信というサイトがおすすめです。
SwiftUIのレイアウトや簡単な処理が網羅されています。
ここまで到達できた人は、次のプログラミング経験者orエンジニアのロードマップを参考にしてください。
プログラミング経験者orエンジニアがiPhoneアプリの開発を行うロードマップ
ここからは、プログラミング経験ありの人かエンジニアを対象の方のSwiftUIの入門方法を解説します。
まずは、アップルの公式チュートリアルを参考にしてください。
プログラミング経験者やエンジニアであれば1日集中するとおわるはずなので1日でサクッと終わらせましょう。
どうですか? SwiftUIでアプリのレイアウトが書けるようになりましたか?
エンジニアであれば気づくと思いますが、SwiftUIでアプリで画面レイアウトは書けるようなったけど、レイアウトが動くだけでアプリとしては振る舞いはできない状態だと思います。
私もここで悩みました、SwiftUIからiOSの開発に入門すると、アプリの振る舞いはどこにどのように書くのかわからないままでした。
そこで、書店やサイトを見て考えました。その中で出会った本です。
この書籍は、ネットで補完しながら読む必要ははありますが、この本とネットを使ってなんとかSwiftUIってこういった風に書くのかなと勉強しました。
エンジニア経験の浅い人には少し難しいかもしれませんが、以下のGitHubのリポジトリも勉強になりました。
まだまだSwiftUIはリリースされたばかりで情報が錯綜している部分も多いので、SwiftUIの入門情報をまとめてめてみました。
後半はちょっとプログラミング経験が少ない人には難しいかもしれませんがiOSを開発しはじめたエンジニアが苦しみながらも集めた情報を共有してみました。
お互い頑張りましょう。