インタラクションデザインと実装

A77456b262557e22986345f6d0555c58?s=47 nakajijapan
October 10, 2016

 インタラクションデザインと実装

A77456b262557e22986345f6d0555c58?s=128

nakajijapan

October 10, 2016
Tweet

Transcript

  1. TIJCVZBTXJGU !OBLBKJKBQBO ΠϯλϥΫγϣϯ σβΠϯͱ࣮૷

  2. huin ͞Μ גࣜձࣾFablic͞Μ ʹײँʂ

  3. @nakajijapan GMO PEPABO inc. Principal Engineer iOS / Web /

    OS X About Me Daichi Nakajima
  4. ϋϯυϝΠυ࡞඼Λ ചΕΔɺങ͑Δɻ ࠃ಺࠷େڃͷ ϋϯυϝΠυϚʔέοτ

  5. NKJMultiMovieCaptureView NKJMovieComposer NKJPagerViewController PhotoSlider Teiten GitHub Sengiri Shari frustration.me Kazaguruma

  6. None
  7. Apple Pay JP launch partner

  8. None
  9. None
  10. ΠϯλϥΫγϣϯ ͱ࣮૷

  11. ΠϯλϥΫγϣϯ σβΠϯͱ͸

  12. ΠϯλϥΫγϣϯ

  13. ΠϯλϥΫγϣϯ ૬ޓ࡞༻ wikipedia

  14. None
  15. None
  16. Interface

  17. Interface

  18. ΠϯλϥΫγϣϯ ͓ޓ͍͕ ίϛϡχέʔγϣϯ͢Δ͜ͱ wikipedia

  19. ΠϯλϥΫγϣϯσβΠϯ ͓ޓ͍͕ ίϛϡχέʔγϣϯ͢Δ͜ͱ wikipedia खॿ͚

  20. Ԡ༻ඒज़ ʙΠϯλϥΫγϣϯσβΠϯͷڭՊॻʙ

  21. Ԡ༻ඒज़ͱ͸ ඒज़Λ೔༻඼΍ߦࣄͳͲ΁ Ԡ༻͢Δ͜ͱ

  22. None
  23. ඒज़

  24. ඒज़ͱ͸ ࢹ֮ʹΑͬͯͱΒ͑Δ͜ ͱΛ໨తͱͯ͠දݱ͞Ε ͨ଄ܗܳज़ͷ૯শ wikipedia

  25. None
  26. wදݱऀ͕఻͍͑ͨ͜ͱΛؑ৆ऀʹ఻͑Δ wܗΛ଄ΒΕͨ΋ͷ wֆըɺூࠁɺݐஙɺ޻ܳ౳ ඒज़ͱ͸

  27. Ԡ༻ඒज़ͱ͸ ඒज़Λ೔༻඼΍ߦࣄͳͲ΁ Ԡ༻͢Δ͜ͱ wikipedia

  28. None
  29. Ԡ༻ඒज़ͱ͸ ؾ࣋ͪΑ͘࢖ͬͯ΋Β͏ͨ Ίʹศརʹ͢Δ͜ͱ wikipedia

  30. ࣮༻తͰ͋Δ͜ͱ

  31. None
  32. •໨ඪΛཱͯΔ •࣮ߦ͢Δ •ධՁ͢Δ ਓؒͷߦಈαΠΫϧ

  33. ҙਤ ܗ੒ ߦಈ ܾఆ ࣮ߦ ஌֮ ղऍ ධՁ ϊʔϚϯ ͷࣣஈ֊

    Ϟσϧ
  34. ҙਤ ܗ੒ ߦಈ ܾఆ ࣮ߦ ஌֮ ղऍ ධՁ ϊʔϚϯ ͷࣣஈ֊

    Ϟσϧ ΑΓখ͍ͯ͘͞͠ ͘͜ͱ͕࢖͍΍͢ ͞΁ͷۙಓ
  35. վળ

  36. Case Study

  37. Sign up

  38. Feedback

  39. •ϩάΠϯ৘ใͷೖྗΛ͠ͳ͚Ε͹͍͚ͳ͍ •߲໨ʹ͸༷ʑͳ੍ݶ͕͋Δ •શͯਖ਼͍͠৘ใʹͳΒͳ͍ͱSign upͰ͖ͳ ͍ Sign up

  40. None
  41. None
  42. •ೖྗ͸େมɺ࠷େݶܰݮͤ͞Δ •ϦΞϧλΠϜʹద੾ͳ৘ใΛೖྗͤ͞Δ Α͏༠ಋ͠ɺ࣌ؒ୹ॖ •ϧʔϧΛ໌֬ʹͯ͠ঢ়ଶΛ஌֮ͤ͞Δ Sign up

  43. Sign up

  44. Sign up let selector = #selector(self.existsMinneID(_:)) NSObject.cancelPreviousPerformRequestsWithTarget(self, selector: selector, object:

    cell) • UITextFieldDelegate#textFieldDidChange • Connection
  45. Cart

  46. Keep a context

  47. • ࡏݿΛมߋͰ͖Δ Cart

  48. None
  49. •ίϯςΩετΛҡ࣋͢Δ •ͳΜͷ࡞඼ΛબΜͩͷ͔ •͙͢ʹࢦఆͷࡏݿʹมߋͰ͖Δ •ෆՄࢹτϦΨʔ •શମΛ֬ೝͰ͖ΔΑ͏ʹͰ͖Δ Cart

  50. Implementation

  51. Implementation • Container View Controller • presentViewControllerΛಠ࣮ࣗ૷͢Δ • No UIViewControllerTransitioningDelegate!

    • Ξχϝʔγϣϯͷதؒ஍఺Ͱը໘ΛࢭΊ ͔ͨͬͨͷͰར༻͍ͯ͠ͳ͍
  52. Implementation • Shari • https://github.com/nakajijapan/Shari

  53. Scroll View

  54. Prevent mistakes

  55. • Scroll View಺ʹ͸ΧςΰϦͷҰཡ͕ଘࡏ • Կճ͔εϫΠϓ͠ͳ͚Ε͹͍͚ͳ͍৔߹͕ ͋Δ • ը໘ྖҬʹ͸ݶք͕͋Δ • ؆୯ʹྖҬΛ޿͛ΔΘ͚ʹ͸͍͔ͳ͍

    Scroll View
  56. None
  57. Implementation • εϫΠϓޙ̍ඵ͸εϫΠϓྖҬ͕޿͛Δ • ̍ඵҎ಺ʹεϫΠϓ͕͋Ε͹Ωϟϯηϧ • ͳ͚Ε͹εϫΠϓྖҬ͕໭Δ scroll view scroll

    view 4XJQF scroll view scroll view
  58. Implementation

  59. Implementation let selector = #selector(self.unlockUserInteractionWithScrollView(_:)) NSObject.cancelPreviousPerformRequestsWithTarget(self, selector: selector, object: scrollView)

    NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: selector, userInfo: nil, repeats: false) • Lazy Execution and Cancel
  60. ·ͱΊ

  61. ΠϯλϥΫγϣϯσβΠϯ ͓ޓ͍͕ ίϛϡχέʔγϣϯ͢Δ͜ͱ wikipedia खॿ͚

  62. ΠϯλϥΫγϣϯσβΠϯ ࣮༻తͰ͋Δ͜ͱ

  63. •໨ඪΛཱͯΔ •࣮ߦ͢Δ •ධՁ͢Δ ਓؒͷߦಈαΠΫϧ

  64. • ঢ়گΛ఻͑ͯϑΟʔυόοΫΛఏڙ͢Δ • ίϯςΩετΛҡ࣋͢Δ • ϛεΛࣄલʹ๷͙ ·ͱΊ

  65. Thanks.