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
体験!SwiftChartsの世界
Search
shoma.kato
December 08, 2025
Programming
20
0
Share
体験!SwiftChartsの世界
ZOZO.swiftで発表したスライドです!
shoma.kato
December 08, 2025
More Decks by shoma.kato
See All by shoma.kato
動画エフェクトに関する新技術の紹介
shomakato
0
24
はじめてのPDFKit.pdf
shomakato
0
210
はじめてのPDFKit
shomakato
0
40
SwiftとC++を利用した画像処理プログラミング
shomakato
0
2.4k
Other Decks in Programming
See All in Programming
ReactとSvelteのその先、Ripple-TS / Beyond React and Svelte: Ripple-TS
ssssota
3
800
要はバランスからの卒業 #yumemi_grow
kajitack
0
190
Cloudflare で始める Data Platform
ta93abe
0
300
TSKaigi2026-静的解析への投資がAI時代のコード品質を支える ── カスタムESLintルールの設計と運用
hayatokudou
6
1.1k
Transactional Change Stream Processing With Debezium and Apache Flink
gunnarmorling
1
130
Oxlintはいかにしてtsgolintのlint ruleを呼び出しているのか
syumai
1
480
Copilot CLI の継戦能力を高める コンテキスト管理
nozomutu
1
950
Swiftのレキシカルスコープ管理
kntkymt
0
190
柔軟なPDFレイアウトエディタを支える型システム設計 — Discriminated UnionとConditional Typeの実践
minako__ph
3
580
AI Agent と正しく分析するための環境作り
yoshyum
2
600
SPMマルチモジュールで テストカバレッジを取得する技法
yosshi4486
0
120
Old Dog, New Tricks: The Java 25 Reinvention - JNation
bazlur_rahman
0
120
Featured
See All Featured
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
70
39k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
New Earth Scene 8
popppiees
3
2.3k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
180
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
First, design no harm
axbom
PRO
2
1.2k
Test your architecture with Archunit
thirion
1
2.2k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
270
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
140
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
120
Optimizing for Happiness
mojombo
378
71k
Raft: Consensus for Rubyists
vanstee
141
7.4k
Transcript
Copyright © ZOZO, Inc. ମݧʂSwiftChartsͷੈք גࣜձࣾZOZO ϒϥϯυιϦϡʔγϣϯ։ൃຊ෦ FAANS෦ ϑϩϯτΤϯυϒϩοΫ Ճ౻
ਅ @shoma10170806
© ZOZO, Inc. 2 FAANSͷՌը໘ ɾάϥϑച্දࣔ ɾԣεΫϩʔϧ ɾදࣔ୯Ґिؒ
© ZOZO, Inc. 3 FAANSͷՌը໘ %($IBSUT άϥϑͷදࣔ 4XJGU$IBSUT ɾάϥϑച্දࣔ ɾԣεΫϩʔϧ
ɾදࣔ୯Ґिؒ
© ZOZO, Inc. 4 ɹɹSwiftChartsͱʁ άϥϑ࡞ͷͨΊͷϑϨʔϜϫʔΫ ɹɾJ04Ҏ߱ ɹɾ4XJGU6*Ͱهड़ ɹɾάϥϑɺԁάϥϑͳͲଟछྨ
ɹɾ7PJDF0WFSɺ"VEJP(SBQIͷαϙʔτ ɹɾ࣍ݩม Ҿ༻ݩIUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPO$IBSUT
© ZOZO, Inc. 5 ɹɹFAANSػೳͷ࣮ ̎ ɾάϥϑͷදࣔ ɾԣεΫϩʔϧରԠ ɾिؒ୯ҐͰදࣔ
© ZOZO, Inc. 6 άϥϑͷදࣔ import Charts var body: some
View { Chart(stackedBarData, id: \.id) { row in BarMark( x: .value("Day", row.date, unit: .day), y: .value("Sales", row.sales) ) .foregroundStyle(by: .value("Type", row.type)) ɹ} }
© ZOZO, Inc. 7 άϥϑͷදࣔ import Charts var body: some
View { Chart(stackedBarData, id: \.id) { row in BarMark( x: .value("Day", row.date, unit: .day), y: .value("Sales", row.sales) ) .foregroundStyle(by: .value("Type", row.type)) ɹ} } ᶃΠϯϙʔτ
© ZOZO, Inc. 8 άϥϑͷදࣔ import Charts var body: some
View { Chart(stackedBarData, id: \.id) { row in BarMark( x: .value("Day", row.date, unit: .day), y: .value("Sales", row.sales) ) .foregroundStyle(by: .value("Type", row.type)) ɹ} } ᶃΠϯϙʔτ ᶄ$IBSUσʔλಡΈࠐΈ
© ZOZO, Inc. 9 άϥϑͷදࣔ import Charts var body: some
View { Chart(stackedBarData, id: \.id) { row in BarMark( x: .value("Day", row.date, unit: .day), y: .value("Sales", row.sales) ) .foregroundStyle(by: .value("Type", row.type)) ɹ} } ᶃΠϯϙʔτ ᶄ$IBSUσʔλಡΈࠐΈ ᶅάϥϑ
© ZOZO, Inc. 10 άϥϑͷදࣔ import Charts var body: some
View { Chart(stackedBarData, id: \.id) { row in BarMark( x: .value("Day", row.date, unit: .day), y: .value("Sales", row.sales) ) .foregroundStyle(by: .value("Type", row.type)) ɹ} } ᶃΠϯϙʔτ ᶄ$IBSUσʔλಡΈࠐΈ ᶅάϥϑ ᶆ৭͚ˍੵΈ্͛
© ZOZO, Inc. 11 ԣεΫϩʔϧˍ1िؒදࣔ Chart(stackedBarData, id: \.id) { row
in ɹBarMark( x: .value("Day", row.date, unit: .day), y: .value("Sales", row.sales) ) .foregroundStyle(by: .value("Type", row.type)) } .chartScrollableAxes(.horizontal) .chartXVisibleDomain(length: 7 * 24 * 60 * 60) .chartScrollTargetBehavior(.paging) ᶃ ԣεΫϩʔϧ J04Ҏ߱
© ZOZO, Inc. 12 ԣεΫϩʔϧˍ1िؒදࣔ Chart(stackedBarData, id: \.id) { row
in ɹBarMark( x: .value("Day", row.date, unit: .day), y: .value("Sales", row.sales) ) .foregroundStyle(by: .value("Type", row.type)) } .chartScrollableAxes(.horizontal) .chartXVisibleDomain(length: 7 * 24 * 60 * 60) .chartScrollTargetBehavior(.paging) ᶃ ԣεΫϩʔϧ J04Ҏ߱ ᶄͷදࣔ
© ZOZO, Inc. 13 ԣεΫϩʔϧˍ1िؒදࣔ Chart(stackedBarData, id: \.id) { row
in ɹBarMark( x: .value("Day", row.date, unit: .day), y: .value("Sales", row.sales) ) .foregroundStyle(by: .value("Type", row.type)) } .chartScrollableAxes(.horizontal) .chartXVisibleDomain(length: 7 * 24 * 60 * 60) .chartScrollTargetBehavior(.paging) ᶃ ԣεΫϩʔϧ J04Ҏ߱ ᶄͷදࣔ ᶅिؒ୯ҐͰεΫϩʔϧ ɹʢJ04Ҏ߱ʣ
© ZOZO, Inc. 14 ɹɹએ ɾ'""/4ը໘ͷ࣮ํ๏ ɾ՝ͷղܾํ๏ ɾ%($IBSUTͱ4XJGU$IBSUTͷൺֱ
None