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
Exit 8 for SwiftUI
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
ojun
April 12, 2025
Programming
1
250
Exit 8 for SwiftUI
ojun
April 12, 2025
Tweet
Share
More Decks by ojun
See All by ojun
アセットのコンパイルについて
ojun9
0
180
Swift Evolution かるた
ojun9
2
120
Xcode 16のPreviewModifierと@Previewableを活用した効率的なプレビュー方法の考察
ojun9
4
960
Catch Up with Swift 5.10
ojun9
2
880
Overview: Swift OpenAPI Generator
ojun9
3
2.5k
if 式と switch 式による SwiftUI のプレビューエラー対策
ojun9
1
2.1k
楽しい夏休み!String Catalogs で新しい発見
ojun9
0
2.4k
ユニットテストを学んだ次に知りたかったApple標準APIに対するテストのやり方
ojun9
1
460
ハッカソンにおけるiOSアプリ開発での学びと楽しさ
ojun9
1
370
Other Decks in Programming
See All in Programming
2年のAppleウォレットパス開発の振り返り
muno92
PRO
0
200
Basic Architectures
denyspoltorak
0
650
TerraformとStrands AgentsでAmazon Bedrock AgentCoreのSSO認証付きエージェントを量産しよう!
neruneruo
4
2.6k
.NET Conf 2025 の興味のあるセッ ションを復習した / dotnet conf 2025 quick recap for backend engineer
tomohisa
0
130
AI前提で考えるiOSアプリのモダナイズ設計
yuukiw00w
0
220
CSC307 Lecture 03
javiergs
PRO
1
490
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
630
ELYZA_Findy AI Engineering Summit登壇資料_AIコーディング時代に「ちゃんと」やること_toB LLMプロダクト開発舞台裏_20251216
elyza
2
1.4k
高速開発のためのコード整理術
sutetotanuki
1
370
CSC307 Lecture 04
javiergs
PRO
0
650
dchart: charts from deck markup
ajstarks
3
980
20260127_試行錯誤の結晶を1冊に。著者が解説 先輩データサイエンティストからの指南書 / author's_commentary_ds_instructions_guide
nash_efp
0
820
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
The untapped power of vector embeddings
frankvandijk
1
1.6k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.7k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
117
100k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.3k
Designing Powerful Visuals for Engaging Learning
tmiket
0
210
Exploring anti-patterns in Rails
aemeredith
2
240
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
71k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Embracing the Ebb and Flow
colly
88
5k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.6k
Facilitating Awesome Meetings
lara
57
6.7k
Transcript
Exit 8 for SwiftUI ojun - DeNA co., Ltd. try!
Swift Tokyo 2025 LT 2025 / 04 / 11
None
Exit 1 Prevent double taps or simultaneous taps
Exit 1 Prevent double taps or simultaneous taps Two buttons
inside a VStack
Exit 1 Prevent double taps or simultaneous taps In this
case, we need to prevent multiple buttons from being tapped simultaneously. However, SwiftUI doesn’t provide a direct API to handle mutual exclusion between buttons.
Exit 1 Prevent double taps or simultaneous taps Set isExclusiveTouch
to false on the wrapped UIView and all of its child views. If needed, implement a custom gesture recognizer to handle touch exclusivity.
None
Exit 2 Match the line height to the Text
Exit 2 Match the line height to the Text Inside
the ZStack, there's a Color and an HStack. The HStack contains a Rectangle and a titleView.
Exit 2 Match the line height to the Text This
UI is similar to what you might see in a train schedule display.
Exit 2 Match the line height to the Text This
UI is similar to what you might see in a train schedule display. However, you can see that the orange line doesn't match the height of the Text.
Exit 2 Match the line height to the Text By
creating a structure that conforms to the Layout protocol, you can align their heights.
Exit 2 Match the line height to the Text Applying
this layout to the original code allows the orange line to match the height of the Text.
None
Exit 3 Customize the loading indicator
Exit 3 Customize the loading indicator
Exit 3 Customize the loading indicator Since customization isn't possible
in SwiftUI, we need to implement it using UIKit.
None
Exit 4 Dismiss the keyboard on scroll
Exit 4 Dismiss the keyboard on scroll This behavior is
supported on iOS 16 and later. The keyboard automatically hides when the user scrolls, which simpli fi es the design.
Exit 4 Dismiss the keyboard on scroll By using scrollDismissesKeyboard,
we can implement this in a much simpler way.
Exit 5 Presenting a share sheet
Exit 5 Presenting a share sheet This code works on
iOS 16 and later. We're currently using UIActivityViewController to show the Share Sheet.
Exit 5 Presenting a share sheet By switching to ShareLink,
we can eliminate the dependency on UIKit.
Exit 6 Empty data state
Exit 6 Empty data state
Exit 6 Empty data state
Exit 7 Mesh gradient expression
Exit 7 Mesh gradient expression
Exit 7 Mesh gradient expression Starting from iOS 18, MeshGradient
makes it easy to implement mesh gradients.
None
Exit 8 Square Without GeometryReader
Exit 8 Square Without GeometryReader
Exit 8 Square Without GeometryReader It's possible to create a
square without using GeometryReader by leveraging scaledToFit.
None
None