Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Storyboardを積極的に使うべきか?その役割に基づく一考察
Search
gaussbeam
June 26, 2017
Programming
1
2k
Storyboardを積極的に使うべきか?その役割に基づく一考察
2017.06.23 iOS UI実装勉強会 @ Sansan
gaussbeam
June 26, 2017
Tweet
Share
More Decks by gaussbeam
See All by gaussbeam
成長する組織のナレッジベースのつくりかた_知識基盤のデザインとメタデザイン
gaussbeam
0
1.2k
CI/CDと継続的ワークフロー改善
gaussbeam
2
2.3k
(UI)Switch は つくれる
gaussbeam
1
700
Human Interface Guidelinesから滲み出る限界感を考える
gaussbeam
5
4k
ローカライズの苦しみに立ち向かう
gaussbeam
1
670
IdentifiableUIKit
gaussbeam
1
480
Other Decks in Programming
See All in Programming
OSS開発者という働き方
andpad
5
1.6k
開発チーム・開発組織の設計改善スキルの向上
masuda220
PRO
18
9.6k
HTMLの品質ってなんだっけ? “HTMLクライテリア”の設計と実践
unachang113
0
430
パスタの技術
yusukebe
1
550
LLMOpsのパフォーマンスを支える技術と現場で実践した改善
po3rin
8
1k
Vue・React マルチプロダクト開発を支える Vite
andpad
0
110
私の後悔をAWS DMSで解決した話
hiramax
4
180
Namespace and Its Future
tagomoris
6
680
The state patternの実践 個人開発で培ったpractice集
miyanokomiya
0
160
Honoアップデート 2025年夏
yusukebe
1
890
パッケージ設計の黒魔術/Kyoto.go#63
lufia
3
390
Kiroの仕様駆動開発から見えてきたAIコーディングとの正しい付き合い方
clshinji
1
180
Featured
See All Featured
A Tale of Four Properties
chriscoyier
160
23k
Gamification - CAS2011
davidbonilla
81
5.4k
Speed Design
sergeychernyshev
32
1.1k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
GraphQLとの向き合い方2022年版
quramy
49
14k
Six Lessons from altMBA
skipperchong
28
4k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
570
[RailsConf 2023] Rails as a piece of cake
palkan
56
5.8k
Optimizing for Happiness
mojombo
379
70k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Transcript
StoryboardΛੵۃతʹ͏͖͔ʁ ʙͦͷׂʹجͮ͘Ұߟʙ IBOZV!4BOTBO *OD 2017.06.23 #iOS_UI࣮ษڧձ
Who? • HANYU, Koji • Sansan, Inc. iOS Developer •
2017/3~
Storyboardͷ̎ͭͷׂ w ετʔϦʔϘʔυ • Interface Builder
func chooseUiDevelopMethod(when situation: Situation) -> UIDevelopMethod { switch situation {
case .developScreenTransition, .developSimpleView: return .byStoryboard case .developComplexView, .developLooksLikeOtherPlatformUI: return .byNibFilesAndCodess } }
case .developScreenTransition
DetailView
• ϝϦοτ • ը໘ભҠಋઢͷෳࡶ͕WYSIWYGʹͳΔ • ͲΜͳભҠ(Push? Modal?)Λ͢Δͷ͔ḷΓ͍͢ • σϝϦοτ •
performSegue, prepareForSegue͔Βಀ͛ΒΕͳ͍… ը໘ભҠͷ࣮ʹ StoryboardΛετʔϦʔϘʔυͱͯ͠͏
case .developSimpleView
• ϝϦοτ • ࠷ऴతͳը໘͕(ͦΕͳΓʹ)WYSIWYGʹͳΔ • ࣌ؒͰAuto LayoutରԠͰ͖Δ • σϝϦοτ •
ࣗ༝͍(HIG͔Βͷҳ͍͠) γϯϓϧͳViewͷ࣮ʹ StoryboardΛInterface Builderͱͯ͠͏
case .developComplexView, .developLooksLikeOtherPlatformUI
※ΠϝʔδͰ͢
• ϝϦοτ • ը໘ͷߏཁૉ͕(ͦΕͳΓʹ)WYSIWYGʹͳΔ • Auto LayoutରԠIBʹͤɼͩ͜ΘΓͷ࣮ՕॴͷΈίʔυͰ࣮ݱ • σϝϦοτ •
ը໘ͷશମ૾/ΠϯλϥΫγϣϯWYSIWYGʹͳΒͳ͍(Ͱ͖ͳ͍) ෳࡶͳViewಠࣗͷςΠετͷUIΛ࣮͢Δ࣌ nibͱίʔυͰ࣮͢Δ
ͱ͍͑ɼ ※ੈքதͷ։ൃνʔϜΛ·ͤΔίϯϑϦΫτͷ͋Δ͕ɼ ࠓճʮׂ͔Β͍ํߟ͑Δʯͱͯ͠ΛਐΊ͖ͯͨͷͰׂѪ ϑΝΠϧ૿͑ɼ Ϗϧυ࣌ؒ૿͑Δ…
None
StoryboardΛੵۃతʹ͏͖͔ʁ • Storyboardͷ2ͭͷׂ͔Βߟ͑Δ • ετʔϦʔϘʔυͱͯ͠YES ը໘ભҠɾಋઢͷWYSIWYGԽ • Interface Builderͱͯ͠ঢ়گʹΑΔ γϯϓϧͰHuman
Interface Guidelines४ڌͳը໘YES ෳࡶͳը໘ɾಠࣗςΠετͷը໘NO