Swiftで外部ライブラリを使わないDIの管理方法 / How to manage DI without using external library in Swift

Swiftで外部ライブラリを使わないDIの管理方法 / How to manage DI without using external library in Swift

587969b565aa3880a97b6d53d1258ce6?s=128

Takuya Iitsuka

February 05, 2020
Tweet

Transcript

  1. 4XJGUͰ֎෦ϥΠϒϥϦΛ࢖Θͳ͍ %*ͷ؅ཧํ๏ ΈͯͶͷ.FFUVQ  ൧௩୓໵

  2. ൧௩୓໵ ೥৽ଔͰϛΫγΟʹೖࣾ ୈҰر๬ͷΈͯͶࣄۀ෦ʹ഑ଐ ΞϓϦ։ൃνʔϜͰJ04Λத৺ʹ։ൃ ࣗݾ঺հ

  3.  %*ʹ͍ͭͯ  4XJOKFDU  ΈͯͶͷ%*  ·ͱΊ ໨࣍

  4. %*ʹ͍ͭͯ

  5. w %FQFOEFODZ*OKFDUJPOʢґଘੑͷ஫ೖʣ w ίϯϙʔωϯτؒͷґଘؔ܎Λഉআ͠ɺ֎෦͔Βґ ଘίϯϙʔωϯτΛ஫ೖ͢ΔσβΠϯύλʔϯ w ίϯϙʔωϯτ͕ؒૄ݁߹ʹͳΓ։ൃɺςετɺอ क͠΍͘͢ͳΔ w ඞཁͳ΋ͷʢΦϒδΣΫτʣΛ֎͔Β౉͚ͩ͢

    %*ͱ͸
  6. %*ʹΑΔ໰୊ .FEJVN7JFX$POUSPMMFS 6TFS3FQPTJUPSZ .FEJVN3FQPTJUPSZ .FEJVN1SFTFOUFS w ྫʣϝσΟΞΛදࣔ͢Δը໘Λ࣮૷ͨ͠ΦϒδΣΫ τͷґଘؔ܎ ґଘ͍ͯ͠Δʢ஫ೖ͢Δ΂͖ʣΦϒδΣΫτ

  7. %*ʹΑΔ໰୊

  8. %*ʹΑΔ໰୊ ભҠ͍ͤͨ͞ 7JFX$POUSPMMFS

  9. %*ʹΑΔ໰୊ ඞཁ ґଘؔ܎ͷղܾ

  10. w ґଘؔ܎ͷղܾΛ·ͱΊͯ؅ཧͰ͖Δͱศར %*ʹΑΔ໰୊

  11. w αʔυύʔςΟ੡ w 4XJOKFDU $MFBOTF /FFEMF FUD w ࣗલ࣮૷ w

    $BLF1BUUFSO FUDʢΈͯͶͷ%*ʣ %*؅ཧͷओͳબ୒ࢶ
  12. 4XJOKFDU

  13. w ґଘؔ܎ͷొ࿥ɺղܾ͕؆୯ʹͰ͖Δ$ 4XJOKFDU

  14. w ґଘؔ܎ͷొ࿥ɺղܾ͕؆୯ʹͰ͖Δ$ 4XJOKFDU ొ࿥͢ΔΦϒδΣΫτͷ ΠϯλʔϑΣʔε

  15. w ґଘؔ܎ͷొ࿥ɺղܾ͕؆୯ʹͰ͖Δ$ 4XJOKFDU ΠϯλʔϑΣʔεͷ ࣮૷ΦϒδΣΫτ

  16. w ґଘؔ܎ͷొ࿥ɺղܾ͕؆୯ʹͰ͖Δ$ 4XJOKFDU ඞཁͳґଘؔ܎Λղܾ

  17. w ґଘؔ܎ͷొ࿥ɺղܾ͕؆୯ʹͰ͖Δ$ 4XJOKFDU

  18. w ґଘؔ܎ͷొ࿥ɺղܾ͕؆୯ʹͰ͖Δ$ 4XJOKFDU

  19. w ಈతʹґଘؔ܎Λղܾ͢ΔͷͰίϯύΠϧ࣌ʹਖ਼͠ ͕͞ݕূ͞Εͳ͍% w αʔυύʔςΟʹґଘ͢Δ% 4XJOKFDUͷ՝୊

  20. ΈͯͶͷ%*

  21. ΈͯͶͷ%* w )PHFΠϯλʔϑΣʔεΛ࣋ͭ)PHF*NQMͷΠϯελ ϯεΛऔಘͰ͖Δ)PHF'BDUPSZΛఆٛ͢Δ

  22. ΈͯͶͷ%*

  23. ΈͯͶͷ%* ΠϯλʔϑΣʔεͷܕΛฦ͢ TUBUJDGVODΛఆٛ

  24. ΈͯͶͷ%* ΠϯλʔϑΣʔεͷ ࣮૷ΦϒδΣΫτΛฦ͢

  25. ΈͯͶͷ%* ඞཁͳґଘؔ܎Λղܾ

  26. ΈͯͶͷ%*

  27. ΈͯͶͷ%*

  28. w ґଘؔ܎ͷએݴͱΠϯελϯεͷऔಘ͕؆୯$ w ੩తʹએݴ͍ͯ͠ΔͷͰίϯύΠϧ࣌ʹਖ਼͕͠͞ݕ ূ͞ΕΔ$ w αʔυύʔςΟʹґଘ͠ͳ͍$ w είʔϓͷఆٛɺґଘؔ܎ͷղܾΛࣗಈੜ੒͕Ͱ͖ ͳ͍%

    ͳͥ͜ͷํ๏ͳͷ͔
  29. w αʔυύʔςΟʔͷϥΠϒϥϦΛ࢖Θͳͯ͘΋े෼ ࣮༻తͳґଘؔ܎Λղܾ͢Δ࢓૊ΈΛ؆୯ʹ࣮૷Ͱ ͖Δ w %*ख๏Λબ୒͢Δͱ͖ʹʮࣗલͰ࣮૷͢Δʯ͜ͱ΋ ࢹ໺ʹೖΕͯΈͯ͸͍͔͕Ͱ͠ΐ͏͔ ·ͱΊ

  30. ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠