ViewͷςετͲ͏ͯ͠·͔͢ʁ2019/04/16 iOS Test Night #10kariad/͔Γ͋Ͳ(@kariad_uu)1
View Slide
ࣗݾհ• kariad / @kariad_uu• ยࢁ େथ• ΦΠγοΫεɾϥɾେ iOS App Developer• / / V / ςετ / ઃܭ / ྉཧ2
Viewͷςετ͘͠ͳ͍Ͱ͔͢ʁ
ViewҎ֎ͷςετ• ϩδοΫঢ়ଶͷมԽͳͲ• جຊతʹUnitςετ͔ͭςετ͍͢͠
Viewͷςετ• ϨΠΞτɺViewͷ༗ແɺදࣔඇදࣔɺςΩετ, etc.• ԿΛςετ͍͔ͨ͠ɺͲ͜·Ͱςετ͍͔ͨ͠ͰͲ͏ςετ͢Δ͖͔มΘΔ
• UIςετ• Snapshotςετ• Presenterͷςετ• ViewͷUnitςετUnitςετ
༗໊ͳΞϨ
Presenterͷςετ• Viewͷঢ়ଶɺૢ࡞Λςετ͢Δ• ViewʹϩδοΫ͕ແ͘ɺͨͩViewΛߋ৽͢Δ͚ͩ• Viewͷ࣮ਖ਼͘͠ग़དྷ͍ͯΔͱ͍͏લఏ• ࣮ࡍʹViewΛςετ͠ͳ͍ͷͰ؆୯ɺ࣮ߦૣ͍
•ViewisHidden = falseΛ͢Δ͚ͩ•Viewͷૢ࡞Λςετ͢Δ•ViewͷςετΛॏࢹ͠ͳ͍߹࠷ݶ͜ΕͰ
ViewͷUnitςετ• ؤுͬͯViewΛUnitςετͰςετ͢Δ• ViewΛLoadͯ͠ɺViewͷ֊νΣοΫͯ͠ɺɺ• Viewͷ༗ແɺදࣔඇදࣔςΩετͳΒςετͰ͖Δ• ButtonλοϓͷΠϕϯτςετͰ͖Δ
• UIControlͰλοϓͰ͖ΔViewΛ؆୯ʹ࡞• addTarget(_:action:for:)ͰΠϕϯτՃ• sendActions(for:)ͰΠϕϯτൃՐ
Succinct• ViewͷUnitςετΛ؆୯ʹͰ͖ΔϥΠϒϥϦ• https://github.com/derekleerock/Succinct
͜ͷը໘Λςετ͍ͨ͠•ٻ͕ͳ͍࣌•ʮ͝ར༻͋Γ·ͤΜʯͷUILabel•ϨϯίϯͱΦϨϯδͷUIImageView
• MVPͷPresenterʹΑΔखଓ͖ܕͷߋ৽• ViewͷdisplaysEmptyView()ΛݺͿͱView͖ͬ͞ͷը໘Λදࣔ͢Δલఏ
Succinct!!
·ͱΊ• Viewͷςετ৭ʑ͋Δ͕ɺԿΛςετ͍͔ͨ͠Ͱ͔ͬ͠Γ͍͚Δ• UnitςετͰςετͰ͖ΔͷͰ͋ΕίετͳͷͰྑ͍• UIControlSuccinctΛͬͯΑΓศརʹViewͷUnitςετΛ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠