Your SlideShare is downloading. ×
Automating Your Way out of the Dark Ages: Our Experience with (And Without) PhoneGap Build
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Automating Your Way out of the Dark Ages: Our Experience with (And Without) PhoneGap Build

2,365
views

Published on

This is a talk sharing TripCase's (http://phonegap.com/app/tripcase/) experience with (and without) PhoneGap Build. We'll walk through our journey and discuss how it shaped expectations on how quickly …

This is a talk sharing TripCase's (http://phonegap.com/app/tripcase/) experience with (and without) PhoneGap Build. We'll walk through our journey and discuss how it shaped expectations on how quickly we should be getting our code in the hands of fellow testers and stakeholders.


0 Comments
16 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,365
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
21
Comments
0
Likes
16
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Automating Your Way out of the Dark Ages Our experience with (and without) PhoneGap Build @burin creative commons licensed (BY-NC-ND) flickr photo by Fred Seibert: http://flickr.com/photos/84568447@N00/2060261678
  • 2. This Talk our experience w/ PhoneGap Build and how it spoiled us about PhoneGap specifically what we did when we couldn’t use it anymore
  • 3. Timeline Building Manually w/ Xcode & Eclipse Building/Distributing w/ PhoneGap Build Manual Builds (again) Distribution w/ TestFlight & HockeyApp Automated Build & Distribution
  • 4. The Redesign
  • 5. From: Native iOS Native Android Native BlackBerry Native Windows Mobile mobile web touch web Android touch
  • 6. To: HTML5! ! mobile web, iOS, Android, BlackBerry*
  • 7. creative commons licensed (BY-NC-SA) flickr photo by x-ray delta one: http://flickr.com/photos/x-ray_delta_one/3928200642 Building stuff. Feeling productive. HTML5 all the things.
  • 8. Chrome = WebKit Safari = WebKit Android browser = WebKit BlackBerry browser = WebKit Test in Chrome, because WebKit.
  • 9. QA team: “I wonder how it behaves on Android 2.3 wrapped”
  • 10. Test in Chrome, because WebKit? Nope. :(
  • 11. iOS:
 Safari. WebView. Chrome. Android:
 Browser. WebView. Chrome. BlackBerry:
 6.0? 7.0? 10? Chrome Blink?
  • 12. I’ll just Build Manually with Xcode & Eclipse
  • 13. The Dark Age
  • 14. git pull
  • 15. compass compile
  • 16. node r.js -o app.build.js
  • 17. ⌘C ⌘P Copy/Paste Files into www
  • 18. Plug In Phone
  • 19. Plug In Phone #2
  • 20. Plug In Phone #3
  • 21. The Renaissance
  • 22. With PhoneGap Build:
  • 23. git pull ./build.sh
  • 24. Automate All the Things!
  • 25. # on every commit # 1) build app # 2) zip it # 3) upload via API
  • 26. Went from building once a week (maybe) to
 building multiple times a day
  • 27. Timeline Building Manually w/ Xcode & Eclipse Building/Distributing w/ PhoneGap Build Manual Builds (again) Distribution w/ TestFlight & HockeyApp Automated Build & Distribution
  • 28. Outgrowth: Manual Builds Again
  • 29. Unsupported Plugins
  • 30. Manually Building (again)
  • 31. Manually Distributing (again)
  • 32. The Dark Age 2.0
  • 33. “Building”
  • 34. git pull
  • 35. ./build.sh
  • 36. “Distributing”
  • 37. Me: "Want to help? Install this app and email me your UDID" Teammate: *"I emailed you my UDID the other day, when can I install the app?"* "Um.. let me check. I need to add it to the provisioning profile." Add UDID to provisioning profile git pull Run javascript build script Push a button Forgot to get new provisioning profile into Xcode Refresh profiles Push a button Send it out "it wouldn't install, what's the deal?"* "lemme try again" restart xcode push a button "ok try now"
  • 38. The Renaissance 2.0
  • 39. TestFlight to the rescue! (for iOS)
  • 40. Hockey App to the rescue! (for Android)
  • 41. Automating the Build AND Distribution
  • 42. Goals Push button “deploy” Continuous Integration Reduce TTHN (Time to HackerNews)
  • 43. Xcode
  • 44. Xcode Command Line Tools xcrun ! xcodebuild ! agvtool !
  • 45. Shenzhen Ruby gem that creates .ipa files ! Distributes to TestFlight ! Part of nomad (http://nomad-cli.com/)
  • 46. gem install shenzhen
  • 47. ipa build -s {{projectName}} -c Release
  • 48. ipa distribute ——api_token {{apiToken}} ——team_token {{teamToken}} ——lists "Core" --notes {{notes}} --notify --replace
  • 49. Eclipse
  • 50. ant release
  • 51. mv bin/{{AppName}}.apk ~/Dropbox/Builds/{{appName}}.apk
  • 52. More Automation
  • 53. configure api endpoint add build information concatenate/minify compile templates compass compile move files to xcode move files to eclipse Grunt Tasks for JS Code
  • 54. configure xcode project bundle id to be branch name configure xcode project app name to be branch name configure xcode project build id to be commit revision build xcode project distribute app to test flight build eclipse project distribute to server for download Grunt Tasks for Xcode/Eclipse
  • 55. Cordova CLI does some of this for you, too
  • 56. cordova build ios cordova prepare ios cordova compile ios cordova emulate ios Cordova CLI
  • 57. Resources [PhoneGap](https://phonegap.com/) [PhoneGap Build](https://build.phonegap.com/) [TestFlight](https://testflightapp.com/) [Hockey App](http://hockeyapp.net/) [GruntJS](http://gruntjs.com/) [shenzhen](https://github.com/mattt/shenzhen) @burinTwitter:

×