Slide 1

Slide 1 text

TCAͰͷClient/Managerͷ ར༻ύλʔϯͰ͸෭࡞༻ͷ Action΍ErrorΛ෼཭Ͱ͖Δ iOSΞϓϦ։ൃͷͨΊͷFunctional Architecture৘ใڞ༗ձ2 @yimajo 2020/11/22 #fa_ios

Slide 2

Slide 2 text

The Composable Architecture ʹ͸ ಛఆͷ෭࡞༻Λ·ͱΊΔΧελϜͳ Client/Managerܕͷαϯϓϧ͕͋Δ

Slide 3

Slide 3 text

• DownloadClient • WebSocketClient • LocalSearchClient • WeatherClient • SpeechClient • AuthenticationClient • AudioPlayerClient • AudioRecorderClient • MotionManager • LocationManager

Slide 4

Slide 4 text

State Action View Store DI Environment Client Effect Reducer Error "DUJPO

Slide 5

Slide 5 text

State Action View Store DI Environment Client Effect Reducer Error "DUJPO

Slide 6

Slide 6 text

State Action View Store DI Environment Client Effect Reducer Error "DUJPO

Slide 7

Slide 7 text

State Action View Store DI Environment Client Effect Reducer Error "DUJPO

Slide 8

Slide 8 text

State Action View Store DI Environment Client Effect Reducer Error "DUJPO

Slide 9

Slide 9 text

State Action View Store DI Environment Client Effect Reducer Error "DUJPO

Slide 10

Slide 10 text

State Action View Store DI Environment Client Effect Reducer Error "DUJPO

Slide 11

Slide 11 text

Clientͷߏ੒

Slide 12

Slide 12 text

෭࡞༻࣮ߦΫϩʔδϟ ઐ༻ͷΤϥʔ ઐ༻ͷ"DUJPO

Slide 13

Slide 13 text

$MJFOUͷ࣮ߦΛอ࣋͢Δ %FQFOEFODJFT

Slide 14

Slide 14 text

TUBUJDMFUMJWFͰγϯάϧτϯతͳΠϯλϑΣʔε ෭࡞༻࣮ߦΫϩʔδϟDBODFMͷఆٛ ෭࡞༻࣮ߦΫϩʔδϟEPXOMPBEͷఆٛ

Slide 15

Slide 15 text

MJWFͷݺͼग़͠͸&OWJSPONFOUͰ lMJWFzͷݴ༿ͷҙຯ͸Α͘Θ͔Βͳ͍ QSFWJFXʹ΋MJWF͸࢖͏ͷͰຊ൪༻ͬͯҙຯͰͳ͍ MJWF/VNCFS'BDU GPS ͳͲ͸୯ʹ௨৴͢Δ͚ͩɻ ؂ࢹͳͲΛ͍ͯ͠ΔΘ͚Ͱ΋ͳ͍ɻ GBWPSJUF JEJT'BWPSJUF ΋BTZOD"GUFSͳͷͰඇಉظॲཧ

Slide 16

Slide 16 text

Clientͷ෭࡞༻࣮ߦΫϩʔδϟͷ ݺͼग़͠

Slide 17

Slide 17 text

෭࡞༻࣮ߦΫϩʔδϟEPXOMPBEͷ࣮ߦ

Slide 18

Slide 18 text

ཧ۶ͱͯ͠ɺ$PSF.PUJPOͷ TUBSU%FWJDF.PUJPO6QEBUFT VTJOH UP ͜Ε͸୺຤ͷϞʔγϣϯΛݕ஌͢Δͱಈ࡞͢ΔΫϩʔδϟɻ ͜ͷ෭࡞༻࣮ߦΫϩʔδϟ͸֎෦͔Βݺ͹Εͣɺ ಺෦Ͱ4VCTDSJCFS͕ΠϕϯτΛTFOEͯ͘͠ΕΔɻ

Slide 19

Slide 19 text

෭࡞༻࣮ߦΫϩʔδϟͷ಺෦ݺͼग़͠ • ࣗಈͰԿ͔Λ؂ࢹͯ͠มԽ͕͋ͬͨΒAction͕ݺͼग़ͤΔ • Motion • Location • Core DataͷFetch Result Controller

Slide 20

Slide 20 text

%PXOMPBE$MJFOUͷ"DUJPOΛ3FEVDFSʹ఻͑Δ

Slide 21

Slide 21 text

·ͱΊ • Action/ErrorΛݸผʹఆٛ • ෭࡞༻࣮ߦΫϩʔδϟ • ΫϩʔδϟΛReducer͕֎෦ݺͼग़͠ • Ϋϩʔδϟ಺෦Ͱউखʹ࣮ߦͤͨ͞Γ