강의

멘토링

커뮤니티

BEST
Programming

/

Mobile Application Development

アラン iOS Concurrency(同時実行) - ディスパッチキューとオペレーションキューの理解

同時実行(Concurrency) - iOSプログラミングで必要な同期、非同期の概念、およびそれを拡張したGCDとOperationに関するすべてのものをカバーします。

難易度 初級

受講期間 無制限

  • allen
iOS
iOS
Swift
Swift
concurrent
concurrent
iOS
iOS
Swift
Swift
concurrent
concurrent

学習した受講者のレビュー

学習した受講者のレビュー

5.0

5.0

asdfaa22

47% 受講後に作成

本当の助けがたくさんありました。一人でコードを調べて、投稿をいくら見ても理解できなかったものが理解になりました。そして、フレンドリーな答えは、とにかく良いです。

5.0

eunjin

25% 受講後に作成

asyncとconcurrentが同じ言葉だと思いましたが、本当に本当に大きな悟りを得ました。いつもこちらの勉強のたびに100%みんな理解できなかった気分だったので、蒸した。 講師の絵基盤の説明、完璧な講義の構成に感心が出てきます。 本当に私の人生の講義です...講師の絵の頭の中に必ず保存して住んでいます。 とても愛しています。

5.0

sujinnaljin

97% 受講後に作成

この講義を聞くと、良い人は次のようになります - "非同期処理"という言葉だけ聞いたら "ㅎ.. - グーグルして解決はするが、なぜコードがこう書かれるのか、要求事項に合うロジックなのかは全く分からない方 まさに過去の私です。 その後、会社が指定したiOS開発必須講義に該当講義が含まれているので"これだ!"一つの講義ということですよ.. 毎講義ごとに絵と例で説明してくれますが……………………………………………………………………………………………………………………………………。私が今まで受講してきたすべてのオンオフライン開発講義の一つの講義を挙げれば、まさにこの講義だと自信を持って話すことができます。残すと長く、詳しく、親切に答えてくださって講義を100%自分のものに持っていけます。 最後に、その講義は言語に関係なく、非同期/同時性を理解するのに大きな助けになります。聞いたんです。 まあ…一言でまとめると… "最高の講義をお勧めします!" アラン様少なく働き、たくさんバシギル。

受講後に得られること

  • iOS同時実行(Concurrency)プログラミング

  • iOSでの最適化の理解(パフォーマンス/反応性)

  • 非同期(async)/同期(sync)処理の基本概念の理解

  • iOSディスパッチキュー(GCD)の理解

  • ディスパッチグループ/非同期ディスパッチグループの理解

  • iOS Operation Queueの理解

  • GCD/Operationを適用した実際のプロジェクトの例

  • GCD/OperationのAから〜Zまで

  • Thread-Safetyの理解

  • スレッドセーフなオブジェクト設計の理解

  • これらすべてを簡単に(写真で)直感的に理解する

🙋🏻‍♂️自己診断表

授業の後は、以下の概念を明確に知って理解することができます。

  • ディスパッチキューの概念について明確に理解している。 (Yes/No)
  • ディスパッチキューの種類とサービス品質(Qos)について理解している。 (Yes/No)
  • ほとんどの場合、Syncメソッドを使用しない理由を知っており、必ずSyncメソッドを使用しなければならない場合について違いを理解している。 (Yes/No)
  • ディスパッチグループの概念について知っています。 (Yes/No)
  • ディスパッチグループで非同期関数を扱うときに注意すべき点について知っています。 (Yes/No)
  • ディスパッチワークアイテムの概念を知っていて、なぜ使うのか分かる。 はい/いいえ)
  • ディスパッチセマフォ(Semaphore)の概念を知っており、どのように使用するか知っている。 (Yes/No)
  • オブジェクトを設計するときは、複数のスレッドがアクセスできる可能性に注意すべき点を明確に理解し、正しいオブジェクトを設計することができます。 (Yes/No)
  • 画像をダウンロードするテーブルビュー/コレクションビュータイプのプロジェクトを作成するとき、非同期概念を処理するために注意すべき点を明確に知っています。 (Yes/No)
  • ディスパッチキューを使用するときに発生する可能性のある問題(複数のスレッドがデータにアクセスするとき)、特に競争状況(Race Condition)について明確に理解しており、 TSanの使用法(Thread Sanitizer Tool)を知っています。 (Yes/No)
  • Thread-safeしたコードの書き方について明確に理解している。 (Yes/No)
  • ディスパッチキューで拡張されたオペレーションの概念、そして違いについて知っている。 (Yes/No)
  • どのような場合にディスパッチキューではなくオペレーションキューを使用する必要があるかを区別して使用できます。 (Yes/No)
  • 非同期関数を扱うことができる、非同期操作(AsyncOperation)のコードについて理解しています。 (Yes/No)
  • オペレーションの主な機能(作業の順序設定、取り消し)を自由自在に使用できる。 (Yes/No)

📝講義目次

(大きくGCDOperation部分で構成されています。GCDについてよく理解していても、GCDで発展した概念であるOperation(作業クラス)については不慣れです。どんなブログや講義よりも明確で簡単に、講義の一度にすべてを理解できるように構成しました。)

🖼️絵の説明方法の例

(授業で使われる様々な図や図表の説明方式の例です。)

🌈講義で提供される資料 

以下の様々な資料が提供されています。

  1. GCD関連の整理PDF - 287章
  2. Operation関連クリーンアップPDF - 89章
  3. GCD関連説明のためのコード(プレイグラウンドファイル) - 19ページ(ソースファイルを除く)
  4. Operation関連の説明のためのコード(プレイグラウンドファイル) - 8ページ(ソースファイルを除く)
  5. iOSプロジェクトファイル- 8個
  6. 参考記事(2個)の解釈本

(上記のフォルダ内の資料はすべて提供されます。)

🙌講義の制作に参考資料

以下の資料を参考にしましたが、図の説明方式はすべて直接設計しました。

  1. ビデオレッスン( iOS Concurrency with GCD and Operations ) - レイウェンダーリッチ(raywenderlich) https://www.raywenderlich.com/3648-ios-concurrency-with-gcd-and-operations
  2. 書籍( Concurrency by Tutorials ) -レイウェンダーリッチ(raywenderlich) https://store.raywenderlich.com/products/concurrency-by-tutorials
  3. アーティクル( Operation and OperationQueue Tutorial in Swift ) -レイウェンダーリッチ(raywenderlich) https://www.raywenderlich.com/5293-operation-and-operationqueue-tutorial-in-swift
  4. アーティクル ( The thread safety of lazy variables in Swift )

🙋🏻‍♂️川の内容が<講義製作参考資料>と多くの違いがありますか?

本当に多くの違いがあります。

上記の参考資料だけで単に翻訳レベルの講義を作成しようとしたら、このような講義を企画しなかったでしょう。これらのトピックについて、効率的で効果的な説明、直接図、図表などを直接多手PPTで作成し、実際のスレッドがどのように動作しているかについての直感的な理解を助けるために最善の説明方法を選びました。上記でも申し上げましたが、参考資料を10回以上ずつ見て、その内容をすべて扱いながらも説明ははるかに簡単で多様な絵で直感的に理解できるようにすることを目指す講義です。

そして、これらの絵の内容は、フルタイム2ヶ月以上の期間を経て直接まとめた内容なので、 (海外資料を含む)どこでもこのような方法の説明およびこのような詳細な説明は見られないと思います。たとえば、参考資料(raywenderlichのビデオレッスン)では、1行で「lazy varに関してもこの問題がある可能性があります。」そして提示された内容があれば、lazy varに関連するすべての問題を見つけて、私が直接整理し、絵で直感的な理解を助け、解決策を提示しています。

絵(大きな枠組み)を理解すると、コードは非常に簡単に書くことができるというそのような命題の下で、できるだけ絵を通して理解し、コードを活用してバランスを維持しようとしたので、参考資料とは大きな違いがあります。参考資料と比較して、はるかに詳細で、直感的で豊かな資料、そして一貫性のある簡単な説明が明確な差別点だと言いたいと思います。

🐠提供されるコード(code)関連

これらのトピックに関する理解を深めるためにコードファイルが提供され、クラスの内容もカバーしています。提供されているコードは、ライセンスが許諾する範囲内で、ほとんどレイウェンダーリッチ(raywenderlich)のGCD動画講義で提供されるコードの多くを採用しており採用部分は明示されている)、ライセンスが許諾されない部分(レイウェンダーリッチ書籍で提供するコード)については、コードを直接提供しており、大きな枠組み確保しようとしました。

また、提供するコードの理解を助けるために順序配置を変え、より詳細な説明のためのコードも多数追加し、様々な例とともに本授業内容の理解を助けています。

🤔授業の価格設定関連

単一のテーマについて少しは高い価格で測定されており、疑わしいことがありますが、本当に多くの内容が込められており、価格に比べてはるかに高い満足感を得られることを申し上げたいと思います。この内容を説明するために直接作成したPDF資料がGCD関連287章Operation関連89章合計376ページの資料が提供されます。 (実際、私が動画講義内で説明するための資料は、コード除外PPT 830枚程度で構成されています。)

GCD/Operation に関して海外資料で見つけることができるほぼすべての内容を全て取り扱っており、この授業内容に含まれているほとんどの絵や図表は私が直接作成した内容です。本講義のためにかなり多くの時間と努力が入り、それだけ今後開発者の成長に関して重要なテーマだと思ったので、(私個人的な観点から) 「こういう資料、こんな講義があってほしい」という基準で企画して作られた講義です。

また個人的に考えるに、費用を出して講義聞く決定をするということは時間と費用を交換することだと思います。費用対効果 該当トピックに関する勉強時間を惜しむには十分な役割を果たすと考えており、時間を惜しんでより高い満足を得ていくことを願っています。価格よりも高い満足を差し上げるのに充実した内容でお返しさせていただきます。 ^^

💌講義内容ライセンス関連

本講義の内容は、私が少しでも絵などを参考にした場合にPDFに関連URLアドレスが残されています。そのような場合を除くすべての資料は私が作成した資料なので、部分別に講義の説明方式を参考にしてブログなどにまとめるときは、本講義の住所を残していただきますよう、丁寧にお願いします

それにもかかわらず、本講義の全般的な内容をブログにまとめることと、講義資料として使われるPDFファイルの共有は、いかなる場合にも禁止されます。

👀講義内容のプレビューを提供

受講を決める前に、講義スタイルに関して事前に確認していただけるようにしました。

  • (セクション 0. 1.GCD/Operation の前)に関連する1 時間ほどのプレビュー
  • (セクション 10. 1. Operation の前に)に関連する5 分ほどのプレビュー

プレビューが提供されている講義を見て、授業を決定します。 :)

こんな方に
おすすめです

学習対象は
誰でしょう?

  • Swift言語を少し身につけた方

  • iOSで同期非同期処理の基本概念を習得したい人

  • GCD(Grand Central Dispatch)ディスパッチキューの概念について知りたい人

  • ディスパッチグループについて知りたい人

  • Operation(オペレーション)/OperationQueue(オペレーションキュー)について知りたい人

  • Thread-safety概念について知りたい人

  • 秒〜中級iOS開発者

前提知識、
必要でしょうか?

  • Swift言語の理解

  • iOSプログラミングの理解

こんにちは
です。

7,565

受講生

751

受講レビュー

308

回答

5.0

講座評価

7

講座

iOS개발자 앨런입니다.
https://www.youtube.com/@allen_ios

"정확하게 아는 지식은, 쉽게 자신의 말로 설명할 수 있어야 한다."가 제 모토입니다.

그렇기에 제가 공부하면서 겪었던 시행착오를 쉽게 풀어내어
누구든 이해할 수 있는 언어로 지식을 공유할 수있는 개발자가 되고싶습니다.

저는 쉬운 주제로 빠른 시간 안에 겉핥기 식으로 쉽게만 가르치는 강의를 만드는 것에는 관심이 없습니다.
그런 강의는 얼마든지 빠르게 찍어내듯 만들 수 있겠지만, 결국 "좋은 개발자로 성장"하는 것은 그만큼 이론적인 기반의 밑거름이 탄탄해야 한다고 믿고 있기 때문입니다.

쉬운 강의보다는, 좋은 개발자(끊임없이 성장할 수 있는 개발자)가 되기 위해
반드시 알아야 하는 어려운 내용까지를 최대한 쉽게, 그리고 직관적으로 알려드리는 것.
그래서 제가 아닌 여러분 스스로 WHY(왜)를 고민/생각할 수 있는 밑거름을 만들어 드리는 것을 저의 강의 목표로 삼고 있습니다.

저 스스로도 내일은 더 좋은 개발자가 되자고 노력하는 만큼
제가 고민 했던 내용들을 깊이있게 전달 드리고 싶습니다.

 

면접에서 자꾸 떨어지거나, 쉬운 내용도 자신의 언어로 잘 표현하지 못하겠다는 것은 정확하게 알고 있지 않다는 의미라고도 생각합니다. 오히려 기본적인 내용, CS에 대해 "탄탄한 기본기"가 있어야, 빠르게 성장 가능하다고 믿습니다.


👇🏻문의는 아래의 이메일로 주시면 됩니다. 

we.love.code.allen@gmail.com


언어: Swift(스위프트), Python, Java, C#

カリキュラム

全体

32件 ∙ (8時間 9分)

講座資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

全体

63件

5.0

63件の受講レビュー

  • sujikang7936님의 프로필 이미지
    sujikang7936

    受講レビュー 3

    平均評価 5.0

    5

    97% 受講後に作成

    この講義を聞くと、良い人は次のようになります - "非同期処理"という言葉だけ聞いたら "ㅎ.. - グーグルして解決はするが、なぜコードがこう書かれるのか、要求事項に合うロジックなのかは全く分からない方 まさに過去の私です。 その後、会社が指定したiOS開発必須講義に該当講義が含まれているので"これだ!"一つの講義ということですよ.. 毎講義ごとに絵と例で説明してくれますが……………………………………………………………………………………………………………………………………。私が今まで受講してきたすべてのオンオフライン開発講義の一つの講義を挙げれば、まさにこの講義だと自信を持って話すことができます。残すと長く、詳しく、親切に答えてくださって講義を100%自分のものに持っていけます。 最後に、その講義は言語に関係なく、非同期/同時性を理解するのに大きな助けになります。聞いたんです。 まあ…一言でまとめると… "最高の講義をお勧めします!" アラン様少なく働き、たくさんバシギル。

    • brianj님의 프로필 이미지
      brianj

      受講レビュー 5

      平均評価 5.0

      5

      100% 受講後に作成

      一応講師様が非専攻者だとか、非専攻者の心をよく知って説明していただくとすごく!詳しく説明していただき、とても良いです。(私も非専攻者です。)また、どこでもこのように同期/非同期に関する内容を教えてくれません。通信するときに無条件に非同期を書かなければならないからといって書くだけで、理由については正確には分からなかったが、授業を聞いて知ることになりました。 しかし、勉強というのが一度だけ聞くと完璧なのではないでしょうか?ところが、この講義は一度買っておけば無制限に繰り返し聞くことができるのに良いです。ありがとうございます。 (最後にPDF資料とかコードも全部あってすごくいいですね!イチオシ! 個人的に1.25倍速で聞きました。 中途中の画質が低くなる現象がありますが、それは右下の設定ウィンドウに見れば画質を選択できます。最高のものを選んで戻ってきます。)

      • sangbum225213님의 프로필 이미지
        sangbum225213

        受講レビュー 3

        平均評価 5.0

        5

        47% 受講後に作成

        同期/非同期の理解が多く不足してこの講義を選んだが現在聞いている中でも講座のクオリティが相当で次の講義はいつ撮るのか?という考えをしてみる講座です。完全に良いです。とてもおすすめです。

        • leedh20083569님의 프로필 이미지
          leedh20083569

          受講レビュー 3

          平均評価 5.0

          5

          100% 受講後に作成

          今まで多くの講義を聞きましたが、ほとんどの講義は初心者を対象に基礎だけを説明する講義がほとんどでしたが、この講義は基礎的な部分から深化まで本当によく取り上げられたようで、講義自体が設計から講義資料準備まで時間をたくさん聞いたことが感じられました。講義者が関数型プログラミングとRxに関連する講義をしている場合は、もう一度お支払いいただき、面白いと思います。

          • youngilchung0015님의 프로필 이미지
            youngilchung0015

            受講レビュー 6

            平均評価 5.0

            5

            100% 受講後に作成

            肝臓に高品質講義を聞きました。 難しいテーマなのにイメージを添えて簡単に説明してくれた部分が印象的でした。他の講義たちを割引するとき、本講義は割引をしないで摂摂しましたが、頑強の後には当然下の気がしますね。良い知識を共有していただきありがとうございます。

            ¥8,191

            allenの他の講座

            知識共有者の他の講座を見てみましょう!

            似ている講座

            同じ分野の他の講座を見てみましょう!