SlideShare a Scribd company logo
Have No MacBook,
  Will Code Anyway*
 Putting the “Mobile” in Mobile App Development




   *How To Write   and Test your own code
on your iPhone/iPad without carrying your Mac
                                                  @CarlAllenBrown
XCode for iOS
Of course, it doesn’t exist, but just
     how close can we get?
Well, it’s not
quite there, yet...
But it’s usable. I use it several times
                a week.
But Why?
Wouldn’t a laptop be easier?
Because it’s convenient
It’s useable more
       places
 Standing in line can be productive,
but a laptop would be too awkward.
It’s Social

An iPad is a better tool for
communicating with iOS
App development
customers

When demonstrating an
App or showing a design to
a customer with a laptop,
they’re never as interactive
as they are when I’m using
the iPad
It’s powerful enough
        *Graphic   from http://www.iakttakelser.com/2011/03/on-feeds-and-speeds.html
It’s a growing market
So what do you have?

The project is called
XCAB for now (it stands
for XCode AutoBuild), and
it’s available on GitHub
under an MIT license.

It’s written in Bourne Shell
at the moment

I’d consider it in the
“Advanced Proof of
Concept” stage
So, how does it work?
You start with a connected
         iOS device with you*




*And   a network-connected Mac running back at the office
You use a Dropbox-enabled
           App

         Dropbox



         Textastic (Editor for iPad)


         Nebulous Notes (Universal)
To make changes to your
       Dropbox
Which get checked into Git
New Git commits get built
Each build gets turned into
 a installable web archive




Using iOS Beta Builder
Which gets written to your
public web dir on Dropbox
Your iPhone/iPad is sent a
push notification over Boxcar
The iOS device follows the
link in the push notification
And the App Gets Installed




So you can test, and either iterate or notify your
                    customer
So, how well does it work?
How well does it work?
How do I use it?

XCAB will make a directory in your XCAB directory for each
PROJECT that it can check out from the path in the
XCAB.conf file
Into that directory will be placed a file that lists the branches
and tags for that project so you can see your options
If you make a new directory, it will check out the closest-
named branch/tag it can find into that directory (creating a
branch with the name of the directory if it doesn’t exist).
Any files changed in that directory will cause a build and a
push notification (if there is an associated XCode project)
Demo
                                 We’ll see if this works :)




*If   not, I’ve got some static screenshots to fall back on that I’ll walk you through
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Developing iOS apps on your iPad with XCAB
Isn’t that really, really complicated?
Why, YES, yes it is.
Simplification is coming

Working on making a Mac App
to do the Server-side Stuff

and an iOS App do to branch
creation, checkouts, add new
projects, receive the push
notifications, etc.

Want you to be able to use
your own editor App, so it
won’t be a full IDE.

No ETA, though.
How do I set this up?
           Part 1: Prerequisites



Put a Dropbox in your Home directory on your Mac
Get Boxcar App and Set up Boxcar account (http://boxcar.io)
  Enable Growl/API access
Get and build the command-line Beta Builder from
• git://github.com/sgruby/iOS-BetaBuilder.git




                            65
How do I set this up?
       Part 2: Keychain for Cert Signing
   If you want it run without being logged into your session (e.g.
   from cron), you have to make* a new Keychain with just your
   code-signing Cert and public/private key pair that is locked by a
   password you don’t mind hard-coding into a script.




*See   http://stackoverflow.com/questions/577750/running-xcodebuild-from-a-forked-terminal
                                       66
How do I set this up?
                   Part 3: XCAB

Get the code from https://github.com/carlbrown/XCAB
Copy XCAB.settings.sample to XCAB.settings
Edit the variables in XCAB.settings as needed
  See next slide
run run_me_to_verify_install.sh
    fix anything it points out
    follow its instructions to get the server running


                                67
XCAB.settings.sample
What’s the catch?
There’s no provision for managing XCode projects or xib files
(you’ll still have to do all that on the Mac)
  In other words, you can’t add new files or edit GUIs
  Technically, they’re just XML, but really, just don’t bother for
  anything more complicated that changing the name on the
  signing certificate
What’s the catch?
There’s no provision for managing XCode projects or xib files
(you’ll still have to do all that on the Mac)
  In other words, you can’t add new files or edit GUIs
  Technically, they’re just XML, but really, just don’t bother for
  anything more complicated that changing the name on the
  signing certificate
No auto-complete or refactoring or debugging or instruments
What’s the catch?
There’s no provision for managing XCode projects or xib files
(you’ll still have to do all that on the Mac)
  In other words, you can’t add new files or edit GUIs
  Technically, they’re just XML, but really, just don’t bother for
  anything more complicated that changing the name on the
  signing certificate
No auto-complete or refactoring or debugging or instruments
The lag and long cycle time gets old
What’s the catch?
There’s no provision for managing XCode projects or xib files
(you’ll still have to do all that on the Mac)
  In other words, you can’t add new files or edit GUIs
  Technically, they’re just XML, but really, just don’t bother for
  anything more complicated that changing the name on the
  signing certificate
No auto-complete or refactoring or debugging or instruments
The lag and long cycle time gets old
Oh, and did I mention it’s really overly complicated
Questions?


Email: carlb@pobox.com (H) carlb@PDAgent.com (W)
Twitter: @CarlAllenBrown
Blog: http://www.EscortMissions.com
I'll put this presentation up at http://www.slideshare.net/
carlbrown/
References

http://www.oiledmachine.com/posts/2010/10/27/automated-
ota-ios-app-distribution.html
http://stackoverflow.com/questions/577750/running-
xcodebuild-from-a-forked-terminal
http://help.boxcar.io/kb/developers/sending-yourself-
notifications
http://www.iakttakelser.com/2011/03/on-feeds-and-
speeds.html

More Related Content

PPTX
Untangling7
PPTX
Untangling6
PPTX
Untangling4
PDF
Front-End Modernization for Mortals
PPTX
Untangling the web9
PDF
Fewd week4 slides
PDF
Cutting the Fat
PDF
Matteo Manchi - React Native for multi-platform mobile applications - Codemot...
Untangling7
Untangling6
Untangling4
Front-End Modernization for Mortals
Untangling the web9
Fewd week4 slides
Cutting the Fat
Matteo Manchi - React Native for multi-platform mobile applications - Codemot...

What's hot (20)

PPTX
Untangling the web11
PPTX
Untangling the web10
PDF
ITB2019 CommandBox vs Node.js - Nolan Erck
PPTX
Chatbots
PPTX
Untangling8
PDF
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
PPTX
Creating books app with react native
PDF
Crash Course in AngularJS + Ionic (Deep dive)
PPTX
Internal workshop react-js-mruiz
PDF
From zero to hero with React Native!
PDF
Intro to react native
PPTX
React js basics
PPTX
Untangling spring week1
PDF
Introduction to React Native
PDF
Codemotion Rome 2015 Bluemix Lab Tutorial
PDF
React Component Library Design @WalmartLabs
PPT
Welcome to IE8 - Integrating Your Site With Internet Explorer 8
PPTX
Developing silverlight 4 applications with expression blend 4 (30 Abr 2010)
PDF
Cutting the Fat by Tiffany Conroy
PDF
Getting Started with React Native (and should I use it at all?)
Untangling the web11
Untangling the web10
ITB2019 CommandBox vs Node.js - Nolan Erck
Chatbots
Untangling8
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
Creating books app with react native
Crash Course in AngularJS + Ionic (Deep dive)
Internal workshop react-js-mruiz
From zero to hero with React Native!
Intro to react native
React js basics
Untangling spring week1
Introduction to React Native
Codemotion Rome 2015 Bluemix Lab Tutorial
React Component Library Design @WalmartLabs
Welcome to IE8 - Integrating Your Site With Internet Explorer 8
Developing silverlight 4 applications with expression blend 4 (30 Abr 2010)
Cutting the Fat by Tiffany Conroy
Getting Started with React Native (and should I use it at all?)
Ad

Similar to Developing iOS apps on your iPad with XCAB (20)

PDF
MacRuby & RubyMotion - Madridrb May 2012
PDF
Xcode, Basics and Beyond
PDF
Ci for i-os-codemash-01.2013
PPT
State ofappdevelopment
PDF
Enterprise ipad Development with notes
PDF
Letting your designer tweak your iOS app
PDF
Jazoon12 355 aleksandra_gavrilovska-1
PPTX
Jenkins CI/CD setup for iOS in Mac OSX
PDF
Automating Your Way out of the Dark Ages: Our Experience with (And Without) P...
PDF
Automate your iOS deployment a bit
PDF
Intro to Continuous Integration at SoundCloud
PDF
iOS Development Survival Guide for the .NET Guy
PDF
Building Papers
PPT
Continuos integration for iOS projects
PDF
Xcode 6 release_notes
PDF
Building an Open Source iOS app: lessons learned
PDF
iOS Indie Developer Toolkit - CocoaHeads 3city
PDF
Apple WWDC Mobility Review 2014
PDF
RubyMotion
PDF
From Xcode to App Store, the Agile way @ MoMo Tallinn 06.06.11
MacRuby & RubyMotion - Madridrb May 2012
Xcode, Basics and Beyond
Ci for i-os-codemash-01.2013
State ofappdevelopment
Enterprise ipad Development with notes
Letting your designer tweak your iOS app
Jazoon12 355 aleksandra_gavrilovska-1
Jenkins CI/CD setup for iOS in Mac OSX
Automating Your Way out of the Dark Ages: Our Experience with (And Without) P...
Automate your iOS deployment a bit
Intro to Continuous Integration at SoundCloud
iOS Development Survival Guide for the .NET Guy
Building Papers
Continuos integration for iOS projects
Xcode 6 release_notes
Building an Open Source iOS app: lessons learned
iOS Indie Developer Toolkit - CocoaHeads 3city
Apple WWDC Mobility Review 2014
RubyMotion
From Xcode to App Store, the Agile way @ MoMo Tallinn 06.06.11
Ad

More from Carl Brown (20)

PDF
GDPR, User Data, Privacy, and Your Apps
PDF
New in iOS 11.3b4 and Xcode 9.3b4
PDF
Managing Memory in Swift (Yes, that's a thing)
PDF
Better Swift from the Foundation up #tryswiftnyc17 09-06
PDF
Generics, the Swift ABI and you
PDF
Swift GUI Development without Xcode
PDF
what's new in iOS10 2016-06-23
PDF
Open Source Swift: Up and Running
PDF
Parse migration CocoaCoders April 28th, 2016
PDF
Swift 2.2 Design Patterns CocoaConf Austin 2016
PDF
Advanced, Composable Collection Views, From CocoaCoders meetup Austin Feb 12,...
PDF
Gcd cc-150205
PDF
Cocoa coders 141113-watch
PDF
iOS8 and the new App Store
PDF
Dark Art of Software Estimation 360iDev2014
PDF
Intro to cloud kit Cocoader.org 24 July 2014
PDF
Welcome to Swift (CocoaCoder 6/12/14)
PDF
Writing Apps that Can See: Getting Data from CoreImage to Computer Vision - ...
PPT
Introduction to Git Commands and Concepts
PDF
REST/JSON/CoreData Example Code - A Tour
GDPR, User Data, Privacy, and Your Apps
New in iOS 11.3b4 and Xcode 9.3b4
Managing Memory in Swift (Yes, that's a thing)
Better Swift from the Foundation up #tryswiftnyc17 09-06
Generics, the Swift ABI and you
Swift GUI Development without Xcode
what's new in iOS10 2016-06-23
Open Source Swift: Up and Running
Parse migration CocoaCoders April 28th, 2016
Swift 2.2 Design Patterns CocoaConf Austin 2016
Advanced, Composable Collection Views, From CocoaCoders meetup Austin Feb 12,...
Gcd cc-150205
Cocoa coders 141113-watch
iOS8 and the new App Store
Dark Art of Software Estimation 360iDev2014
Intro to cloud kit Cocoader.org 24 July 2014
Welcome to Swift (CocoaCoder 6/12/14)
Writing Apps that Can See: Getting Data from CoreImage to Computer Vision - ...
Introduction to Git Commands and Concepts
REST/JSON/CoreData Example Code - A Tour

Recently uploaded (20)

PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Machine learning based COVID-19 study performance prediction
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PPTX
Spectroscopy.pptx food analysis technology
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Cloud computing and distributed systems.
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Encapsulation theory and applications.pdf
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
cuic standard and advanced reporting.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Programs and apps: productivity, graphics, security and other tools
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Machine learning based COVID-19 study performance prediction
Mobile App Security Testing_ A Comprehensive Guide.pdf
Review of recent advances in non-invasive hemoglobin estimation
20250228 LYD VKU AI Blended-Learning.pptx
Assigned Numbers - 2025 - Bluetooth® Document
Spectroscopy.pptx food analysis technology
Reach Out and Touch Someone: Haptics and Empathic Computing
Unlocking AI with Model Context Protocol (MCP)
Cloud computing and distributed systems.
Diabetes mellitus diagnosis method based random forest with bat algorithm
Spectral efficient network and resource selection model in 5G networks
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Encapsulation_ Review paper, used for researhc scholars
Encapsulation theory and applications.pdf
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
cuic standard and advanced reporting.pdf

Developing iOS apps on your iPad with XCAB

  • 1. Have No MacBook, Will Code Anyway* Putting the “Mobile” in Mobile App Development *How To Write and Test your own code on your iPhone/iPad without carrying your Mac @CarlAllenBrown
  • 2. XCode for iOS Of course, it doesn’t exist, but just how close can we get?
  • 3. Well, it’s not quite there, yet... But it’s usable. I use it several times a week.
  • 4. But Why? Wouldn’t a laptop be easier?
  • 6. It’s useable more places Standing in line can be productive, but a laptop would be too awkward.
  • 7. It’s Social An iPad is a better tool for communicating with iOS App development customers When demonstrating an App or showing a design to a customer with a laptop, they’re never as interactive as they are when I’m using the iPad
  • 8. It’s powerful enough *Graphic from http://www.iakttakelser.com/2011/03/on-feeds-and-speeds.html
  • 10. So what do you have? The project is called XCAB for now (it stands for XCode AutoBuild), and it’s available on GitHub under an MIT license. It’s written in Bourne Shell at the moment I’d consider it in the “Advanced Proof of Concept” stage
  • 11. So, how does it work?
  • 12. You start with a connected iOS device with you* *And a network-connected Mac running back at the office
  • 13. You use a Dropbox-enabled App Dropbox Textastic (Editor for iPad) Nebulous Notes (Universal)
  • 14. To make changes to your Dropbox
  • 15. Which get checked into Git
  • 16. New Git commits get built
  • 17. Each build gets turned into a installable web archive Using iOS Beta Builder
  • 18. Which gets written to your public web dir on Dropbox
  • 19. Your iPhone/iPad is sent a push notification over Boxcar
  • 20. The iOS device follows the link in the push notification
  • 21. And the App Gets Installed So you can test, and either iterate or notify your customer
  • 22. So, how well does it work?
  • 23. How well does it work?
  • 24. How do I use it? XCAB will make a directory in your XCAB directory for each PROJECT that it can check out from the path in the XCAB.conf file Into that directory will be placed a file that lists the branches and tags for that project so you can see your options If you make a new directory, it will check out the closest- named branch/tag it can find into that directory (creating a branch with the name of the directory if it doesn’t exist). Any files changed in that directory will cause a build and a push notification (if there is an associated XCode project)
  • 25. Demo We’ll see if this works :) *If not, I’ve got some static screenshots to fall back on that I’ll walk you through
  • 75. Isn’t that really, really complicated?
  • 76. Why, YES, yes it is.
  • 77. Simplification is coming Working on making a Mac App to do the Server-side Stuff and an iOS App do to branch creation, checkouts, add new projects, receive the push notifications, etc. Want you to be able to use your own editor App, so it won’t be a full IDE. No ETA, though.
  • 78. How do I set this up? Part 1: Prerequisites Put a Dropbox in your Home directory on your Mac Get Boxcar App and Set up Boxcar account (http://boxcar.io) Enable Growl/API access Get and build the command-line Beta Builder from • git://github.com/sgruby/iOS-BetaBuilder.git 65
  • 79. How do I set this up? Part 2: Keychain for Cert Signing If you want it run without being logged into your session (e.g. from cron), you have to make* a new Keychain with just your code-signing Cert and public/private key pair that is locked by a password you don’t mind hard-coding into a script. *See http://stackoverflow.com/questions/577750/running-xcodebuild-from-a-forked-terminal 66
  • 80. How do I set this up? Part 3: XCAB Get the code from https://github.com/carlbrown/XCAB Copy XCAB.settings.sample to XCAB.settings Edit the variables in XCAB.settings as needed See next slide run run_me_to_verify_install.sh fix anything it points out follow its instructions to get the server running 67
  • 82. What’s the catch? There’s no provision for managing XCode projects or xib files (you’ll still have to do all that on the Mac) In other words, you can’t add new files or edit GUIs Technically, they’re just XML, but really, just don’t bother for anything more complicated that changing the name on the signing certificate
  • 83. What’s the catch? There’s no provision for managing XCode projects or xib files (you’ll still have to do all that on the Mac) In other words, you can’t add new files or edit GUIs Technically, they’re just XML, but really, just don’t bother for anything more complicated that changing the name on the signing certificate No auto-complete or refactoring or debugging or instruments
  • 84. What’s the catch? There’s no provision for managing XCode projects or xib files (you’ll still have to do all that on the Mac) In other words, you can’t add new files or edit GUIs Technically, they’re just XML, but really, just don’t bother for anything more complicated that changing the name on the signing certificate No auto-complete or refactoring or debugging or instruments The lag and long cycle time gets old
  • 85. What’s the catch? There’s no provision for managing XCode projects or xib files (you’ll still have to do all that on the Mac) In other words, you can’t add new files or edit GUIs Technically, they’re just XML, but really, just don’t bother for anything more complicated that changing the name on the signing certificate No auto-complete or refactoring or debugging or instruments The lag and long cycle time gets old Oh, and did I mention it’s really overly complicated
  • 86. Questions? Email: carlb@pobox.com (H) carlb@PDAgent.com (W) Twitter: @CarlAllenBrown Blog: http://www.EscortMissions.com I'll put this presentation up at http://www.slideshare.net/ carlbrown/

Editor's Notes

  • #2: My name is Carl Brown.\nI have several Apps in the store. The first iPhone app I worked on to be published was the LIVESTRONG.COM Calorie Tracker \nI have a Day Job, a Family and a Life,\nand an Mobile App Dev company on the side since 2003.\nI try to be responsive to both my dev customers and my family, but it’s difficult,\nSo I try to squeeze the most work out of the time that I have\n
  • #3: \n
  • #4: \n
  • #5: Before I start talking about where the project is, let me take a minute to talk about why I’m doing this.\n\nI had a customer who sent me a text message while I was at lunch asking why I hadn’t changed something we’d agreed on.\nIt was a trivial one-line change, and it had slipped my mind. It took me 30 seconds to fix, but it was 90 minutes before I got to my laptop to be able to do it.\nI wanted to be more responsive than that, So I developed a way to write and test code with just my iPhone (or iPad)\n
  • #6: It’s far easier to carry an iPad than a laptop, and I don’t want to carry both. Plus, my iPhone is almost never out of arm’s reach, and the same solution works for both the iPad and the iPhone.\n\n\n
  • #7: I also carry my iPad far more often. When leaving the office to go to lunch, I’d rarely take my laptop, but I almost always take my iPad.\n
  • #8: Most (of my) customers will point to and touch the iPad screen while we’re discussing an App, but won’t do that to a laptop screen, and I get better information when they’re more animated.\n
  • #9: This is partly stubbornness on my part, but an iPad is as capable as a Macbook I used to write code on a few years ago. So it ought to be able to be used to write code.\n
  • #10: People who are (almost) always connected to iPads (and tablet PCs in general) are a growing market (I believe, at least).\n\nI also believe that, by being one of those people myself, I’ll become familiar with the day to day annoyances of making an iPad a primary computer. Each one of those annoyances is a potential market opportunity with which I otherwise wouldn’t have become familiar.\n
  • #11: You can get the code from https://github.com/carlbrown/XCAB (url is also later in the presentation).\n\n
  • #12: There are several steps in the process, still too many, but I’ll walk you through them.\n
  • #13: I have a refurb mini in my Living Room that I bought to be an Home Sharing server, and it’s more than up to the task.\n\nI’ve run it on my laptop, too, from time to time.\n
  • #14: Textastic is my favorite code editor for the iPad. Nebulous Notes was my previous favorite, and it’s my monospaced Dropbox-enabled editor of choice for the iPhone\n
  • #15: The way you do that is kind of arbitrary - we’ll talk more about it later, so just go with me for now.\n
  • #16: In theory, it should be possible to use SVN or Mercurial or something else, but I use git for my projects, so that’s what got built in.\n
  • #17: This is true whether the commits came from you or not, so I’ll get notifications for new checkins that other people make to github for some projects.\n
  • #18: Beta Builder automates the process of making a web directory set up for iOS 4.0+’s over-the-air installs. It’s available on the App Store (although my scripts use the command line version from GitHub - see URL later in presentation).\n
  • #19: You can also have it RSync’ed to a web server, but with Dropbox it has fewer moving parts, and you can delete the folder from Dropbox from your device to cause it to get rebuilt.\n
  • #20: Boxcar (from http://boxcar.io) is an App you can buy to get arbitrary notifications.\n\nYou also get an email with more detailed information.\n
  • #21: Boxcar following the link launches a webkit UIWebView*, which follows the itms:// itunes URL scheme to cause the app to be installed.\n\n*Or at least I’m pretty sure that’s what it’s doing, but I haven’t reverse-engineered Boxcar or anything.\n
  • #22: \n
  • #23: \n
  • #24: It’s still, really, a proof of concept, although I do use it a lot.\n\nI’m sure there are conditions that don’t apply to me that cause it to break, but I’d love to find those and fix them.\n
  • #25: \n
  • #26: \n
  • #27: I’m going to fire up Textastic here, although you could use any Dropbox enabled editor\n
  • #28: Navigate into my XCAB folder. I keep it in my “Code” directory, although you can put it wherever you want (it’s specified in the XCAB.settings file on the server).\n
  • #29: \n
  • #30: Grab the config file\n
  • #31: \n
  • #32: Since they say Twitter clients are the new “Hello, World”, let’s use one for our example. Here’s one on github I can use to illustrate the process.\n\nI’ll add in the line with the git repo path, and the local name I want to call it, separated by an equals sign.\n
  • #33: Upload the config file back to Dropbox\n
  • #34: And before too long, I’ll get a TweetWall directory show up\n
  • #35: Which contains files that tell me what branches and tags exist\n
  • #36: So there’s a master branch. We could work in it, but let’s use a different one to keep our changes clean.\n
  • #37: Let’s make a master-carl branch (which will spawn off the master branch) for us to make our changes in.\n
  • #38: Now we’ve been notified that our new branch has been created and the files from it have been added to our Dropbox folder.\n
  • #39: Here we have the contents of our new branch\n
  • #40: Let’s select the project file\n
  • #41: Download it\n
  • #42: Change the iPhone Developer lines to not have a name anymore, and change the default Build type from Release to Debug. That way we won’t have code-signing problems.\n
  • #43: Upload that back to Dropbox\n
  • #44: And, we have a new build. Tap View\n
  • #45: Tap on the notification in Boxcar\n
  • #46: Tap on the “view original” link\n
  • #47: Tap here to Install\n
  • #48: Tap again to Install\n
  • #49: Sometimes Dropbox’s servers haven’t finished synching up, yet, so you have to hit “Retry” a couple of times at this point.\n
  • #50: And it’s done, let’s launch it.\n
  • #51: OK, so it’s running - let’s change the default search to something more relevant\n
  • #52: We’re going to change “I’m happy” there on line 38.\n
  • #53: That’s better.\n
  • #54: Upload that.\n
  • #55: Oh, look, we have a new build ready.\n
  • #56: Tap on the link\n
  • #57: Tap to start the download\n
  • #58: Tap to allow the download\n
  • #59: Like I said before, sometimes Dropbox’s servers haven’t finished synching up, yet, so you have to hit “Retry” a couple of times at this point.\n
  • #60: And, we’ll launch it\n
  • #61: And we have a more relevant search term.\n
  • #62: \n
  • #63: \n
  • #64: \n
  • #65: \n
  • #66: \n
  • #67: This way, if you get logged out, or your machine reboots because of a Lightning Storm (not that we ever have that happen in Central Texas) it will work anyway\n
  • #68: \n
  • #69: You’ll need to rename this to XCAB.settings on your server directory and edit the values as appropriate.\n
  • #70: \n
  • #71: \n
  • #72: \n
  • #73: \n
  • #74: \n
  • #75: \n