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
ojun
May 22, 2023
Technology
1
330
ハッカソンにおけるiOSアプリ開発での学びと楽しさ
ojun
May 22, 2023
Tweet
Share
More Decks by ojun
See All by ojun
Swift Evolution かるた
ojun9
2
100
Xcode 16のPreviewModifierと@Previewableを活用した効率的なプレビュー方法の考察
ojun9
4
750
Catch Up with Swift 5.10
ojun9
2
800
Overview: Swift OpenAPI Generator
ojun9
3
2k
if 式と switch 式による SwiftUI のプレビューエラー対策
ojun9
1
1.6k
楽しい夏休み!String Catalogs で新しい発見
ojun9
0
2.1k
ユニットテストを学んだ次に知りたかったApple標準APIに対するテストのやり方
ojun9
1
410
Other Decks in Technology
See All in Technology
バックエンドエンジニアによるフロントエンドテスト拡充の具体的手法
kinosuke01
1
710
SpannerとAurora DSQLの同時実行制御の違いに想いを馳せる
masakikato5
0
570
Keynote - KCD Brazil - Platform Engineering on K8s (portuguese)
salaboy
0
120
一人QA時代が終わり、 QAチームが立ち上がった話
ma_cho29
0
290
DevOps文化を育むQA 〜カルチャーバブルを生み出す戦略〜 / 20250317 Atsushi Funahashi
shift_evolve
1
110
20250328_OpenAI製DeepResearchは既に一種のAGIだと思う話
doradora09
PRO
0
150
「ラベルにとらわれない」エンジニアでいること/Be an engineer beyond labels
kaonavi
0
120
スケールアップ企業のQA組織のバリューを最大限に引き出すための取り組み
tarappo
4
930
アプリケーション固有の「ロジックの脆弱性」を防ぐ開発者のためのセキュリティ観点
flatt_security
28
10k
Restarting_SRE_Road_to_SRENext_.pdf
_awache
0
160
問題解決に役立つ数理工学
recruitengineers
PRO
7
2.1k
20250326_管理ツールの権限管理で改善したこと
sasata299
1
380
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.2k
A Philosophy of Restraint
colly
203
16k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
8
700
Producing Creativity
orderedlist
PRO
344
40k
Visualization
eitanlees
146
16k
The Cult of Friendly URLs
andyhume
78
6.3k
It's Worth the Effort
3n
184
28k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
4
470
Navigating Team Friction
lara
184
15k
Into the Great Unknown - MozCon
thekraken
36
1.7k
Optimising Largest Contentful Paint
csswizardry
35
3.2k
Transcript
%F/"º4503&4ºϥΫϚJ04.FFUVQɹ!ौ୩εΫϥϯϒϧεΫΤΞɹ ϋοΧιϯʹ͓͚ΔJ04ΞϓϦ։ ൃͰͷֶͼͱָ͠͞ PKVOKVO*[VUTV
w ϋοΧιϯͰԿΛ࡞͔ͬͨ w 9DPEF$MPVE w Χϥʔఆٛͱ࣮ w ֶͼ w ·ͱΊ
w Ұ൪࣮͕େมͩͬͨը໘ͷʢ͕࣌ؒ͋Εʂʣ ࣍
ࣗݾհʢPKVOʣ w ໊લ+VO*[VUTV w J04ΤϯδχΞ w ৽ଔೖࣾ w (8ʹಉظͰࢀՃͰ͖ΔਓͨͪͰϋοΧ ιϯʹࢀՃͨ͠
ϋοΧιϯͰԿΛ࡞͔ͬͨ %F/"ͷϓϩμΫτͱແؔͰ͢ʂ༗ࢤͰ࡞ͬͨϓϩμΫτʹͳΓ·͢
None
None
None
None
None
None
None
None
None
None
None
None
6*,JUΛ༻
None
9DPEF$MPVE
w ڥߏஙͰNVTUͰߟ͑ͳ͍ͱ͍͚ͳ͍͜ͱ w JOIPVTF#VJMEΛ࡞Δʁ"E)PDʁ5FTU'MJHIUʁ w ʢJOIPVTFʹؔͯ͠FOUFSQSJTFͷΞΧϯτ͕ͳ͍ͱ͑ͳ͍ʣ w 5FTU'MJHIUͷ֎෦ςετΛར༻͢Δ͜ͱΛܾΊͨ ϏϧυΛͲ͏ͬͯΈΜͳͱڞ༗͢Δʁ 9DPEF$MPVE
9DPEF$MPVEͷ֓ཁ 9DPEF$MPVE w 9DPEFʹΈࠐ·Εͨ$*$*αʔϏε w "QQMF͕"QQMFσϕϩούͷͨΊʹ։ൃ w Ϗϧυɺෳͷࣗಈςετͷฒྻ࣮ߦɺςελʔͷ "QQͷ৴ͳͲͷΫϥυϕʔεͷπʔϧΛҰ͔ॴͰར ༻Մೳ
w ͍ͭ͢͝
1VTI NFSHF ίϛϡχέʔγϣϯ Ϗϧυ Ϗϧυ
w Ϗϧυ͕ऴΘͬͨλΠϛϯάͰϝʔϧ͕དྷΔͷͰ ʢϏϧυ͕མͪͯͨ߹ʣ͙͢ʹमਖ਼Մೳ w ݁Ռʹؔͯ͠ɺTFDUJPOʹ͔ΕͯͯΈ͍͢ w 7JFX#VJME3FQPSUϘλϯΛ༻ҙͯ͘͠Ε͍ͯΔ "QQMFͷ༏͠͞
ϝʔϧ͕Θ͔Γ͍͢ 9DPEF$MPVE
w ॳճͷΈ৹͕ࠪඞཁ w ̎ճҎ߱৹͕ࠪൃੜ͠ͳ͍ ʢόʔδϣϯΞοϓ͢Δͱൃੜ͢Δ͔ʣ w 9DPEF$MPVEͷϏϧυ͕ऴΘͬͨΒଈ࣌ʹ ˠͷϝʔϧ͕ಧ͘
w ʢ࣮ΞϓϦ͜͏ͳͬͯ΄͍͠ʣ ֎෦ςετͬͯ৹ࠪೖΒͳ͍ͷʁ 9DPEF$MPVE
w ࠷ॳʹ3TXJGUΛಋೖ͍ͯͨ͠ w 9DPEF$MPVEͰͳ͔ͥQFSNJTTJPO&SSPS͕ൃੜͯ͠ɺ3TXJGU͕͑ͳ ͔ͬͨͷͰΉͳ͘ണ͕ͨ͠ w ࣮ߦϑΝΠϧࣗମΛϏϧυʹΈࠐΜͩΒಈ͘Β͍͕͠ɺڥߏஙͰ࣌ ؒΛ৯͏ͷҧ͏ͱஅ͠ɺϕλॻ͖ʹస w ͪͳΈʹɺ(JU)VCͷJTTVFͰٞ͞Ε͍ͯΔ
3TXJGU͕ಈ͔ͳͯ͘ണ͕͢͜ͱʹͳͬͨ 9DPEF$MPVE
3TXJGU͕ಈ͔ͳͯ͘ണ͕͢͜ͱʹͳͬͨ 9DPEF$MPVE w λΠϜϦʔͳهࣄ w ͷੌ͔͘Γ͍͢هࣄͳͷ Ͱ͓͢͢ΊͰ͢ʂ
3TXJGU͕ಈ͔ͳͯ͘ണ͕͢͜ͱʹͳͬͨ 9DPEF$MPVE w λΠϜϦʔͳهࣄ w ͷੌ͔͘Γ͍͢هࣄͳͷ Ͱ͓͢͢ΊͰ͢ʂ w (JU)VCͷJTTVFʹొ͞ Ε͍ͯ·͢ʂ
Χϥʔఆٛͱ࣮
ςʔϚΧϥʔΛઃఆͰ͖Δ Χϥʔఆٛͱ࣮ w ͜ͷΞϓϦʹ།ҰͱͳΔςʔϚΧϥʔ͕ଘࡏͯ͠ͳ͍ w ͳͷͰϢʔβͷઃఆʹΑͬͯΧϥʔΛग़͚͠Δ ඞཁ͕͋Δ w ˠͷը૾ͩͱࢵ৭͕ςʔϚΧϥʔͱͳͬͯΔ
None
Χϥʔఆٛͱ࣮ Χϥʔఆٛͱ࣮ w ৭શ෦ͰUZQF w ബΊͷ৭͔Β҉͍৭·Ͱଘࡏ͍ͯ͠Δ w ֤৭ʹରͯ̐͠ʙͭͷ৭͕͋Δ
࡞ͬͨਓ͍͢͝ʂ Χϥʔఆٛͱ࣮ w ࠷ॳ͔Β৭ʹରͯ͠ʮʯʮʯ ͳͲͷ໊લׂ͕ΓৼΒΕ͍ͯΔ w )FYจࣈͱͯ͠ॻ͍ͯ͘Ε͍ͯΔ w ݟ͍͢ߏ
w ࠷ॳ͔Β৭ʹରͯ͠ʮʯʮʯ ͳͲͷ໊લׂ͕ΓৼΒΕ͍ͯΔʢ࠶ʣ
"TTFUT Χϥʔఆٛͱ࣮ w ࠷ॳ͔Β৭ʹରͯ͠ʮʯʮʯ ͳͲͷ໊લׂ͕ΓৼΒΕ͍ͯΔʢ࠶ʣ w ໊લ͕ৼΒΕ͍ͯΔͷͰɺ࣮͢Δࡍ໊લ௨Γʹ ৭Λఆٛ͢Εྑ͍
w ޙ͔Β৭ʹରͯ͠ίϛϡχέʔγϣϯ͢Δࡍʹ ίϛϡχέʔγϣϯͷ্࣭͕͕Δ
"TTFUT Χϥʔఆٛͱ࣮
"TTFUT Χϥʔఆٛͱ࣮
"TTFUT Χϥʔఆٛͱ࣮
"TTFUT Χϥʔఆٛͱ࣮
None
Χϥʔఆٛͱ࣮ Χϥʔఆٛͱ࣮ w ͜ͷΞϓϦʹ།ҰͱͳΔςʔϚΧϥʔ͕ଘࡏͯ͠ͳ͍ w ͳͷͰϢʔβͷઃఆʹΑͬͯΧϥʔΛग़͚͠Δ ඞཁ͕͋Δ w ˠͷը૾ͩͱࢵ৭͕ςʔϚΧϥʔͱͳͬͯΔ
SFEͱHSFFOʮʯͰͦΕҎ֎ʮʯ
FOVNͰUZQFΛఆٛ Χϥʔఆٛͱ࣮
4USPOH$PMPSͱ࣮ͯ͠ Χϥʔఆٛͱ࣮
৭Λอଘ͢Δॲཧ Χϥʔఆٛͱ࣮
৭Λอଘ͢Δॲཧ Χϥʔఆٛͱ࣮
ݺͼग़͠ Χϥʔఆٛͱ࣮ w ࠷ऴతʹ࡞ΒΕͨFYUFOTJPO w ֎෦͔Β͜ͷFYUFOTJPOΛݺͼग़͢ w ʢTUSPOH$PMPSఆٛͯ͠ͳ͍ʜʣ w ଞͷFYUFOTJPOQSJWBUFʹͰ͖ͦ͏
ֶͼ
σβΠφʔͷํͱͷίϛϡχέʔγϣϯ ֶͼ w σβΠφʔͷํͱͷίϛϡχέʔγϣϯΛஸೡʹऔΔඞཁ͕͋Δ w ։ൃεϐʔυͷ্ͷͨΊ w Ռͷ࣭Λ্ͤ͞ΔͨΊ w ϋοΧιϯ͚ͩͰͳ࣮͘Ͱॏཁ
σβΠφʔͷํͱͷίϛϡχέʔγϣϯ ֶͼ w J04ΞϓϦ։ൃʹ͓͍ͯɺ"QQMFͷ)*(Λཧղ͢Δ͜ͱॏཁ
σβΠφʔͷํͱͷίϛϡχέʔγϣϯ ֶͼ w σβΠφʔΑΓJ04ΤϯδχΞͷํ͕)*(Λཧղͯ͠Δ͜ͱଟʑ͋Δ w ͍͍ѱ͍Ͱͳ͍
σβΠφʔͷํͱͷίϛϡχέʔγϣϯ ֶͼ w )*(ʹͬऔΔ͜ͱͰ"QQMFΒ͠͞J04Β͠͞Λ࣮ݱ͢Δ͜ͱ͕༰қ͘ͳΔ
σβΠφʔͷํͱͷίϛϡχέʔγϣϯ ֶͼ w ͦͷ্ɺඪ४ίϯϙʔωϯτΛ͏߹։ൃεϐʔυ্͕͢Δ
ࣄྫ ֶͼ
None
ͲΜͳײ͕͍͍͔͡ͳʁ
None
λοϓͯ͠มߋ εϫΠϓͯ͠ը໘มߋ εϫΠϓͯ͠มߋ εϫΠϓͯ͠ը໘มߋ
มߋແ͠ λοϓͯ͠ը໘มߋ λοϓͯ͠มߋ λοϓͯ͠ը໘มߋ
มߋແ͠ λοϓͯ͠ը໘มߋ λοϓͯ͠มߋ λοϓͯ͠ը໘มߋʢͳ͠ʣ
None
มߋεΫϩʔϧ ը໘มߋTFHNFOU$POUSPMΛ͏
σβΠφʔͷํͱͷίϛϡχέʔγϣϯ ֶͼ w ͪΖΜ)*(ʹશ४ڌ͢Δ͜ͱ͕తͰͳ͍ w ΞϓϦ͕࡞Γ͍ͨՁ؍ੈք؍ͱσβΠϯΛൺɺΑΓྑ͍બɾఏҊΛ ߦ͏͜ͱ͕ॏཁ w ্هͷΑ͏ͳখ͞ͳΓͱΓΛੵΈॏͶΔ͜ͱ͕ϓϩμΫτͷʹͭ ͳ͕Δͱࢥ͏
w ͜ͷॏཁੑΛ࠶ೝࣝͰ͖ͨͷ͕ݸਓతͳ͍ͪΜͷֶͼͰͨ͠
·ͱΊ
ϋοΧιϯʹ͓͚ΔJ04ΞϓϦ։ൃͰͷֶͼͱָ͠͞ ·ͱΊ w ࣗୡ͕ීஈ͍ͬͯΔͰಈ࡞͢ΔΞϓϦΛ࡞Δ͜ͱ͕Ͱ͖Δ w λʔήοτΛܾఆ͠ɺͦͷϢʔβͷ͜ͱΛߟ͑ͯϓϩμΫτΛ࡞Δ͜ͱ͕Ͱ ͖Δ w ίϛϡχέʔγϣϯͷॏཁੑΛ࠶ೝࣝ͢Δ͜ͱ͕Ͱ͖ͨ w
J04ΞϓϦ։ൃϋοΧιϯ৺͔Βָ͠Ί·ͨ͠ʂ
͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ✨
ࢀߟҾ༻จݙ w IUUQTEFWFMPQFSBQQMFDPNEFTJHOIVNBOJOUFSGBDFHVJEFMJOFT w IUUQTRJJUBDPNMPWFFJUFNTECEBDBGFF w IUUQTRJJUBDPN.BTBUBLBOJUFNTDGEE w IUUQTEFWFMPQFSBQQMFDPNKQYDPEFDMPVE w
IUUQTHJUIVCDPNNBDDBJO3TXJGUJTTVFT