Better IOS Development with Groovy
-
Upload
spring-by-pivotal -
Category
Technology
-
view
1.183 -
download
0
Transcript of Better IOS Development with Groovy
![Page 1: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/1.jpg)
BETTERIOSDEVELOPMENTWITHGROOVY
RahulSomasunderam(@rahulsom)
![Page 2: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/2.jpg)
ABOUTME
![Page 3: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/3.jpg)
WHEREIWORK
![Page 4: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/4.jpg)
![Page 5: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/5.jpg)
![Page 6: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/6.jpg)
WHYIOS?Andwhyatathisconference?
![Page 7: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/7.jpg)
WHATDOESITTAKETOBUILDANIOSAPP?
![Page 8: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/8.jpg)
XCODEORAPPCODE
![Page 9: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/9.jpg)
SWIFTVSOBJECTIVE-C
![Page 10: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/10.jpg)
SWIFTVSOBJECTIVE-C
Tooling
![Page 11: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/11.jpg)
SWIFTVSOBJECTIVE-C
Tooling
Libraries
![Page 12: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/12.jpg)
DEPENDENCYMANAGEMENT
![Page 13: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/13.jpg)
DEPENDENCYMANAGEMENT
Librariesvsframeworks
![Page 14: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/14.jpg)
![Page 15: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/15.jpg)
AndIdon’tmeantransitivedependencies…
![Page 16: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/16.jpg)
DEPENDENCIES
![Page 17: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/17.jpg)
DEPENDENCIES
Yourappneedsdependencies
![Page 18: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/18.jpg)
DEPENDENCIES
Yourappneedsdependencies
DependenciescanbeinstalledwithCocoapods
![Page 19: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/19.jpg)
DEPENDENCIES
Yourappneedsdependencies
DependenciescanbeinstalledwithCocoapods
Cocoapodsisarubygem
![Page 20: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/20.jpg)
DEPENDENCIES
Yourappneedsdependencies
DependenciescanbeinstalledwithCocoapods
Cocoapodsisarubygem
RubygemscanbeinstalledwithBundler
![Page 21: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/21.jpg)
DEPENDENCIES
Yourappneedsdependencies
DependenciescanbeinstalledwithCocoapods
Cocoapodsisarubygem
RubygemscanbeinstalledwithBundler
YouWANTrubyintheuserspace;soRBENV
![Page 22: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/22.jpg)
DEPENDENCIES
Yourappneedsdependencies
DependenciescanbeinstalledwithCocoapods
Cocoapodsisarubygem
RubygemscanbeinstalledwithBundler
YouWANTrubyintheuserspace;soRBENV
ThereisabrewformulaforRBENV
![Page 23: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/23.jpg)
DEPENDENCIES
Yourappneedsdependencies
DependenciescanbeinstalledwithCocoapods
Cocoapodsisarubygem
RubygemscanbeinstalledwithBundler
YouWANTrubyintheuserspace;soRBENV
ThereisabrewformulaforRBENV
brewisinstalledusingsystemruby
![Page 24: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/24.jpg)
BUILDTOOLSNot10bulletpointstellingyoutopointandclickatthings.
![Page 25: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/25.jpg)
![Page 26: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/26.jpg)
XCODEBUILDxcodebuild \ -scheme Todos \ -workspace Todos.xcworkspace \ -sdk iphonesimulator \ -configuration Debug \ DSTROOT=/Users/rahul/src/Todos/build/dst \ OBJROOT=/Users/rahul/src/Todos/build/obj \ SYMROOT=/Users/rahul/src/Todos/build/sym \ SHARED_PRECOMPS_DIR=/Users/rahul/src/Todos/build/shared \ -destination \ 'platform=iOS Simulator,id=CAB835ED-3EE2-47B6-AD74-C06675651CEF' \ test
![Page 27: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/27.jpg)
XCODEBUILD
![Page 28: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/28.jpg)
XCODEBUILD
Toocomplexcommands-Unrulybashscripts
![Page 29: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/29.jpg)
XCODEBUILD
Toocomplexcommands-Unrulybashscripts
Differenttoolsforbuild,uploadtotestflight,hockeyapp
![Page 30: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/30.jpg)
XCODEBUILD
Toocomplexcommands-Unrulybashscripts
Differenttoolsforbuild,uploadtotestflight,hockeyapp
Verylittledocumentation,verysteeplearningcurve
![Page 31: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/31.jpg)
XCODEBUILD
Toocomplexcommands-Unrulybashscripts
Differenttoolsforbuild,uploadtotestflight,hockeyapp
Verylittledocumentation,verysteeplearningcurve
Whataboutfunctionaltesting?
![Page 32: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/32.jpg)
XCTOOLxctool \ -workspace Todos.xcworkspace \ -sdk iphonesimulator \ -scheme Todos \ test
![Page 33: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/33.jpg)
XCTOOL
![Page 34: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/34.jpg)
XCTOOL
WritteninObjective-C
![Page 35: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/35.jpg)
XCTOOL
WritteninObjective-C
NeedsadvancedknowledgeofObjective-C
![Page 36: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/36.jpg)
XCTOOL
WritteninObjective-C
NeedsadvancedknowledgeofObjective-C
Whataboutfunctionaltesting?
![Page 37: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/37.jpg)
NOMADCLIios profiles:list --team=ABCDE56789ipa build && ipa distribute
![Page 38: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/38.jpg)
NOMADCLI
![Page 39: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/39.jpg)
NOMADCLI
Writteninruby
![Page 40: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/40.jpg)
NOMADCLI
Writteninruby
Greatsupportforcertificates,distributionprofiles
![Page 41: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/41.jpg)
NOMADCLI
Writteninruby
Greatsupportforcertificates,distributionprofiles
GreatsupportfordistributionusingiTunesConnect
![Page 42: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/42.jpg)
NOMADCLI
Writteninruby
Greatsupportforcertificates,distributionprofiles
GreatsupportfordistributionusingiTunesConnect
Whatabouttesting?
![Page 43: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/43.jpg)
WHATWENEED
![Page 44: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/44.jpg)
WHATWENEED
Flexiblebuildsystem
![Page 45: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/45.jpg)
WHATWENEED
Flexiblebuildsystem
Supportfordistribution
![Page 46: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/46.jpg)
WHATWENEED
Flexiblebuildsystem
Supportfordistribution
Supportforfunctionaltesting
![Page 47: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/47.jpg)
WHATWENEED
Flexiblebuildsystem
Supportfordistribution
Supportforfunctionaltesting
Easytoinstall,evenifyou’reanenterprisesoftwarecompany
![Page 48: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/48.jpg)
WHATWENEED
Flexiblebuildsystem
Supportfordistribution
Supportforfunctionaltesting
Easytoinstall,evenifyou’reanenterprisesoftwarecompany
Easytorun
![Page 49: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/49.jpg)
GRADLEXCODEPLUGINbuildscript { repositories { maven { url "https://plugins.gradle.org/m2/" } } dependencies { classpath "gradle.plugin.org.openbakery:xcodePlugin:0.11.3" }}apply plugin: "org.openbakery.xcodeplugin"xcodebuild { workspace = 'Todos.xcworkspace' scheme = 'Todos' target = 'Todos' sdk = 'iphonesimulator'}
![Page 50: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/50.jpg)
GRADLEXCODEPLUGIN./gradlew xcodetest./gradlew appstoreUpload
![Page 51: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/51.jpg)
FUNCTIONALTESTING
![Page 52: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/52.jpg)
UIAUTOMATIONUSINGINSTRUMENTS
RecordandPlayback
DOMTreeaccess
Refactoring
ManagingState
TuneupJS?Bwoken?
![Page 53: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/53.jpg)
APPIUM
BasedonSelenium
ClientsforseverallanguagesincludingJava
Makesyourappstateless
![Page 54: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/54.jpg)
GROOVY+SPOCK
Spock’sexpressivetesting
Groovy’smetaprogrammingtoimproveaccesstoDOM
![Page 55: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/55.jpg)
CONTINUOUSINTEGRATION
![Page 56: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/56.jpg)
JENKINS
CloudbeesrunsaveryoldversionofOSXandXCode.
BringyourownJenkinsand/orBringyourownslaves.
![Page 57: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/57.jpg)
IMMUTABLESLAVES
There’snoDockerforOSX
Butthereisvagrant.[fragment]Kindof
You’rebetteroffmanagingslavesasmutableinstances
![Page 58: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/58.jpg)
TRAVISCI
RecentlyaddedGAsupportforXCode
Can’trunappiumyet.
![Page 59: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/59.jpg)
RESOURCESCode:
Slides:
https://github.com/rahulsom/todos-ios/
http://rahulsom.github.io/springone2gx-ios/
![Page 60: Better IOS Development with Groovy](https://reader033.fdocuments.in/reader033/viewer/2022061307/58ecd17d1a28ab73608b4723/html5/thumbnails/60.jpg)
THANKS