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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
Foundry Localでエージェント開発
seosoft
0
170
新卒PdEのリアル
ryu1013
1
480
「AI時代、配布するPythonコードをどう守るか: 難読化の実験と判断軸」 #PyconJP2026
pkshadeck
PRO
2
190
ALB ログから Trace を気合で繋げる技術
fohte
7
880
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
270
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
0
150
AIエージェント時代のコードレビューを設計する
nogu66
6
2.6k
Go × SIMDで高速化するベクトル検索 ~ルーフラインモデルでSIMDが効く境界を探れ! ~
po3rin
1
220
Seeing Through Serverless: Observability for AWS Lambda with ADOT and CloudWatch Application Signals
seike460
PRO
1
130
GraphRAGのKnowledge Graphを 直接!見る/View-GraphRAG's-KnowledgeGraph-directly!
tyumugi1113
1
280
Gmail/Google DriveをトリガーにAIエージェントを動かそう! / Run AI agents with Gmail/Google Drive as triggers!
har1101
3
490
ハーネス設計入門 〜プロンプト、コンテキストの次〜
kinopeee
56
37k
Featured
See All Featured
For a Future-Friendly Web
brad_frost
183
10k
A Tale of Four Properties
chriscoyier
163
24k
Docker and Python
trallard
47
4.2k
Amusing Abliteration
ianozsvald
1
290
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
380
The Mindset for Success: Future Career Progression
greggifford
PRO
0
490
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Color Theory Basics | Prateek | Gurzu
gurzu
0
460
Unsuck your backbone
ammeep
672
58k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
380
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
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