SlideShare a Scribd company logo
1 of 87
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
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

What's hot

Untangling the web11
Untangling the web11Untangling the web11
Untangling the web11Derek Jacoby
 
Untangling the web10
Untangling the web10Untangling the web10
Untangling the web10Derek Jacoby
 
ITB2019 CommandBox vs Node.js - Nolan Erck
ITB2019  CommandBox vs Node.js - Nolan ErckITB2019  CommandBox vs Node.js - Nolan Erck
ITB2019 CommandBox vs Node.js - Nolan ErckOrtus Solutions, Corp
 
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15GreeceJS
 
Creating books app with react native
Creating books app with react nativeCreating books app with react native
Creating books app with react nativeAli Sa'o
 
Crash Course in AngularJS + Ionic (Deep dive)
Crash Course in AngularJS + Ionic (Deep dive)Crash Course in AngularJS + Ionic (Deep dive)
Crash Course in AngularJS + Ionic (Deep dive)ColdFusionConference
 
From zero to hero with React Native!
From zero to hero with React Native!From zero to hero with React Native!
From zero to hero with React Native!Commit University
 
Intro to react native
Intro to react nativeIntro to react native
Intro to react nativeModusJesus
 
Untangling spring week1
Untangling spring week1Untangling spring week1
Untangling spring week1Derek Jacoby
 
Introduction to React Native
Introduction to React NativeIntroduction to React Native
Introduction to React Nativedvcrn
 
Codemotion Rome 2015 Bluemix Lab Tutorial
Codemotion Rome 2015 Bluemix Lab TutorialCodemotion Rome 2015 Bluemix Lab Tutorial
Codemotion Rome 2015 Bluemix Lab Tutorialgjuljo
 
React Component Library Design @WalmartLabs
React Component Library Design @WalmartLabsReact Component Library Design @WalmartLabs
React Component Library Design @WalmartLabschaseadamsio
 
Welcome to IE8 - Integrating Your Site With Internet Explorer 8
Welcome to IE8 - Integrating Your Site With Internet Explorer 8Welcome to IE8 - Integrating Your Site With Internet Explorer 8
Welcome to IE8 - Integrating Your Site With Internet Explorer 8Lachlan Hardy
 
Developing silverlight 4 applications with expression blend 4 (30 Abr 2010)
Developing silverlight 4 applications with expression blend 4 (30 Abr 2010)Developing silverlight 4 applications with expression blend 4 (30 Abr 2010)
Developing silverlight 4 applications with expression blend 4 (30 Abr 2010)Ricardo Castelhano
 
Cutting the Fat by Tiffany Conroy
Cutting the Fat by Tiffany ConroyCutting the Fat by Tiffany Conroy
Cutting the Fat by Tiffany ConroyCodemotion
 
Getting Started with React Native (and should I use it at all?)
Getting Started with React Native (and should I use it at all?)Getting Started with React Native (and should I use it at all?)
Getting Started with React Native (and should I use it at all?)Devin Abbott
 

What's hot (20)

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

Similar to Code on iPhone without MacBook

RubyMotion Inspect Conference - 2013. (With speaker notes.)
RubyMotion Inspect Conference - 2013. (With speaker notes.)RubyMotion Inspect Conference - 2013. (With speaker notes.)
RubyMotion Inspect Conference - 2013. (With speaker notes.)alloy020
 
State ofappdevelopment
State ofappdevelopmentState ofappdevelopment
State ofappdevelopmentgillygize
 
DevSecCon SG 2018 Fabian Presentation Slides
DevSecCon SG 2018 Fabian Presentation SlidesDevSecCon SG 2018 Fabian Presentation Slides
DevSecCon SG 2018 Fabian Presentation SlidesFab L
 
Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1benDesigning
 
"Dude, where’s my boilerplate? ", Oleksii Makodzeba
"Dude, where’s my boilerplate? ", Oleksii Makodzeba"Dude, where’s my boilerplate? ", Oleksii Makodzeba
"Dude, where’s my boilerplate? ", Oleksii MakodzebaFwdays
 
DevSecCon Singapore 2018 - Remove developers’ shameful secrets or simply rem...
DevSecCon Singapore 2018 -  Remove developers’ shameful secrets or simply rem...DevSecCon Singapore 2018 -  Remove developers’ shameful secrets or simply rem...
DevSecCon Singapore 2018 - Remove developers’ shameful secrets or simply rem...DevSecCon
 
Creating and Maintaining an Open Source Library
Creating and Maintaining an Open Source LibraryCreating and Maintaining an Open Source Library
Creating and Maintaining an Open Source LibraryNicholas Schweitzer
 
Christopher Allen's Presentation at eComm 2009
Christopher Allen's Presentation at eComm 2009Christopher Allen's Presentation at eComm 2009
Christopher Allen's Presentation at eComm 2009eCommConf
 
235042632 super-shop-ee
235042632 super-shop-ee235042632 super-shop-ee
235042632 super-shop-eehomeworkping3
 
Open frameworks 101_fitc
Open frameworks 101_fitcOpen frameworks 101_fitc
Open frameworks 101_fitcbenDesigning
 
Amazing vue.js projects that are open source and free.
Amazing vue.js projects that are open source and free.Amazing vue.js projects that are open source and free.
Amazing vue.js projects that are open source and free.Katy Slemon
 
Style Guides Are The New Photoshop (Smashing Conference 2012)
Style Guides Are The New Photoshop (Smashing Conference 2012)Style Guides Are The New Photoshop (Smashing Conference 2012)
Style Guides Are The New Photoshop (Smashing Conference 2012)Stephen Hay
 
Style Guides Are The New Photoshop (Fronteers 2012)
Style Guides Are The New Photoshop (Fronteers 2012)Style Guides Are The New Photoshop (Fronteers 2012)
Style Guides Are The New Photoshop (Fronteers 2012)Stephen Hay
 
M365 global developer bootcamp 2019 Intro to SPFx Version
M365 global developer bootcamp 2019 Intro to SPFx VersionM365 global developer bootcamp 2019 Intro to SPFx Version
M365 global developer bootcamp 2019 Intro to SPFx VersionThomas Daly
 
MeCab in docker action(OpenWhisk)
MeCab in docker action(OpenWhisk)MeCab in docker action(OpenWhisk)
MeCab in docker action(OpenWhisk)KUNITO Atsunori
 
End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...
End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...
End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...Paul Jensen
 
Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)Mikkel Flindt Heisterberg
 
Why I ❤️ Kotlin Multiplatform (and want YOU to also ❤️ Kotlin Multiplatform)
Why I ❤️ Kotlin Multiplatform (and want YOU to also ❤️ Kotlin Multiplatform)Why I ❤️ Kotlin Multiplatform (and want YOU to also ❤️ Kotlin Multiplatform)
Why I ❤️ Kotlin Multiplatform (and want YOU to also ❤️ Kotlin Multiplatform)Derek Lee Boire
 

Similar to Code on iPhone without MacBook (20)

RubyMotion Inspect Conference - 2013. (With speaker notes.)
RubyMotion Inspect Conference - 2013. (With speaker notes.)RubyMotion Inspect Conference - 2013. (With speaker notes.)
RubyMotion Inspect Conference - 2013. (With speaker notes.)
 
State ofappdevelopment
State ofappdevelopmentState ofappdevelopment
State ofappdevelopment
 
DevSecCon SG 2018 Fabian Presentation Slides
DevSecCon SG 2018 Fabian Presentation SlidesDevSecCon SG 2018 Fabian Presentation Slides
DevSecCon SG 2018 Fabian Presentation Slides
 
Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1
 
Demystifying Docker101
Demystifying Docker101Demystifying Docker101
Demystifying Docker101
 
Demystifying Docker
Demystifying DockerDemystifying Docker
Demystifying Docker
 
"Dude, where’s my boilerplate? ", Oleksii Makodzeba
"Dude, where’s my boilerplate? ", Oleksii Makodzeba"Dude, where’s my boilerplate? ", Oleksii Makodzeba
"Dude, where’s my boilerplate? ", Oleksii Makodzeba
 
DevSecCon Singapore 2018 - Remove developers’ shameful secrets or simply rem...
DevSecCon Singapore 2018 -  Remove developers’ shameful secrets or simply rem...DevSecCon Singapore 2018 -  Remove developers’ shameful secrets or simply rem...
DevSecCon Singapore 2018 - Remove developers’ shameful secrets or simply rem...
 
Creating and Maintaining an Open Source Library
Creating and Maintaining an Open Source LibraryCreating and Maintaining an Open Source Library
Creating and Maintaining an Open Source Library
 
Christopher Allen's Presentation at eComm 2009
Christopher Allen's Presentation at eComm 2009Christopher Allen's Presentation at eComm 2009
Christopher Allen's Presentation at eComm 2009
 
235042632 super-shop-ee
235042632 super-shop-ee235042632 super-shop-ee
235042632 super-shop-ee
 
Open frameworks 101_fitc
Open frameworks 101_fitcOpen frameworks 101_fitc
Open frameworks 101_fitc
 
Amazing vue.js projects that are open source and free.
Amazing vue.js projects that are open source and free.Amazing vue.js projects that are open source and free.
Amazing vue.js projects that are open source and free.
 
Style Guides Are The New Photoshop (Smashing Conference 2012)
Style Guides Are The New Photoshop (Smashing Conference 2012)Style Guides Are The New Photoshop (Smashing Conference 2012)
Style Guides Are The New Photoshop (Smashing Conference 2012)
 
Style Guides Are The New Photoshop (Fronteers 2012)
Style Guides Are The New Photoshop (Fronteers 2012)Style Guides Are The New Photoshop (Fronteers 2012)
Style Guides Are The New Photoshop (Fronteers 2012)
 
M365 global developer bootcamp 2019 Intro to SPFx Version
M365 global developer bootcamp 2019 Intro to SPFx VersionM365 global developer bootcamp 2019 Intro to SPFx Version
M365 global developer bootcamp 2019 Intro to SPFx Version
 
MeCab in docker action(OpenWhisk)
MeCab in docker action(OpenWhisk)MeCab in docker action(OpenWhisk)
MeCab in docker action(OpenWhisk)
 
End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...
End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...
End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...
 
Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)
 
Why I ❤️ Kotlin Multiplatform (and want YOU to also ❤️ Kotlin Multiplatform)
Why I ❤️ Kotlin Multiplatform (and want YOU to also ❤️ Kotlin Multiplatform)Why I ❤️ Kotlin Multiplatform (and want YOU to also ❤️ Kotlin Multiplatform)
Why I ❤️ Kotlin Multiplatform (and want YOU to also ❤️ Kotlin Multiplatform)
 

More from Carl Brown

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

More from Carl Brown (20)

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

Recently uploaded

Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

Code on iPhone without MacBook

  • 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
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 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

  1. 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
  2. \n
  3. \n
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. You can get the code from https://github.com/carlbrown/XCAB (url is also later in the presentation).\n\n
  11. There are several steps in the process, still too many, but I’ll walk you through them.\n
  12. 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
  13. 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
  14. The way you do that is kind of arbitrary - we’ll talk more about it later, so just go with me for now.\n
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. \n
  22. \n
  23. 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
  24. \n
  25. \n
  26. I’m going to fire up Textastic here, although you could use any Dropbox enabled editor\n
  27. 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
  28. \n
  29. Grab the config file\n
  30. \n
  31. 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
  32. Upload the config file back to Dropbox\n
  33. And before too long, I’ll get a TweetWall directory show up\n
  34. Which contains files that tell me what branches and tags exist\n
  35. So there’s a master branch. We could work in it, but let’s use a different one to keep our changes clean.\n
  36. Let’s make a master-carl branch (which will spawn off the master branch) for us to make our changes in.\n
  37. 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
  38. Here we have the contents of our new branch\n
  39. Let’s select the project file\n
  40. Download it\n
  41. 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
  42. Upload that back to Dropbox\n
  43. And, we have a new build. Tap View\n
  44. Tap on the notification in Boxcar\n
  45. Tap on the “view original” link\n
  46. Tap here to Install\n
  47. Tap again to Install\n
  48. Sometimes Dropbox’s servers haven’t finished synching up, yet, so you have to hit “Retry” a couple of times at this point.\n
  49. And it’s done, let’s launch it.\n
  50. OK, so it’s running - let’s change the default search to something more relevant\n
  51. We’re going to change “I’m happy” there on line 38.\n
  52. That’s better.\n
  53. Upload that.\n
  54. Oh, look, we have a new build ready.\n
  55. Tap on the link\n
  56. Tap to start the download\n
  57. Tap to allow the download\n
  58. 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
  59. And, we’ll launch it\n
  60. And we have a more relevant search term.\n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. 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
  67. \n
  68. You’ll need to rename this to XCAB.settings on your server directory and edit the values as appropriate.\n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n