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

Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
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
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
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
 
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
 
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
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
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
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
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
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 

Recently uploaded (20)

Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
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
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
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
 
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
 
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
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
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
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
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
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 

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