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.5k
もう迷わない!モーダルとプッシュどっちがいいの?
第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
まさかのバグ!SwiftUIプレビューでハマった国際化対応の落とし穴
satotakeshi
0
300
Swift愛好会 の 思い出
satotakeshi
0
90
Xcode 15, Swift 5.9で変わる開発体験
satotakeshi
3
3k
Meet passkeys
satotakeshi
2
350
What's new in Vision
satotakeshi
0
1.7k
Swift Concurrency入門
satotakeshi
11
5.2k
複数端末のつらさを乗り越えてiOS UITestを実行
satotakeshi
1
410
Xcodegenを個人アプリに導入
satotakeshi
3
790
SwiftUIで作る開閉式メニュー
satotakeshi
2
3k
Other Decks in Programming
See All in Programming
#kanrk08 / 公開版 PicoRubyとマイコンでの自作トレーニング計測装置を用いたワークアウトの理想と現実
bash0c7
1
440
プロダクト志向なエンジニアがもう一歩先の価値を目指すために意識したこと
nealle
0
110
20250628_非エンジニアがバイブコーディングしてみた
ponponmikankan
0
430
型付きアクターモデルがもたらす分散シミュレーションの未来
piyo7
0
810
datadog dash 2025 LLM observability for reliability and stability
ivry_presentationmaterials
0
110
Railsアプリケーションと パフォーマンスチューニング ー 秒間5万リクエストの モバイルオーダーシステムを支える事例 ー Rubyセミナー 大阪
falcon8823
4
950
すべてのコンテキストを、 ユーザー価値に変える
applism118
2
810
deno-redisの紹介とJSRパッケージの運用について (toranoana.deno #21)
uki00a
0
150
つよそうにふるまい、つよい成果を出すのなら、つよいのかもしれない
irof
1
300
KotlinConf 2025 現地で感じたServer-Side Kotlin
n_takehata
1
230
Google Agent Development Kit でLINE Botを作ってみた
ymd65536
2
190
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
250
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Agile that works and the tools we love
rasmusluckow
329
21k
Mobile First: as difficult as doing things right
swwweet
223
9.7k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.5k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.8k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
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