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
やはりお前らのiOSアプリ開発は間違っている
Search
yimajo
August 20, 2016
Technology
8
6.6k
やはりお前らのiOSアプリ開発は間違っている
LT枠なので自分だけゆるい発表になりましたが、他の発表は良い物ばかりでした
https://iosdc.jp/2016/
yimajo
August 20, 2016
Tweet
Share
More Decks by yimajo
See All by yimajo
11年かかって やっとVibe Codingに 時代が追いつきましたね
yimajo
1
270
iOSアプリ開発で 関数型プログラミングを実現する The Composable Architectureの紹介
yimajo
2
250
良いテストコードのために悪いテストコードを理解する - 不安定なテスト編: iOSアプリ開発ユニットテストの場合
yimajo
22
6.3k
TCAの Shared Stateって どういう仕組みになってんの?
yimajo
0
2.2k
Swift 5.9 からの Observation はiOS17 未満 からも使えて struct の変更検知もできるんすかね?
yimajo
2
980
不安定なテストは200種類あんねん
yimajo
3
1k
TCA v0.19.0からのSwitchStore/CaseLetが良い
yimajo
0
1.9k
TCAでViewStoreにKeyPath DynamicMemberLookupが使われてる件
yimajo
0
1.1k
TCAでのClient/Managerの 利用パターンでは副作用のActionやErrorを分離できる
yimajo
0
890
Other Decks in Technology
See All in Technology
LLMを搭載したプロダクトの品質保証の模索と学び
qa
0
760
落ちる 落ちるよ サーバーは落ちる
suehiromasatoshi
0
140
Platform開発が先行する Platform Engineeringの違和感
kintotechdev
2
360
シークレット管理だけじゃない!HashiCorp Vault でデータ暗号化をしよう / Beyond Secret Management! Let's Encrypt Data with HashiCorp Vault
nnstt1
3
220
オブザーバビリティが広げる AIOps の世界 / The World of AIOps Expanded by Observability
aoto
PRO
0
300
La gouvernance territoriale des données grâce à la plateforme Terreze
bluehats
0
110
ガチな登山用デバイスからこんにちは
halka
1
210
Nstockの一人目エンジニアが 3年間かけて向き合ってきた セキュリティのこととこれから〜あれから半年〜
yo41sawada
0
200
「魔法少女まどか☆マギカ Magia Exedra」のグローバル展開を支える、開発チームと翻訳チームの「意識しない協創」を実現するローカライズシステム
gree_tech
PRO
0
540
Function Body Macros で、SwiftUI の View に Accessibility Identifier を自動付与する/Function Body Macros: Autogenerate accessibility identifiers for SwiftUI Views
miichan
2
170
[RSJ25] Feasible RAG: Hierarchical Multimodal Retrieval with Feasibility-Aware Embodied Memory for Mobile Manipulation
keio_smilab
PRO
0
100
AIのグローバルトレンド2025 #scrummikawa / global ai trend
kyonmm
PRO
1
230
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
Automating Front-end Workflow
addyosmani
1370
200k
The World Runs on Bad Software
bkeepers
PRO
70
11k
Done Done
chrislema
185
16k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Art, The Web, and Tiny UX
lynnandtonic
302
21k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
The Pragmatic Product Professional
lauravandoore
36
6.8k
Side Projects
sachag
455
43k
Code Review Best Practice
trishagee
70
19k
The Invisible Side of Design
smashingmag
301
51k
Transcript
Γ͓લΒͷ J04ΞϓϦ։ൃؒҧ͍ͬͯΔ !ZJNBKP JPTED
ࠓճ ΈΜͳେ͖Ͱ͍ͭ࡞ͬͯ͠·͏ BaseViewControllerʹ͍ͭͯ Λ͠·͢
ΦϨࢲBaseViewController Λ ࡞Γͨ͘ͳ͍Αͬͯํ ͦͷҙࢥද໌Λ͢Δͷʹ ͜ͷ-5ʹථ͓ͯ͘͠ͱϕετ
ͷલఏΛ֬ೝ͢ΔΑ
J04ΞϓϦ։ൃ ͱ͍ͬͯ
࡞ͬͯऴΘΓ
ʜͷɺ Ͱͳ͍
࡞ͬͯϦϦʔεͯ͠ ෆ۩߹Λमਖ਼͠
νʔϜͷϝϯόʔ͕ ૿͑ͨΓݮͬͨΓ
৽͍͠ػೳΛՃͨ͠ΓΛ ʑ܁Γฦ͍ͯ͘͠
ͦ͏͍͏࣌ʹɺ
BaseViewControllerΛ࡞Δͷ ؒҧ͍ͬͯΔ݅
BaseViewController ͱ
֤ը໘༻ͷ 7JFX$POUSPMMFS͕ ܧঝͯ͠͏ UIViewController BaseViewController ViewController ViewController
• ϥΠϑαΠΫϧʹԠͯ͡ ΞφϦςΟΫεܥͷϝιο υΛݺͼग़ͨ͠Γ • Կ͔͠ΒͷϥΠϒϥϦͷ ݺͼग़͠ΛϝιουͰӅ ṭ͠Α͏ͱͨ͠Γ UIViewController BaseViewController
ViewController ViewController
Կ͕ؒҧ͍ͬͯΔ͔
࣭ͱճܗࣜͰ ߟ͍͑ͯ͘
ʮ6*5BCMF7JFX$POUSPMMFSͱ 6*$PMMFDUJPO7JFX$POUSPMMFSΛ͍͍ͨ ߹Ͳ͏ͬͯͦͷ #BTF7JFX$POUSPMMFS͏ΜͰ͔͢ʁʯ ࣭
ͦͷࡍɺΞϓϦಠࣗͷॲཧΛ࣮͢ΔͨΊʹ UIViewControllerΛܧঝͨ͠ BaseViewControllerΛͭ͘ΓͦΕΛ֤ը໘༻ ͷViewController͕ܧঝͯ͠͏͜ͱ͕͋Δ UITableView Controller TVC BaseView Controller UIViewController
UICollectionView Controller BaseTableView Controller BaseCollectionView Controller ͡Ό͋͜͏͠Α͏ TVC VC VC CVC CVC
ʮͦΕͧΕڞ௨͢Δ࣮Λ Օॴʹίϐϖ͢ΔΘ͚ ͡Όͳ͍Ͱ͢ΑͶʁʯ ࣭
ͦͷࡍɺΞϓϦಠࣗͷॲཧΛ࣮͢ΔͨΊʹ UIViewControllerΛܧঝͨ͠ BaseViewControllerΛͭ͘ΓͦΕΛ֤ը໘༻ ͷViewController͕ܧঝͯ͠͏͜ͱ͕͋Δ ʰ6UJMJUZΛ࡞ͬͯͦ͜ʹ࣮͢ΔΑʂʱ UITableView Controller TVC UIViewController UICollectionView
Controller TVC VC VC CVC CVC BaseView Controller BaseTableView Controller BaseCollectionView Controller Utility
ʮ#BTF7JFX$POUSPMMFSΛ ܧঝͨ͘͠ͳ͍7JFX$POUSPMMFSͬ ͯग़͖ͯ·͢ΑͶʁʯ ࣭
ͦͷࡍɺΞϓϦಠࣗͷॲཧΛ࣮͢ΔͨΊʹ UIViewControllerΛܧঝͨ͠ BaseViewControllerΛͭ͘ΓͦΕΛ֤ը໘༻ ͷViewController͕ܧঝͯ͠͏͜ͱ͕͋Δ BaseView Controller BaseTableView Controller BaseCollectionView Controller
ʰͦ͏ͳͬͨΒܧঝ͠ͳ͍ʱ UITableView Controller TVC UIViewController UICollectionView Controller TVC VC VC CVC CVC Utility ViewController ϥΠϒϥϦͷVC Կ͔͠Βͷ ϥΠϒϥϦ͕ఏڙ͢Δ
ʮίʔυϨϏϡʔΛ͢Δࡍɺ ܧঝ͖͢7JFX$POUSPMMFSͱ ͦͷܧঝ͠ͳ͍7JFX$POUSPMMFSͷҧ͍ Ͳ͜ΛݟΕผͰ͖ΔΜͰ͔͢ʁʯ ࣭
ʮ#BTF7JFX$POUSPMMFSͷ࣮ Λϝϯόʔશһ͕Ѳͯ͠ͳ͍ ͱා͘ͳ͍Ͱ͔͢ʁʯ ࣭
ʮυΩϡϝϯτͳ͍Θ͚Ͱ͢Α Ͷʁʯ ࣭
ʮͭ·Γʜɺ #BTF7JFX$POUSPMMFSͬͯͦΕ ΦϨΦϨϑϨʔϜϫʔΫͰ͢ΑͶʁʯ
ʰ͓ɺ͓͏ʜʱ
Ҏ্͕ ໝʹΑΔ࣭ͱճྫͰ͢
#BTF7JFX$POUSPMMFS ΦϨΦϨϑϨʔϜϫʔΫ
ͳͥਓJ04Ͱ ΦϨΦϨϑϨʔϜϫʔΫΛ ࡞Γ͕ͨΔ͔
w ʮ͕͜͜͜͏ͳͬͯ͜͏ͳͬͯ͜͏ʜ͜ͷॲཧڞ ௨ԽͰ͖Δʂʯ w ʮܧঝͯ͑͠ΔΑ͏ʹ͓͚ͯ͠ޙͰͳʹ͔ͷ ʹཱͭʂʯ w ʮʢྗ͕ʜཉ͍͔͠ʣʯͱ͍͏͕ݾͷத͔Β ௌ͑͜Δʂ
͓ͦΒ͘ਓࣄΛ ͏·͘Ζ͏ͱ͍͏Ҿྗ ʹऒ͔ΕΔ
ඞཁ͕ͳ͍͔͠Εͳ ͍நԽΛ͢Δ
͘͠ ܦݧ͔ΒϘτϜΞοϓͳઃܭΛߦͳ͍ɺ ͦΕΛࣗͷ্ͩͱצҧ͍͢Δ Μ͡Όͳ͍͔ͳ͋
ͦ͏͍͏ͱ͖ʹ ࢥ͍ग़ͯ͠ཉ͍͠ :"(/*ݪଇ
:"(/*ݪଇ w ޙͰ͏ͩΖ͏ͱ͍͏༧ଌͰ࡞ͬͯߴ͍֬ ͰΘΕͳ͍ͷʹଞͷϝϯόʔཧղ͢Δඞཁ ͕ग़ͯ͘Δ͚ͲແବʹͳΔ w ༧ظ͠ͳ͍มߋʹରͯ͠ઃܭͷ୯७໋͕͞ ͡ΌΜ IUUQTKBXJLJQFEJBPSHXJLJ:"(/* ඞཁʹͳͬͨͱ͖ඞཁͳࣄΛ͢Ε͍͍Α
ʒͷΤϞ͍
ࢲɺ͜͜ʹ͍Δօ͞Μͱಉ͡Ͱɺ ػೳՃෆ۩߹मਖ਼Λਝʹߦ͏ͨΊ ෳࡶͳΞϓϦέʔγϣϯ ϝϯςφϒϧʹॻ͖͍ͨ ͱࢥ͍ͬͯ·͢ɻ
ٳʹ͓ۚͬͯ࿅അ·Ͱ དྷΔͬͯ૬Ͱ͢ΑͶ
ڪΒ͘օ͞Μ ։ൃʹؔ͢ΔݟΛಘΔ͜ͱͰ ΑΓྑ͘ʑͷ։ൃΛ͍͖͍ͯͨ͠ͱ ײ͔ͨ͡ΒདྷͨͣͰ͢
ྫ͑ ʮϢʔβͷͨΊʹػೳΛ͜͏ͯ͠ཉ͍͠ʯ ͬͯཔ·Εͨ࣌ʹ ʮԞਂ͘ͷઃܭ͕ೖΓΜͰͯແཧʜʯ ͬͯݴ͍ͨ͘ͳ͍͡Όͳ͍Ͱ͔͢
BaseViewControllerͬͯඞਢ ͡Όͳ͍͠ޙ͔ΒࢀՃ͢Δϝϯόʔ ͔Βͨ͠ΒअຐʹͳΓͦ͏Ͱ͢
ຊ ։ൃʹؒҧ͍ͳΜͯ ͳ͍
Ͱ ʑͷӡ༻Λߟ͑ΔͳΒ ΦϨΦϨϑϨʔϜϫʔΫΛΘͳ͍ ͬͱྑ͍ΓํΛ ୳͠·͠ΐ͏Α
͡Ό͋ BaseViewController Λ࡞Βͳ͚Ε ΦϨͨͪΌͲ͏͢Ε͍͍ΜͩΑʁ
BaseViewController Λ࡞Βͣʹ ۩ମతʹͲ͏͢Μͷͬͯํ ͦͷҙࢥද໌Λ͢Δͷʹ ͜ͷ-5ʹථ͢Δͷ͕Ұ൪ྑ͍Ͱ͢ Ҏ্Ͱ͢ ͋Γ͕ͱ͏͍͟͝·ͨ͠
w Γ͓લΒͷJ04ରԠؒҧ͍ͬͯΔ w IUUQXXXTMJEFTIBSFOFU:PTIJOPSJ*NBKPJPT w Γ͓લΒͷ$PSF%BUBͷ͍ํؒҧ͍ͬͯΔ w IUUQXXXTMJEFTIBSFOFU:PTIJOPSJ*NBKPDPSFEBUB w J04ΞϓϦͷઃܭͰ#BTF7JFX$POUSPMMFSͷΑ͏ͳͷ࡞Γͨ͘ͳ͍
w IUUQRJJUBDPNZJNBKPJUFNTFGFCECGE ࢀߟ
ࣗݾհ • ࠓ ળۣ(@yimajo) • iOSΞϓϦ։ൃΛࣄʹ͍ͯ͠·͢ • ΤϯδχΞͷΞτϓοτϥϯΩϯ άαʔϏε https://stargzr.net
Λ࡞ͬ ͨΓ͍ͯ͠·͢