Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ユーザーたった一人のアプリ開発記
Search
codelynx
September 27, 2023
Programming
400
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ユーザーたった一人のアプリ開発記
Swift愛好会 2023 September
codelynx
September 27, 2023
More Decks by codelynx
See All by codelynx
AI & Enginnering
codelynx
0
230
Claude codeで 創る世界と壊れる世界
codelynx
0
250
Caude codeで爆速開発
codelynx
0
220
2024-05-yumemi.pdf
codelynx
0
430
Hello New Project
codelynx
1
330
WWDC21/Xcode13
codelynx
0
300
Tailor_your_Metal_apps_for_Apple_M1.pdf
codelynx
0
170
Swizzling NSObject classes in Swift
codelynx
0
220
Delegate Chaining Workaround
codelynx
0
91
Other Decks in Programming
See All in Programming
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
1
1.9k
作って学ぶSpring BootのAuto Configuration / JJUG Night Seminar 2026-10-19
rshindo
0
210
Compiling a real-world CLI tool to native with Static Hermes
tmikov2023
0
140
Zero-Tap Sign-In対応、結局何をすればいいの?
mitohato14
0
1k
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
240
複雑なUIコンポーネントとの ⻑い付き合い⽅:波及するバグからテスト戦略を経て、安全な再設計へ
mixplace
0
490
Vue.jsで作る空間解析アプリとCapacitorプラグインのData Bridge
hal_spidernight
1
130
Vapor Mode でアクセシビリティは 壊れないか検証した話
fuqda
1
260
graphql-ruby を Spinel で速くしようとした話
mtsmfm
0
130
パスワード再設定メールのURLについて知っておこう
uyuki234
0
200
AIがコードを書いてくれる時代、我々は何を確かめるのか
yosuke_furukawa
PRO
13
5.2k
あなたの await、OS まで届いてる? strace で覗く JavaScript の非同期
hasutosasaki
1
1.6k
Featured
See All Featured
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
590
Prompt Engineering for Job Search
mfonobong
0
560
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
610
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
360
What's in a price? How to price your products and services
michaelherold
247
13k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
340
From π to Pie charts
rasagy
1
420
What the history of the web can teach us about the future of AI
inesmontani
PRO
2
760
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3.1k
ラッコキーワード サービス紹介資料
rakko
5
5.5M
Transcript
খઆಡਓΞϓϦ։ൃه Kaz Yoshikawa 2023 September • Swift Ѫձ
Kaz Yoshikawa • Electricwoods LLC / Digital Lynx Systems Inc.
/ Yumemi Inc • e-mail:
[email protected]
• twitter: @codelynx1 • Working History • Adobe Systems (Tokyo) • Lionbridge (Tokyo) • Quark (Tokyo / Denver) • Hummingbird Communications (Mt. View, USA) • Fact International (Vancouver, Canada) • Perle Systems (Toronto, Canada), etc.
ؔΘ͖ͬͯͨ
e-Conte board
None
None
None
খઆಡਓ • ʮখઆՈʹͳΖ͏ʯઐ༻ɺԻಡΈ্͛ΞϓϦ • ಉαΠτͷখઆͷݕࡧɺࣗಈμϯϩʔυɺಡΈ্͛ɺطಡཧ • ଉࢠઐ༻ΞϓϦ
͖͔͚ͬ • 201xɺখֶੜʢ࣌ʣͷࢠڙͷҰݴ͔Β࢝·Δ • ౦ژʵτϩϯτؒͷҠಈ࣌ʹΦϑϥΠϯͰWebখઆΛಡΈ͍ͨ • ීஈiTextSpeakerͰຊจΛίϐϖͯࣖ͠ฉ͔͍ͤͯͨ • ࣌ଉࢠࣈ͋·ΓಡΊͳ͍ʢௌ͘ͷͳ͍ʣ •
100+ΤϐιʔυΛίϐϖ͢ΔͷͩΔ͍ • ͜ΕΛฉ͍ͨͷ͕ϑϥΠτલ
ΞϓϦ։ൃ • ϑϥΠτͰͲͷΣϒখઆΛಡΈ͍͔ͨώΞϦϯά • ಉখઆʢ֤ΤϐιʔυʣΛશͯखಈͰμϯϩʔυ(HTML) • ϓϨʔϯςΩετʹม • UIPageViewControllerͰ֤ΤϐιʔυΛAVSpeechSynthesizerͰ࿕ಡ •
খઆ໊ͱػೳΛݶఆ͢Εɺ̍Ͱ։ൃͰ͖Δ͔ʁ
݁Ռ • ۭߓͰϑϥΠτલʹଉࢠͷiPhoneʹΠϯετʔϧ • ۭߓͰࢦΛΫϩεͯ͠ݟૹΓ • ϑϥΠτதʹಉΣϒখઆͷ࿕ಡ͕Ͱ͖ΔࣄΛفΔ • ϑϥΠτޙͷײ •
ʮΞϓϦ͕མ͍ͪͯʹͳΒΜʯ • ΨϏʔΜʂʁ
খઆಡ্ΞϓϦ։ൃ࢝ಈʂ • ඪ • ͳΖ͏খઆAPIͰখઆΛݕࡧ • ֤ΤϐιʔυΛࣗಈμϯϩʔυ • ֤ΤϐιʔυΛࣗಈಡΈ্͛ •
طಡཧ • ϢʔβʔଉࢠͨͩҰਓʂ
NarouFetcher • খઆՈʹͳΖ͏API͔Βݕࡧ • Ωʔϫʔυ • ϒοΫϚʔΫͷଟ͍ॱɺ৽ணߋ৽ॱͳͲ • SwiftͰར༻Մೳ •
ࠓ͔Βࢥ͑ • ΤϐιʔυFetch͍ͯ͠ͳ͍ͷͰ໊લඍົ
ݕࡧػೳΛ࣮ • ҎԼͷ߲ͰݕࡧՄೳ • Ncode • λΠτϧ • ͋Β͢͡ •
࡞ऀ • APIͷ݁Ռඍົ
WebεΫϨΠϐϯά • ͳΖ͏APIຊจͷμϯϩʔυͰ͖ͳ͍ • HTMLͷεΫϨΠϐϯά • ͳΜͱɺiOSʹXMLDocument͕͑ͳ͍ʁ • KissXMLɺKanna •
XPathͰඞཁͳใΛऔಘ • ΤϐιʔυͷURLɺλΠτϧɺߋ৽ͳͲ
μϯϩʔυը໘ • ݸผ·ͨҰׅͰɺΤϐιʔυΛμϯϩʔυՄೳ • Τϐιʔυ͕ߋ৽͞Εͨ߹ݸผʹμϯϩʔυ • ߋ৽͞Ε͍ͯͳ͍Τϐιʔυͷμϯϩʔυ͠ͳ͍ • ΤϥʔॲཧݶఆతͰOK
อଘσʔλߏ • NCodeຖʹϑΥϧμ • ΤϐιʔυຖʹplistͰอଘ
ઃܭͷࣦഊ • ॳɺςΩετσʔλΛܰ͘ݟੵΓࣦ͗ͯ͢ഊ • ςΩετσʔλͰ100ΤϐιʔυΛ͑ΔσʔλͦΕͳΓʹେ͖͍ • ֤Τϐιʔυͷ෦ߋ৽Ͱɺશσʔλͷϩʔυηʔϒ͕ඞཁ • طಡΛՃͨ࣌͠ʹ࠶ઃܭΛܾஅ •
֤Τϐιʔυͷσʔλখͯͨ͘͞͠ํ͕͍͍
࿕ಡػೳ࣮ PageViewController ViewController ViewController ViewController Episode1 Episode2 Episode3
ઃܭͷࣦഊ • ΤϐιʔυຖʹAVSpeechSynthesizerΛ࣋ͭ • վϖʔδ࣌ʹޡ࡞ಈ ViewController Episode1 AVSpeechSynthesizer ViewController Episode2
AVSpeechSynthesizer վϖʔδ
վળҊ1 • PageControllerͷେݩʹSynthesizerΛஔ PageViewController ViewController ViewController ViewController Episode1 Episode2 Episode3
AVSpeechSynthesizer
վળҊ2 • ௌ͖ͳ͕Β৸ͯ͠·͏ରࡦ͕Ͱ͖ͳ͍ • ৸ͯ͠·͏ͱແݶʹΤϐιʔυ͕ਐΉ • طಡ͕ཧͰ͖ͳ͍ Singleton ViewController ViewController
ViewController Episode1 Episode2 Episode3 AVSpeechSynthesizer
AVSpeechSynthesizer • ಡΈؒҧ͍ • AppleVoiceVoxΛങऩͯ͠΄͍͠ ݾ ͭͪͷ͜ ͓ͷΕ ҟੈք ͜ͱ͔͍ͤ
͍͔͍ͤ
ͯ͞ϦϦʔεͯ͠ΈΑ͔ • HINAϓϩδΣΫτʹڋ൱͞Εͨ • ݸਓͰͷར༻ͱ͔͘εΫϨΠϐϯάΊͯཉ͍͠ • ٧Μͩ
Fin