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
おしゃれなTabBarを作る!
Search
Kanta
April 22, 2023
60
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
おしゃれなTabBarを作る!
Kanta
April 22, 2023
More Decks by Kanta
See All by Kanta
最新技術をキャッチアップしたい~The Composable Architecture~
kantaswift
3
250
Swift丸1年学んだらどこまでできる!?
kantaswift
3
510
Featured
See All Featured
Utilizing Notion as your number one productivity tool
mfonobong
4
320
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
430
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.4k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
22k
So, you think you're a good person
axbom
PRO
2
2.1k
Typedesign – Prime Four
hannesfritz
42
3.1k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
140
How to make the Groovebox
asonas
2
2.2k
Practical Orchestrator
shlominoach
191
11k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
360
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Discover your Explorer Soul
emna__ayadi
2
1.1k
Transcript
PayPayのようなおしゃれな TabBarを作る! 上條 栞汰 ~ in SwiftUI ~
⾃⼰紹介 l 上條栞汰(かみじょうかんた) l 東洋⼤学総合情報学部2年 l Swift歴 1年(あと3週間ぐらい!!) l UIKit
11ヶ⽉ l SwiftUI 1ヶ⽉ 経歴(インターン) l 株式会社ゆめみ l 株式会社サイバーエージェント CA Tech iOS Dojo @kanta_Swift @KantaSwift よろしければフォローお願い致します🙇
PayPayのTabBar 1. 浮いてるように⾒えるデザイン! 2. View(スクロール)と連携している! 3. 膨らんでいる部分がある! <特徴>
3つの特徴を押さえて 実際に作ってみる!!
完成品
冒頭で挙げた特徴を どのように実現していったか 簡単に紹介します!
特徴1. 浮いているように⾒えるデザイン overlayを使⽤! 👈のようなモデルを定義!! -> タブの個数を任意にすることができる! タブとViewを対応させることができる! -> 浮いているように⾒せることができる!
特徴2. スクロールと連携 GeometryReader + PreferenceKey 👇 ScrollViewのOffsetを 取得することができる! [参考] https://medium.com/@maxnatchanon/sw
iftui-how-to-get-content-offset-from- scrollview-5ce1f84603ec 外国の⽅の記事が ⼀番わかりやすかったです!! 👆
特徴3. 膨らみの再現 addLine(to: CGPoint) 現在の位置から引数(to)で指定した位置まで move(to: CGPoint) pathの始点 などなど... いろいろ試してみると楽しい👍
👇 👇
以上3つの特徴を押さえた技術分野をまとめると... • PreferenceKey -> ⼦ビューから親ビューにデータを渡す仕組み • GeometryReader -> ⾃⾝の親のViewに対する位置を知る仕組み •
ShapeとPath -> いろんな形の図形を作ることができる!!
おまけ @resultBuilderについて 配列なのにカンマとシンタックスがない!? 1. 要素の組み合わせを宣⾔的にかける! 2. 可読性が上がってる?かも!
開発する上で参考したサイト達 最後に 特徴1. 浮いているように⾒えるデザイン+おまけ • https://capibara1969.com/2723/ • https://capibara1969.com/2771/ 特徴2. スクロールと連携
特徴3. 膨らみの表現 • https://medium.com/@maxnatchanon/swiftui-how-to-get-content-offset-from-scrollview-5ce1f84603ec • https://qiita.com/hcrane/items/3f3a9ff2ef0fccd01338 • https://qiita.com/maiyama18/items/a64bab2094750319ef8d • https://speakerdeck.com/chocoyama/20fen-dewakaru-su-xi-resultbuilder-iosdc-2022 • https://speakerdeck.com/uhooi/iosdc-japan-2022
ご清聴ありがとうございました! ※近⽇(今⽉中!)に今回開発したTabViewのコードを公開するので 気になる⽅いらっしゃいましたらフォローお願いします🙇 @KantaSwift