AsyncSwift Seminar 002
Youtube: https://www.youtube.com/watch?v=PiCOFYQ3N_o&ab_channel=AsyncSwiftKorea
2022.09.22 ӣթഅ (ఋ / CTO)যܳ ੜ ܖח ఋ ࢚కҙܻ ӝࣿݽ߄ੌী… Redux э Ѧ ՙলա…?
View Slide
ݾର1. RIBs : ఋ ইఃఫ2. ࢚క ҙܻ য۰ : ఋ ாझܳ ా೧3. ఋ ࢚కҙܻ ӝࣿ
1. RIBs : ఋ ইఃఫ
Multi-platform architecturehttps://github.com/uber/RIBs
Uber RIBsRouterInteractorBuilder
Uber RIBsRouter Interactor Builder
Uber RIBsRouter Interactor BuilderPresenter View
Uber RIBsRouter Interactor BuilderPresenter ViewBusiness logic(a.k.a. brain of the app)
Uber RIBsRouter Interactor BuilderPresenter ViewHelper for routingbetween RIBs
Uber RIBsRouter Interactor BuilderPresenter ViewBuild RIB units
Uber RIBsRouter Interactor BuilderPresenter ViewLayout & Animation
Uber RIBsRouter Interactor BuilderPresenter ViewTranslation logic
State treeRootMainLoggedOutMenuRequest RideLocationEditor Confirm RefinementCouponDroppedOfCardMatchedPendingViewlessViewfulEmail, PW, ...
• ‘Multiplatform Architecture RIBs in Swift’ on YoutubeRIBs ী ೧ࢲ ؊ ঌҊ रਵݶ
2. ࢚క ҙܻ য۰ : ఋ ࢎ۹
ఋ ٘ۄߡ জ
ޙઁ1ࠂೠ ࢚కী ൦ بݫੋ ۽
Ѣ “೧” : ܻ ߓର
Ѣ “೧” 2 : ߸
थ ৮ܐ Flow
࢚క ୶оী ٮܲ Ҋ 🤔• নೠ بݫੋ ݓۅਸ Ҋ۰೧ঠೣ• അ ਃҳ ઑѤ݅ Ҋ۰ೠ সؘ Side Effect• ) ܻߓର ۽ী ೠ ೧ب হ ࢜۽ সؘೞӝ• ࢚క द ଵҊ೧ঠೡ ؘఠо ݆• ઁܳ Ѥܻ٘ח ߸҃ ࢎ೦ ࢤӝݶ ցޖ ݆ ߸҃ ߊࢤ• ࢲߡ৬ ۄ р ࢚కо ܳ ٸ زӝചೞח ߑध
State Tree
഻ঁ ؊ աই݅ Ӓېب Ҋ ҅ࣘ 🤔• ࢚కܳ ߈ೞח ٘о ࠙غয • بݫੋ ध ঈ য۰• ࢚క ߸҃ ߮о Propagate• ৈ۞ RIB ীࢲ ࣻ
ޙઁ2࢚క ߸҃ җ ޙઁ ࢚ടٜ
ࣽࢲ ࠁClient Side Server Sideݫࣁ׳োߊࢤA ࢚క۽ ജ ਃ A ࢚క۽ ജ ৮ܐ B ࢚క۽ ജೞח RPC୭ઙ ࢚క A ୭ઙ ࢚క B
ࣽࢲ ࠁ• ఋীࢲ ࢎਊೞח ࢲߡ ాन : HTTP, gRPC• ࢚క সؘਊ ࣽࢲ ࠁ ٘ ਃ• DTO ё Versioning• ࢚క সؘ ߸҃ ߮ ޖदೞӝ
زदࢿ ޙઁA to A’'B to B’’A -> A’’, B -> B’’ ߸ചܳ زदী ߊࢤदெঠೞ݅A’’ & B ੋ ࢚కо ਫ਼द ઓೞݴ ߡӒ ߊࢤ
زदࢿ ޙઁ• ೠߣী ߊࢤ೧ঠ ೞח ࢚క সؘо ѐ߹۽ ߊࢤ• ۽ ੋ೧ Event Emit ࠛਃೞѱ ৈ۞ߣ ߊࢤ• пп ࢚క সؘр рࢼਵ۽ ࢤӝח ޑೠ زदࢿ ߡӒ ೧Ѿਸ ਤೠ ٘ ઓ• بੋ Filter ۽
3. ޙઁܳ ೧Ѿ೧ࠁ 😎
ޙઁ ೧Ѿਸ ਤೠ оࢸ💡• ࢚క ߸ചী ೠ పझܳ ࢿೞৈ ߸҃ী ೠ উࢿਸ ٜ݅ݶ ࠂೠ ࢚క۽ ੋೠ ߡӒо যٜ Ѫ.• ࢚క ҙܻীࢲ ߈ࠂਵ۽ աఋաח ಁఢਸ ୶ೞৈ ѐߊਸ ೡ ࣻ ب۾ ೞݶ ࠂ ٘ / ࠂ ߡӒܳ ੌ ࣻ ਸ Ѫ.• ࢚క ߸ചী ೠ ݽפఠ݂ਸ औѱೡ ࣻ ח ߑߨਸ ٜ݅ݶ ٣ߡӦ ബਯࢿਸ ֫ੌ ࣻ ਸѪ.
࢚క ҙܻ ଼ਸ ة݀ػ ݽٕ۽ ܻ࠙
࢚కҙܻ ଼ਸ ة݀ػ ݽٕ۽ ܻ࠙
അ ߑध ױױ• ҙܻ ஏݶীࢲ য۰• ҙ ೱ ஹನք (Plugin) ୶о য۰• ਬ పझ ࢿ ൨ٝ• ࠗରੋ boilerplate ٘ܳ ࢤೞঋ• ӝמ ѐߊਸ ਤೠ ࡅܲ ࢤࢿ
💡࢚క ҙܻ ଼ਸ ة݀ػ ݽٕ۽ ܻ࠙• ࢚క ߸ച ٘ܳ ೠҔী • ݆ࣻ ݫࢲ٘ܳ ыח Ѣೠ ݽٕ ࢤTODO : Ѣೠ ݽٕ -> ଼ ܻ࠙ա ഛী ਊೠ ݽٕ
উҊ ഛী ਬܻೠ ݽٕ۽ ѐࢶ
ܲ ࢤక҅ীࢲח যڌѱ ೞҊ ա? - Redux• ױߑೱ ؘఠ ܴਵ۽ ࢚కܳ ߸҃ ߂ ҳة• Action ܻী ೠ Middleware ܳ ઁҕ• MVI ইఃఫ৬ ਬࢎ
ఋ জী Redux झఋੌ ՙলਵݶ…?• State Mutation / Subscription ١ Redux ױߑೱ ؘఠ ܴ ѐ֛ ࣼೠࢎਊࢿ• Action җ State ী ೠ Middleware بੑਸ ాೠ ҙ ೱ ѐߊ оמ• ঔചػ ࢚కҙܻܳ ઁҕ• ழۆ State Tree ܳ оח ۽؋ ਃҳࢎ೦ী
StateMachine
StateMachine द
Mutation & Subscription
StateMachine ز җ• StateMachine State ী ೠ Mutation ਸ Action ۄח ؘఠܳ dispatch ೞৈ೯• Mutation ਸ ߊࢤ दఃח җীࢲח Middleware ۄח ро ѐੑ• ୭ઙਵ۽ State Mutation ਸ दఃח بݫੋ ۽ Reducer о ଼
଼ী ٮܲ Reducer ଂѐӝ
🎉 StateMachine بੑ Ѿҗ
StateMachine بੑ റ ࢚క ҙܻ
ബҗ1 - ࢚క ҙܻ ݽٕ ܻ࠙• ࢚క ҙܻ ଼ ೠ Ҕਵ۽ • بݫੋ ध ঈ ਊ• ࠺तೠ ݓۅ ࠂػ ٘ ઁѢ• ֬ח ۽ ѐࢶ-> ߈ੋ ߡӒ хࣗ
ബҗ2 - Middleware• ҙ ೱ ѐߊ (AOP)• ࠺ૉפझ ۽ী ೱਸ ঋח زٜ ୶о оמ
LoggerMiddleware
BlockActionWhileFetchingMiddleware
ബҗ3 - UnitTest• StateMachine ী ೠ Unit Test оמ• নೠ জ ӝמਸ प೯ೞݶࢲ StateTrackerMiddleware ܳ ా೧ п పझ ாझܳࣻೞৈ ࠁ औѱ పझ ࢤࢿ оמ
One more thing!
FlipperMiddlewareبೞח ঋও݅…• ਗഝೠ ٣ߡӦਸ ਤೠ दпച ో• State diff࠺Ү• Dispatch ػ Action ࣽࢲ• ۽ Action ਸ Dispatch ೞӝ
Wrap up• ࢚క ҙܻ য۰ • উࢿ : ৢ߄ܲ ࢚క ҙܻܳ ਤ೧ࢲ নೠ بݫੋ ध ਃ• ࢤࢿ : ߸ചী ਬোೣ ਃ• ೧Ѿߑध• ࢚కҙܻ ଼ ݽٕ ܻ࠙• উҊ ഛী ਬܻೠ ݽٕ۽ ѐࢶ - Redux style
Wrap up 2• ইఃఫ ߊ 🙅• ࢚కҙܻ ݽٕ ܻ࠙• ਬোೞҊ উࢿח ࢚కҙܻ ݽٕ ٜ݅ӝ
WE ARE HIRING!