SlideShare a Scribd company logo
1 of 29
Download to read offline
Develop Titanium apps
at the speed of the web!
Welcome to RapidDev!
Welcome to RapidDev!
Develop Titanium apps
at the speed of the web!
Matt Apperson - Apperson Labs founder
May 10, 2014
appersonlabs.com
Who Am I?
• Owner of Apperson Labs
• Formerly an engineer at
Appcelerator
• Born from PHP
• Father & husband
• We work white label with
agencies 75% of the time
• Mobile is our life blood
• Specialize in Titanium
• Native? Yea we do that!
• NodeJS is great too!
• Lovers of open source
Who we are
Some companies we work with…
Agencies we partner with…
For too long…
Mobile dev SUCKED
We had some options…
!
‣ Live reload
‣ Near instant deploy
‣ REPL to test
‣ Easy to share
‣ Freely available and open
source
!
!
‣ 5 sec - 1+ min reloads
‣ deploy takes hours
‣ Compile code
‣ TestFlight is the best?
What if native/Ti had the
Flexibility of web
Don’t we have this already?Don’t we have this already?
TiShadow
LiveView
‣ The original instant reload
‣ JS / compiler based
‣ Has REPL
‣ Is free/OSS
‣ Provided by Appc
‣ JS + native
‣ Integrated with studio
‣ Support provided via Appc platform
RapidDev
‣ 100% native
‣ Use any unit testing framework
‣ ZERO JS code changes/insertions
‣ is free/OSS
‣ Feels, acts & behaves exactly like using Titanium
How RapidDev works
•Builds a base native app with any required modules, and
ALL the core Ti code
• Uses a module to change file paths to read from the
document directory
• Opens a socket connection to your dev computer
•Files transfer over on save and reloads the app, clearing
caches
•Use ANY testing framework, even your own
How RapidDev does NOT work…
•No JS was changed/hacked/replaced
•No requests had to be made to the server on file load
•No performance loss
•No extra abstraction
•Just like a regular native Ti app. Making testing &
debugging easier and more reliable
How to install RapidDev
$ npm install rapiddev -g
*You might need to use sudo…
Live Reload
So easy to use
$ ti build --p iOS --rd
Want to stop using RapidDev?
$ ti build --p iOS
Dev Directory
No need to add/remove files…
Unit Testing
Running unit tests
ti build --p iOS --test
ti build --p iOS --test --rd
ti build --p iOS --test “login”
RapidDev is not perfect (yet!)
1) No android support…
2) No REPL
3) Only works via the Ti CLI
4) It does not have it’s own logo :(
What comes next?
More then live reload…
ANDROID SUPPORT!!!
•Harder then expected to do in
native Java
•Will use a modified “fastdev”
•Will match RapidDev for iOS
features
CLI / REPL SupportRapidDev.next $
• Be able to do things like:
$ ti exec file.js -p iOS
• Run arbitrary code such as
$ ti repl
> alert(‘run code in active app’);
• Some native modules need a full app to
test or need to run on device…
$ ti full-build
• Run RapidDev in server only mode
$ rapiddev start
RapidDev (Current Protocol)
File change
Copy file
Reload app
All files changed
Copy one file
Reload app
Vanilla Titanium App CoffeeScript & Alloy Apps
RapidDev.next (Improved Protocol)
All Titanium Apps
File change
Copy file
Reload app
Are there more files?
NO
YES
Confirm
receipt
To instantly return to
where you were
*Checkout the Apperson Labs / Codex Labs workshop tomorrow at 4:30
RapidDev “Instant Return”
ti build --rd --return “Rating”
Develop Titanium apps
at the speed of the web!
Welcome to RapidDev!
matt@appersonlabs.com
appersonlabs.com
@appersonlabs / @mattapperson

More Related Content

What's hot

Continuous delivery of your legacy application
Continuous delivery of your legacy applicationContinuous delivery of your legacy application
Continuous delivery of your legacy applicationColdFusionConference
 
Configuration As Code - Adoption of the Job DSL Plugin at Netflix
Configuration As Code - Adoption of the Job DSL Plugin at NetflixConfiguration As Code - Adoption of the Job DSL Plugin at Netflix
Configuration As Code - Adoption of the Job DSL Plugin at NetflixJustin Ryan
 
Simple Unit Testing in Appcelerator Titanium Alloy
Simple Unit Testing in Appcelerator Titanium AlloySimple Unit Testing in Appcelerator Titanium Alloy
Simple Unit Testing in Appcelerator Titanium AlloyAaron Saunders
 
Continuous Integration for Titanium
Continuous Integration for TitaniumContinuous Integration for Titanium
Continuous Integration for TitaniumDenver Sessink
 
Manage your environment with DSC
Manage your environment with DSCManage your environment with DSC
Manage your environment with DSCGian Maria Ricci
 
NCUG 2019: Super charge your API’s with Reactive streams
NCUG 2019: Super charge your API’s with Reactive streamsNCUG 2019: Super charge your API’s with Reactive streams
NCUG 2019: Super charge your API’s with Reactive streamsFrank van der Linden
 
TiCalabash and TiMocha: The keys to Better & More Stable Titanium Apps
TiCalabash and TiMocha: The keys to Better & More Stable Titanium AppsTiCalabash and TiMocha: The keys to Better & More Stable Titanium Apps
TiCalabash and TiMocha: The keys to Better & More Stable Titanium AppsAndrew McElroy
 
QAAgility Presentation - Cucumber with Appium
QAAgility Presentation - Cucumber with AppiumQAAgility Presentation - Cucumber with Appium
QAAgility Presentation - Cucumber with AppiumQAAgility Technologies
 
Testing the way it should be
Testing the way it should beTesting the way it should be
Testing the way it should beBrian Mann
 
Speed up your regression and reduce cost load with Selenoid + K8s + ReportPortal
Speed up your regression and reduce cost load with Selenoid + K8s + ReportPortalSpeed up your regression and reduce cost load with Selenoid + K8s + ReportPortal
Speed up your regression and reduce cost load with Selenoid + K8s + ReportPortalDanylo Kuvshynov
 
Continuous Delivery su progetti Java: cosa abbiamo imparato facendoci del male
Continuous Delivery su progetti Java: cosa abbiamo imparato facendoci del maleContinuous Delivery su progetti Java: cosa abbiamo imparato facendoci del male
Continuous Delivery su progetti Java: cosa abbiamo imparato facendoci del malePietro Di Bello
 
Selenoid & Allure - how to make them work together?
Selenoid & Allure -  how to make them work together?Selenoid & Allure -  how to make them work together?
Selenoid & Allure - how to make them work together?Michał Ślęzak
 
Getting Started With Cypress
Getting Started With CypressGetting Started With Cypress
Getting Started With CypressKnoldus Inc.
 
How to Get Started with Cypress
How to Get Started with CypressHow to Get Started with Cypress
How to Get Started with CypressApplitools
 
Continous integration with jenkins
Continous integration with jenkinsContinous integration with jenkins
Continous integration with jenkinsvodQA
 
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at FlickrJohn Allspaw
 
Modern devOps with Docker
Modern devOps with DockerModern devOps with Docker
Modern devOps with DockerAvi Cavale
 
Conquering AngularJS Limitations
Conquering AngularJS LimitationsConquering AngularJS Limitations
Conquering AngularJS LimitationsValeri Karpov
 
Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...
Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...
Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...Sauce Labs
 
Getting Started with ASP.net Core 1.0
Getting Started with ASP.net Core 1.0Getting Started with ASP.net Core 1.0
Getting Started with ASP.net Core 1.0joescars
 

What's hot (20)

Continuous delivery of your legacy application
Continuous delivery of your legacy applicationContinuous delivery of your legacy application
Continuous delivery of your legacy application
 
Configuration As Code - Adoption of the Job DSL Plugin at Netflix
Configuration As Code - Adoption of the Job DSL Plugin at NetflixConfiguration As Code - Adoption of the Job DSL Plugin at Netflix
Configuration As Code - Adoption of the Job DSL Plugin at Netflix
 
Simple Unit Testing in Appcelerator Titanium Alloy
Simple Unit Testing in Appcelerator Titanium AlloySimple Unit Testing in Appcelerator Titanium Alloy
Simple Unit Testing in Appcelerator Titanium Alloy
 
Continuous Integration for Titanium
Continuous Integration for TitaniumContinuous Integration for Titanium
Continuous Integration for Titanium
 
Manage your environment with DSC
Manage your environment with DSCManage your environment with DSC
Manage your environment with DSC
 
NCUG 2019: Super charge your API’s with Reactive streams
NCUG 2019: Super charge your API’s with Reactive streamsNCUG 2019: Super charge your API’s with Reactive streams
NCUG 2019: Super charge your API’s with Reactive streams
 
TiCalabash and TiMocha: The keys to Better & More Stable Titanium Apps
TiCalabash and TiMocha: The keys to Better & More Stable Titanium AppsTiCalabash and TiMocha: The keys to Better & More Stable Titanium Apps
TiCalabash and TiMocha: The keys to Better & More Stable Titanium Apps
 
QAAgility Presentation - Cucumber with Appium
QAAgility Presentation - Cucumber with AppiumQAAgility Presentation - Cucumber with Appium
QAAgility Presentation - Cucumber with Appium
 
Testing the way it should be
Testing the way it should beTesting the way it should be
Testing the way it should be
 
Speed up your regression and reduce cost load with Selenoid + K8s + ReportPortal
Speed up your regression and reduce cost load with Selenoid + K8s + ReportPortalSpeed up your regression and reduce cost load with Selenoid + K8s + ReportPortal
Speed up your regression and reduce cost load with Selenoid + K8s + ReportPortal
 
Continuous Delivery su progetti Java: cosa abbiamo imparato facendoci del male
Continuous Delivery su progetti Java: cosa abbiamo imparato facendoci del maleContinuous Delivery su progetti Java: cosa abbiamo imparato facendoci del male
Continuous Delivery su progetti Java: cosa abbiamo imparato facendoci del male
 
Selenoid & Allure - how to make them work together?
Selenoid & Allure -  how to make them work together?Selenoid & Allure -  how to make them work together?
Selenoid & Allure - how to make them work together?
 
Getting Started With Cypress
Getting Started With CypressGetting Started With Cypress
Getting Started With Cypress
 
How to Get Started with Cypress
How to Get Started with CypressHow to Get Started with Cypress
How to Get Started with Cypress
 
Continous integration with jenkins
Continous integration with jenkinsContinous integration with jenkins
Continous integration with jenkins
 
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
 
Modern devOps with Docker
Modern devOps with DockerModern devOps with Docker
Modern devOps with Docker
 
Conquering AngularJS Limitations
Conquering AngularJS LimitationsConquering AngularJS Limitations
Conquering AngularJS Limitations
 
Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...
Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...
Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...
 
Getting Started with ASP.net Core 1.0
Getting Started with ASP.net Core 1.0Getting Started with ASP.net Core 1.0
Getting Started with ASP.net Core 1.0
 

Viewers also liked

Viewers also liked (20)

CV_LYB
CV_LYBCV_LYB
CV_LYB
 
Paige Columbus, Ohio
Paige   Columbus,  OhioPaige   Columbus,  Ohio
Paige Columbus, Ohio
 
Shougongfang ertong maoyi tu'an peise xilie
Shougongfang ertong maoyi tu'an peise xilieShougongfang ertong maoyi tu'an peise xilie
Shougongfang ertong maoyi tu'an peise xilie
 
TGS GPS- NE Newfoundland Interpretation
TGS GPS-  NE Newfoundland InterpretationTGS GPS-  NE Newfoundland Interpretation
TGS GPS- NE Newfoundland Interpretation
 
4fffff
4fffff4fffff
4fffff
 
AntiTuberculous Drugs
AntiTuberculous DrugsAntiTuberculous Drugs
AntiTuberculous Drugs
 
Buz Event Registration System
Buz Event Registration SystemBuz Event Registration System
Buz Event Registration System
 
PR Strategy (GIC)
PR Strategy (GIC)PR Strategy (GIC)
PR Strategy (GIC)
 
JGM Organization 2017
JGM Organization 2017JGM Organization 2017
JGM Organization 2017
 
Channel of Distribution Management Unit 1
Channel of Distribution Management Unit 1Channel of Distribution Management Unit 1
Channel of Distribution Management Unit 1
 
Writing for advertising _ TOYOTA
Writing for advertising _ TOYOTA Writing for advertising _ TOYOTA
Writing for advertising _ TOYOTA
 
Srt pustakaraja prw 08 suryosaputro
Srt pustakaraja prw 08 suryosaputroSrt pustakaraja prw 08 suryosaputro
Srt pustakaraja prw 08 suryosaputro
 
Wire Receipt-Borissov
Wire Receipt-BorissovWire Receipt-Borissov
Wire Receipt-Borissov
 
Media Literacy Pp 10 09
Media Literacy Pp 10 09Media Literacy Pp 10 09
Media Literacy Pp 10 09
 
Octubre
OctubreOctubre
Octubre
 
Consciousness From Cosmos?
 Consciousness From Cosmos? Consciousness From Cosmos?
Consciousness From Cosmos?
 
Power point template 1
Power point template 1Power point template 1
Power point template 1
 
Ricky_Ng_Resume - 2016
Ricky_Ng_Resume - 2016Ricky_Ng_Resume - 2016
Ricky_Ng_Resume - 2016
 
Suspects lies and videotapes final
Suspects lies and videotapes finalSuspects lies and videotapes final
Suspects lies and videotapes final
 
September 2015 HCN web
September 2015 HCN webSeptember 2015 HCN web
September 2015 HCN web
 

Similar to Develop Titanium apps at the speed of the web with RapidDev

Achieving Continuous Delivery with Puppet
Achieving Continuous Delivery with PuppetAchieving Continuous Delivery with Puppet
Achieving Continuous Delivery with PuppetDevoteam Revolve
 
Puppet Camp Paris 2014: Achieving Continuous Delivery and DevOps with Puppet
Puppet Camp Paris 2014: Achieving Continuous Delivery and DevOps with Puppet Puppet Camp Paris 2014: Achieving Continuous Delivery and DevOps with Puppet
Puppet Camp Paris 2014: Achieving Continuous Delivery and DevOps with Puppet Puppet
 
Interns What Is DevOps
Interns What Is DevOpsInterns What Is DevOps
Interns What Is DevOpsAaron Blythe
 
DevOps and AWS - Code PaLOUsa 2017
DevOps and AWS  - Code PaLOUsa 2017DevOps and AWS  - Code PaLOUsa 2017
DevOps and AWS - Code PaLOUsa 2017James Strong
 
Don't hate, automate. lessons learned from implementing continuous delivery
Don't hate, automate. lessons learned from implementing continuous deliveryDon't hate, automate. lessons learned from implementing continuous delivery
Don't hate, automate. lessons learned from implementing continuous deliverySolano Labs
 
Laravel Forge: Hello World to Hello Production
Laravel Forge: Hello World to Hello ProductionLaravel Forge: Hello World to Hello Production
Laravel Forge: Hello World to Hello ProductionJoe Ferguson
 
Serverless and CI/CD
Serverless and CI/CDServerless and CI/CD
Serverless and CI/CDDean Bryen
 
DevoxxUK 2014 "Moving to a DevOps Mode: Easy, Hard, or Just Plain Terrifying?"
DevoxxUK 2014 "Moving to a DevOps Mode: Easy, Hard, or Just Plain Terrifying?"DevoxxUK 2014 "Moving to a DevOps Mode: Easy, Hard, or Just Plain Terrifying?"
DevoxxUK 2014 "Moving to a DevOps Mode: Easy, Hard, or Just Plain Terrifying?"Daniel Bryant
 
Enabling your DevOps culture with AWS-webinar
Enabling your DevOps culture with AWS-webinarEnabling your DevOps culture with AWS-webinar
Enabling your DevOps culture with AWS-webinarAaron Walker
 
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...Sébastien Morel
 
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...eZ Systems
 
we45 DEFCON Workshop - Building AppSec Automation with Python
we45 DEFCON Workshop - Building AppSec Automation with Pythonwe45 DEFCON Workshop - Building AppSec Automation with Python
we45 DEFCON Workshop - Building AppSec Automation with PythonAbhay Bhargav
 
10 Deployments a day - A brief on extreme release protocols
10 Deployments a day - A brief on extreme release protocols10 Deployments a day - A brief on extreme release protocols
10 Deployments a day - A brief on extreme release protocolsVivek Parihar
 
OpenShift with Eclipse Tooling - EclipseCon 2012
OpenShift with Eclipse Tooling - EclipseCon 2012OpenShift with Eclipse Tooling - EclipseCon 2012
OpenShift with Eclipse Tooling - EclipseCon 2012Steven Pousty
 
Continuous delivery in Qbon
Continuous delivery  in QbonContinuous delivery  in Qbon
Continuous delivery in QbonJaric Kuo
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Hannes Lowette
 
Deploy & Continunous Integration - TDC Floripa 2015
Deploy & Continunous Integration - TDC Floripa 2015Deploy & Continunous Integration - TDC Floripa 2015
Deploy & Continunous Integration - TDC Floripa 2015Júnior Rocha
 
Selenium Camp 2016 - Kiev, Ukraine
Selenium Camp 2016 -  Kiev, UkraineSelenium Camp 2016 -  Kiev, Ukraine
Selenium Camp 2016 - Kiev, UkraineJustin Ison
 

Similar to Develop Titanium apps at the speed of the web with RapidDev (20)

Achieving Continuous Delivery with Puppet
Achieving Continuous Delivery with PuppetAchieving Continuous Delivery with Puppet
Achieving Continuous Delivery with Puppet
 
Puppet Camp Paris 2014: Achieving Continuous Delivery and DevOps with Puppet
Puppet Camp Paris 2014: Achieving Continuous Delivery and DevOps with Puppet Puppet Camp Paris 2014: Achieving Continuous Delivery and DevOps with Puppet
Puppet Camp Paris 2014: Achieving Continuous Delivery and DevOps with Puppet
 
Interns What Is DevOps
Interns What Is DevOpsInterns What Is DevOps
Interns What Is DevOps
 
DevOps and AWS - Code PaLOUsa 2017
DevOps and AWS  - Code PaLOUsa 2017DevOps and AWS  - Code PaLOUsa 2017
DevOps and AWS - Code PaLOUsa 2017
 
Don't hate, automate. lessons learned from implementing continuous delivery
Don't hate, automate. lessons learned from implementing continuous deliveryDon't hate, automate. lessons learned from implementing continuous delivery
Don't hate, automate. lessons learned from implementing continuous delivery
 
Serverless
ServerlessServerless
Serverless
 
Laravel Forge: Hello World to Hello Production
Laravel Forge: Hello World to Hello ProductionLaravel Forge: Hello World to Hello Production
Laravel Forge: Hello World to Hello Production
 
Serverless and CI/CD
Serverless and CI/CDServerless and CI/CD
Serverless and CI/CD
 
DevoxxUK 2014 "Moving to a DevOps Mode: Easy, Hard, or Just Plain Terrifying?"
DevoxxUK 2014 "Moving to a DevOps Mode: Easy, Hard, or Just Plain Terrifying?"DevoxxUK 2014 "Moving to a DevOps Mode: Easy, Hard, or Just Plain Terrifying?"
DevoxxUK 2014 "Moving to a DevOps Mode: Easy, Hard, or Just Plain Terrifying?"
 
Enabling your DevOps culture with AWS-webinar
Enabling your DevOps culture with AWS-webinarEnabling your DevOps culture with AWS-webinar
Enabling your DevOps culture with AWS-webinar
 
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
 
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
 
we45 DEFCON Workshop - Building AppSec Automation with Python
we45 DEFCON Workshop - Building AppSec Automation with Pythonwe45 DEFCON Workshop - Building AppSec Automation with Python
we45 DEFCON Workshop - Building AppSec Automation with Python
 
10 Deployments a day - A brief on extreme release protocols
10 Deployments a day - A brief on extreme release protocols10 Deployments a day - A brief on extreme release protocols
10 Deployments a day - A brief on extreme release protocols
 
OpenShift with Eclipse Tooling - EclipseCon 2012
OpenShift with Eclipse Tooling - EclipseCon 2012OpenShift with Eclipse Tooling - EclipseCon 2012
OpenShift with Eclipse Tooling - EclipseCon 2012
 
Continuous delivery in Qbon
Continuous delivery  in QbonContinuous delivery  in Qbon
Continuous delivery in Qbon
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
 
Appium vs Espresso and XCUI Test
Appium vs Espresso and XCUI TestAppium vs Espresso and XCUI Test
Appium vs Espresso and XCUI Test
 
Deploy & Continunous Integration - TDC Floripa 2015
Deploy & Continunous Integration - TDC Floripa 2015Deploy & Continunous Integration - TDC Floripa 2015
Deploy & Continunous Integration - TDC Floripa 2015
 
Selenium Camp 2016 - Kiev, Ukraine
Selenium Camp 2016 -  Kiev, UkraineSelenium Camp 2016 -  Kiev, Ukraine
Selenium Camp 2016 - Kiev, Ukraine
 

Develop Titanium apps at the speed of the web with RapidDev

  • 1. Develop Titanium apps at the speed of the web! Welcome to RapidDev! Welcome to RapidDev! Develop Titanium apps at the speed of the web! Matt Apperson - Apperson Labs founder May 10, 2014 appersonlabs.com
  • 2. Who Am I? • Owner of Apperson Labs • Formerly an engineer at Appcelerator • Born from PHP • Father & husband
  • 3. • We work white label with agencies 75% of the time • Mobile is our life blood • Specialize in Titanium • Native? Yea we do that! • NodeJS is great too! • Lovers of open source Who we are
  • 4. Some companies we work with…
  • 7. We had some options… ! ‣ Live reload ‣ Near instant deploy ‣ REPL to test ‣ Easy to share ‣ Freely available and open source ! ! ‣ 5 sec - 1+ min reloads ‣ deploy takes hours ‣ Compile code ‣ TestFlight is the best?
  • 8. What if native/Ti had the Flexibility of web
  • 9. Don’t we have this already?Don’t we have this already? TiShadow LiveView ‣ The original instant reload ‣ JS / compiler based ‣ Has REPL ‣ Is free/OSS ‣ Provided by Appc ‣ JS + native ‣ Integrated with studio ‣ Support provided via Appc platform RapidDev ‣ 100% native ‣ Use any unit testing framework ‣ ZERO JS code changes/insertions ‣ is free/OSS ‣ Feels, acts & behaves exactly like using Titanium
  • 10. How RapidDev works •Builds a base native app with any required modules, and ALL the core Ti code • Uses a module to change file paths to read from the document directory • Opens a socket connection to your dev computer •Files transfer over on save and reloads the app, clearing caches •Use ANY testing framework, even your own
  • 11. How RapidDev does NOT work… •No JS was changed/hacked/replaced •No requests had to be made to the server on file load •No performance loss •No extra abstraction •Just like a regular native Ti app. Making testing & debugging easier and more reliable
  • 12. How to install RapidDev $ npm install rapiddev -g *You might need to use sudo…
  • 14. So easy to use $ ti build --p iOS --rd
  • 15. Want to stop using RapidDev? $ ti build --p iOS
  • 17. No need to add/remove files…
  • 19. Running unit tests ti build --p iOS --test ti build --p iOS --test --rd ti build --p iOS --test “login”
  • 20. RapidDev is not perfect (yet!) 1) No android support… 2) No REPL 3) Only works via the Ti CLI 4) It does not have it’s own logo :(
  • 21. What comes next? More then live reload…
  • 22. ANDROID SUPPORT!!! •Harder then expected to do in native Java •Will use a modified “fastdev” •Will match RapidDev for iOS features
  • 23. CLI / REPL SupportRapidDev.next $ • Be able to do things like: $ ti exec file.js -p iOS • Run arbitrary code such as $ ti repl > alert(‘run code in active app’); • Some native modules need a full app to test or need to run on device… $ ti full-build • Run RapidDev in server only mode $ rapiddev start
  • 24. RapidDev (Current Protocol) File change Copy file Reload app All files changed Copy one file Reload app Vanilla Titanium App CoffeeScript & Alloy Apps
  • 25. RapidDev.next (Improved Protocol) All Titanium Apps File change Copy file Reload app Are there more files? NO YES Confirm receipt
  • 26. To instantly return to where you were *Checkout the Apperson Labs / Codex Labs workshop tomorrow at 4:30
  • 27. RapidDev “Instant Return” ti build --rd --return “Rating”
  • 28.
  • 29. Develop Titanium apps at the speed of the web! Welcome to RapidDev! matt@appersonlabs.com appersonlabs.com @appersonlabs / @mattapperson