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
62
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
260
Swift丸1年学んだらどこまでできる!?
kantaswift
3
520
Featured
See All Featured
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
220
Paper Plane
katiecoart
PRO
2
52k
Testing 201, or: Great Expectations
jmmastey
46
8.2k
It's Worth the Effort
3n
188
29k
Code Review Best Practice
trishagee
74
20k
Become a Pro
speakerdeck
PRO
31
6k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
270
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
260
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
220
Making the Leap to Tech Lead
cromwellryan
135
10k
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