そろそろCombine

Cc8ec9594b83b5dc3c7eef345c05dc8d?s=47 shiz
September 20, 2020

 そろそろCombine

iOSDC2020 presentation about Combine.framework

Cc8ec9594b83b5dc3c7eef345c05dc8d?s=128

shiz

September 20, 2020
Tweet

Transcript

  1. J04%$+BQBO%": ͦΖͦΖ$PNCJOF

  2. 4݄͔Β෱ԬͰiOSΤϯδχΞ΍͍ͬͯ·͢ɻ @stzn3 shiz(ͣ͠) @shiz stzn Swiftྺ: 5೥ ͦͷଞ։ൃܦݧ: Kotlin Javascript

    PHP C# Java Go…
  3. $PNCJOF IUUQTQJYBCBZDPNKBVTFSTXTZQFSFL

  4. $PNCJOFͱ͸ʁ

  5. "VOJ f i FE EFDMBSBUJWF"1*GPS QSPDFTTJOHWBMVFTPWFSUJNF WWDC2019 Introducing Combine

  6. l5IF$PNCJOFGSBNFXPSLQSPWJEFT BEFDMBSBUJWF4XJGU"1*GPS QSPDFTTJOHWBMVFTPWFSUJNF 5IFTFWBMVFTDBOSFQSFTFOUNBOZ LJOETPGBTZODISPOPVTFWFOUTz https://developer.apple.com/documentation/combine

  7. l5IF$PNCJOFGSBNFXPSLQSPWJEFT BEFDMBSBUJWF4XJGU"1*GPS QSPDFTTJOHWBMVFTPWFSUJNF 5IFTFWBMVFTDBOSFQSFTFOUNBOZ LJOETPGBTZODISPOPVTFWFOUTz https://developer.apple.com/documentation/combine ࿈ଓͨ͠ ଟछྨͷඇಉظॲཧͳͲΛ ୯Ұͷํ๏Ͱѻ͏એݴతͳ"1*

  8. l5IF$PNCJOFGSBNFXPSLQSPWJEFT BEFDMBSBUJWF4XJGU"1*GPS QSPDFTTJOHWBMVFTPWFSUJNF 5IFTFWBMVFTDBOSFQSFTFOUNBOZ LJOETPGBTZODISPOPVTFWFOUTz https://developer.apple.com/documentation/combine ࿈ଓͨ͠ ଟछྨͷඇಉظॲཧͳͲΛ ୯Ұͷํ๏Ͱѻ͏એݴతͳ"1*

  9. ಉظతͳॲཧ .BJO5ISFBE WBSTUBUFlz TUBUFl*NIVOHSZz QSJOU TUBUF *`NIVOHSZ

  10. ಉظతͳॲཧ .BJO5ISFBE WBSTUBUFlz TUBUFl*`NIVOHSZz QSJOU TUBUF *`NIVOHSZ

  11. ಉظతͳॲཧ .BJO5ISFBE WBSTUBUFlz TUBUFl*`NIVOHSZz QSJOU TUBUF *`NIVOHSZ

  12. .BJO5ISFBE WBSTUBUFlz TUBUFl*`NIVOHSZz QSJOU TUBUF ඇಉظͳॲཧ 5ISFBE TUBUFl*`NBOHSZz ͓ئ͍

  13. .BJO5ISFBE WBSTUBUFlz TUBUFl*`NIVOHSZz QSJOU TUBUF ඇಉظͳॲཧ 5ISFBE TUBUFl*`NBOHSZz ݁Ռ͸ؾʹͤͣ࣍΁ਐΉ ͓ئ͍

  14. .BJO5ISFBE WBSTUBUFlz TUBUFl*`NIVOHSZz QSJOU TUBUF 5ISFBE TUBUFl*`NBOHSZz ඇಉظͳॲཧ IVOHSZ BOHSZ

    *`Nʜ
  15. ඇಉظॲཧͷ೉͠͞ ͍ͭ݁Ռ͕ฦͬͯ͘Δ͔Θ͔Βͳ͍ wλΠϛϯά࣍ୈͰ݁Ռ͕มΘͬͯ͠·͏ϦεΫ w༧ظͤ͵λΠϛϯάͰڍಈ͕ಥવมΘͬͯ͠·͏ϦεΫ

  16. J04ͰඇಉظΛѻ͏ํ๏ /PUJ f i DBUJPO $FOUFS 5BSHFU"DUJPO %FMFHBUF $MPTVSF $BMMCBDLT

    σʔλ ߋ৽ ,FZ7BMVF 0CTFSWJOH ,70
  17. ඇಉظॲཧͷ೉͠͞ J04Ͱͷ೉͠͞ ͍ͭ݁Ռ͕ฦͬͯ͘Δ͔Θ͔Βͳ͍ wλΠϛϯά࣍ୈͰ݁Ռ͕มΘͬͯ͠·͏ϦεΫ wࢥ͍΋دΒͳ͍λΠϛϯάͰڍಈ͕มΘΔϦεΫ ॲཧͷํ๏͕৔߹ʹΑͬͯҟͳΔ wॲཧͷྲྀΕ్͕੾Εͯ͠·͏͜ͱ͕͋Δ

  18. ඇಉظॲཧͷ೉͠͞ J04Ͱͷ೉͠͞ ͍ͭ݁Ռ͕ฦͬͯ͘Δ͔Θ͔Βͳ͍ wλΠϛϯά࣍ୈͰ݁Ռ͕มΘͬͯ͠·͏ϦεΫ wࢥ͍΋دΒͳ͍λΠϛϯάͰڍಈ͕มΘΔϦεΫ ॲཧͷํ๏͕৔߹ʹΑͬͯҟͳΔ wॲཧͷྲྀΕ్͕੾Εͯ͠·͏͜ͱ͕͋Δ wผͷ৔ॴͰॲཧ͢Δ͜ͱ͕ඞཁͳ৔߹΋͋Δ

  19. $PNCJOF IUUQTQJYBCBZDPNKBVTFSTXTZQFSFL

  20. ͋ΒΏΔॲཧΛ1VCMJTIFSʹ 'PVOEBUJPO w /PUJ f i DBUJPODFOUFS w 5BSHFU"DUJPO w

    "EIPDDBMMCBDLT w 63-4FTTJPO w ,70 $PNCJOF 1VCMJTIFS 4XJGU6* w !#JOEJOH w !0CTFSWFE0CKFDU w !4UBUF $PSF%BUB w 'FUDIFE3FRVFTU w /4.BOBHFE0CKFDU
  21. None
  22. ςΩετೖྗ Ϙλϯ੍ޚ ΠϯσΟέʔλදࣔ ೖྗΛඵ଴ͭ ະೖྗνΣοΫ ॏෳνΣοΫ ೖྗ஋νΣοΫ"1*ૹ৴ ݁ՌΛ7JFXʹ൓ө Ϙλϯ੍ޚ ΠϯσΟέʔλදࣔ

    ϝΠϯεϨουͰॲཧ
  23. Target/Action Closure Closure ςΩετೖྗ Ϙλϯ੍ޚ ΠϯσΟέʔλදࣔ ೖྗΛඵ଴ͭ ະೖྗνΣοΫ ॏෳνΣοΫ ೖྗ஋νΣοΫ"1*ૹ৴

    ݁ՌΛ7JFXʹ൓ө Ϙλϯ੍ޚ ΠϯσΟέʔλදࣔ ϝΠϯεϨουͰॲཧ
  24. Ϙλϯ੍ޚ ΠϯσΟέʔλදࣔ ະೖྗνΣοΫ ॏෳνΣοΫ ݁ՌΛ7JFXʹ൓ө Ϙλϯ੍ޚ ΠϯσΟέʔλදࣔ ϝΠϯεϨουͰॲཧ ςΩετೖྗ ೖྗΛඵ଴ͭ

    ೖྗ஋νΣοΫ"1*ૹ৴ Target/Action Closure Closure If guard If Closure
  25. None
  26. None
  27. None
  28. શ෦1VCMJTIFS Noti f i cationCenter.Publisher Publishers.Map Publishers.HandleEvents Publishers.Debounce Publishers.Filter Publishers.RemoveDuplicates

    Publishers.FlatMap Publishers.ReceiveOn Publishers.HandleEvents
  29. σʔλͷಉظ ࣗಈͰ࠷৽ঢ়ଶʹߋ৽ Subscribers.Assign

  30. ෳ਺Օॴ͔Βͷσʔλͷಉظ σʔλͷߋ৽ʹ߹Θͤͯ 7JFXΛߋ৽͢ΔͨΊʹ ϝιουΛݺͼग़͢ඞཁ͕͋Δ

  31. ෳ਺Օॴ͔Βͷσʔλͷಉظ σʔλͱ7JFXͷߋ৽Λ ҰՕॴʹू໿Ͱ͖Δ

  32. ͋ΒΏΔॲཧΛ1VCMJTIFSʹ 5BSHFU"DUJPO %FMFHBUF  1VCMJTIFS .BQ f l BU.BQ 'JMUFS

    3FNPWF%VQMJDBUF ʜ ʜ ʜ ,FZ7BMVF 0CTFSWJOH ,70 /PUJ f i DBUJPO $FOUFS $MPTVSF $BMMCBDLT
  33. l5IF$PNCJOFGSBNFXPSLQSPWJEFT BEFDMBSBUJWF4XJGU"1*GPS QSPDFTTJOHWBMVFTPWFSUJNF 5IFTFWBMVFTDBOSFQSFTFOUNBOZ LJOETPGBTZODISPOPVTFWFOUTz https://developer.apple.com/documentation/combine ࿈ଓͨ͠ ଟछྨͷඇಉظॲཧͳͲΛ ୯Ұͷํ๏Ͱѻ͏એݴతͳ"1*

  34. l5IF$PNCJOFGSBNFXPSLQSPWJEFT BEFDMBSBUJWF4XJGU"1*GPS QSPDFTTJOHWBMVFTPWFSUJNF 5IFTFWBMVFTDBOSFQSFTFOUNBOZ LJOETPGBTZODISPOPVTFWFOUTz https://developer.apple.com/documentation/combine ࿈ଓͨ͠ ଟछྨͷඇಉظॲཧͳͲΛ ୯Ұͷํ๏Ͱѻ͏એݴతͳ"1*

  35. l5IF$PNCJOFGSBNFXPSLQSPWJEFT BEFDMBSBUJWF4XJGU"1*GPS QSPDFTTJOHWBMVFTPWFSUJNF 5IFTFWBMVFTDBOSFQSFTFOUNBOZ LJOETPGBTZODISPOPVTFWFOUTz https://developer.apple.com/documentation/combine ࿈ଓͨ͠ ଟछྨͷඇಉظॲཧͳͲΛ ୯Ұͷํ๏Ͱѻ͏એݴతͳ"1*

  36. ʮ͜͏͢Δʯͱࡉ͔͘ࢦࣔ͢Δ ͷͰ͸ͳ͘ ʮ͜͏͍ͨ͠ʯͱ໨తΛએݴ͢Δ

  37. ໨త ޴ׇ͕͍ͨͷͰਫΛҿΉ

  38. ࢦࣔత ʮྫྷଂݿ͔ΒϖοτϘτϧͷਫΛऔΓग़ͯ͠ɺ ίοϓʹ஫͍ͰɺҿΈ·͢ɻʯ ໨త ޴ׇ͕͍ͨͷͰਫΛҿΉ

  39. એݴత ʮड͚औͬͨਫΛҿΈ·͢ɻʯ ໨త ޴ׇ͕͍ͨͷͰਫΛҿΉ

  40. ʮએݴతʯͷϝϦοτ wຊདྷͷ໾ׂʹूதͰ͖Δ wίʔυ͕୹͘ͳΔ w֎෦ঢ়ଶʹґଘͤͣ࠶ར༻͠΍͍͢

  41. ςΩετೖྗ Ϙλϯ੍ޚ ΠϯσΟέʔλදࣔ ೖྗΛඵ଴ͭ ະೖྗνΣοΫ ॏෳνΣοΫ ೖྗ஋νΣοΫ"1*ૹ৴ ݁ՌΛ7JFXʹ൓ө Ϙλϯ੍ޚ ΠϯσΟέʔλදࣔ

    ϝΠϯεϨουͰॲཧ ࢦࣔత
  42. ςΩετೖྗ ೖྗΛඵ଴ͭ ະೖྗνΣοΫ ॏෳνΣοΫ ೖྗ஋νΣοΫ"1*ૹ৴ ݁ՌΛ7JFXʹ൓ө Ϙλϯ੍ޚ ΠϯσΟέʔλඇදࣔ ϝΠϯεϨουͰॲཧ Ϙλϯ੍ޚ

    ΠϯσΟέʔλදࣔ એݴత
  43. l5IF$PNCJOFGSBNFXPSLQSPWJEFT BEFDMBSBUJWF4XJGU"1*GPS QSPDFTTJOHWBMVFTPWFSUJNF 5IFTFWBMVFTDBOSFQSFTFOUNBOZ LJOETPGBTZODISPOPVTFWFOUTz https://developer.apple.com/documentation/combine ࿈ଓͨ͠ ଟछྨͷඇಉظॲཧͳͲΛ ୯Ұͷํ๏Ͱѻ͏એݴతͳ"1*

  44. $PNCJOFΛ࢖͏ϝϦοτ ಺෦Ͱͷ࠷దԽ͕ظ଴Ͱ͖Δ wެ։͞Ε͍ͯͳ͍"1*Λར༻ͨ͠ύϑΥʔϚϯεͷௐ੔ w ଞͷϑϨʔϜϫʔΫͱ࿈ܞ'PVOEBUJPO4XJGU6*

  45. $PNCJOFΛ࢖͏ϝϦοτ ಺෦Ͱͷ࠷దԽ͕ظ଴Ͱ͖Δ wެ։͞Ε͍ͯͳ͍"1*Λར༻ͨ͠ύϑΥʔϚϯεͷௐ੔ w ଞͷϑϨʔϜϫʔΫͱ࿈ܞ'PVOEBUJPO4XJGU6* ߴ͍඼࣭͕ظ଴Ͱ͖Δ wมߋͷӨڹ͕গͳ͍ w։ൃऀ͸Ϣʔβʔ͔ͭςελʔ

  46. ओཁͳΫϥε

  47. 1VCMJTIFS

  48. 1VCMJTIFS ಛఆͷܕͷ஋Λ࣌ؒͱͱ΋ʹ࿈ଓతʹྲྀ͢ 1VCMJTIFS0VUQVU 'BJMVSF&SSPS 0VUQVUਖ਼ৗ࣌ʹ1VCMJTIFS͕ྲྀ͢஋ͷܕ 'BJMVSFΤϥʔ࣌ʹ1VCMJTIFS͕ྲྀ͢ͷ&SSPSܕ

  49. 1VCMJTIFS ಛఆͷܕͷ஋Λ࣌ؒͱͱ΋ʹ࿈ଓతʹྲྀ͢ 1VCMJTIFS0VUQVU 'BJMVSF&SSPS 0VUQVUਖ਼ৗ࣌ʹ1VCMJTIFS͕ྲྀ͢஋ͷܕ 'BJMVSFΤϥʔ࣌ʹ1VCMJTIFS͕ྲྀ͢ͷ&SSPSܕ ᶃ7BMVF 0VUQVU $PNQMFUJPO ᶄ

    f i OJTIFE ᶅGBJMVSF 'BJMVSF
  50. 1VCMJTIFS ಛఆͷܕͷ஋Λ࣌ؒͱͱ΋ʹ࿈ଓతʹྲྀ͢ 1VCMJTIFS0VUQVU 'BJMVSF&SSPS 0VUQVUਖ਼ৗ࣌ʹ1VCMJTIFS͕ྲྀ͢஋ͷܕ 'BJMVSFΤϥʔ࣌ʹ1VCMJTIFS͕ྲྀ͢ͷ&SSPSܕ ᶃ7BMVF 0VUQVU $PNQMFUJPO ᶄ

    f i OJTIFE ᶅGBJMVSF 'BJMVSF
  51. 1VCMJTIFS ಛఆͷܕͷ஋Λ࣌ؒͱͱ΋ʹ࿈ଓతʹྲྀ͢ 1VCMJTIFS0VUQVU 'BJMVSF&SSPS 0VUQVUਖ਼ৗ࣌ʹ1VCMJTIFS͕ྲྀ͢஋ͷܕ 'BJMVSFΤϥʔ࣌ʹ1VCMJTIFS͕ྲྀ͢ͷ&SSPSܕ ᶃ7BMVF 0VUQVU $PNQMFUJPO ᶄ

    f i OJTIFE ᶅGBJMVSF 'BJMVSF
  52. 1VCMJTIFS ಛఆͷܕͷ஋Λ࣌ؒͱͱ΋ʹ࿈ଓతʹྲྀ͢ 1VCMJTIFS0VUQVU 'BJMVSF&SSPS 0VUQVUਖ਼ৗ࣌ʹ1VCMJTIFS͕ྲྀ͢஋ͷܕ 'BJMVSFΤϥʔ࣌ʹ1VCMJTIFS͕ྲྀ͢ͷ&SSPSܕ ᶃ7BMVF 0VUQVU $PNQMFUJPO ᶄ

    f i OJTIFE ᶅGBJMVSF 'BJMVSF
  53. 1VCMJTIFS ಛఆͷܕͷ஋Λ࣌ؒͱͱ΋ʹ࿈ଓతʹྲྀ͢ 0VUQVU 0VUQVU f i OJTIFE 0VUQVU $PNQMFUJPO͢Δ·Ͱ஋Λग़ྗ͠ଓ͚Δ

  54. 1VCMJTIFS ಛఆͷܕͷ஋Λ࣌ؒͱͱ΋ʹ࿈ଓతʹྲྀ͢ 0VUQVU 0VUQVU GBJMVSF 0VUQVU 0VUQVU f i

  55. 1VCMJTIFS ಛఆͷܕͷ஋Λ࣌ؒͱͱ΋ʹ࿈ଓతʹྲྀ͢ GBJMVSF f i OJTIFE $PNQMFUJPO͞ΕΔͱೋ౓ͱ஋͸ྲྀ͞ͳ͍

  56. 1VCMJTIFS ಛఆͷܕͷ஋Λ࣌ؒͱͱ΋ʹ࿈ଓతʹྲྀ͢   f i OJTIFE  < 

    >QVCMJTIFS 1VCMJTIFS*OU /FWFS
  57. 4VCTDSJCFS

  58. 4VCTDSJCFS 1VCMJTIFS͔Βཉ͍͠෼͚ͩ஋Λड͚औΔ 4VCTDSJCFS*OQVU 'BJMVSF&SSPS *OQVUਖ਼ৗ࣌ʹ4VCTDSJCFS͕ड͚औΔ஋ͷܕ 'BJMVSFΤϥʔ࣌ʹ1VCMJTIFS͕ྲྀ͢ͷ&SSPSܕ

  59. 4VCTDSJCFS 1VCMJTIFS͔Βཉ͍͠෼͚ͩ஋Λड͚औΔ 4VCTDSJCFS*OQVU 'BJMVSF&SSPS *OQVUਖ਼ৗ࣌ʹ4VCTDSJCFS͕ड͚औΔ஋ͷܕ 'BJMVSFΤϥʔ࣌ʹ1VCMJTIFS͕ྲྀ͢ͷ&SSPSܕ 4VCTDSJCFS*OQVU 'BJMVSF&SSPS 1VCMJTIFS0VUQVU 'BJMVSF&SSPS

    ܕΛҰகͤ͞Δ ܕΛҰகͤ͞Δ
  60. 4VCTDSJCFS 1VCMJTIFS͔Βཉ͍͠෼͚ͩ஋Λड͚औΔ TJOL BTTJHO  1VCMJTIFS  4VCTDSJCFS

  61.  1VCMJTIFS 4VCTDSJCFS 4VCTDSJCFS 4VCTDSJCFS ෳ਺ͷ4VCTDSJCFSͰͭͷ1VCMJTIFSͷ஋΋ड͚औΕΔ

  62. 4VCTDSJCFSओಋ  4VCTDSJCFS ˞'VUVSFͳͲͷྫ֎͋Γ

  63. 4VCTDSJCFSओಋ  4VCTDSJCFS ˞'VUVSFͳͲͷྫ֎͋Γ #BDL1SFTTVSF

  64. #BDL1SFTTVSF 4VCTDSJCFS͕ඞཁͳྔΛௐ੔Ͱ͖Δ  1VCMJTIFS 4VCTDSJCFS

  65. #BDL1SFTTVSF 4VCTDSJCFS͕ඞཁͳྔΛௐ੔Ͱ͖Δ 4VCTDSJCFS %FNBOE VOMJNJUFE͋Δ͚ͩશ෦Լ͍͞ OPOFԿ΋͍Γ·ͤΜ NBY *OU *OU෼Լ͍͞ 

    1VCMJTIFS ͜ͷ%FNBOE෼͍ͩ͘͞
  66. #BDL1SFTTVSF 4VCTDSJCFS͕ඞཁͳྔΛௐ੔Ͱ͖Δ 4VCTDSJCFS  1VCMJTIFS %FNBOE෼͚ͩ0VUQVU ͜ͷ%FNBOE෼͍ͩ͘͞

  67. #BDL1SFTTVSF 4VCTDSJCFS͕ඞཁͳྔΛௐ੔Ͱ͖Δ 4VCTDSJCFS ్தͰ%FNBOEௐ੔Մ  1VCMJTIFS %FNBOE෼͚ͩ0VUQVU ͜ͷ%FNBOE෼͍ͩ͘͞ %FNBOE VOMJNJUFE͋Δ͚ͩશ෦Լ͍͞

    OPOFࠓͷ··Ͱ͍͍Ͱ͢ɻ NBY *OU *OU෼௥Ճͯ͠Լ͍͞
  68. #BDL1SFTTVSF ׆༻ྫ ෳ਺ͷඇಉظॲཧΛ ݺͼग़ͨ͠ॱ൪௨Γʹ ݁ՌΛड͚औΔ ݁Ռ͜ͷจࣈॱ௨Γʹग़ྗ͞Ε·͢ ࿈ଓͯ͠ඇಉظ௨৴Λ࣮ߦ f l BU.BQ

    NBY1VCMJTIFSTNBY 
  69. 4VCTDSJQUJPO

  70.  1VCMJTIFS 4VCTDSJCFS ʁ

  71. 4VCTDSJQUJPO 1VCMJTIFSͱ4VCTDSJCFSΛܨ͛Δ  1VCMJTIFS  4VCTDSJCFS  4VCTDSJQUJPO

  72. 4VCTDSJQUJPO $BODFMMBCMF  1VCMJTIFS  4VCTDSJCFS QSPUPDPM $BODFMMBCMF 4VCTDSJQUJPO

  73. 4VCTDSJQUJPO $BODFMMBCMF  1VCMJTIFS DBODFM ͍ͯͩ͘͠͞  4VCTDSJCFS QSPUPDPM $BODFMMBCMF

    4VCTDSJQUJPO
  74. 4VCTDSJQUJPO $BODFMMBCMF  1VCMJTIFS DBODFM  4VCTDSJCFS QSPUPDPM $BODFMMBCMF 4VCTDSJQUJPO

    DBODFM ͍ͯͩ͘͠͞
  75. 4VCTDSJQUJPO $BODFMMBCMF  1VCMJTIFS DBODFM  4VCTDSJCFS QSPUPDPM $BODFMMBCMF 4VCTDSJQUJPO

    DBODFM ͍ͯͩ͘͠͞
  76. 4VCTDSJQUJPO "OZ$BODFMMBCMF͸ࣗಈͰDBODFM͢Δ  1VCMJTIFS QSPUPDPM $BODFMMBCMF "OZ$BODFMMBCMF  4VCTDSJCFS

  77. 4VCTDSJQUJPO "OZ$BODFMMBCMF͸ࣗಈͰDBODFM͢Δ  1VCMJTIFS QSPUPDPM $BODFMMBCMF "OZ$BODFMMBCMF ϝϞϦ͔Βղ์͞ΕΔ OJMʹͳΔ ͱ

     4VCTDSJCFS
  78. 4VCTDSJQUJPO "OZ$BODFMMBCMF͸ࣗಈͰDBODFM͢Δ  1VCMJTIFS QSPUPDPM $BODFMMBCMF "OZ$BODFMMBCMF DBODFM ϝϞϦ͔Βղ์͞ΕΔ OJMʹͳΔ

    ͱ  4VCTDSJCFS
  79. 4VCTDSJQUJPO "OZ$BODFMMBCMF͸ࣗಈͰDBODFM͢Δ "OZ$BODFMMBCMF

  80. 4VCTDSJQUJPO "OZ$BODFMMBCMF͸ࣗಈͰDBODFM͢Δ "OZ$BODFMMBCMF

  81. 4VCTDSJQUJPO "OZ$BODFMMBCMF͸ࣗಈͰDBODFM͢Δ ϝϞϦ͔Βղ์ EFJOJU ͞ΕΔͱ

  82. 4VCTDSJQUJPO "OZ$BODFMMBCMF͸ࣗಈͰDBODFM͢Δ ϝϞϦ͔Βղ์ EFJOJU ͞ΕΔ

  83. 4VCTDSJQUJPO "OZ$BODFMMBCMF͸ࣗಈͰDBODFM͢Δ "OZ$BODFMMBCMFDBODFM  "OZ$BODFMMBCMFDBODFM  "OZ$BODFMMBCMFDBODFM  "OZ$BODFMMBCMFDBODFM 

    ʜ
  84. 4VCTDSJQUJPO "OZ$BODFMMBCMF͸ࣗಈͰDBODFM͢Δ "OZ$BODFMMBCMFDBODFM  "OZ$BODFMMBCMFDBODFM  "OZ$BODFMMBCMFDBODFM  "OZ$BODFMMBCMFDBODFM 

    ʜ EFJOJU \ʜ^
  85. 4VCTDSJQUJPO "OZ$BODFMMBCMF͸อ࣋͠ͳ͍ͱ͙͢ʹΩϟϯηϧ͞ΕΔ

  86. 4VCTDSJQUJPO "OZ$BODFMMBCMF͸อ࣋͠ͳ͍ͱ͙͢ʹΩϟϯηϧ͞ΕΔ "OZ$BODFMMBCMF

  87. 4VCTDSJQUJPO "OZ$BODFMMBCMF͸อ࣋͠ͳ͍ͱ͙͢ʹΩϟϯηϧ͞ΕΔ "OZ$BODFMMBCMF

  88. 4VCTDSJQUJPO "OZ$BODFMMBCMF͸อ࣋͠ͳ͍ͱ͙͢ʹΩϟϯηϧ͞ΕΔ

  89. ॲཧͷྲྀΕ ࢓૊Έ

  90. 4VCTDSJCFS↔1VCMJTIFS  1VCMJTIFS  4VCTDSJCFS 1VCMJTIFSTVCTDSJCF @ ݺͿ ಺෦ͰSFDFJWF TVCTDSJCFS

    Λݺͼ 4VCTDSJCFSͱܨ͕Δ   ⁞ ஋ͷग़ྗΛґཔ͢Δ
  91. 4VCTDSJCFS↔1VCMJTIFS  1VCMJTIFS  4VCTDSJCFS ஋ͷग़ྗΛґཔ͢Δ 1VCMJTIFSTVCTDSJCF @ ݺͿ ಺෦ͰSFDFJWF

    TVCTDSJCFS Λݺͼ 4VCTDSJCFSͱܨ͕Δ 4VCTDSJQUJPOΛड͚औΔ ⁞   ⁠ 4VCTDSJCFSSFDFJWF TVCTDSJQUJPO  4VCTDSJQUJPO
  92. 4VCTDSJCFS↔4VCTDSJQUJPO  4VCTDSJCFS SFRVFTU 4VCTDSJCFST%FNBOE ⁡  4VCTDSJQUJPO %FNBOEΛ఻͑Δ

  93. 4VCTDSJCFS↔4VCTDSJQUJPO  4VCTDSJCFS %FNBOEΛ఻͑Δ SFRVFTU 4VCTDSJCFST%FNBOE ⁢  4VCTDSJQUJPO ஋Λ܁Γฦ͠ૹड৴͢Δ

    SFDFJWF WBMVF 4VCTDSJCFST%FNBOE 4VCTDSJCFS͸ड͚औͬͨ஋Λݩʹ%FNBOEΛௐ੔Մ ⁡
  94. 4VCTDSJCFS↔4VCTDSJQUJPO  4VCTDSJCFS $PNQMFUJPOΛड͚औΔ ⁢ ⁣ SFDFJWF f i OJTIFE

     SFDFJWF GBJMVSF  4VCTDSJQUJPO ஋Λ܁Γฦ͠ૹड৴͢Δ SFDFJWF WBMVF 4VCTDSJCFST%FNBOE 4VCTDSJCFS͸ड͚औͬͨ஋Λݩʹ%FNBOEΛௐ੔Մ %FNBOEΛ఻͑Δ SFRVFTU 4VCTDSJCFST%FNBOE ⁡
  95. શମ૾  4VCTDSJCFS $PNQMFUJPOΛड͚औΔ ⁣  4VCTDSJQUJPO ⁢ ஋Λ܁Γฦ͠ૹड৴͢Δ %FNBOEΛ఻͑Δ

    ⁡ ஋ͷग़ྗΛґཔ͢Δ ⁞   4VCTDSJQUJPOΛड͚औΔ ⁠  1VCMJTIFS
  96. ൃදޙͷิ଍ ˞όʔδϣϯͰͷࠩҟʹ஫ҙ J04dJ04 NBD04d 4VCTDSJQUJPOΛड͚औΔॲཧͱ0VUQVUΛड͚औΔॲཧ͕ඇಉظͰߦΘΕ͍ͯͨ 4VCTDSJCF͢Δલʹ0VUQVU͕ྲྀΕͯ͠·͍ड͚औΕͳ͍Մೳੑ͕͋Δ IUUQTGPSVNTTXJGUPSHUDPNCJOFSFDFJWFPOSVOMPPQNBJOMPTFTTFOUWBMVFIPXDBOJNBLFJUXPSL J04Ҏ߱ NBD04Ҏ߱ 4VCTDSJQUJPOΛड͚औΔॲཧͷޙʹ0VUQVUΛड͚औΔॲཧ͕ॱ൪ʹߦΘΕΔ

    0VUQVUΛશͯड͚औΕΔ͜ͱΛอূ
  97. ॲཧͷྲྀΕ ίʔυ

  98. 1VCMJTIFS 1VCMJTIFS*OU /FWFS ഑ྻ1VCMJTIFS

  99. TJOL $MPTVSFϕʔεͰ0VUQVUͱ$PNQMFUJPOΛड͚औΔ

  100. 4VCTDSJQUJPOΛड͚औΔ ⁠  4VCTDSJCFS $PNQMFUJPOΛड͚औΔ ⁣  4VCTDSJQUJPO ⁢ ஋Λ܁Γฦ͠ૹड৴͢Δ

    %FNBOEΛ఻͑Δ ⁡ ஋ͷग़ྗΛґཔ͢Δ ⁞    1VCMJTIFS TJOL
  101. 4VCTDSJQUJPOΛ౉͢ ⁠  4VCTDSJCFS $PNQMFUJPOΛ఻͑Δ ⁣  4VCTDSJQUJPO ⁢ ஋Λ܁Γฦ͠ૹड৴͢Δ

    %FNBOEΛ఻͑Δ ⁡ ஋ͷग़ྗΛґཔ͢Δ ⁞    1VCMJTIFS TJOL ͋Δ͚ͩԼ͍͞ VOMJNJUFE
  102. TJOL SFDFJWF7BMVF SFDFJWF$PNQMFUJPO

  103. TJOL SFDFJWF7BMVF SFDFJWF7BMVF SFDFJWF7BMVF SFDFJWF7BMVF SFDFJWF$PNQMFUJPO

  104. TJOL SFDFJWF7BMVF SFDFJWF7BMVF SFDFJWF7BMVF SFDFJWF$PNQMFUJPO f i OJTIFE SFDFJWF7BMVF SFDFJWF$PNQMFUJPO

  105. TJOL TUPSF

  106. BTTJHO UPPO ,FZ1BUIΛ࢖ͬͯΦϒδΣΫτͷ஋ʹ7BMVFΛ൓ө

  107. BTTJHO UPPO ,FZ1BUIΛ࢖ͬͯΦϒδΣΫτͷ஋ʹ7BMVFΛ൓ө 'BJMVSF͕/FWFSͷ৔߹ʹར༻Մೳ 1VCMJTIFS*OU /FWFS

  108. BTTJHO UPPO TUPSF

  109. શମ૾  4VCTDSJCFS $PNQMFUJPOΛड͚औΔ ⁣  4VCTDSJQUJPO ⁢ ஋Λ܁Γฦ͠ૹड৴͢Δ %FNBOEΛ఻͑Δ

    ⁡ ஋ͷग़ྗΛґཔ͢Δ ⁞   4VCTDSJQUJPOΛड͚औΔ ⁠  1VCMJTIFS
  110. 4VCKFDU

  111. 4VCKFDU ࣗΒ஋Λ1VCMJTIͰ͖Δ1VCMJTIFS  1VCMJTIFS  4VCKFDU *NNVUBCMF SFBEPOMZ ΠϕϯτͷൃੜʹԠͯ͡ ࣗಈͰ஋Λग़ྗ

    .VUBCMF SFBEXSJUF  खಈͰ஋Λग़ྗ
  112. 1BTTUISPVHI4VCKFDU 4VCKFDU w 4VCTDSJCFޙʹ1VCMJTI͞Εͨ஋Λड͚औΔ w ॳظ஋͸ෆཁ w ΠϕϯτΛ఻͑Δ৔߹ͳͲʹ࢖༻

  113. $VSSFOU7BMVF4VCKFDU 4VCKFDU w ݱࡏ஋ͱ4VCTDSJCFޙʹ1VCMJTI͞Εͨ஋Λड͚औΔ w ॳظ஋͕ඞཁ w ঢ়ଶΛ؂ࢹ͢Δ࣌ͳͲʹ࢖༻

  114. $VSSFOU7BMVF4VCKFDU 4VCKFDU ग़ྗํ๏͕छྨ͋Δ w ݱࡏ஋ͱ4VCTDSJCFޙʹ1VCMJTI͞Εͨ஋Λड͚औΔ w ॳظ஋͕ඞཁ w ঢ়ଶΛ؂ࢹ͢Δ࣌ͳͲʹ࢖༻

  115. !1VCMJTIFE

  116. ˏ1VCMJTIFE ී௨ͷม਺ʹ1VCMJTIFSػೳΛ͚ͭΔ

  117. ˏ1VCMJTIFE ී௨ͷม਺ʹ1VCMJTIFSػೳΛ͚ͭΔ

  118. ˏ1VCMJTIFE ී௨ͷม਺ʹ1VCMJTIFSػೳΛ͚ͭΔ Λ௨ͯ͠1VCMJTIFSʹΞΫηεͰ͖Δ

  119. BTTJHO JOPVUUP J04 4VCTDSJQUJPOͷ؅ཧෆཁ ˏ1VCMJTIFE

  120. ˏ1VCMJTIFE DMBTT಺ͷϓϩύςΟʹͷΈઃఆՄೳ

  121. ؾΛ͚͍ͭͨϙΠϯτ

  122. 4VCKFDU!1VCMJTIFE DMBTTΛར༻͢Δ࣌ͷ஫ҙ఺ DMBTTͷΠϯελϯε͸มߋ͞Εͳ͍ͷͰ ಺෦ͷ஋͸มߋ͞ΕΔ͕஋͸ग़ྗ͞Εͳ͍

  123. DMBTTͷΠϯελϯε͸มߋ͞Εͳ͍ͷͰ ಺෦ͷ஋͸มߋ͞ΕΔ͕஋͸ग़ྗ͞Εͳ͍ UFNQFSBUVSFWBMVF͸ʹͳΔ ͸ग़ྗ͞Εͳ͍ 4VCKFDU!1VCMJTIFE DMBTTΛར༻͢Δ࣌ͷ஫ҙ఺

  124. 0QFSBUPS

  125. 0QFSBUPS 1VCMJTIFS͔Βड͚औͬͨ஋͔Β৽͍͠1VCMJTIFSΛੜ੒  1VCMJTIFS  0QFSBUPS  1VCMJTIFS

  126. 0QFSBUPS 1VCMJTIFS͔Βड͚औͬͨ஋͔Β৽͍͠1VCMJTIFSΛੜ੒  1VCMJTIFS  0QFSBUPS  1VCMJTIFS  0QFSBUPS

     1VCMJTIFS ࿈݁ͯ͠࢖͏͜ͱ͕Ͱ͖Δ
  127. શ෦1VCMJTIFS Noti f i cationCenter.Publisher Publishers.Map Publishers.HandleEvents Publishers.Debounce Publishers.Filter Publishers.RemoveDuplicates

    Publishers.FlatMap Publishers.ReceiveOn Publishers.HandleEvents
  128. 0QFSBUPS $PMMFDUJPOͱಉ͡γϯλοΫεɺ࢖͍ํͷ΋ͷ͕ଟ͍  0QFSBUPS $PMMFDUJPO ❤

  129. 0QFSBUPS ஋ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS lz lPOFz lz lUXPz lz lz

     4VCTDSJCFS
  130. 0QFSBUPS ஋ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS lz lPOFz lz lUXPz lz lz

     4VCTDSJCFS
  131. 0QFSBUPS ஋ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS lz lPOFz lz lUXPz lz lz

     4VCTDSJCFS
  132. 0QFSBUPS ஋ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS lz lPOFz lz lUXPz lz lz

     4VCTDSJCFS
  133. 0QFSBUPS ஋ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS lz lPOFz lz lUXPz lz lz

     4VCTDSJCFS
  134. 0QFSBUPS ஋ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS  lPOFz lz lUXPz lz lz

     4VCTDSJCFS
  135. 0QFSBUPS ஋ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS lPOFz lz lUXPz lz lz 

     4VCTDSJCFS
  136. 0QFSBUPS ஋ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS lPOFz lz lUXPz lz lz 

     4VCTDSJCFS
  137. 0QFSBUPS ஋ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS lPOFz lz lUXPz lz lz 

    4VCTDSJCFS
  138. 0QFSBUPS ஋ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS  lUXPz lz lz  4VCTDSJCFS

  139. 0QFSBUPS ஋ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS lUXPz lz lz   4VCTDSJCFS

  140. 0QFSBUPS ஋ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS lUXPz lz lz   4VCTDSJCFS

  141. 0QFSBUPS ஋ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS lUXPz lz lz   4VCTDSJCFS

  142.  4VCTDSJCFS 0QFSBUPS ஋ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS lUXPz lz lz 

  143. 0QFSBUPST ஋ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS lUXPz  lz  4VCTDSJCFS 

  144.  0QFSBUPST ஋ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS lUXPz lz <lz lPOFz lz

    ʜ>  4VCTDSJCFS 
  145. 0QFSBUPS ஋ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS  4VCTDSJCFS  ̒ $PNQMFUJPO f

    i OJTIFE lz lPOFz lz lUXPz lz lz
  146. 0QFSBUPS ܨ͛Ε͹ܨ͛Δ΄Ͳܕ͕ෳࡶʹͳΔ 1VCMJTIFST.BQ1VCMJTIFST%FDPEF1VCMJTIFST.BQ,FZ1BUI63-4FTTJP O%BUB5BTL1VCMJTIFS +40/%FDPEFS*OQVU "1*.PEFM +40/%FDPEFS  <.PEFM> ˞ܕ໊͸ద౰Ͱ͢

  147. 0QFSBUPS FSBTF5P"OZ1VCMJTIFS "OZ1VCMJTIFS<.PEFM> &SSPS ˞ܕ໊͸ద౰Ͱ͢

  148. 0QFSBUPS 1VCMJTIFS͔Βड͚औͬͨ஋͔Β৽͍͠1VCMJTIFSΛੜ੒  1VCMJTIFS  0QFSBUPS  1VCMJTIFS  0QFSBUPS

     1VCMJTIFS  1VCMJTIFS  0QFSBUPS  0QFSBUPS  1VCMJTIFS  0QFSBUPS
  149. ଞͷϑϨʔϜϫʔΫͱͷ࿈ܞ

  150. ͋ΒΏΔॲཧΛ1VCMJTIFSʹ 'PVOEBUJPO w /PUJ f i DBUJPODFOUFS w 5BSHFU"DUJPO w

    "EIPDDBMMCBDLT w 63-4FTTJPO w ,70 $PNCJOF 1VCMJTIFS 4XJGU6* w !#JOEJOH w !0CTFSWFE0CKFDU w !4UBUF $PSF%BUB w 'FUDIFE3FRVFTU w /4.BOBHFE0CKFDU
  151. 'PVOEBUJPO $PNCJOF

  152. 63-4FTTJPO https://developer.apple.com/documentation/foundation/urlsession/processing_url_session_data_task_results_with_combine %BUB5BTL1VCMJTIFS

  153. 63-4FTTJPO https://developer.apple.com/documentation/foundation/urlsession/processing_url_session_data_task_results_with_combine %BUB5BTL1VCMJTIFS

  154. 63-4FTTJPO https://developer.apple.com/documentation/foundation/urlsession/processing_url_session_data_task_results_with_combine ᶃ63-͔ΒσʔλΛऔಘ ᶃ ᶄ ᶅ ᶄϨεϙϯείʔυ͕ෆਖ਼ͩͱΤϥʔ ᶅ+40/Λ6TFSܕʹσίʔυ

  155. 63-4FTTJPO https://developer.apple.com/documentation/foundation/urlsession/processing_url_session_data_task_results_with_combine

  156. 63-4FTTJPO https://developer.apple.com/documentation/foundation/urlsession/processing_url_session_data_task_results_with_combine ᶃ63-͔ΒσʔλΛऔಘ ᶃ ᶄ ᶅ ᶄࣦഊͨ͠Β࠶औಘ ᶅͦΕͰ΋ࣦഊͨ͠Β୅ΘΓͷํ๏Ͱσʔλऔಘ

  157. ,70 ,FZ7BMVF0CTFSWJOH /40CKFDU,FZ7BMVF0CTFSWJOH1VCMJTIFS6*4DSPMM7JFX $(1PJOU DMBTT͔ͭ/40CKFDUͷαϒΫϥεͳΒ͹࢖༻Մೳ

  158. /PUJGJDBUJPO$FOUFS ͲΜͳ/PUJ f i DBUJPO/BNFʹ΋ରԠ /PUJ f i DBUJPO$FOUFS1VCMJTIFS

  159. 4XJGU6* $PNCJOF

  160. 6*ͷঢ়ଶͱදࣔͷߋ৽Λಉظ 6*,JU Ϋϩʔδϟ

  161. 6*ͷঢ়ଶͱදࣔͷߋ৽Λಉظ 6*,JU $PNCJOF

  162. 6*ͷঢ়ଶͱදࣔͷߋ৽Λಉظ 4XJGU6* $PNCJOF

  163. 5FYU 1VCMJTIFS 6*ͷঢ়ଶͱදࣔͷߋ৽Λಉظ 4XJGU6* $PNCJOF

  164. 0CTFSWBCMF0CKFDU 0CTFSWBCMF0CKFDU 6*ͷঢ়ଶͱදࣔͷߋ৽Λಉظ 4XJGU6* $PNCJOF

  165. 5FYU 1VCMJTIFS ߋ৽ 6*ͷঢ়ଶͱදࣔͷߋ৽Λಉظ 4XJGU6* $PNCJOF

  166. ߋ৽Λ௨஌ ௨஌ 6*ͷঢ়ଶͱදࣔͷߋ৽Λಉظ 4XJGU6* $PNCJOF

  167. !1VCMJTIFE͕ߋ৽͞ΕΔͱߋ৽͕ඞཁͳ7JFXΛ4XJGU6*͕ࣗಈͰ࠶ඳը ߋ৽ 6*ͷঢ়ଶͱදࣔͷߋ৽Λಉظ 4XJGU6* $PNCJOF

  168. 6*ͷঢ়ଶͱදࣔͷߋ৽Λಉظ 6*,JU 6*-BCFM WBSUFYU4USJOH 7JFX.PEFM WBSJE4USJOH 4UBUF 7JFX

  169. 6*ͷঢ়ଶͱදࣔͷߋ৽Λಉظ 6*,JU 6*-BCFM WBSUFYU4USJOH 7JFX.PEFM WBSJE4USJOH 4UBUF 7JFX

  170. 7JFX.PEFM0CTFSWBCMF0CKFDU !1VCMJTIFEWBSJE4USJOH 6*ͷঢ়ଶͱදࣔͷߋ৽Λಉظ 4XJGU6* 5FYU WJFX.PEFMJE

  171. 7JFX.PEFM0CTFSWBCMF0CKFDU !1VCMJTIFEWBSJE4USJOH 6*ͷঢ়ଶͱදࣔͷߋ৽Λಉظ 4XJGU6* 5FYU WJFX.PEFMJE 4UBUF 7JFX

  172. 7JFX.PEFM0CTFSWBCMF0CKFDU !1VCMJTIFEWBSJE4USJOH 6*ͷঢ়ଶͱදࣔͷߋ৽Λಉظ 4XJGU6* 4XJGU6* 5FYU WJFX.PEFMJE 4UBUF 7JFX 4JOHMF4PVSDFPG5SVUI

  173. 6*ͷঢ়ଶͱදࣔͷߋ৽Λಉظ 4XJGU6* !4UBUF0CKFDUͰ0CTFSWBCMF0CKFDUΛอ࣋

  174. ͋ΒΏΔඇಉظॲཧΛ1VCMJTIFSʹ 'PVOEBUJPO w /PUJ f i DBUJPODFOUFS w 5BSHFU"DUJPO w

    "EIPDDBMMCBDLT w 63-4FTTJPO w ,70 $PNCJOF 1VCMJTIFS 4XJGU6* w !#JOEJOH w !0CTFSWFE0CKFDU w !4UBUF $PSF%BUB w 'FUDIFE3FRVFTU w /4.BOBHFE0CKFDU
  175. طଘͷ࣮૷ʹ׆༻Ͱ͖Δʁ

  176. 1BTTUISPVHI4VCKFDUͷ׆༻ ϘλϯͷλοϓΠϕϯτΛ 1VCMJTIFS͔Β௨஌͢Δ

  177. 1BTTUISPVHI4VCKFDUͷ׆༻ ϘλϯͷλοϓΠϕϯτΛ 1VCMJTIFS͔Β௨஌͢Δ ֎͔Βมߋ͞Εͳ͍Α͏ʹ ಡΈऔΓઐ༻ͳ1VCMJTIFSͷΈެ։͢Δ

  178. $VSSFOU7BMVF4VCKFDUͷ׆༻ ॳظ஋͕ඞཁͳ৔߹

  179. ˏ1VCMJTIFEͷ׆༻

  180. %FMFHBUFͰड͚औͬͨ஋Λ 1VCMJTIFS͔Β௨஌͢Δ %FMFHBUF͔Βܧଓతʹ஋Λग़ྗ͢Δ

  181. IBOEMF&WFOUT ֤λΠϛϯάͰॲཧΛ௥ՃͰ͖Δ SFDFJWF4VCTDSJQUJPO1VCMJTIFS͔Β4VCTDSJQUJPOΛड͚औͬͨ SFDFJWF0VUQVU1VCMJTIFS͔Β0VUQVUΛड͚औͬͨ SFDFJWF$PNQMFUJPO1VCMJTIFS͔Β׬ྃ௨஌Λड͚औͬͨ SFDFJWF$BODFM4VCTDSJCFS͔ΒΩϟϯηϧΛґཔ͞Εͨ SFDFJWF3FRVFTU4VCTDSJCFS͔Β%FNBOEΛड͚औͬͨ

  182. 3FTVMU1VCMJTIFS 3FTVMU%BUB &SSPS7PJE

  183. 'VUVSF 1VCMJTIFSͰ8SBQ͢Ε͹1VCMJTIFS ΛฦͤΔ 3FTVMU1VCMJTIFS

  184. typealias Promise = (Result<Output, Failure>) -> Void https://developer.apple.com/documentation/combine/future/promise 'VUVSF͸3FTVMU Λग़ྗ͢Δ

    3FTVMU1VCMJTIFS
  185. https://developer.apple.com/documentation/combine/future/promise ஋ͷग़ྗ͸Ұ౓͚ͩ Τϥʔͷ৔߹͸Τϥʔ͚ͩ 3FTVMU1VCMJTIFS

  186. https://developer.apple.com/documentation/combine/deferred 'VUVSF͸ ΠϯελϯεΛੜ੒ͨ͠λΠϛϯάͰ ಺෦ͷॲཧΛ࣮ߦ͢Δ 3FTVMU1VCMJTIFS

  187. https://developer.apple.com/documentation/combine/deferred %FGFSSFEͰ࣮ߦΛ஗Ԇͤ͞Δ 3FTVMU1VCMJTIFS

  188. ,70ͷ׆༻

  189. $VTUPN1VCMJTIFS 6*$POUSPMΠϕϯτΛ 1VCMJTIFSʹ͢Δ

  190. $VTUPN1VCMJTIFS 1VCMJTIFS࡞੒ 4VCTDSJQUJPO࡞੒ 0QFSBUPS࡞੒ ೚ҙ

  191. 1VCMJTIFSʹม׵ͯ͠$PNCJOFͷੈք΁ $PNCJOF 1VCMJTIFS 1VCMJTIFS 1VCMJTIFS 1VCMJTIFS 1VCMJTIFS 1VCMJTIFS https://pixabay.com/ja/illustrations/%E5%9C%B0%E7%90%83-4439728/

  192. ࠔͬͨ࣌ͷσόοάํ๏

  193. https://pixabay.com/ja/vectors/%E3%83%81%E3%82%A7%E3%83%BC%E3%83%B3-%E5%A3%8A%E3%82%8C%E3%81%9F-%E3%83%AA%E3%83%B3%E3%82%AF-%E8%87%AA%E7%94%B1-297842/

  194. ࠔͬͨ࣌ͷσόοάํ๏ QSJOU IBOEMF&WFOU ίϯιʔϧͰॲཧͷྲྀΕΛ֬ೝͰ͖Δ

  195. ࠔͬͨ࣌ͷσόοάํ๏ CSFBLQPJOU0O&SSPS CSFBLQPJOU ΤϥʔͷݪҼΛελοΫΛݟͯ֬ೝͰ͖Δ

  196. ࠔͬͨ࣌ͷσόοάํ๏ 5JNFMBOF http://timelane.tools/

  197. ࠓ೔͝঺հͨ͜͠ͱ $PNCJOFͱ͸ʁ $PNCJOFΛ࢖͏ҙٛ ओͳΫϥεΛ஌Δ 1VCMJTIFS 4VCTDSJCFS 4VCTDSJQUJPO 4VCKFDU !1VCMJTIFE ॲཧͷྲྀΕ

    ࢓૊Έ Λ ஌Δ 0QFSBUPST ͱ͸ʁ طଘͷ࣮૷ʹ ૊ΈࠐΉ 4XJGU6*  ϑϨʔϜϫʔΫ σόοάํ๏Λ ஌Δ
  198. ·ͩ·ͩ஌Βͳ͍͜ͱ͕͋Δ ΋ͬͱ1VCMJTIFS Λ஌Δ ΋ͬͱ0QFSBUPS Λ஌Δ ςετΛॻ͘ ಠࣗͷ1VCMJTIFSΛ ࡞੒͢Δ ΞϓϦΛ࡞੒͢Δ ศརͳϥΠϒϥϦ΍

    πʔϧΛ஌Δ
  199. ΋ͬͱ1VCMJTIFS Λ஌Δ ΋ͬͱ0QFSBUPSTΛ ஌Δ ςετΛॻ͘ ಠࣗͷ1VCMJTIFSΛ ࡞੒͢Δ ΞϓϦΛ࡞੒͢Δ ศརͳϥΠϒϥϦ΍ πʔϧΛ஌Δ

    ·ͩ·ͩ஌Βͳ͍͜ͱ͕͋Δ 1VCMJTIFS$PNCJOF /FWFS
  200. Ͳ͏΍ֶͬͯͿʁ

  201. ΋ͬͱ$PNCJOFʹ͍ͭͯ஌Δ w 88%$ͷηογϣϯ w ެࣜυΩϡϝϯτ w ΧϯϑΝϨϯετʔΫɺಈը w ॻ੶ɺϒϩάͳͲ

  202. $PNCJOFΛ࢖ͬͯΈΔ w 1MBZHSPVOE΍9DPEF1SFWJFXTͰಈ͖Λ֬ೝ͢Δ w νϡʔτϦΞϧ΍ϥΠϒίʔσΟϯάಈըͷਅࣅΛ͠ ͯΈΔ ࣸܦ  w ౎౓ɺެࣜϦϑΝϨϯεΛࢀর͢Δ

    w ݸਓΞϓϦΛ࡞Δ
  203. w σόοάπʔϧΛ࢖ͬͯΈΔ w ಉ͡Α͏ʹࠔ͍ͬͯΔਓ͕͍ͳ͍͔୳ͯ͠ΈΔ w ࣭໰Λͯ͠ΈΔ ࠔͬͨͱ͖͸ combinecommunity.slack.com TXJGUEFWFMPQFSTKBQBO

  204. IUUQTHJUIVCDPNTU[O$PNCJOF4UVEZ

  205. $PNCJOF ,FZWBMVFPCTFSWJOH 5BSHFU"DUJPO /PUJ f i DBUJPO$FOUFS $MPTVSF$BMMCBDLT %FMFHBUF ʜ

    ʜ ʜ ʜ
  206. $PNCJOF ʁ

  207. ͋Γ͕ͱ͏ ͍͟͝·ͨ͠