SlideShare a Scribd company logo
1 of 20
Download to read offline
Accelerated	
  Development
with	
  TiShadow
October 24th, 2013

NYC Titanium User’s Group
Thursday, October 24, 13

1
Credit,	
  Where	
  Credit	
  is	
  Do
David Bankier is the creator and
primary author of TiShadow.
He currently has a SaaS service
9caster.io in private beta to
provide hosted TiShadow
services.

NYC Titanium User’s Group
Thursday, October 24, 13

2
First,	
  a	
  Li=le	
  Demo	
  ...
How quickly can we build and
deploy the app shown on the
right using the standard method?
How quickly can we build and
deploy the same app using
TiShadow?

NYC Titanium User’s Group
Thursday, October 24, 13

3
Let’s	
  Talk	
  Architecture
TiShadow Components
‣
‣
‣
‣

TiShadow Server
TiShadow App
TiShadow CLI
Application Bundles

NYC Titanium User’s Group
Thursday, October 24, 13

4
TiShadow	
  Server
Hub of the System
Node.js
Web-Sockets
Bundle Caching
Web UI

NYC Titanium User’s Group
Thursday, October 24, 13

5
TiShadow	
  App
Titanium based ‘run-time’
Configured connection
with TiShadow Server
Web-Sockets
Executes Application
Bundles
Embeds Jasmine
Redirects logging and
errors to server
Variant: appified app

NYC Titanium User’s Group
Thursday, October 24, 13

6
TiShadow	
  CLI
Node.js based
tishadow <sub-command>
Configured connection
with TiShadow Server
Web-Sockets
Creates Skeletal TiShadow
App
Creates Application
Bundles & Appified Apps
REPL
Jasmine testing
and more....
NYC Titanium User’s Group
Thursday, October 24, 13

7
Installing	
  TiShadow
Requires Node.js 0.8.x or later
Install from NPM:
>	
  sudo	
  npm	
  install	
  -­‐g	
  9shadow

Install from GitHub: (my preference)

>	
  git	
  clone	
  git@github.com:dbankier/TiShadow.git
>	
  sudo	
  npm	
  install	
  -­‐g

NYC Titanium User’s Group
Thursday, October 24, 13

8
Star9ng	
  a	
  Local	
  Server	
  Instance
Generally:

>	
  9shadow	
  server	
  -­‐p	
  <port	
  #>	
  -­‐i	
  <internal	
  IP	
  address>	
  -­‐-­‐manage-­‐
versions	
  -­‐-­‐long-­‐polling

Typically:

>	
  9shadow	
  server	
  -­‐p	
  <port	
  #>	
  -­‐-­‐manage-­‐versions

Let’s do it ....

NYC Titanium User’s Group
Thursday, October 24, 13

9
Crea9ng,	
  Building	
  and	
  Deploying
the	
  TiShadow	
  App
Use the following to create the TiShadow app:
>	
  9shadow	
  app	
  -­‐d	
  <des9na9on	
  directory>

Note that the application created is a ‘classic’
Titanium application
If you use Titanium Studio, import the application
Build and deploy to a device, simulator or emulator
Connect to TiShadow server
Let’s do it ....

NYC Titanium User’s Group
Thursday, October 24, 13

10
Build	
  and	
  Deploy	
  Applica9on	
  Bundle
We will be using the simple Alloy application we
saw earlier.
>	
  git	
  clone	
  h=ps://github.com/joliva/ShadowTest.git

Run the Alloy compiler first for Alloy applications
>	
  alloy	
  compile	
  -­‐c	
  plaOorm=ios

Perform a full build and deploy of the application
bundle
>	
  9shadow	
  run

Consider using aliases for commands...
Let’s do it ....
NYC Titanium User’s Group
Thursday, October 24, 13

11
Update	
  &	
  Deploy	
  Applica9on	
  Bundle
Using aliases:

alias	
  ac=’alloy	
  compile	
  -­‐c	
  plaOorm=ios‘	
  	
  	
  	
  //	
  required	
  for	
  Alloy	
  apps
alias	
  act=’ac	
  &&	
  9shadow	
  run‘	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  //	
  full	
  build	
  and	
  deploy
alias	
  actu=’ac	
  &&	
  9shadow	
  run	
  -­‐u‘	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  //	
  incr	
  build	
  and	
  deploy

Update the demo application’s view to add a couple
of buttons...
Because we have previously performed a full build
we can do an incremental build and deploy.
>	
  actu

Let’s do it ....

NYC Titanium User’s Group
Thursday, October 24, 13

12
Configura9on,	
  Logs,	
  House	
  Keeping
Don’t have to provide the host, port and room with
CLI commands when switching TiShadow servers:
>	
  9shadow	
  config	
  -­‐o	
  <host>	
  -­‐p	
  <port>	
  -­‐r	
  <room>

Can continuously watch the TiShadow server’s
status messages and connected TiShadow app:
logging and errors from the CLI:
>	
  9shadow	
  log

Can close and clean up deployed application
bundles:
>	
  9shadow	
  close,	
  9shadow	
  clear
NYC Titanium User’s Group
Thursday, October 24, 13

13
Customizing	
  the	
  TiShadow	
  App
The TiShadow app needs to be customized to
support any native modules that are used by the
application bundles.
Adding the native modules to the TiShadow app is
accomplished using the normal process used for any
Titanium application.
Let’s extend the demo app we have been using to
use a native module.
Let’s do it ....

NYC Titanium User’s Group
Thursday, October 24, 13

14
Crea9ng	
  an	
  Appified	
  App
What is an appified app and what does it do for us?
‣
‣
‣
‣

TiShadow app + application bundle + server config
further accelerates the code/build/test development
cycle (auto-start, auto-connect, auto-download updates)
improves beta testing
improves testing (even if in the field)
✦ execution of code snippets,
✦ inspect/modify objects using spies
✦ run Jasmine tests

Start off in the Titanium projects top directory
Decide which TiShadow server and room (optional)
Create the appified app:
>	
  9shadow	
  appify	
  -­‐d	
  <dest_directory>	
  -­‐o	
  <host>	
  -­‐p	
  <port>	
  -­‐r	
  
<room>
NYC Titanium User’s Group
Thursday, October 24, 13

15
Crea9ng	
  an	
  Appified	
  App	
  (cont)
The appified app should have now been created in
the specified destination directory
If using Titanium Studio, import the application
Build and deploy to target devices, simulators, etc.
using the conventional process for Titanium apps.
Let’s do it ....

NYC Titanium User’s Group
Thursday, October 24, 13

16
Using	
  the	
  Appified	
  App
Start up the appified app and it should immediately
load and execute the embedded application bundle
and connect to the TiShadow server
Usage from the CLI is identical (REPL, log, etc.), but
any updates sent are retained - nice
With the TiShadow server running in managed
versions mode, the appified app will receive newer
application bundles upon startup.
Can decouple deployment from TiShadow app
updates:
>	
  9shadow	
  deploy	
  -­‐o	
  <host>	
  -­‐p	
  <port>	
  -­‐r	
  <room>

Let’s do it ....
NYC Titanium User’s Group
Thursday, October 24, 13

17
Things	
  We	
  Didn’t	
  Cover
Dynamic Localization
Automatically updating application bundles when
the source changes
Hosting TiShadow server in the cloud
More detailed use of the REPL
Using spies to inspect/modify objects
Jasmine based testing
Check out the TiShadow series on my blog:
olivalabs.com.

NYC Titanium User’s Group
Thursday, October 24, 13

18
Resources
1. ShadowTest	
  test	
  applica9on:	
  h=ps://github.com/joliva/ShadowTest
2. TiShadow	
  blog	
  series:	
  h=p://olivalabs.com/?p=182
3. TiShadow	
  on	
  GitHub:	
  h=ps://github.com/dbankier/TiShadow
4. TiShadow	
  website:	
  h=p://9shadow.yydigital.com
5. 9caster	
  hosted	
  service:	
  h=ps://www.9caster.io

NYC Titanium User’s Group
Thursday, October 24, 13

19
Contact Info
NYC Titanium User’s Group

John Oliva
Organizer for NYC Titanium User’s Group
Certified Titanium Developer & Titanium Titan
e-mail:
cell:
twitter:
linkedin:
website:

NYC Titanium User’s Group
Thursday, October 24, 13

joliva63@gmail.com
(908) 812-3667
@joliva
http://bit.ly/joliva63
http://olivalabs.com

20

More Related Content

Similar to NYC Titanium User's Group - Accelerated Development with TiShadow

NYC Titanium User's Group - tiConf US Revisited
NYC Titanium User's Group - tiConf US RevisitedNYC Titanium User's Group - tiConf US Revisited
NYC Titanium User's Group - tiConf US RevisitedJohn Oliva
 
Miracle mulesoft tech_cloud_hub
Miracle mulesoft tech_cloud_hubMiracle mulesoft tech_cloud_hub
Miracle mulesoft tech_cloud_hubkishore ippili
 
IBM Bluemix cloudfoundry platform
IBM Bluemix cloudfoundry platformIBM Bluemix cloudfoundry platform
IBM Bluemix cloudfoundry platformDaniela Zuppini
 
Titanium Studio [Updated - 18/12/2011]
Titanium Studio [Updated - 18/12/2011]Titanium Studio [Updated - 18/12/2011]
Titanium Studio [Updated - 18/12/2011]Sentinel Solutions Ltd
 
Monitoring Cloud Native Apps on Pivotal Cloud Foundry with AppDynamics
Monitoring Cloud Native Apps on Pivotal Cloud Foundry with AppDynamicsMonitoring Cloud Native Apps on Pivotal Cloud Foundry with AppDynamics
Monitoring Cloud Native Apps on Pivotal Cloud Foundry with AppDynamicsNima Badiey
 
Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)Nicholas Jansma
 
Attacking Pipelines--Security meets Continuous Delivery
Attacking Pipelines--Security meets Continuous DeliveryAttacking Pipelines--Security meets Continuous Delivery
Attacking Pipelines--Security meets Continuous DeliveryJames Wickett
 
Midas - on-the-fly schema migration tool for MongoDB.
Midas - on-the-fly schema migration tool for MongoDB.Midas - on-the-fly schema migration tool for MongoDB.
Midas - on-the-fly schema migration tool for MongoDB.Dhaval Dalal
 
AppSphere 15 - Monitoring Cloud Native Apps on Pivotal Cloud Foundry with App...
AppSphere 15 - Monitoring Cloud Native Apps on Pivotal Cloud Foundry with App...AppSphere 15 - Monitoring Cloud Native Apps on Pivotal Cloud Foundry with App...
AppSphere 15 - Monitoring Cloud Native Apps on Pivotal Cloud Foundry with App...AppDynamics
 
Accelerating your application development with IBM BlueMix (Your dream devel...
Accelerating your application development with IBM BlueMix (Your dream devel...Accelerating your application development with IBM BlueMix (Your dream devel...
Accelerating your application development with IBM BlueMix (Your dream devel...Supal Chowdhury
 
RTP Bluemix Meetup April 20th 2016
RTP Bluemix Meetup April 20th 2016RTP Bluemix Meetup April 20th 2016
RTP Bluemix Meetup April 20th 2016Tom Boucher
 
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
 
Platform 4.0 Meetup Launch Event
Platform 4.0 Meetup Launch EventPlatform 4.0 Meetup Launch Event
Platform 4.0 Meetup Launch EventFokke Zandbergen
 
Twelve-Factor App: Software Application Architecture
Twelve-Factor App: Software Application ArchitectureTwelve-Factor App: Software Application Architecture
Twelve-Factor App: Software Application ArchitectureSigfred Balatan Jr.
 
Building Kubernetes images at scale with Tanzu Build Service
Building Kubernetes images at scale with Tanzu Build ServiceBuilding Kubernetes images at scale with Tanzu Build Service
Building Kubernetes images at scale with Tanzu Build ServiceVMware Tanzu
 
Deploying mule applications
Deploying mule applicationsDeploying mule applications
Deploying mule applicationsBhargav Ranjit
 
Deployingmuleapplications 160903085602
Deployingmuleapplications 160903085602Deployingmuleapplications 160903085602
Deployingmuleapplications 160903085602ppts123456
 
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...Ajeet Singh Raina
 

Similar to NYC Titanium User's Group - Accelerated Development with TiShadow (20)

NYC Titanium User's Group - tiConf US Revisited
NYC Titanium User's Group - tiConf US RevisitedNYC Titanium User's Group - tiConf US Revisited
NYC Titanium User's Group - tiConf US Revisited
 
Sst hackathon express
Sst hackathon expressSst hackathon express
Sst hackathon express
 
Miracle mulesoft tech_cloud_hub
Miracle mulesoft tech_cloud_hubMiracle mulesoft tech_cloud_hub
Miracle mulesoft tech_cloud_hub
 
IBM Bluemix cloudfoundry platform
IBM Bluemix cloudfoundry platformIBM Bluemix cloudfoundry platform
IBM Bluemix cloudfoundry platform
 
Titanium Studio [Updated - 18/12/2011]
Titanium Studio [Updated - 18/12/2011]Titanium Studio [Updated - 18/12/2011]
Titanium Studio [Updated - 18/12/2011]
 
Monitoring Cloud Native Apps on Pivotal Cloud Foundry with AppDynamics
Monitoring Cloud Native Apps on Pivotal Cloud Foundry with AppDynamicsMonitoring Cloud Native Apps on Pivotal Cloud Foundry with AppDynamics
Monitoring Cloud Native Apps on Pivotal Cloud Foundry with AppDynamics
 
Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)
 
Attacking Pipelines--Security meets Continuous Delivery
Attacking Pipelines--Security meets Continuous DeliveryAttacking Pipelines--Security meets Continuous Delivery
Attacking Pipelines--Security meets Continuous Delivery
 
Midas - on-the-fly schema migration tool for MongoDB.
Midas - on-the-fly schema migration tool for MongoDB.Midas - on-the-fly schema migration tool for MongoDB.
Midas - on-the-fly schema migration tool for MongoDB.
 
AppSphere 15 - Monitoring Cloud Native Apps on Pivotal Cloud Foundry with App...
AppSphere 15 - Monitoring Cloud Native Apps on Pivotal Cloud Foundry with App...AppSphere 15 - Monitoring Cloud Native Apps on Pivotal Cloud Foundry with App...
AppSphere 15 - Monitoring Cloud Native Apps on Pivotal Cloud Foundry with App...
 
Accelerating your application development with IBM BlueMix (Your dream devel...
Accelerating your application development with IBM BlueMix (Your dream devel...Accelerating your application development with IBM BlueMix (Your dream devel...
Accelerating your application development with IBM BlueMix (Your dream devel...
 
RTP Bluemix Meetup April 20th 2016
RTP Bluemix Meetup April 20th 2016RTP Bluemix Meetup April 20th 2016
RTP Bluemix Meetup April 20th 2016
 
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
 
Platform 4.0 Meetup Launch Event
Platform 4.0 Meetup Launch EventPlatform 4.0 Meetup Launch Event
Platform 4.0 Meetup Launch Event
 
Twelve-Factor App: Software Application Architecture
Twelve-Factor App: Software Application ArchitectureTwelve-Factor App: Software Application Architecture
Twelve-Factor App: Software Application Architecture
 
Homestead demo
Homestead demoHomestead demo
Homestead demo
 
Building Kubernetes images at scale with Tanzu Build Service
Building Kubernetes images at scale with Tanzu Build ServiceBuilding Kubernetes images at scale with Tanzu Build Service
Building Kubernetes images at scale with Tanzu Build Service
 
Deploying mule applications
Deploying mule applicationsDeploying mule applications
Deploying mule applications
 
Deployingmuleapplications 160903085602
Deployingmuleapplications 160903085602Deployingmuleapplications 160903085602
Deployingmuleapplications 160903085602
 
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
 

More from John Oliva

Sensor enclosure presentation
Sensor enclosure presentationSensor enclosure presentation
Sensor enclosure presentationJohn Oliva
 
OpenSCAD Tutorial
OpenSCAD TutorialOpenSCAD Tutorial
OpenSCAD TutorialJohn Oliva
 
Printing with PETG
Printing with PETGPrinting with PETG
Printing with PETGJohn Oliva
 
NYC Titanium User's Group - 2/18 Organizer Topics
NYC Titanium User's Group - 2/18 Organizer TopicsNYC Titanium User's Group - 2/18 Organizer Topics
NYC Titanium User's Group - 2/18 Organizer TopicsJohn Oliva
 
NYC Titanium User's Group - 12/13 Organizer Topics + Presentation Video
NYC Titanium User's Group - 12/13 Organizer Topics + Presentation VideoNYC Titanium User's Group - 12/13 Organizer Topics + Presentation Video
NYC Titanium User's Group - 12/13 Organizer Topics + Presentation VideoJohn Oliva
 
NYC Titanium User's Group - Tools and Techniques for Mobile UI/UX
NYC Titanium User's Group - Tools and Techniques for Mobile UI/UXNYC Titanium User's Group - Tools and Techniques for Mobile UI/UX
NYC Titanium User's Group - Tools and Techniques for Mobile UI/UXJohn Oliva
 
NYC Titanium User's Group - Mobile Analytics
NYC Titanium User's Group - Mobile AnalyticsNYC Titanium User's Group - Mobile Analytics
NYC Titanium User's Group - Mobile AnalyticsJohn Oliva
 
CTO School - Titanium Overview
CTO School - Titanium OverviewCTO School - Titanium Overview
CTO School - Titanium OverviewJohn Oliva
 
NYC Titanium User's Group - Kickoff Meeting
NYC Titanium User's Group - Kickoff MeetingNYC Titanium User's Group - Kickoff Meeting
NYC Titanium User's Group - Kickoff MeetingJohn Oliva
 

More from John Oliva (9)

Sensor enclosure presentation
Sensor enclosure presentationSensor enclosure presentation
Sensor enclosure presentation
 
OpenSCAD Tutorial
OpenSCAD TutorialOpenSCAD Tutorial
OpenSCAD Tutorial
 
Printing with PETG
Printing with PETGPrinting with PETG
Printing with PETG
 
NYC Titanium User's Group - 2/18 Organizer Topics
NYC Titanium User's Group - 2/18 Organizer TopicsNYC Titanium User's Group - 2/18 Organizer Topics
NYC Titanium User's Group - 2/18 Organizer Topics
 
NYC Titanium User's Group - 12/13 Organizer Topics + Presentation Video
NYC Titanium User's Group - 12/13 Organizer Topics + Presentation VideoNYC Titanium User's Group - 12/13 Organizer Topics + Presentation Video
NYC Titanium User's Group - 12/13 Organizer Topics + Presentation Video
 
NYC Titanium User's Group - Tools and Techniques for Mobile UI/UX
NYC Titanium User's Group - Tools and Techniques for Mobile UI/UXNYC Titanium User's Group - Tools and Techniques for Mobile UI/UX
NYC Titanium User's Group - Tools and Techniques for Mobile UI/UX
 
NYC Titanium User's Group - Mobile Analytics
NYC Titanium User's Group - Mobile AnalyticsNYC Titanium User's Group - Mobile Analytics
NYC Titanium User's Group - Mobile Analytics
 
CTO School - Titanium Overview
CTO School - Titanium OverviewCTO School - Titanium Overview
CTO School - Titanium Overview
 
NYC Titanium User's Group - Kickoff Meeting
NYC Titanium User's Group - Kickoff MeetingNYC Titanium User's Group - Kickoff Meeting
NYC Titanium User's Group - Kickoff Meeting
 

Recently uploaded

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 

Recently uploaded (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 

NYC Titanium User's Group - Accelerated Development with TiShadow

  • 1. Accelerated  Development with  TiShadow October 24th, 2013 NYC Titanium User’s Group Thursday, October 24, 13 1
  • 2. Credit,  Where  Credit  is  Do David Bankier is the creator and primary author of TiShadow. He currently has a SaaS service 9caster.io in private beta to provide hosted TiShadow services. NYC Titanium User’s Group Thursday, October 24, 13 2
  • 3. First,  a  Li=le  Demo  ... How quickly can we build and deploy the app shown on the right using the standard method? How quickly can we build and deploy the same app using TiShadow? NYC Titanium User’s Group Thursday, October 24, 13 3
  • 4. Let’s  Talk  Architecture TiShadow Components ‣ ‣ ‣ ‣ TiShadow Server TiShadow App TiShadow CLI Application Bundles NYC Titanium User’s Group Thursday, October 24, 13 4
  • 5. TiShadow  Server Hub of the System Node.js Web-Sockets Bundle Caching Web UI NYC Titanium User’s Group Thursday, October 24, 13 5
  • 6. TiShadow  App Titanium based ‘run-time’ Configured connection with TiShadow Server Web-Sockets Executes Application Bundles Embeds Jasmine Redirects logging and errors to server Variant: appified app NYC Titanium User’s Group Thursday, October 24, 13 6
  • 7. TiShadow  CLI Node.js based tishadow <sub-command> Configured connection with TiShadow Server Web-Sockets Creates Skeletal TiShadow App Creates Application Bundles & Appified Apps REPL Jasmine testing and more.... NYC Titanium User’s Group Thursday, October 24, 13 7
  • 8. Installing  TiShadow Requires Node.js 0.8.x or later Install from NPM: >  sudo  npm  install  -­‐g  9shadow Install from GitHub: (my preference) >  git  clone  git@github.com:dbankier/TiShadow.git >  sudo  npm  install  -­‐g NYC Titanium User’s Group Thursday, October 24, 13 8
  • 9. Star9ng  a  Local  Server  Instance Generally: >  9shadow  server  -­‐p  <port  #>  -­‐i  <internal  IP  address>  -­‐-­‐manage-­‐ versions  -­‐-­‐long-­‐polling Typically: >  9shadow  server  -­‐p  <port  #>  -­‐-­‐manage-­‐versions Let’s do it .... NYC Titanium User’s Group Thursday, October 24, 13 9
  • 10. Crea9ng,  Building  and  Deploying the  TiShadow  App Use the following to create the TiShadow app: >  9shadow  app  -­‐d  <des9na9on  directory> Note that the application created is a ‘classic’ Titanium application If you use Titanium Studio, import the application Build and deploy to a device, simulator or emulator Connect to TiShadow server Let’s do it .... NYC Titanium User’s Group Thursday, October 24, 13 10
  • 11. Build  and  Deploy  Applica9on  Bundle We will be using the simple Alloy application we saw earlier. >  git  clone  h=ps://github.com/joliva/ShadowTest.git Run the Alloy compiler first for Alloy applications >  alloy  compile  -­‐c  plaOorm=ios Perform a full build and deploy of the application bundle >  9shadow  run Consider using aliases for commands... Let’s do it .... NYC Titanium User’s Group Thursday, October 24, 13 11
  • 12. Update  &  Deploy  Applica9on  Bundle Using aliases: alias  ac=’alloy  compile  -­‐c  plaOorm=ios‘        //  required  for  Alloy  apps alias  act=’ac  &&  9shadow  run‘                                    //  full  build  and  deploy alias  actu=’ac  &&  9shadow  run  -­‐u‘                      //  incr  build  and  deploy Update the demo application’s view to add a couple of buttons... Because we have previously performed a full build we can do an incremental build and deploy. >  actu Let’s do it .... NYC Titanium User’s Group Thursday, October 24, 13 12
  • 13. Configura9on,  Logs,  House  Keeping Don’t have to provide the host, port and room with CLI commands when switching TiShadow servers: >  9shadow  config  -­‐o  <host>  -­‐p  <port>  -­‐r  <room> Can continuously watch the TiShadow server’s status messages and connected TiShadow app: logging and errors from the CLI: >  9shadow  log Can close and clean up deployed application bundles: >  9shadow  close,  9shadow  clear NYC Titanium User’s Group Thursday, October 24, 13 13
  • 14. Customizing  the  TiShadow  App The TiShadow app needs to be customized to support any native modules that are used by the application bundles. Adding the native modules to the TiShadow app is accomplished using the normal process used for any Titanium application. Let’s extend the demo app we have been using to use a native module. Let’s do it .... NYC Titanium User’s Group Thursday, October 24, 13 14
  • 15. Crea9ng  an  Appified  App What is an appified app and what does it do for us? ‣ ‣ ‣ ‣ TiShadow app + application bundle + server config further accelerates the code/build/test development cycle (auto-start, auto-connect, auto-download updates) improves beta testing improves testing (even if in the field) ✦ execution of code snippets, ✦ inspect/modify objects using spies ✦ run Jasmine tests Start off in the Titanium projects top directory Decide which TiShadow server and room (optional) Create the appified app: >  9shadow  appify  -­‐d  <dest_directory>  -­‐o  <host>  -­‐p  <port>  -­‐r   <room> NYC Titanium User’s Group Thursday, October 24, 13 15
  • 16. Crea9ng  an  Appified  App  (cont) The appified app should have now been created in the specified destination directory If using Titanium Studio, import the application Build and deploy to target devices, simulators, etc. using the conventional process for Titanium apps. Let’s do it .... NYC Titanium User’s Group Thursday, October 24, 13 16
  • 17. Using  the  Appified  App Start up the appified app and it should immediately load and execute the embedded application bundle and connect to the TiShadow server Usage from the CLI is identical (REPL, log, etc.), but any updates sent are retained - nice With the TiShadow server running in managed versions mode, the appified app will receive newer application bundles upon startup. Can decouple deployment from TiShadow app updates: >  9shadow  deploy  -­‐o  <host>  -­‐p  <port>  -­‐r  <room> Let’s do it .... NYC Titanium User’s Group Thursday, October 24, 13 17
  • 18. Things  We  Didn’t  Cover Dynamic Localization Automatically updating application bundles when the source changes Hosting TiShadow server in the cloud More detailed use of the REPL Using spies to inspect/modify objects Jasmine based testing Check out the TiShadow series on my blog: olivalabs.com. NYC Titanium User’s Group Thursday, October 24, 13 18
  • 19. Resources 1. ShadowTest  test  applica9on:  h=ps://github.com/joliva/ShadowTest 2. TiShadow  blog  series:  h=p://olivalabs.com/?p=182 3. TiShadow  on  GitHub:  h=ps://github.com/dbankier/TiShadow 4. TiShadow  website:  h=p://9shadow.yydigital.com 5. 9caster  hosted  service:  h=ps://www.9caster.io NYC Titanium User’s Group Thursday, October 24, 13 19
  • 20. Contact Info NYC Titanium User’s Group John Oliva Organizer for NYC Titanium User’s Group Certified Titanium Developer & Titanium Titan e-mail: cell: twitter: linkedin: website: NYC Titanium User’s Group Thursday, October 24, 13 joliva63@gmail.com (908) 812-3667 @joliva http://bit.ly/joliva63 http://olivalabs.com 20