Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Combine Operator Guide

0b26590a0a8b0f1da140ed5de9b68379?s=47 USAMI Kosuke
September 27, 2021

Combine Operator Guide

パンフレット記事「Combine Operator ガイド」についての解説と補足

YUMEMI.swift #13 〜裏iOSDC〜
https://yumemi.connpass.com/event/222372/

0b26590a0a8b0f1da140ed5de9b68379?s=128

USAMI Kosuke

September 27, 2021
Tweet

Transcript

  1. ʮ$PNCJOF0QFSBUPSΨ Πυʯղઆͱิ଍ Ӊࠤݟެี  1/22

  2. Ӊࠤݟެีʢ!VTBNJLʣ w J04鲠鳫鲰鳃鲚 w 鳍鲟鳫鳢鳣גࣜձࣾJ04鲾鲻鲧鳢鱅鳁 w .PCJMF"DU鳢鱅鲸鱅 w ٕज़ಉਓࢽ鲗ॻ鱉鱫鱉鲃鱞 w

    鲋鲆鲄鱳鱏ख఻鱉鲇鱜鱫鱉鲃鱞 2/22
  3. J04%$ύϯϑϨοτهࣄΛॻ͖·ͨ͠ w $PNCJOF0QFSBUPS鲤鲜鳁 w 1%' #005)  w IUUQTUZQFEMBCCPPUIQNJUFNT w

    鲭鳫鳏鳣鲫鱅鳁 (JU)VC w IUUQTHJUIVCDPNVTBNJL$PNCJOF0QFSBUPS(VJEF4BNQMF 3/22
  4. τʔΫͱهࣄ w J04%$+BQBO鱳鳙鲜鳫鱴ɺ鲉鱴鲏鳀鱅鲧鲳鲻鲯鳟鳫 w 鲄鲘鱯鱬ಉ࣌ࢹௌ w "TLUIF4QFBLFS w هࣄ鱬鱴্ه鱳鲍鱋鱯੝鲏্鱑鲏鱴೉鱜鱉 w

    鳍鲛鱅鳁鳈鲻鲧鲗鱔鲑鲐ਓ鱴鱉鲐ɺخ鱜鱉 4/22
  5. ͦ΋ͦ΋هࣄಡΜͰΔʁ w ޙճ鱜鱰鱯鲏鱑鱦 w ೳಈత鱰ಡ鲇鱋鱭ҙࣝ鱜鱯鱉鱭ಡ鲆鱯鱉 w ๻鲇鲔鲏鱭ཷ鲆鱑鱦ɾɾɾ w ޙ鱬ಡ鲅ɺ鳢鱅鲿鲛鳫鲨鳢鲱鳀ɺੵಡɺɾɾɾ 5/22

  6. ͪΐͬͱಡΜͰΈΑ͏ w ࠓ೔鱴ɺهࣄ鱳಺༰鲗鱛鱨鱭ோ鲆鱫鲄鲐 w 鳉鳫鳍鳤鲻鳀鲗࣋鱨鱫鱉鲐ਓ鱴鱡鱷ݟ鱫鱲 w 鲃鱤鱴1%'鲸鲞鳫鳥鱅鳁 #005) 6/22

  7. $PNCJOFͱ͸ w 鱢鲇鱢鲇$PNCJOF鱨鱫鱯鱰ʁ w 鲢鳎鲰鲟鲧鳀鱐鲎鲢鳎鲰鲟鲧鳀鱰鲜鳑鳫鳀鲗఻鱍鲐 w ૹ৴ʢ1VCMJTIFSʣ鱭ड৴ʢ4VCTDSJCFSʣ w খ鱚鱔؆୯鱯鲭鳫鳏鳣鲫鱅鳁鱬঺հ w

    9DPEF1MBZHSPVOE鱬鱞鱕ࢼ鱠鲐 7/22
  8. 0QFSBUPS w ૹ৴ʢ1VCMJTIFSʣ鱭ड৴ʢ4VCTDSJCFSʣҎ֎鱳ୈ鱳ཁૉ w 0QFSBUPS鱴ɺ1VCMJTIFS鲗ผ鱳1VCMJTIFS鱰ม׵鱞鲐 w 鱘鱘鱬鱴map0QFSBUPS鲗঺հ 8/22

  9. .BSCMF%JBHSBN w 0QFSBUPS鱳ਤࣔ 9/22

  10. $PNCJOFͷར༻γʔϯ w 鳈鲜鳫鲿鲛鳫鲨 w 7JFX.PEFM鱐鲎7JFX$POUSPMMFS鱽஋鲗఻鱍鲐ྫ w 鳈鲜鳫鲿鲛鳫鲨鱳鱭鱒鱰0QFSBUPS鱑໾鱰ཱ鱩 w $PNCJOF鱬鳈鲜鳫鲿鲛鳫鲨鱑鱒鲑鱉鱰ॻ鱖鲐 10/22

  11. 1VCMJTIFSͷܕফڈ w 鳈鲜鳫鲿鲛鳫鲨鱳鲫鱅鳁鱳த鱬࢖鱨鱫鱉鱤ܕফڈ鱳঺հ w 0QFSBUPS鲗ෳ਺࢖鱋鱭ɺ1VCMJTIFS鱳ܕ鱑ෳࡶ鱰鱯鲐 w ܕফڈ鱞鲐鱤鲆鱳eraseToAnyPublisher0QFSBUPS鱑鱇鲐 w ෳࡶ鱯ܕ鲗AnyPublisherܕ鱰鱞鲐 11/22

  12. 0QFSBUPSͷछྨ w ެࣜ鳢鳍鲙鳤鳫鲱鲗ݟ鲐鱭0QFSBUPS鱳ଟ鱚鱰ѹ౗鱚鲑鲐 w 鲍鱔࢖鱋鲇鱳鲗೺Ѳ鱞鲐鱳鱑େࣄ 12/22

  13. ܕΛม׵͢Δ w ઌ鱰ग़鱜鱤map鱳ྫ鱬鱴ɺܕ鱴ಉ鱝鱬஋鱥鱖ม׵鱜鱫鱉鱤 w map鱬ܕ鲗ม׵鱞鲐鳉鲷鱅鳫鱳঺հ w 鱘鲑鱴࣍鱳0QUJPOBMܕ鱳࿩鱰鱩鱯鱕鱤鲆鱳લஔ鱒 13/22

  14. 0QUJPOBMܕͷΞϯϥοϓ w 0QUJPOBMܕ鲗鱋鲃鱔ѻ鱋鱤鲆鱳0QFSBUPS w replaceNil w compactMap 14/22

  15. ม׵࣌ͷΤϥʔ w 鲠鳡鱅鲜鳑鳫鳀鲗ൃੜ鱚鱠鲐0QFSBUPS w tryMap w ࣍鱳鲠鳡鱅鳇鳫鳁鳢鳫鲨鱳࿩鱰鱩鱯鱕 15/22

  16. ΤϥʔϋϯυϦϯά w 鲠鳡鱅鳇鳫鳁鳢鳫鲨鱞鲐0QFSBUPS w retry w replaceError w catch w

    鱘鱳鱇鱤鲏ࢴ໘ෆ଍鱯ײ鱝鱑鱇鲐鱑ɺ鳢鳀鳡鲜鱴આ໌鱜鱤鱐鱨 鱤 16/22
  17. ϑΟϧλϦϯά w ஋鲗ࣺ鱫鲐0QFSBUPS w 鱉鲒鱉鲒鱇鲐鱑ɺ.BSCMF%JBHSBN鱰鲍鲐ਤࣔ鱬鲀鲁఻鲔鲐鱴鱟 17/22

  18. ෳ਺ͷ1VCMJTIFSΛ·ͱΊΔ w ෳ਺鱳1VCMJTIFS鲗鱷鱭鱩鱰鲃鱭鲆鲐0QFSBUPS w combineLatest w zip w marge 18/22

  19. ॻ͔ͳ͔ͬͨ͜ͱɿଞͷ0QFSBUPS w ଞ鱰decodeflatMap鱇鱤鲏鲇େࣄ w decode鱴鱚鲀鱮೉鱜鱔鱯鱉鱳鱬লུ鱜鱤 w flatMap鱴ٯ鱰આ໌鱑鱙鱦鲈鱩鱔鱳鱬ආ鱖鱤 w Կ鱭鱐鱜鱤鱐鱨鱤鱭鱘鲒鱬鱴鱇鲐鱑ɾɾɾ 19/22

  20. ॻ͔ͳ͔ͬͨ͜ͱɿඇಉظॲཧ w ඇಉظॲཧʢ鳅鲻鳀鳧鱅鲧௨৴鱯鱮ʣ w URLSession鱳1VCMJTIFS鲇େࣄ鱬鱴鱇鲐 w 鱤鱥ɺࠓޙ鱴BTZODBXBJU鲗࢖鱋ํ޲鱰鱯鲐鱥鲒鱋 20/22

  21. 4XJGU$PODVSSFODZͱ$PNCJOF w هࣄࣥච࣌఺鱬鱴4XJGU$PODVSSFODZ鱰৮鲑鲐鱳鱴ࠔ೉鱥鱨鱤 w 4XJGU$PODVSSFODZ鱴ڧྗ鱬鱇鲏ࠓޙ鱳ओྲྀ w $PNCJOF鱴ඇಉظॲཧ鲉ฒྻॲཧ鲍鲏鲇ɺ鳈鲜鳫鲿鲛鳫鲨༻్ 21/22

  22. ײ૝ͳͲ͋Ε͹ฉ͔͍ͤͯͩ͘͞ w $PNCJOF0QFSBUPS鲤鲜鳁 w 1%' #005)  w IUUQTUZQFEMBCCPPUIQNJUFNT w

    鲭鳫鳏鳣鲫鱅鳁 (JU)VC w IUUQTHJUIVCDPNVTBNJL$PNCJOF0QFSBUPS(VJEF4BNQMF 22/22