Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Contributing to XcodeGen
Search
freddi(Yuki Aki)
July 11, 2020
Programming
620
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Contributing to XcodeGen
freddi(Yuki Aki)
July 11, 2020
More Decks by freddi(Yuki Aki)
See All by freddi(Yuki Aki)
輝け俺のViewController 〜海外iOSカンファレンス登壇編〜
freddi
4
430
Deep Dive into "any" and "some"
freddi
3
1.7k
挑戦!ISUCON de Server-side Swift 〜タイムゾーンには気をつけろ〜
freddi
0
2.2k
意外と知られてないXcode13の新しい参照カウンタ最適化オプションの挙動
freddi
2
210
How to develop SIL Optimizer in Swift Language
freddi
0
410
SwiftコンパイラがSwiftで開発できるようになる話
freddi
3
710
知ろう! ShazamKit
freddi
1
250
Swift Optimizing at Compiler World
freddi
2
910
Recap Pointfree Vol. 1~3
freddi
1
920
Other Decks in Programming
See All in Programming
新人はどこまで自力でやり、どこからAIに頼るべきか/エンジニア育成に向き合う_先輩たちの悩みと知見共有会
toppan_digital_dev
1
590
スマート反転とウェブアクセシビリティ
camiha
0
180
DroidKaigi 2026 「個人開発という実験場: Android エンジニアが手にする4つの自由」
slashnephy
0
230
マイコン向けの軽量Ruby「PicoRuby」で各種デバイスを制御するネイティブアプリの実現手法
bash0c7
0
320
XHTMLが残したもの
yosuke_furukawa
PRO
2
640
FastAPI の並行処理モデルを完全に理解する
hoto17296
9
3.9k
Can LLMs Replicate 4 Years of Compose Migration? Exploring the boundaries of automation with 279 XML files from a real product
makun
0
130
市販E-Readerを乗っ取れ 〜Embedded Swiftで電子ペーパーガジェットを制御する〜
trickart
0
160
業務時間外もAIに働いてもらう話
colorful12
3
10k
フロントエンドUIフレームワークのこれまでとこれから
ssssota
5
2.1k
Webの地図
yosuke_furukawa
PRO
6
3.9k
「AI時代、配布するPythonコードをどう守るか: 難読化の実験と判断軸」 #PyconJP2026
pkshadeck
PRO
2
190
Featured
See All Featured
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
600
Color Theory Basics | Prateek | Gurzu
gurzu
0
460
Building a Scalable Design System with Sketch
lauravandoore
464
34k
The Pragmatic Product Professional
lauravandoore
37
7.4k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
67
58k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.7k
Side Projects
sachag
456
43k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
350
WCS-LA-2024
lcolladotor
0
820
Automating Front-end Workflow
addyosmani
1369
210k
Between Models and Reality
mayunak
4
450
Transcript
Contributing to XcodeGen (and its good points!) freddi (@_ _
_ freddi _ _ _) at potatotips #70 (10th July, 2020)
XcodeGen
XcodeGen - YAML͔JSONͰXcode ProjectΛཧͰ͖ΔΑ͏ʹ͢Δ - Xcode Projectཧ͠ʹ͍͘ΦϦδφϧͷϑΥʔϚοτ - gitͰConflict͕ى͜Δͱ͔ͳΓࠈ -
ͳͷͰɺͬͱ͔ΜͨΜͳYAMLͳͲͰཧͰ͖ΔΑ͏ʹ
Original Format of Xcode Project // !$*UTF8*$! { archiveVersion =
1; classes = { }; objectVersion = 52; objects = { /* Begin PBXBuildFile section */ 96401477240D1BE700A22301 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96401476240D1BE700A22301 /* AppDelegate.swift */; }; 96401479240D1BE700A22301 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96401478240D1BE700A22301 /* SceneDelegate.swift */; }; 9640147C240D1BE700A22301 /* XcodeGenTest.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 9640147A240D1BE700A22301 /* XcodeGenTest.xcdatamodeld */; }; 9640147E240D1BE700A22301 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9640147D240D1BE700A22301 /* ContentView.swift */; }; 96401480240D1BEA00A22301 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9640147F240D1BEA00A22301 /* Assets.xcassets */; }; 96401483240D1BEA00A22301 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 96401482240D1BEA00A22301 /* Preview Assets.xcassets */; }; 96401486240D1BEA00A22301 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 96401484240D1BEA00A22301 /* LaunchScreen.storyboard */; }; 96401491240D1BEA00A22301 /* XcodeGenTestTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96401490240D1BEA00A22301 /* XcodeGenTestTests.swift */; }; 9640149C240D1BEA00A22301 /* XcodeGenTestUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9640149B240D1BEA00A22301 /* XcodeGenTestUITests.swift */; }; 96F82BF1240D50ED00C0397B /* APIKit in Frameworks */ = {isa = PBXBuildFile; productRef = 96F82BF0240D50ED00C0397B /* APIKit */; }; 96F82C15240D51C300C0397B /* MyLibrary0 in Frameworks */ = {isa = PBXBuildFile; productRef = 96F82C14240D51C300C0397B /* MyLibrary0 */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ 9640148D240D1BEA00A22301 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 9640146B240D1BE700A22301 /* Project object */; proxyType = 1; remoteGlobalIDString = 96401472240D1BE700A22301; remoteInfo = XcodeGenTest; }; 96401498240D1BEA00A22301 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 9640146B240D1BE700A22301 /* Project object */; proxyType = 1; remoteGlobalIDString = 96401472240D1BE700A22301; remoteInfo = XcodeGenTest; };
After Converting to XcodeGen name: Genned0 options: deploymentTarget: iOS: "13.2"
localPackages: - Packages/APIKit packages: APIKit: url: https://github.com/ishkawa/APIKit from: 5.1.0 MyLibrary0: path: Packages/MyLibrary0/ targets: Genned: type: application platform: iOS sources: - path: XcodeGenTest dependencies: - package: APIKit - package: MyLibrary0
Not Cool Point of XcodeGen - ࠷ॳͷYAMLͷΊͬͪΌ໘ - Xcode্ͷมߋ͕YAMLʹࣗಈతʹө͞Εͳ͍ -
ޙ΄Ͳݴٴ - ·ͩҰ෦ͷػೳ͕ෆ͍ͯ͠Δ - etc) Local Swift Packageͷґଘ
Not Cool Point of XcodeGen - ࠷ॳͷYAMLͷΊͬͪΌ໘ - Xcode্ͷมߋ͕YAMLʹࣗಈతʹө͞Εͳ͍ -
ޙ΄Ͳݴٴ - ·ͩҰ෦ͷػೳ͕ෆ͍ͯ͠Δ - etc) Local Swift Packageͷґଘ
Local Swift Packageͷґଘ - ձࣾͷϓϩδΣΫτͰLocal Swift PackageରԠඞਢͩͬͨ - Ͱ Not
Supporting ͩͬͨ (Issue - #721) - Swift PackageRemoteͷͷ͔͠ରԠͯ͠ͳ͔ͬͨ
ͳΜ͔ΜͰ Δ͜ͱʹͳͬͨ
ࡉ͔͍ܦҢ - TwitterͰ۪ஒΔ
- RepoͷCollaboratorͰ͋Δgiginet͞Μ͔Βͦͦͷ͔͞ΕΔ ࡉ͔͍ܦҢ
ͬͯΈ͔ͬ ࡉ͔͍ܦҢ
OSSߩݙͰؾΛ͚ͭΔ͜ͱ
OSSߩݙͰؾΛ͚ͭΔ͜ͱTips - ޙํޓੑΛอͭ - TestΛॻ͘ - CONTRIBUTING.md ΛಡΜͰ͔ΒPRΛ࡞Δ - PRʹৄ͍͠આ໌Λॻ͘ʢඞཁͳΒϕϯνϚʔΫʣ
- PRߟ͑ͨ΄Ͳૣ͘Ϛʔδ͞Εͳ͍ͱߟ͑Δ
ࠓճͷ࣮ϑϩʔ - Forkͯ͠branchΛΔ - ίʔυॻ͘ - IssueΛݐͯΔʢࠓճ͢Ͱʹ͋ͬͨͭબΜͩʣ - PRΛͭͬͯ͘ɺϨϏϡʔ͞Εͯɺमਖ਼͢Δ -
Merge!
ͷࠓճͷ߹ - TwitterͷҰޙ͘Β͍ʹPR࡞
- Approve͞Ε͚ͨͲΤοδέʔε͕NGͩͬͨͷͰमਖ਼ ͷࠓճͷ߹
- Code OwnerʹίϝϯτΛ͏ ͷࠓճͷ߹
- ଞͷόάݟ͚ͭͨͷͰ͍ͭͰʹमਖ਼ ͷࠓճͷ߹
͔ͦͬΒޙʹϚʔδ ͷࠓճͷ߹
XcodeGenͷߩݙͰྑ͔ͬͨ݅ - ྲྀੴʹΒͳ͍ͱଠଧͪͰ͖ͳ͍͕͋ͬͨ - Xcode ProjectͷϑΥʔϚοτʹৄ͘͠ͳͬͨ - XcodeGenͷҠߦํ๏͕ΑΓৄ͘͠ͳͬͨ - OSSͷContirbuterಊʑͱ໊ΕΔΑ͏ʹͳͬͨ
- ಘ͕ͨࣝɺXcode ProjectͷConflictղফͷTipsʹͳΔ
ͨͩɺͦΕͰXcodeGenͷҠߦ… - ͕ɺProject͔ΒYAMLΛੜ͢ΔػೳͷPR͕͋Δ - ϚϯϞεϓϩδΣΫτͩͱ͔ͳΓ͍͠ - ײ৮తʹ΄΅͑Δ͕ɺશͳҠߦ͍͠ - https://github.com/yonaskolb/XcodeGen/pull/735 -
Ϛʔδ͞Εͯͳ͍ͷͰ͝ར༻ࣗݾͰ
Conclusion
Conclusion - XcodeGenͷLocal Swift PackageͷରԠΛͨ͠ - XcodeGenؾܰʹContributeͰ͖ΔΑʂ - ରԠΛ௨ͯ͡Xcode ProjectͷϑΥʔϚοτʹৄ͘͠ͳͬͨ
- ↑ʹ͓͔͛ͰXcode ProjectͷConflictʹ߹ཧతʹઓ͑ΔΑ͏ʹ
ΈΜͳOSSʹContribute