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

  • 2,215 views
Uploaded 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.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,215
On Slideshare
0
From Embeds
0
Number of Embeds
5

Actions

Shares
Downloads
20
Comments
0
Likes
15

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: