Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Fixing&the Swi$%Tooling Problem JP#Simard,#@simjp,#realm.io 1
Slide 2
Slide 2 text
2
Slide 3
Slide 3 text
3
Slide 4
Slide 4 text
4
Slide 5
Slide 5 text
5
Slide 6
Slide 6 text
6
Slide 7
Slide 7 text
7
Slide 8
Slide 8 text
What's'the'Problem? 8
Slide 9
Slide 9 text
Tangible)Problems • Missing'Tools • Incomplete'Tools • Buggy'Tools 9
Slide 10
Slide 10 text
Apple%is%very%private. 10
Slide 11
Slide 11 text
Apple%is%too%private. 11
Slide 12
Slide 12 text
Apple%releases%new%tools%yearly. 12
Slide 13
Slide 13 text
Apple%is%focused%on%different%things. 13
Slide 14
Slide 14 text
"Only&Apple&can&do&this" –"The"Lazy"Developer 14
Slide 15
Slide 15 text
15
Slide 16
Slide 16 text
What%do%other%communi/es%do? 16
Slide 17
Slide 17 text
A:#Mix#of#vendor.provided# tools#and#community# projects 17
Slide 18
Slide 18 text
What's'Missing'in'Swi.? 18
Slide 19
Slide 19 text
Lots! 19
Slide 20
Slide 20 text
What%Tools%are%Missing%in%Swi2? • Package(Manager • Refactoring(Tools • Automa7c(Code(Style(Detec7on(&(Enforcement • Documenta7on(Generator • Version(Manager • Fuzzy(Tes7ng 20
Slide 21
Slide 21 text
Thanks'{$COMMUNITY}! • Package(Manager((CocoaPods(&(Carthage) • Refactoring(Tools((AppCode) • Automa:c(Code(Style(Detec:on(&(Enforcement( (Swi2Lint) • Documenta:on(Generator((jazzy) • Version(Manager((chswi2) • Fuzzy(Tes:ng((Swi2Check) 21
Slide 22
Slide 22 text
Opportuni)es • Code&Genera+on&(???) • Test&Coverage&Genera+on&(???) • Sta+c&Code&Analysis&(???) • Instrumenta+on&(???) • LLVM&IR&Manipula+on&(???) 22
Slide 23
Slide 23 text
How$can$we$add$it$back$in? 23
Slide 24
Slide 24 text
Lots of#Reverse#Engineering 24
Slide 25
Slide 25 text
Hopper.app 25
Slide 26
Slide 26 text
class%dump 26
Slide 27
Slide 27 text
Xcode&Plugins 27
Slide 28
Slide 28 text
Clang 28
Slide 29
Slide 29 text
SourceKit 29
Slide 30
Slide 30 text
AppCode Supported)Plugin)Architecture 30
Slide 31
Slide 31 text
Apple's'No Different Than%Us! 31
Slide 32
Slide 32 text
well... 32
Slide 33
Slide 33 text
Risk 33
Slide 34
Slide 34 text
34
Slide 35
Slide 35 text
35
Slide 36
Slide 36 text
We#can#help#Apple 36
Slide 37
Slide 37 text
37
Slide 38
Slide 38 text
38
Slide 39
Slide 39 text
What%The Community Has$Done 39
Slide 40
Slide 40 text
40
Slide 41
Slide 41 text
41
Slide 42
Slide 42 text
42
Slide 43
Slide 43 text
Carthage 43
Slide 44
Slide 44 text
SourceKi)en 44
Slide 45
Slide 45 text
45
Slide 46
Slide 46 text
46
Slide 47
Slide 47 text
Swi$Lint 47
Slide 48
Slide 48 text
48
Slide 49
Slide 49 text
Leverage'the'community 49
Slide 50
Slide 50 text
Resources((1/2) • Swi%&Compiler&Crashes:&github.com/prac9calswi%/ swi%:compiler:crashes • Carthage:&github.com/Carthage/Carthage • CocoaPods:&cocoapods.org • Swi%Check:&github.com/typeli%/Swi%Check 50
Slide 51
Slide 51 text
Resources((2/2) • AppCode:)jetbrains.com/objc • chswi8:)github.com/neonichu/chswi8 • Swi8Doc:)swi8doc.org • jazzy:)github.com/realm/jazzy • Swi8Lint:)github.com/realm/Swi8Lint 51
Slide 52
Slide 52 text
Go#Forth and Build! 52
Slide 53
Slide 53 text
UIKonf().questions.ask()! JP#Simard,#@simjp,#realm.io 53