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
Pocochaにおけるアセットの管理/potatotips55
Search
noppefoxwolf
October 09, 2018
Technology
3
190
Pocochaにおけるアセットの管理/potatotips55
noppefoxwolf
October 09, 2018
Tweet
Share
More Decks by noppefoxwolf
See All by noppefoxwolf
iOSの隠されたAPIを解明し、開発効率を向上させる方法/iOSDC24
noppefoxwolf
2
520
既存アプリをvisionOS対応してリリースした話/visionOS LT vol5
noppefoxwolf
0
180
UIのブラックボックスを探る/iOSDC23
noppefoxwolf
3
4k
CoreGraphicsでドット絵を描こう/iOSDC22
noppefoxwolf
0
2.3k
ランタイムデバッグのススメ/iOSDC21
noppefoxwolf
1
4.4k
google/mediapipe で始めるARアプリ開発/iOSDC2020
noppefoxwolf
1
1.4k
モバイルファーストなアプリを作るためにvearがしたこと/xRDCC
noppefoxwolf
0
110
ソーシャルライブサービスにおけるデジタル化粧の仕組みと実装/iOSDC19
noppefoxwolf
4
5.4k
Limited import clarification and its effect/tryswift2019
noppefoxwolf
2
1.2k
Other Decks in Technology
See All in Technology
Building Products in the LLM Era
ymatsuwitter
10
5.4k
Nekko Cloud、 これまでとこれから ~学生サークルが作る、 小さなクラウド
logica0419
2
960
RECRUIT TECH CONFERENCE 2025 プレイベント【高橋】
recruitengineers
PRO
0
150
データマネジメントのトレードオフに立ち向かう
ikkimiyazaki
6
930
偶然 × 行動で人生の可能性を広げよう / Serendipity × Action: Discover Your Possibilities
ar_tama
1
1.1k
リーダブルテストコード 〜メンテナンスしやすい テストコードを作成する方法を考える〜 #DevSumi #DevSumiB / Readable test code
nihonbuson
11
7.1k
2/18/25: Java meets AI: Build LLM-Powered Apps with LangChain4j
edeandrea
PRO
0
110
技術的負債解消の取り組みと専門チームのお話 #技術的負債_Findy
bengo4com
1
1.3k
急成長する企業で作った、エンジニアが輝ける制度/ 20250214 Rinto Ikenoue
shift_evolve
3
1.3k
リアルタイム分析データベースで実現する SQLベースのオブザーバビリティ
mikimatsumoto
0
1.3k
ホワイトボードチャレンジ 説明&実行資料
ichimichi
0
130
目の前の仕事と向き合うことで成長できる - 仕事とスキルを広げる / Every little bit counts
soudai
24
7k
Featured
See All Featured
The Language of Interfaces
destraynor
156
24k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
Six Lessons from altMBA
skipperchong
27
3.6k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
10
1.3k
A Philosophy of Restraint
colly
203
16k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
21
2.5k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
How to Think Like a Performance Engineer
csswizardry
22
1.3k
Transcript
1PDPDIBʹ͓͚ΔΞηοτͷཧ QPUBUPUJQTOPQQF !OPQQFGPYXPMG
OPQQF ! גࣜձࣾσΟʔɾΤψɾΤʔ " ͖ͭͶ͔Θ͍͍ # 1PDPDIBJ04ϦʔυΤϯδχ Ξ
1PDPDIB w ϥΠϒ৴ΞϓϦ w ʙ w ଟ࠼ͳΠϕϯτاըΛ࣮ࢪ w ϨϕϧʹԠͨ͡ԋग़ΪϛοΫ
Ξηοτͷྫ w ը૾ w ৭ w 4UPSZCPBSE w ϑΥϯτ w
FUD
Ξηοτͷྫ w ը૾ w ৭ w 4UPSZCPBSE w ϑΥϯτ w
FUD
1PDPDIBͰͷը૾Ξηοτͷϧʔ ϧ
1PDPDIBͰͷը૾Ξηοτͷϧʔϧ w "TTFU-JUFSBMΘͳ͍ w จࣈྻͰϦιʔεʹΞΫηε͠ͳ͍ w *OUFSGBDFCVJMEFSͷதͰը૾Λઃఆ͠ͳ͍ w ΞϓϦΞΠίϯ୯Ұιʔε͔Βੜ w
μϛʔΞηοτ໌֬ʹϓϩδΣΫτΛ͚ͯཧ͢Δ
"TTFU-JUFSBMΘͳ͍
$PMPS-JUFSBM*NBHF-JUFSBM #imageLiteral(resourceName: "Facebook")
"TTFU-JUFSBMͷ w 9DPEF্ͰɺΞηοτͷҧ͍Λೝࣝͮ͠Β͍
"TTFU-JUFSBMͷ
"TTFU-JUFSBMͷ ϓϩδΣΫτͷن͕େ͖͘ͳΔ΄ͲɺྨࣅͷΞηο τ͕૿͑Δɻ w ղ૾ͷҧ͏ը૾Ξηοτ w ۙࣅ৭ͷΧϥʔΞηοτ
"TTFU-JUFSBMͷସҊ ݁ہ໊લΛ͚ͯݺͼग़͢ࣄ͕ϕετ ݟͨʴಛͷΈ߹ΘͤͰɺΞηοτΛಛఆग़དྷΔ Α͏ͳ໊લΛ͚Δ TriangleRed TriangleLarge
ॏෳ͢Δ໊শͷରࡦ ը໘͕ҟͳΓɺΞηοτҟͳΔ͕ɺݟ͕ͨࣅ͍ͯ ΔΞηοτ͕͋ΔՄೳੑࣄલʹߟྀ͓ͯ͘͠ UserProfileViewTriangleLarge ProfileEditViewTriangleLarge
ڞ௨ͰΘΕΔΞηοτ ෳͷϏϡʔͰར༻͞ΕΔΞηοτɺCommonΛઌ಄ ʹ͚ͭΔ CommonLeftArrow
ωʔϜεϖʔεΛ׆༻͢Δ ϏϡʔͷπϦʔߏʹࣅ໊ͨশʹͳ͍ͬͯͨ͘Ίɺ ͳϑΝΠϧ໊ʹͳ͍ͬͯ͘ɻ YDBTTFUTͷωʔϜεϖʔεΛ༗ޮʹ͢ΔࣄͰγϯϓϧ ͳϑΝΠϧ໊Λར༻Ͱ͖Δɻ ProfileEdit/Triangle/Large
ωʔϜεϖʔεΛ׆༻͢Δ
ωʔϜεϖʔεΛ׆༻͢Δ // Before let image = UIImage(named: "ProfileEditTriangleLarge") // After
let image = UIImage(named: "ProfileEdit/Triangle/Large")
จࣈྻͰϦιʔεʹΞΫηε͠ͳ ͍
จࣈྻͰΞηοτʹΞΫηε͢Δ let image = UIImage(named: "TypoFileName") self.image = image! //
nil exception ϥϯλΠϜͰ5ZQP͕ൃ֮ 1PDPDIBͰෳࡶͳ݅Ͱը૾Λग़͚͢͠ΔͨΊɺ ී௨ʹ৮͍ͬͯΔͱؾ͕͚ͳ͍Ξηοτ͕ଟ͘ଘࡏ
5ZQPΛͳ͘͢ 34XJGU4XJGU(FOͳͲΛར༻ͯ͠5ZQPΛͳ͘͢ let image = Asset.ProfileEdit.Triangle.large.image ίϯύΠϧ࣌ʹλΠϙ͕ݕग़ՄೳʹͳΔ
*OUFSGBDFCVJMEFSͷதͰը૾ Λઃఆ͠ͳ͍
*OUFSGBDFCVJMEFSͷதͰը૾Λઃఆ͢Δة ݥੑ
$PVMEOPUMPBEUIF*NBHF/BNFJNBHF SFGFSFODFEGSPNBOJCJOUIFCVOEMFXJUI JEFOUJpFSDPNCVOEMFBQQ
ଘࡏ͠ͳ͍Ξηοτͷରࡦ *OUFSGBDF#VJMEFSͰը૾ΛΘͳ͍ํ w ϧʔϧͰېࢭ͢Δͷແཧ
ଘࡏ͠ͳ͍Ξηοτͷରࡦ *OBCBҴӋ IUUQTHJUIVCDPNOPQQFGPYXPMGJOBCB
ଘࡏ͠ͳ͍Ξηοτͷରࡦ $ Inaba ./Project > CaptureButton.xib ! An image is
specified outside the code. (icon_camera) > NoticeView.xib ! An image is specified outside the code. (notice_dialog_image) > SignupViewController.storyboard ! An image is specified outside the code. (welcome)
*OUFSGBDFCVJMEFSͷத͔Βը૾Λফ͢ *#͔Βը૾Λফ͢ͱ"VUPMBZPVU͕յΕΔ͜ͱ͕͋Δ w 6**NBHF7JFXJNBHFΛઃఆ͢Δͱͦͷը૾αΠζ Ͱ*OUSJOTJD$POUFOU4J[F͕ͭ͘ w ໌ࣔతʹ*OUSJOTJDDPOUFOUTJ[FΛઃఆ͢Δ͜ͱͰը ૾ແ͠Ͱ"VUPMBZPVUΛղܾͰ͖Δ
*OUFSGBDFCVJMEFSͷத͔Βը૾Λফ͢
ΞϓϦΞΠίϯ୯Ұιʔε͔Β ੜ
ΞϓϦΞΠίϯͷ՝ ը૾ΞηοτϕΫλʔQEG͔ΒϏϧυ࣌ʹෳղ૾ ͷϥελը૾ΛੜͰ͖Δ Կނ͔ΞϓϦΞΠίϯ֤ղ૾ͷϥελը૾Λࣗલ Ͱ༻ҙ͠ͳ͍ͱμϝ
Ϗϧυ࣌ʹΞΠίϯΛੜ IUUQTHJUIVCDPNOPQQFGPYXPMGBQQJDPOHFO
Ϗϧυ࣌ʹΞΠίϯΛੜ
Ϗϧυ࣌ʹΞΠίϯΛੜ QPE"QQ*DPO(FO 10%43005"QQ*DPO(FOBQQJDPOHFOJOQVU 43$3005130%6$5/".&"SUXPSLQOH YDBTTFUT43$3005130%6$5@/".& "TTFUTYDBTTFUT
μϛʔΞηοτ໌֬ʹϓϩδΣ ΫτΛ͚ͯཧ͢Δ
μϛʔΞηοτͷ՝ J04ΞϓϦͰΞϓϦʹσόοάϝχϡʔΛදࣔͯ͠6* ͷ֬ೝΛ͢Δͷྑ͋͘Δख๏ σόοά༻ͷ7JFX$POUSPMMFS#VJME$POpHVSBUJPO ͰӅͤΔ͕ΞηοτӅ͠ʹ͍͘
μϛʔΞηοτͷ՝ ͔͠͠ɺΞϓϦʹόϯυϧͯ͠͠·͏ͱʜ w ஶ࡞ݖతʹϚζΠը૾͕ʜ w ϦϦʔεલͷΞΠςϜը૾͕ʜ w ٸᬎऔΓԼ͛Δࣄʹͳͬͨը૾͕ʜ
ػೳ͝ͱʹQSPKFDUཧ
QSPKFDUʹػೳ2"༻ͷΞϓϦλʔήοτΛஔ
ػೳ2"༻ͷΞϓϦͷYDBTTFUTͰཧ
·ͱΊ w "TTFU-JUFSBMΘͳ͍ w จࣈྻͰϦιʔεʹΞΫηε͠ͳ͍ w *OUFSGBDFCVJMEFSͷதͰը૾Λઃఆ͠ͳ͍ w ΞϓϦΞΠίϯ୯Ұιʔε͔Βੜ