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
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
React、まだ楽しくて草
uhyo
7
2.7k
Agentic AI時代における メルカリのAIガバナンスとガードレール実装
naoichihara
17
17k
類似画像検索モデルの開発ノウハウ
lycorptech_jp
PRO
4
1.1k
インフラが苦手でも大丈夫! 紙芝居 Kubernetes -WWGT 10周年編-
aoi1
1
310
AI時代から振り返るTerraform drift運用の歴史 / AI Age Reflections on the History of Terraform Drift Operations
aeonpeople
2
620
基礎から解説!Icebergで紐解くSnowflake×Databricks連携の現在地
cm_yasuhara
0
410
Claude code Orchestra
ozakiomumkj
3
800
さきさん文庫の書籍ができるまで
sakiengineer
0
320
大規模災害時でも高い信頼性を維持するアプリケーション基盤の実現/nikkei-tech-talk46
nikkei_engineer_recruiting
0
120
大学生が本気でDatabricksを活用してDiscordサークルをデータ駆動させてみた
phantomjuju
1
310
Anthropic AIネイティブ・スタートアップ構築のプレイブック を理解する
nagatsu
0
230
Strands Agents超入門
kintotechdev
1
150
Featured
See All Featured
Ruling the World: When Life Gets Gamed
codingconduct
0
240
Marketing to machines
jonoalderson
1
5.3k
Building an army of robots
kneath
306
46k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
54k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
1
130
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.5k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
230
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.8k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
240
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 ͷ։ൃ ࣗݾհ ࠤ౻ರ
͋ͭ