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
iOSDC_SwiftUI_Text
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Atsuya Sato
September 18, 2021
Technology
5.9k
4
Share
iOSDC_SwiftUI_Text
iOSDC Japan 2021でLT登壇した資料です
Atsuya Sato
September 18, 2021
More Decks by Atsuya Sato
See All by Atsuya Sato
アプリ内にテーマ機能を実装する / pixiv-app-talk-202604-theme-feature
natmark
0
30
Pull-Requestの内容を1クリックで動作確認可能にするワークフロー
natmark
2
630
iOS 17で追加されたSubscriptionStoreView を利用して5分でサブスク実装チャレンジ
natmark
0
1.4k
Pastelaのアプリ内課金開発の裏側 / pixiv-app-night-202502-pastela-iap
natmark
2
180
詳解UIWindow
natmark
3
5.4k
画面最前面に表示されるデバッグツールを作る
natmark
2
330
最低サポートOSバージョンをあげた時のストア表示について / potatotips81-store-page-apperance-with-deployment-target-updated
natmark
2
780
施策基盤としてのディープリンク〜なめらかにアプリが開く体験のために〜
natmark
9
8.8k
チームでSwiftUIを書くために / After Party iOSDC Japan 2021 SwiftUI
natmark
3
1.2k
Other Decks in Technology
See All in Technology
long-running-tasks
cipepser
2
450
Terraformモジュールは、なぜ「魔境」化するのか
hayama17
1
130
大規模災害時でも高い信頼性を維持するアプリケーション基盤の実現/nikkei-tech-talk46
nikkei_engineer_recruiting
0
120
Databricks 月刊サービスアップデート 2026年05月号
tyosi1212
0
120
Gradle×GitHub_ActionsでCI時間を約50%短縮 ジョブ分割の設計と落とし穴 / Cutting CI Time by ~50% with Gradle and GitHub Actions: Job-Splitting Design and Pitfalls
takatty
0
550
開発を止めない CI/CD ~CI Visibilityによる継続的最適化~
pensuke628
0
220
Amazon Bedrock 経由の Claude Cowork を試してみよう・MCP にも繋いでみよう
sugimomoto
0
300
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.7k
TROCCOで始めるクラウドコストを民主化するためのFinOps
tk3fftk
2
490
個人AIからチームAIへ:開発における品質と生産性の再設計
moongift
PRO
0
330
エンジニアは生成AIと どのように向き合うべきか? ことばの意味という観点から
verypluming
3
300
AIガバナンス実践 - 生成AIコネクタのデータ漏洩リスクと実務対策
knishioka
0
150
Featured
See All Featured
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
150
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
23k
Designing for humans not robots
tammielis
254
26k
WENDY [Excerpt]
tessaabrams
11
38k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1.1k
Statistics for Hackers
jakevdp
799
230k
Tell your own story through comics
letsgokoyo
1
940
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
22k
Amusing Abliteration
ianozsvald
1
190
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
180
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Transcript
"UTVZB4BUP 4XJGU6*5FYUΛ͍͜ͳؒ͢ J04%$+BQBO%BZ-5
J04%$+BQBO Ұ෦͚ͩ #PMEͷςΩετ Ͳ͏࣮͢Δʁ
HStack(spacing: 8) { Text("iOSDC").bold() Text("Japan 2021") } ۪ʹ)4UBDLΛͬͯ J04%$+BQBO
HStack(spacing: 8) { Text("Hello, iOSDC!").bold() Text("͍͍͍͍ςΩετ") } )FMMP J04%$ ͍͍͍
͍ςΩετ
Text("iOSDC").bold() + Text(" ") + Text("Japan 2021") ͜͏͍͏෩ʹॻ͚Δ J04%$+BQBO
Text("Hello, iOSDC!").bold() + Text(" ") + Text("͍͍͍͍ςΩετ") )FMMP J04%$͍͍ ͍͍ςΩετ
5FYUΛ ԋࢉࢠͰ݁߹͢Δ Text("iOSDC").bold() + Text(" ") + Text("Japan 2021") w
4XJGU6*ʹQVCMJDTUBUJDGVOD MIT5FYU SIT5FYU 5FYU ͕༻ҙ͞Ε͍ͯΔͷͰɺ͜͏͍͏ॻ͖ํ͕Ͱ͖Δ w J04ʙͰར༻Մೳ
J04%$+BQBO *NBHFͱ5FYUͷηοτ ύλʔϯ
Text(Image(systemName: "heart")) .foregroundColor(.pink) + Text(" ") + Text("iOSDC").bold() + Text("
") + Text("Japan 2021") ͖ͬ͞ͷԠ༻ͯ͜͠͏ॻ͚Δ J04%$+BQBO
Text(Image(systemName: "heart")) .foregroundColor(.pink) + Text(" ") + Text("iOSDC").bold() + Text("
") + Text("Japan 2021") *NBHFΛ5FYUͰϥοϓ͢Δ w 4XJGU6*5FYUʹQVCMJDJOJU @JNBHF*NBHF ͕༻ҙ͞Ε͍ͯΔͷͰɺ͜͏͍͏ॻ͖ํ͕Ͱ͖Δ w J04ʙͰར༻Մೳ
Text(" \(Text(Image(systemName: "heart")) .foregroundColor(.pink))□ \(Text("iOSDC").bold())□ Japan□2021 ") ͞Βʹ͜͏͍͏෩ʹॻ͚Δ ˞දࣔྖҬͷؔͰվߦΛೖΕͯɺۭനΛ˘ʹ͍ͯ͠·͢ J04%$+BQBO
จࣈྻิΛ֦ுͨ͠ॻ͖ํ w ͬ͘͟Γݴ͏ͱɺ4XJGU6*Ͱఆٛ͞Ε͍ͯΔQVCMJDNVUBUJOHGVOD BQQFOE*OUFSQPMBUJPO @UFYU5FYU ʹΑͬͯՄೳʹͳ͍ͬͯΔॻ͖ํ w J04ʙͰར༻Մೳ Text(" \(Text(Image(systemName:
"heart")) .foregroundColor(.pink))□ \(Text("iOSDC").bold())□ Japan□2021 ") w ͪͳΈʹ QVCMJDNVUBUJOHGVODBQQFOE*OUFSQPMBUJPO @JNBHF*NBHF ༻ҙ͞Ε͍ͯΔͷͰ w 5FYU a *NBHF TZTUFN/BNFBQQMFMPHP "QQMF Έ͍ͨͳॻ͖ํͰ͖Δ
จࣈྻิΛ֦ுͨ͠ॻ͖ํͷิ w 4XJGU6*5FYUQVCMJDJOJU @LFZ-PDBMJ[FE4USJOH,FZ UBCMF/BNF4USJOH OJM CVOEMF#VOEMF OJM DPNNFOU4UBUJD4USJOH
OJM ΛΠχγϟϥΠβͱ͍ͯ࣋ͬͯ͠ Δ w 5FYU J04%$ ͷΑ͏ʹॻ͍ͨ࣌ʹJ04%$ͷܕ-PDBMJ[FE4USJOH,FZʹͳΔ w -PDBMJ[FE4USJOH,FZ&YQSFTTJCMF#Z4USJOH*OUFSQPMBUJPOʹ४ڌ͢ΔܕͰ 4USJOH*OUFSQPMBUJPO1SPUPDPMʹ४ڌͨ͠ܕ4USJOH*OUFSQPMBUJPOΛ෦తʹ͍࣋ͬͯΔ w 4XJGU6*ʹఆٛ͞ΕͨBQQFOE*OUFSQPMBUJPOʹΑͬͯΧελϚΠζ͞ΕͨจࣈྻิΛར ༻Ͱ͖Δ Text(" \(Text(Image(systemName: "heart")) .foregroundColor(.pink))□ \(Text("iOSDC").bold())□ Japan□2021 ")
߹ܭ ԁ ܻ۠Γจࣈྻ ͍͍ײ͡ʹʜ
Text("߹ܭ \(amount)ԁ") ܻ۠Γจࣈྻͷදࣔ/VNCFS'PSNBUUFSແ͠Ͱ͍͍ ߹ܭ ԁ
จࣈྻิΛ֦ுܻͨ۠͠Γ w ͬ͘͟Γݴ͏ͱɺ4XJGU6*Ͱఆٛ͞Ε͍ͯΔQVCMJDNVUBUJOHGVOD BQQFOE*OUFSQPMBUJPO5 @WBMVF5 XIFSF5@'PSNBU4QFDJpBCMFʹΑ ͬͯՄೳʹͳ͍ͬͯΔॻ͖ํ w J04ʙͰར༻Մೳ Text("߹ܭ
\(amount)ԁ")) w ͪͳΈʹ QVCMJDNVUBUJOHGVODBQQFOE*OUFSQPMBUJPO5 @WBMVF5 TQFDJpFS4USJOH XIFSF 5@'PSNBU4QFDJpBCMFΛ༻͍ͯϑΥʔϚοτࢦఆ͢Δ͜ͱՄೳ • Text("\(pi, specifier: “%.2f")") ͷΑ͏ʹॻ͘ͱখԼ2ܻͷϑΥʔϚοτʹͳΔ
จࣈྻิΛ֦ுܻͨ۠͠Γͷิ Text("߹ܭ \(amount)ԁ")) w Έઌ΄Ͳઆ໌ͨ͠BQQFOE*OUFSQPMBUJPOʹΑΔจࣈྻิͷ֦ு public protocol _FormatSpecifiable : Swift.Equatable
{ associatedtype _Arg : Swift.CVarArg var _arg: Self._Arg { get } var _specifier: Swift.String { get } } w *OU%PVCMFͳͲͷܕ͕@'PSNBU4QFDJpBCMFʹ४ڌ͓ͯ͠Γɺࢦఆ͞ Εͨ@TQFDJpFSʹΑͬͯɺܕͷϑΥʔϚοτ͕ߦΘΕ͍ͯΔ
'SJ &BSMZ#JSE 4VQQPSUFS BOE3FHVMBS ͪͳΈʹɺJ04͔Β'PSNBU4UZMFར༻Մೳʹ
Text(iOSDC2021.startedAt, format: .dateTime .month(.defaultDigits) .day() .weekday() ) ͪͳΈʹɺJ04͔Β'PSNBU4UZMFར༻Մೳʹ 'SJ
&BSMZ#JSE 4VQQPSUFS BOE3FHVMBS Text(iOSDC2021.ticketKinds, format: .list(type: .and) )
4XJGU6*5FYUͰ'PSNBU4UZMFΛ͏ w 4XJGU6*5FYUʹ༻ҙ͞Ε͍ͯΔQVCMJDJOJU' @JOQVU''PSNBU*OQVU GPSNBU' XIFSF''PSNBU4UZMF ''PSNBU*OQVU&RVBUBCMF ''PSNBU0VUQVU4USJOHΛ ར༻Ͱ͖Δ
w J04ʙͰར༻Մೳ
w 5XJUUFS!O@BUNBSL w ॴଐΫοΫύουגࣜձࣾ w ΫοΫύουΞϓϦ J04"OESPJE ͷ։ൃ ࣗݾհ ࠤ౻ರ
͋ͭ