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

DDD Practice in iOS

E3d96b25e645921d9e5acbaa36c507a5?s=47 Masato Oshima
December 15, 2015

DDD Practice in iOS

E3d96b25e645921d9e5acbaa36c507a5?s=128

Masato Oshima

December 15, 2015
Tweet

Transcript

  1. DDD practice in iOS Shibuya.swift #2

  2. None
  3. Masato Oshima github.com/mpon @_mpon ಢ໦ݝ๕լ܊ग़਎ iOS Developer

  4. None
  5. J04։ൃͷઃܭͷ ೰ΈͲ͜Ζ

  6. w'BUͳ7JFX$POUSPMMFS w7JFX$POUSPMMFS͕ͨ͘͞Μͷ ϑϥάΛ࣋ͬͯঢ়ଶ؅ཧ wϢχοτςετͳΜͯॻ͚ͬ͜ ͳ͍

  7. w'BUͳ7JFX$POUSPMMFS w7JFX$POUSPMMFS͕ͨ͘͞Μͷ ϑϥάΛ࣋ͬͯঢ়ଶ؅ཧ wϢχοτςετͳΜͯॻ͚ͬ͜ ͳ͍ ਺ઍߦͷ7JFX$POUSPMMFSɺ ৔߹෼͚ʹ͋;Εͨ#BTF7JFX$POUSPMMFS

  8. w'BUͳ7JFX$POUSPMMFS w7JFX$POUSPMMFS͕ͨ͘͞Μͷ ϑϥάΛ࣋ͬͯঢ়ଶ؅ཧ wϢχοτςετͳΜͯॻ͚ͬ͜ ͳ͍ JT'JSTU-PBEFE JT3FRVFTUJOHͳͲͳͲʜ

  9. w'BUͳ7JFX$POUSPMMFS w7JFX$POUSPMMFS͕ͨ͘͞Μͷ ϑϥάΛ࣋ͬͯঢ়ଶ؅ཧ wϢχοτςετͳΜͯॻ͚ͬ͜ ͳ͍ ςετ͢Δʹ͸6*7JFX$POUSPMMFS͕ඞཁɺ ωοτϫʔΫ௨৴΋ඞཁɾɾɾ

  10. None
  11. None
  12. Swift 1.2

  13. %%%υϝΠϯۦಈઃܭ

  14. %%%υϝΠϯۦಈઃܭ

  15. None
  16. wը໘ͷඳը wϢʔβʔͷΠϕϯτ Λड͚Δ

  17. w࣮ߦ͍ͨ͠ॲཧΛߦ ͏ wۀ຿ϩδοΫ wσʔλఆٛ

  18. wσʔλ௨৴ wӬଓԽ

  19. ॲཧΛߦ͏Ϋϥε

  20. ֤छσʔλ ௨৴ͨ͠σʔλͳͲ 6TFSϞσϧͳͲ

  21. ϢχʔΫੑͷͳ͍σʔλ ྫɿ$(3FDUɺ3BOHFͳͲ 4USVDUͰද͞ΕΔ͜ͱ͕ଟ͍

  22. None
  23. Ϣχοτςετ Ͳ͏ॻ͖·͔͢ʁ

  24. wྫɿϘλϯΛԡͨ࣌͠ʹԻ͕࠶ ੜ͞ΕΔ͜ͱ wϘλϯʹͲ͏ΞΫηε͢ΔʁΘ ͟Θ͟QVCMJDʹ͢ΔʁݏͰ͢Α Ͷʁ

  25. ؔ৺͝ͱͷ෼཭

  26. None
  27. ؀ڥԻ࠶ੜϘλϯ ಄ग़͠Ϙλϯ ࠶ੜϘλϯ ఀࢭϘλϯ ΩϟϥΫλʔͷը૾

  28. ؀ڥԻ࠶ੜϘλϯ ಄ग़͠Ϙλϯ ࠶ੜϘλϯ ఀࢭϘλϯ ΩϟϥΫλʔͷը૾ ؀ڥԻΛ࠶ੜ͢Δػೳ ԻָΛ಄ग़͢͠Δػೳ ԻָΛ࠶ੜ͢Δػೳ ԻָΛఀࢭ͢Δػೳ ΩϟϥΫλʔϞσϧ

  29. ؀ڥԻ࠶ੜϘλϯ ಄ग़͠Ϙλϯ ࠶ੜϘλϯ ఀࢭϘλϯ ΩϟϥΫλʔͷը૾ ؀ڥԻΛ࠶ੜ͢Δػೳ ԻָΛ಄ग़͢͠Δػೳ ԻָΛ࠶ੜ͢Δػೳ ԻָΛఀࢭ͢Δػೳ ΩϟϥΫλʔϞσϧ

    6TF$BTF 7JFX$POUSPMMFS
  30. 7JFX$POUSPMMFS

  31. 7JFX$POUSPMMFS VTF$BTFͷॲཧΛݺ Ϳ͚ͩ

  32. 6TF$BTF

  33. 6TF$BTF 7JFXʹ·ͭΘΔ΋ͷ ͸ग़ͯ͜ͳ͍

  34. 6TF$BTF4QFD

  35. 6TF$BTF4QFD 6TF$BTFͷςετ͕ ॻ͚Δʂ

  36. 7JFX$POUSPMMFS ͱ 6TF$BTFͷ઀ଓ

  37. None
  38. ԡͨ͠Β ࠶ੜϘλϯͷݟͨ໨ʹ ͳͬͯ΄͘͠ͳ͍Ͱ͔͢ʁ

  39. Ͳ͏ॻ͖·͔͢ʁ

  40. wྫɿϘλϯΛԡͨ࣌͠ʹϘλϯͷΞΠ ίϯ͕Ұ࣌ఀࢭϚʔΫͳΒɺ࠶ੜΞΠ ίϯʹ੾Γସ͑Δɻ wJG CVUUPOJNBHFQBVTF*NBHF

  41. wྫɿϘλϯΛԡͨ࣌͠ʹϘλϯͷΞ Πίϯ͕Ұ࣌ఀࢭϚʔΫͳΒɺ࠶ੜ ΞΠίϯʹ੾Γସ͑Δɻ w❌ը໘ଆʹঢ়ଶΛ࣋ͬͯ͠·͏ w❌Ի੠ͷ࠶ੜঢ়ଶͱ৯͍ҧ͏Մೳ ੑ͕͋Δ

  42. wྫɿ6TF$BTFʹ7JFX$POUSPMMFS ΁ͷࢀরΛ࣋ͨͤΔ wVTF$BTFTPNF7JFX$POUSPMMFS

  43. wྫɿ6TF$BTFʹ7JFX$POUSPMMFS΁ͷ ࢀরΛ࣋ͨͤΔ w❌ରͰີ݁߹ͳͷͰ࢖͍·Θͤͳ͍ w❌ςετͷࡍʹ7JFX$POUSPMMFS͕ඞཁ

  44. EFMFHBUF

  45. ؀ڥԻ࠶ੜϘλϯ ಄ग़͠Ϙλϯ ࠶ੜϘλϯ ఀࢭϘλϯ ΩϟϥΫλʔͷը૾ ؀ڥԻΛ࠶ੜ͢Δػೳ ԻָΛ಄ग़͢͠Δػೳ ԻָΛ࠶ੜ͢Δػೳ ԻָΛఀࢭ͢Δػೳ ΩϟϥΫλʔϞσϧ

    6TF$BTF 7JFX$POUSPMMFS
  46. ؀ڥԻ࠶ੜϘλϯ ಄ग़͠Ϙλϯ ࠶ੜϘλϯ ఀࢭϘλϯ ΩϟϥΫλʔͷը૾ ؀ڥԻΛ࠶ੜ͢Δػೳ ԻָΛ಄ग़͢͠Δػೳ ԻָΛ࠶ੜ͢Δػೳ ԻָΛఀࢭ͢Δػೳ ΩϟϥΫλʔϞσϧ

    6TF$BTF 7JFX$POUSPMMFS ԻָΛ࠶ੜ͢Δɻ
  47. ؀ڥԻ࠶ੜϘλϯ ಄ग़͠Ϙλϯ ࠶ੜϘλϯ ఀࢭϘλϯ ΩϟϥΫλʔͷը૾ ؀ڥԻΛ࠶ੜ͢Δػೳ ԻָΛ಄ग़͢͠Δػೳ ԻָΛ࠶ੜ͢Δػೳ ԻָΛఀࢭ͢Δػೳ ΩϟϥΫλʔϞσϧ

    6TF$BTF 7JFX$POUSPMMFS ࠶ੜ͕׬ྃͨ͠ͷͰ 7JFX$POUSPMMFS΁EFMFHBUF௨஌
  48. ؀ڥԻ࠶ੜϘλϯ ಄ग़͠Ϙλϯ ࠶ੜϘλϯ ఀࢭϘλϯ ΩϟϥΫλʔͷը૾ ؀ڥԻΛ࠶ੜ͢Δػೳ ԻָΛ಄ग़͢͠Δػೳ ԻָΛ࠶ੜ͢Δػೳ ԻָΛఀࢭ͢Δػೳ ΩϟϥΫλʔϞσϧ

    6TF$BTF 7JFX$POUSPMMFS ࠶ੜ͕׬ྃͨ͠EFMFHBUFΠϕϯτʹ ϘλϯΛҰ࣌ఀࢭͷΞΠίϯʹ͢Δ ͱॻ͍͓ͯ͘
  49. ͜ΕͬͯԿ͔ʹ ࣅͯΔ

  50. None
  51. 6*7JFX$POUSPMMFS%FMFHBUF ը໘͕ಡΈࠐ·Εͨ࣌ɺ ը໘͕දࣔ͞ΕΑ͏ͱͨ࣌͠ɺ ը໘͕දࣔ͠ऴΘͬͨ͋ͱ

  52. ؀ڥԻ࠶ੜϘλϯ ಄ग़͠Ϙλϯ ࠶ੜϘλϯ ఀࢭϘλϯ ΩϟϥΫλʔͷը૾ ؀ڥԻΛ࠶ੜ͢Δػೳ ԻָΛ಄ग़͢͠Δػೳ ԻָΛ࠶ੜ͢Δػೳ ԻָΛఀࢭ͢Δػೳ ΩϟϥΫλʔϞσϧ

    6TF$BTF 7JFX$POUSPMMFS ը໘ͷදࣔΛߋ৽ ॲཧΛ࣮ߦͯ͠௨஌
  53. 4XJGUͰͷ EFMFHBUFύλʔϯͷ σϝϦοτ

  54. 0QUJPOBMͳEFMFHBUFϝιου ͕༻ҙͰ͖ͳ͍

  55. !PCKDम০ࢠ

  56. !PCKDम০ࢠ 1VSF4XJGU͡Όͳ͘ͳͬͪΌ͏ɻ (FOFSJDTɺ4USVDUɺ&OVN͕࢖͑ ͳ͍ɾɾ

  57. Swift 2.0!!!

  58. QSPUPDPMFYUFOTJPO

  59. QSPUPDPMFYUFOTJPO σϑΥϧτͰԿ΋͠ͳ͍ ˣ ࣮૷ͯ͠΋͠ͳͯ͘΋͍͍ ˣ 0QUJPOBM

  60. EFMFHBUF΋ ࢖͍΍͘͢ͳͬͨʁ

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