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.4k
やはりお前らのiOSアプリ開発は間違っている
LT枠なので自分だけゆるい発表になりましたが、他の発表は良い物ばかりでした
https://iosdc.jp/2016/
yimajo
August 20, 2016
Tweet
Share
More Decks by yimajo
See All by yimajo
良いテストコードのために悪いテストコードを理解する - 不安定なテスト編: iOSアプリ開発ユニットテストの場合
yimajo
22
6k
TCAの Shared Stateって どういう仕組みになってんの?
yimajo
0
1.8k
Swift 5.9 からの Observation はiOS17 未満 からも使えて struct の変更検知もできるんすかね?
yimajo
2
860
不安定なテストは200種類あんねん
yimajo
3
890
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
840
【開催説明資料】iOSアプリ開発のための Functional Architecture 情報共有会
yimajo
0
250
SWORD ART COMBINE
yimajo
1
1.1k
Other Decks in Technology
See All in Technology
OCI Success Journey OCIの何が評価されてる?疑問に答える事例セミナー(2025年2月実施)
oracle4engineer
PRO
2
150
サイト信頼性エンジニアリングとAmazon Web Services / SRE and AWS
ymotongpoo
7
1.5k
技術スタックだけじゃない、業務ドメイン知識のオンボーディングも同じくらいの量が必要な話
niftycorp
PRO
0
100
AWS Well-Architected Frameworkで学ぶAmazon ECSのセキュリティ対策
umekou
2
140
内製化を加速させるlaC活用術
nrinetcom
PRO
2
140
開発組織を進化させる!AWSで実践するチームトポロジー
iwamot
2
360
(機械学習システムでも) SLO から始める信頼性構築 - ゆる SRE#9 2025/02/21
daigo0927
0
270
ExaDB-XSで利用されているExadata Exascaleについて
oracle4engineer
PRO
3
250
スキルだけでは満たせない、 “組織全体に”なじむオンボーディング/Onboarding that fits “throughout the organization” and cannot be satisfied by skills alone
bitkey
0
180
Potential EM 制度を始めた理由、そして2年後にやめた理由 - EMConf JP 2025
hoyo
2
2.6k
Amazon Aurora のバージョンアップ手法について
smt7174
2
140
Windows の新しい管理者保護モード
murachiakira
0
200
Featured
See All Featured
A better future with KSS
kneath
238
17k
Faster Mobile Websites
deanohume
306
31k
How to Think Like a Performance Engineer
csswizardry
22
1.4k
Testing 201, or: Great Expectations
jmmastey
42
7.2k
A Tale of Four Properties
chriscoyier
158
23k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
30
4.6k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
10
1.3k
A designer walks into a library…
pauljervisheath
205
24k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
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
Λ࡞ͬ ͨΓ͍ͯ͠·͢