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
もう迷わない!モーダルとプッシュどっちがいいの?
Search
Sato Takeshi
February 14, 2018
Programming
6
2.2k
もう迷わない!モーダルとプッシュどっちがいいの?
第2回 iOS UI実装勉強会で発表した内容です。
https://connpass.com/event/78347/
Sato Takeshi
February 14, 2018
Tweet
Share
More Decks by Sato Takeshi
See All by Sato Takeshi
Xcode 15, Swift 5.9で変わる開発体験
satotakeshi
3
2.4k
Meet passkeys
satotakeshi
2
280
What's new in Vision
satotakeshi
0
1k
Swift Concurrency入門
satotakeshi
10
4.1k
複数端末のつらさを乗り越えてiOS UITestを実行
satotakeshi
1
330
Xcodegenを個人アプリに導入
satotakeshi
3
620
SwiftUIで作る開閉式メニュー
satotakeshi
2
2.7k
swift-snapshot-testingでVisual Testingを効率化
satotakeshi
0
980
SwiftUIのデータ管理
satotakeshi
6
1.7k
Other Decks in Programming
See All in Programming
『Railsオワコン』と言われる時代に、なぜブルーモ証券はRailsを選ぶのか
free_world21
0
230
Komplexe Oberflächen mit SVG und der Web Animation API
joergneumann
0
670
初心者のためのRubyKaigi入門/RubyKaigi Introduction
a_matsuda
0
350
GraphQLサーバの構成要素を整理する #ハッカー鮨 #tsukijigraphql / graphql server technology selection
izumin5210
4
840
R言語の環境構築と基礎 Tokyo.R 112
bob3bob3
0
270
try! Swift Tokyo 初参加報告LT
hinakko2
0
220
OpenAPIを中心に考えるAPI開発入門 / Introduction to API Development with a Focus on OpenAPI
seike460
PRO
2
170
効率化に挑戦してみたらモバイル開発が少し快適になった話
ryunakayama
0
130
障害対応を起点としたもっといい開発と運用のサイクル作りのためにできること / Hatena Enginner Seminar #29
polamjag
0
170
Build Apps for iOS, Android & Desktop in 100% Kotlin With Compose Multiplatform (mDevCamp 2024)
zsmb
0
330
サイコロで理解する統計的仮説検定の考え方
tatamiya
4
930
PHPの次期バージョンはこの時期どうなっているのか - Internalsの開発体制について - PHPカンファレンス小田原
youkidearitai
PRO
1
190
Featured
See All Featured
Writing Fast Ruby
sferik
621
60k
How GitHub (no longer) Works
holman
304
140k
The Illustrated Children's Guide to Kubernetes
chrisshort
31
46k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
2
1.3k
Code Reviewing Like a Champion
maltzj
514
39k
What’s in a name? Adding method to the madness
productmarketing
PRO
16
2.6k
Building a Scalable Design System with Sketch
lauravandoore
456
32k
Why Our Code Smells
bkeepers
PRO
331
56k
Atom: Resistance is Futile
akmur
259
25k
In The Pink: A Labor of Love
frogandcode
138
21k
What's new in Ruby 2.0
geeforr
337
31k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
Transcript
͏໎Θͳ͍ʂ ϞʔμϧͱϓογϡͲͬ ͕͍͍ͪͷʁ ୈ2ճ iOS UI࣮ษڧձ 20182݄14 ࠤ౻߶࢜ ͏໎Θͳ͍ʂϞʔμϧͱϓογϡͲ͕͍͍ͬͪͷʁ 1
Who am I ࠤ౻߶࢜ (@hatakenokakashi) MAMORIOגࣜձࣾͰiOSΤϯδχΞ͠ ͍ͯ·͢ɻ ͏໎Θͳ͍ʂϞʔμϧͱϓογϡͲ͕͍͍ͬͪͷʁ 2
ࣗͰΞϓϦΛ࡞ͬͨ͜ͱ͋Δਓ? ͏໎Θͳ͍ʂϞʔμϧͱϓογϡͲ͕͍͍ͬͪͷʁ 3
! ͏໎Θͳ͍ʂϞʔμϧͱϓογϡͲ͕͍͍ͬͪͷʁ 4
σβΠϯࣗͰ࡞ΔͷେมͰ͢Ͷ ! ͏໎Θͳ͍ʂϞʔμϧͱϓογϡͲ͕͍͍ͬͪͷʁ 5
ը໘σβΠϯେࣄ͚ͩͲը໘ભҠͷ ઃܭେࣄͳUIͷ̍ͭʂ ͏໎Θͳ͍ʂϞʔμϧͱϓογϡͲ͕͍͍ͬͪͷʁ 6
ࠓը໘ભҠͷΛ͍ͤͯͩ͘͞͞ ͏໎Θͳ͍ʂϞʔμϧͱϓογϡͲ͕͍͍ͬͪͷʁ 7
෩ਫͷ͍ΞϓϦΛ࡞͍ͬͯͨɻ Ϣʔβʔʹૢ࡞Λ͍ͤͨ͞ը໘Tab barͷҰ෦Ͱྑ͍ͷ͔ʁ modalͰશը໘දࣔʹ͢Δ͖͔ʁ ͏໎Θͳ͍ʂϞʔμϧͱϓογϡͲ͕͍͍ͬͪͷʁ 8
Tab bar͏ͱը໘ྖҬ͕ڱ͘ͳΔ͚Ͳ͍͍ͷʁ શ෦ͬͨ΄͏͕ྑ͘ͳ͍ʁ ͏໎Θͳ͍ʂϞʔμϧͱϓογϡͲ͕͍͍ͬͪͷʁ 9
!!!!!!!! ͏໎Θͳ͍ʂϞʔμϧͱϓογϡͲ͕͍͍ͬͪͷʁ 10
Tab barͬͯΔଞͷΞ ϓϦΛݟͯΈΔ ͏໎Θͳ͍ʂϞʔμϧͱϓογϡͲ͕͍͍ͬͪͷʁ 11
͏໎Θͳ͍ʂϞʔμϧͱϓογϡͲ͕͍͍ͬͪͷʁ 12
͏໎Θͳ͍ʂϞʔμϧͱϓογϡͲ͕͍͍ͬͪͷʁ 13
͏໎Θͳ͍ʂϞʔμϧͱϓογϡͲ͕͍͍ͬͪͷʁ 14
! Ұཡը໘Tab barͰΈࠐΈɻৄࡉը໘ϓογϡભҠɻ ߘܥϞʔμϧભҠͰશը໘දࣔɻ ͏໎Θͳ͍ʂϞʔμϧͱϓογϡͲ͕͍͍ͬͪͷʁ 15
Human Interface Guidelines iOS • Modality • Navigation ͏໎Θͳ͍ʂϞʔμϧͱϓογϡͲ͕͍͍ͬͪͷʁ 16
Modality Ϟʔμϧͷ༻࠷খݶʹɻҰൠతʹਓʑΞϓϦΛγʔϜϨ εʹ͏͜ͱΛΈ·͢ɻϞʔμϧΛ͏໘Α͘Α͘ߟ͑ ·͠ΐ͏ɻ୭͔ͷҙΛҾ͖ग़͢ॏཁͳࣄ͕͋Δ߹ɺ͋Δ λεΫ͕ऴΘΔ͔ഁغ͞Εͳ͍ͱΞϓϦ͕͏͜ͱ͕Ͱ͖ͳ͍ ঢ়ଶɺ·ͨॏཁͳσʔλΛอଘ͢Δ߹ͳͲ͕·͍͠Ͱ ͢ɻ ͏໎Θͳ͍ʂϞʔμϧͱϓογϡͲ͕͍͍ͬͪͷʁ 17
Modality ͏໎Θͳ͍ʂϞʔμϧͱϓογϡͲ͕͍͍ͬͪͷʁ 18
Navigation ͏໎Θͳ͍ʂϞʔμϧͱϓογϡͲ͕͍͍ͬͪͷʁ 19
Hierarchical Navigation ͏໎Θͳ͍ʂϞʔμϧͱϓογϡͲ͕͍͍ͬͪͷʁ 20
Flat Navigation ͏໎Θͳ͍ʂϞʔμϧͱϓογϡͲ͕͍͍ͬͪͷʁ 21
Content-Driven or Experience- Driven Navigation ͏໎Θͳ͍ʂϞʔμϧͱϓογϡͲ͕͍͍ͬͪͷʁ 22
ݴ͍ํΛม͑Δͱ ͏໎Θͳ͍ʂϞʔμϧͱϓογϡͲ͕͍͍ͬͪͷʁ 23
ͦͷը໘ΛϢʔβʔ͕ • ʮݟΔʯ͕ओମͷը໘ͳΒφϏήʔγϣϯʹΈࠐΉɻ • ϓογϡભҠ • ʮ͢Δʯ͕ओମͷը໘ͳΒશ໘දࣔ͢Δɻ • ϞʔμϧભҠ ͏໎Θͳ͍ʂϞʔμϧͱϓογϡͲ͕͍͍ͬͪͷʁ
24
͏໎Θͳ͍ʂϞʔμϧͱϓογϡͲ͕͍͍ͬͪͷʁ 25
͏ҰଞͷΞϓϦΛ֬ ೝ ͏໎Θͳ͍ʂϞʔμϧͱϓογϡͲ͕͍͍ͬͪͷʁ 26
Twitter ͏໎Θͳ͍ʂϞʔμϧͱϓογϡͲ͕͍͍ͬͪͷʁ 27
Evernote ͏໎Θͳ͍ʂϞʔμϧͱϓογϡͲ͕͍͍ͬͪͷʁ 28
ࣗͷΞϓϦͰ Ϣʔβʔʹը໘ૢ࡞ͯ͠ཉ͍͠ ͏໎Θͳ͍ʂϞʔμϧͱϓογϡͲ͕͍͍ͬͪͷʁ 29
͏໎Θͳ͍ʂϞʔμϧͱϓογϡͲ͕͍͍ͬͪͷʁ 30
class TopTabBarController: UITabBarController, UITabBarControllerDelegate { func tabBarController(_ tabBarController: UITabBarController, didSelect
viewController: UIViewController) { let tagNum = viewController.tabBarItem.tag switch tagNum { case 2: let second = FlyingStarViewController.instanceate() self.present(second, animated: true, completion: nil) default: break } } } ͏໎Θͳ͍ʂϞʔμϧͱϓογϡͲ͕͍͍ͬͪͷʁ 31
·ͱΊ • ʮݟΔʯ͕ओମͷը໘ͳΒφϏήʔγϣϯʹΈࠐΉɻ • ϓογϡભҠ • ʮ͢Δʯ͕ओମͷը໘ͳΒશ໘දࣔ͢Δɻ • ϞʔμϧભҠ ͏໎Θͳ͍ʂϞʔμϧͱϓογϡͲ͕͍͍ͬͪͷʁ
32
એ ͏໎Θͳ͍ʂϞʔμϧͱϓογϡͲ͕͍͍ͬͪͷʁ 33