みなさんこんにちは、ここは 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 にコメントで推薦してください。また、この記事を必要としている友人に転送することも歓迎します~
次回お会いしましょう!