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
ユーザーたった一人のアプリ開発記
Search
codelynx
September 27, 2023
Programming
370
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
180
Claude codeで 創る世界と壊れる世界
codelynx
0
220
Caude codeで爆速開発
codelynx
0
190
2024-05-yumemi.pdf
codelynx
0
400
Hello New Project
codelynx
1
310
WWDC21/Xcode13
codelynx
0
270
Tailor_your_Metal_apps_for_Apple_M1.pdf
codelynx
0
140
Swizzling NSObject classes in Swift
codelynx
0
190
Delegate Chaining Workaround
codelynx
0
79
Other Decks in Programming
See All in Programming
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
14
5.6k
Honoでのサプライチェーン侵害対策 〜 3つのライブラリに学ぶ
yusukebe
6
1.3k
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
200
生成AI時代にこそ効くGo | Why Go Works in the Age of Generative AI
mom0tomo
8
3.3k
スマートグラスで並列バイブコーディング
hyshu
0
160
Oxcを導入して開発体験が向上した話
yug1224
4
320
TSKaigi Night Talks 2026_TypeScriptでサプライチェーンの整合性を型に閉じ込める
geekplus_tech
0
400
Observability in Practice:Grafana 與 Edge Device SRE 的那些事
blueswen
0
170
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.4k
肥大化するレガシーコードに立ち向かうためのインターフェース分離と依存の逆転 / JJUG CCC 2026 Spring
hirokunimaeta
0
570
AI時代のUIはどこへ行く?その2!
yusukebe
22
7.4k
AIとASP.NET Coreで雑Webアプリを作った話
mayuki
0
660
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
600
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
340
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Everyday Curiosity
cassininazir
0
230
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
630
The Mindset for Success: Future Career Progression
greggifford
PRO
0
360
30 Presentation Tips
portentint
PRO
1
330
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.3k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
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