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
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ユーザーたった一人のアプリ開発記
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
codelynx
September 27, 2023
Programming
390
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
210
Claude codeで 創る世界と壊れる世界
codelynx
0
240
Caude codeで爆速開発
codelynx
0
210
2024-05-yumemi.pdf
codelynx
0
420
Hello New Project
codelynx
1
330
WWDC21/Xcode13
codelynx
0
290
Tailor_your_Metal_apps_for_Apple_M1.pdf
codelynx
0
160
Swizzling NSObject classes in Swift
codelynx
0
200
Delegate Chaining Workaround
codelynx
0
84
Other Decks in Programming
See All in Programming
Intent as Code
shoppingjaws
4
550
Vibes Containers 〜AIで変わるコンテナ設計と運用〜
tkikuc
3
510
巨大モノリシックアプリ モダン化大作戦
ktcryomm
0
150
Seeing Through Serverless: Observability for AWS Lambda with ADOT and CloudWatch Application Signals
seike460
PRO
1
130
Can LLMs Replicate 4 Years of Compose Migration? Exploring the boundaries of automation with 279 XML files from a real product
makun
0
130
LLMは4年分のCompose移行を再現できるのか?実プロダクト279件のXMLで探る自動化の境界線
makun
0
440
ハーネス設計入門 〜プロンプト、コンテキストの次〜
kinopeee
55
36k
ソフトウェアラスタライザ
fadis
1
800
AIエージェント時代のコードレビューを設計する
nogu66
6
2.6k
PyO3 で既存 Python 評価器を Rust core 化する ー wasm-bindgen でブラウザにも配るための設計
kdash
1
560
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
2
180
初心者DevRelとして参加者だった私が、DevRel Talks!#2に登壇するまでにしてきたこと
sokohirai
0
340
Featured
See All Featured
Tell your own story through comics
letsgokoyo
1
1.1k
The Language of Interfaces
destraynor
162
27k
Navigating Team Friction
lara
192
16k
Scaling GitHub
holman
464
140k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
The agentic SEO stack - context over prompts
schlessera
0
910
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
340
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
320
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
490
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
730
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