$30 off During Our Annual Pro Sale. View Details »

DDD Practice in iOS

Masato Oshima
December 15, 2015

DDD Practice in iOS

Masato Oshima

December 15, 2015
Tweet

More Decks by Masato Oshima

Other Decks in Technology

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. ͝੩ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠ɻ