皆さんこんにちは、ここは Bo2SS です。前回アプリ開発編で資料推薦の追加がまだ残っているとお話ししましたが、すぐに追加します~
インターネット時代、学習資料は基本的に豊富で多様ですが、学習者にとって自分に合った質の高い学習資料を選ぶことは大きな課題となっています。
もし検証済みで自分に合った学習資料を迅速に見つけることができれば、私たちの学習効率を向上させるだけでなく、現在直面している問題を迅速に解決する手助けにもなります。
そのため、この追加資料は著者が推薦するいくつかのオンラインリソースと関連書籍を整理したものです。開発者の皆さん、ぜひブックマークしてください!
「キーワード」オープンソース、有名な公式アカウント、Apple 公式リソース、内功を鍛える
オンラインリソース#
システム学習#
Open-Source iOS Apps:多くの優れた完全なオープンソースアプリを収録しており、分類が詳細で、App Store に上架されたアプリを特別にマークしています。完全な例を通じてアプリ開発を学ぶのに適しています。
-
誰もが知っている Awesome シリーズで、一定の知名度のある分野には必ず自分の Awesome xxx プロジェクトがあります。
-
最大の特徴は大規模で包括的で、開発、デバッグからリリースまでのさまざまな学習資料を網羅しており、ブログ、書籍、チュートリアル、ポッドキャスト、メール購読などの推薦も含まれています。
-
また、さらに細分化された Awesome サブシリーズの推薦もあります。例えば、Awesome ARKit、Awesome iOS Interview(一般的な面接質問を集めたアプリで、App Store に上架されており、実際に使用するには VPN が必要です🪜)。
-
最後に著者は、iOS の問題に直面したときは、まずこのサイトをチェックするべきだと提案しています。
漏れを補う#
インターフェースインタラクション:
- Cocoa Controls と iOS Examples (Swift):多くのオープンソースライブラリを収集しており、分類が詳細で、「ホイール」を探したり実装思想を学ぶのに非常に適しています。
冷知識:
- NSHipster:AFNetworking と Alamofire の作者 Mattt が運営するサイトで、あまり使われない iOS の知識に焦点を当てています。
開発者 / チーム:
-
Swift の有名な開発者:iOS 分野の最前線で活躍する開発者の視野と iOS の最新の動向を理解するために。
-
Swift オープンソースプロジェクトチーム:彼らのオープンソースプロジェクトを使用している場合、彼らの動向をフォローすることで、これらのオープンソースプロジェクトの最新の進展を随時把握できます。
-
PS:iOS の有名な開発者は基本的に Swift に偏っています。
私がフォローしているいくつかの公式アカウント:
-
技術周報(定期的な週報)、iOS 成長の道(定期的な週報)、starming(著者本人)、SwiftGG 翻訳チーム(Apple エコシステムに注目)、Bo2SS(あなたと共に成長👀)。
-
「公式アカウントにリンクを添付」
その他:
- iOS 開発者が注目すべきウェブサイトの推薦:コミュニティから週報、ブログ、ツールまでの精選された推薦。
公式リソース#
💡 もちろん、Apple 公式リソースへの注目も欠かせません:
-
WWDC:Apple が毎年開催する世界開発者会議で、WWDC App for macOSを使用して視聴体験を向上させることができます。
-
WWDC NOTES:WWDC 動画に対応する質の高いノートを収集しており、動画を視聴するよりも迅速に振り返ることができ、時間を節約できます。
-
WWDC Community:最近のさまざまな WWDC イベント、ニュース、チュートリアルを追跡します。
-
-
Human Interface Guidelines(ヒューマンインターフェースガイドライン)
関連書籍#
もし特定の分野の専門知識を徹底的に習得したいのであれば、心を落ち着けて関連書籍を通じてゆっくり学ぶ必要があります。
Objective-C#
《Objective-C プログラミング》、《iOS プログラミング》:
-
The Big Nerd Ranchが制作したもので、どちらも良い入門書です。
-
現在、自分自身で一度読んでおり、機会があればいくつかのノートを整理する予定です。
-
OC の 3 つのコア知識点に焦点を当てています:メモリ管理、Block、GCD(Grand Central Dispatch)。
-
Apple が公開したソースコードに基づいて、詳細に説明しています。
-
誰もが知っているEffective シリーズで、一定の知名度のある言語には必ず……
-
文法、インターフェースと API 設計、メモリ管理、フレームワークなどの 7 つの側面から、OC プログラミングにおける 52 のあまり知られていない特性と罠をまとめて探討しており、上級読物に分類されます。
Swift#
Raywenderlich > Booksプラットフォーム:
-
一歩一歩、開発知識を習得する方法を教えてくれる非常に実用的で質の高い内容です。
-
幅広い分野をカバーしており、例えば ARKit、データ構造とアルゴリズムの Swift 版、デザインパターン、Core Data、iOS アニメーション、Apple デバッグと逆アセンブル、RxSwift、Realm、ゲーム開発などがあります。
-
さらに、このサイトには学習パス、動画、記事などの他の質の高いコンテンツも含まれています。
objc.ioプラットフォーム:
-
原理とソースコード実装の観点から知識点を説明しています。
-
内容は Raywenderlich が出版した書籍よりも深く、一定の iOS 開発経験のある人に適しています。
不変の一般知識#
《プログラマーの自己修養 - リンク、ロードとライブラリ》:
-
ハードウェア、オペレーティングシステム、スレッドの知識を詳細かつ深く説明しており、コードのコンパイル、リンクから実行時のメモリ仮想空間と物理空間のマッピングの観点から、プログラムが作成されてから実行されるまでの底層知識のあらゆる側面を理解するのに役立ちます。システムの動作原理を理解するのに役立ちます。
-
この本を読む前に、CPU、コンピュータ原理、アセンブリ、コンパイラ原理、C 言語、C++ 言語などのコンピュータ科学の基本知識を習得しておく必要があります。
《クリーンアーキテクチャ》:
-
「Clean 神話」を創造したボブおじさんのアーキテクチャ分野の最高傑作で、アーキテクチャ設計の思想は決して古くならないものであり、すべての知識分野に適用されます。
-
アーキテクチャの目標価値、プログラミングパラダイム、アーキテクチャ設計原則、コンポーネントの分割と境界処理を詳細に分析し、実践的なケースを通じて説明した知識をつなげて、読者が理解しやすくしています。
-
大量のプログラミング経験を持ち、エンジニアリングアーキテクチャの合理性を考慮する必要があるときに、読むことをお勧めします。
💡:多くの古典は繰り返し読む価値があり、異なる段階で読むことで異なる体験と収穫があります。
小結:変わらない知識があり、これらの知識をつかむことで、上層がどのように変化しても、核心をつかみ、技術の方向性を把握することができ、知識の不安を感じることはありません。
その他:ホットな問題の Q&A(三)#
WatchDog メカニズムとは何ですか?
-
WatchDog メカニズムは Apple が設計したもので、アプリのインターフェースが応答しないことによってユーザーが操作できなくなるのを防ぐために、アプリプロセスを強制終了させるメカニズムです。
-
アプリのインターフェースが応答しない原因は多岐にわたるため、Apple は一刀両断の方法を採用しました:主スレッドが一定の時間フリーズすると WatchDog メカニズムによって強制終了されます(このフリーズ時間は、アプリ起動時に WatchDog が設定したのは 20 秒、フォアグラウンド時は 10 秒、バックグラウンド時は 10 分です)。
-
WatchDog による強制終了ログはシステムログに属するため、アプリがオンラインになった後は自分でカクつきを監視する必要があります。そうすることで、WatchDog による強制終了の前にアプリのフリーズ状況をキャッチできます。Apple のクラッシュ分析に関するドキュメントを参照してください:Diagnosing Issues Using Crash Reports and Device Logs。
サードパーティライブラリの使用について、著者は次のように提案しています:
-
ビジネスに強く関連する場合、例えば埋め込みポイントや A/B テストのようなライブラリは、できるだけ自前で構築し、オープンソースライブラリのアイデアを参考にするのが良いでしょう;
-
一部の汎用性の高い基盤ライブラリ、例えばネットワーキングライブラリや持続的ストレージライブラリについては、成熟したサードパーティライブラリを直接使用することができ、開発とメンテナンスコストを節約し、製品の品質を向上させることができます;
-
➕もう一つのケースは、小規模な、数人の iOS 開発者からなるチームの場合、できるだけオープンソースプロジェクトを使用することをお勧めします。まずはAwesome iOS(前述の通り)でチームに適したプロジェクトを探すことができます。
PS:コメントで Firebase の A/B Testing SDK を推奨する意見があり、データ報告、データ分析、PUSH メッセージ、AI 予測など Firebase の他の機能を統合しており、データ分析のコストを大幅に削減しています。
さて、アプリ開発編はここまでです!次回は本当に原理編の内容を始めます。
もしあなたが非常に良い学習資料を持っているなら、ぜひ下のコメント欄で Bo2SS に推薦してください。また、この記事を必要としている友人に転送することも歓迎します~
次回お会いしましょう!