SlideShare a Scribd company logo
TiConf NYC 2014:
Documenting Your Titanium
Applications
JAMIL HASSAN SPAIN,
@JAMILSPAIN
Little	
  Bit	
  About	
  me	
  
!   NC	
  based	
  Software	
  Engineer,	
  big	
  
linux	
  fan.	
  
!   Started	
  with	
  PHP	
  in	
  early	
  days	
  3.x	
  
or	
  PHP	
  F/I	
  
!   Started	
  with	
  AppC	
  in	
  2011	
  as	
  
Trainer	
  for	
  Certification	
  Programs	
  
!   Currently	
  Architect	
  with	
  Solutions	
  
Engineering	
  Group	
  
Little	
  History	
  on	
  This	
  Topic	
  
!   Built	
  my	
  first	
  large	
  scale	
  project	
  in	
  03/04.	
  Online	
  
Admissions	
  Web	
  Application	
  for	
  school.	
  	
  Really	
  became	
  a	
  
stickler	
  for	
  this	
  process.	
  
!   PHP	
  4/5,	
  LAMP	
  stack,	
  Fedora	
  Linux	
  as	
  base.	
  
!   Ran	
  into	
  2	
  different	
  schools	
  of	
  thought	
  
!   Code	
  should	
  be	
  written	
  to	
  be	
  readable	
  	
  
!   Document	
  regardless	
  to	
  explain	
  code	
  logic	
  
!   My	
  philosophy	
  merges	
  the	
  two,	
  PhpDocumentor	
  was	
  the	
  
cure	
  
Documentation	
  for	
  Titanium	
  Mobile	
  Applications	
  
!   No	
  standards	
  existed	
  for	
  documentation,	
  been	
  a	
  find	
  
your	
  own	
  flavor.	
  	
  
!   #appcelerator	
  uses	
  it	
  for	
  our	
  own	
  SDK	
  documentation.	
  
!   About	
  a	
  year	
  ago	
  internally,	
  after	
  discussion	
  with	
  Rick	
  
Blalock	
  mentioned	
  he	
  had	
  some	
  success	
  using	
  JSDuck.	
  	
  
After	
  playing	
  around	
  with	
  it,	
  we	
  agreed	
  this	
  could	
  be	
  a	
  
good	
  standard	
  to	
  recommend	
  	
  
!   I	
  began	
  the	
  R&D	
  on	
  the	
  best	
  way	
  to	
  implement	
  this	
  as	
  
easy	
  to	
  use	
  for	
  general	
  public	
  use.	
  
A	
  NPM	
  was	
  born	
  
!   Roughly	
  about	
  6	
  
months	
  ago.	
  
!   First	
  initial	
  versions	
  
are	
  out,	
  still	
  young	
  in	
  
usage.	
  Glad	
  to	
  be	
  here	
  
to	
  introduce	
  it	
  
officially	
  to	
  the	
  
community.	
  
One	
  requirement	
  is	
  JS	
  Duck	
  
!   JS	
  Doc	
  Generator	
  supported	
  by	
  Sencha	
  labs	
  
	
  
!   I	
  have	
  always	
  been	
  a	
  fan	
  from	
  Ext.JS	
  days	
  
!   Required	
  for	
  this	
  npm	
  package	
  to	
  work.	
  
!   gem	
  install	
  jsduck	
  
Features	
  for	
  Titanium-­‐JSDuck	
  
!   Installable	
  through	
  npm	
  install	
  	
  
!   CLI	
  options	
  to	
  automate	
  the	
  setup	
  in	
  your	
  mobile	
  
applications	
  
!   Injects	
  itself	
  on	
  every	
  compile	
  to	
  simulator/device	
  
(alloy.jmk	
  post:compile	
  )	
  
!   Options	
  to	
  generate	
  documentation	
  without	
  
compiling	
  
How	
  to	
  Install	
  	
  	
  
!   From	
  command,	
  do	
  a	
  global	
  install	
  for	
  the	
  titanium-­‐
jsduck	
  npm	
  module,	
  Version	
  1.2	
  is	
  the	
  latest	
  
!   URL	
  to	
  package	
  is:	
  
https://www.npmjs.org/package/titanium-­‐jsduck	
  
	
  
Verify	
  Installation	
  
!   Run	
  titanium-­‐jsduck	
  from	
  command	
  line,	
  will	
  return	
  
this	
  help	
  screen	
  
Activating	
  your	
  Mobile	
  Project	
  
!   Open	
  terminal	
  to	
  the	
  root	
  of	
  your	
  titanium	
  project	
  
!   Type	
  the	
  following	
  command:	
  
You’re	
  Done	
  
!   You’re	
  all	
  set	
  from	
  there!!!	
  Start	
  documenting.	
  
!   A	
  few	
  things	
  will	
  change	
  after	
  install	
  
!   If	
  alloy.jmk	
  does	
  not	
  exist,	
  we	
  create	
  it	
  
!   If	
  does,	
  we	
  back	
  it	
  up	
  (alloy.jmk.txt)	
  to	
  preserve	
  any	
  
existing	
  config	
  
!   Docs	
  folder	
  will	
  appear	
  (	
  source	
  for	
  JS	
  Duck	
  to	
  use	
  )	
  
Document	
  Your	
  Code	
  to	
  Integrate	
  
!   Please	
  view	
  Sencha	
  Labs	
  Documentation	
  for	
  
Convention	
  @	
  
https://github.com/senchalabs/jsduck/wiki	
  	
  	
  
! Jsduck	
  will	
  scan	
  your	
  /app	
  JS	
  files	
  for	
  doc	
  syntax	
  
!   Controller	
  files	
  
!   Lib	
  folder	
  contents	
  
How	
  do	
  I	
  View	
  the	
  Documentation	
  
!   3	
  options	
  exist	
  via	
  CLI	
  
!   Detects	
  to	
  see	
  if	
  Browsers	
  are	
  installed	
  in	
  
Applications	
  folder	
  
Typical	
  Dev	
  Workflow	
  
!   Create	
  Mobile	
  Project	
  &	
  Install	
  NPM	
  
!   titanium-­‐jsduck	
  install	
  
!   Code	
  &	
  Document	
  your	
  project	
  
!   docs	
  self	
  generate	
  on	
  compilation,	
  no	
  need	
  to	
  check	
  
into	
  source	
  control	
  
!   Open	
  Browser	
  to	
  View	
  Documentation	
  as	
  you	
  code	
  
!   titanium-­‐jsduck	
  open	
  (	
  first	
  time	
  )	
  
!   titanium-­‐jsduck	
  run	
  (	
  subsequent	
  +	
  refresh	
  browser	
  )	
  
Hello	
  World	
  Demo	
  
TITANIUM-­‐JSDUCK	
  NPM	
  MODULE	
  
Roadmap	
  
!   Additional	
  command	
  line	
  arguments	
  to	
  configure	
  
looks	
  and	
  feel	
  of	
  documentation	
  site	
  
!   Another	
  install	
  option	
  for	
  deluxe	
  documentation	
  to	
  
include	
  (	
  test	
  plans,	
  version	
  release	
  notes,	
  etc	
  )	
  
!   Testing	
  for	
  compatibility	
  with	
  Windows	
  8.1	
  
!   Compatibility	
  with	
  Platino	
  in	
  development	
  
!   Open	
  for	
  more	
  suggestions	
  on	
  more	
  improvements	
  
Thank	
  You	
  
JAMIL	
  HASSAN	
  SPAIN	
  
@jamilspain	
  

More Related Content

What's hot

Why continuous deployment keeps on giving
Why continuous deployment keeps on givingWhy continuous deployment keeps on giving
Why continuous deployment keeps on giving
Intercom
 
Test Driven Development with OSGi - Balázs Zsoldos
Test Driven Development with OSGi - Balázs ZsoldosTest Driven Development with OSGi - Balázs Zsoldos
Test Driven Development with OSGi - Balázs Zsoldos
mfrancis
 
Managing Jenkins with Jenkins (Jenkins User Conference Palo Alto, 2013)
Managing Jenkins with Jenkins (Jenkins User Conference Palo Alto, 2013)Managing Jenkins with Jenkins (Jenkins User Conference Palo Alto, 2013)
Managing Jenkins with Jenkins (Jenkins User Conference Palo Alto, 2013)
Gareth Bowles
 
The Butler and the Snake - Continuous Integration for Python
The Butler and the Snake - Continuous Integration for PythonThe Butler and the Snake - Continuous Integration for Python
The Butler and the Snake - Continuous Integration for Python
Timo Stollenwerk
 
Continuous delivery of embedded systems embedded meetup
Continuous delivery of embedded systems   embedded meetupContinuous delivery of embedded systems   embedded meetup
Continuous delivery of embedded systems embedded meetup
Mike Long
 
Steve Sfartz - How to embed Messaging and Video in your apps - Codemotion Mil...
Steve Sfartz - How to embed Messaging and Video in your apps - Codemotion Mil...Steve Sfartz - How to embed Messaging and Video in your apps - Codemotion Mil...
Steve Sfartz - How to embed Messaging and Video in your apps - Codemotion Mil...
Codemotion
 
Android developer's toolbox
Android developer's toolboxAndroid developer's toolbox
Android developer's toolboxAlex Verdyan
 
Porque Odeio Branches
Porque Odeio BranchesPorque Odeio Branches
Porque Odeio Branches
Rafael Petry
 
Android Study Jam - Info Session
Android Study Jam - Info SessionAndroid Study Jam - Info Session
Android Study Jam - Info Session
DSCVSSUT
 
Magento Continuous Integration & Continuous Delivery @MM17HR
Magento Continuous Integration & Continuous Delivery @MM17HRMagento Continuous Integration & Continuous Delivery @MM17HR
Magento Continuous Integration & Continuous Delivery @MM17HR
Denis Ristic
 
2013 10-28 php ug presentation - ci using phing and hudson
2013 10-28 php ug presentation - ci using phing and hudson2013 10-28 php ug presentation - ci using phing and hudson
2013 10-28 php ug presentation - ci using phing and hudsonShreeniwas Iyer
 
TDD on OSGi, in practice.
TDD on OSGi, in practice.TDD on OSGi, in practice.
TDD on OSGi, in practice.
Elian, I.
 
Continuous Integration @ MeetMagento Germany 2015
Continuous Integration @ MeetMagento Germany 2015Continuous Integration @ MeetMagento Germany 2015
Continuous Integration @ MeetMagento Germany 2015
Aleksey Razbakov
 
Continuous Integration and PHP
Continuous Integration and PHPContinuous Integration and PHP
Continuous Integration and PHP
Arno Schneider
 
The Butler and the Snake - JCICPH
The Butler and the Snake - JCICPHThe Butler and the Snake - JCICPH
The Butler and the Snake - JCICPH
Timo Stollenwerk
 
Continuous Integration, the minimum viable product
Continuous Integration, the minimum viable productContinuous Integration, the minimum viable product
Continuous Integration, the minimum viable product
Julian Simpson
 
10/29 Austin Ansible MeetUp - AnsibleFest Talk & Extending Ansible
10/29 Austin Ansible MeetUp - AnsibleFest Talk & Extending Ansible10/29 Austin Ansible MeetUp - AnsibleFest Talk & Extending Ansible
10/29 Austin Ansible MeetUp - AnsibleFest Talk & Extending Ansible
tylerturk
 
Intro to Github
Intro to GithubIntro to Github
Intro to Github
Parag Rahangdale
 
Contributing To The Mozilla Codebase
Contributing To The Mozilla CodebaseContributing To The Mozilla Codebase
Contributing To The Mozilla Codebase
Souradeep De
 
Plog2014 doc the-new_deal
Plog2014 doc the-new_dealPlog2014 doc the-new_deal
Plog2014 doc the-new_deal
Paul Roeland
 

What's hot (20)

Why continuous deployment keeps on giving
Why continuous deployment keeps on givingWhy continuous deployment keeps on giving
Why continuous deployment keeps on giving
 
Test Driven Development with OSGi - Balázs Zsoldos
Test Driven Development with OSGi - Balázs ZsoldosTest Driven Development with OSGi - Balázs Zsoldos
Test Driven Development with OSGi - Balázs Zsoldos
 
Managing Jenkins with Jenkins (Jenkins User Conference Palo Alto, 2013)
Managing Jenkins with Jenkins (Jenkins User Conference Palo Alto, 2013)Managing Jenkins with Jenkins (Jenkins User Conference Palo Alto, 2013)
Managing Jenkins with Jenkins (Jenkins User Conference Palo Alto, 2013)
 
The Butler and the Snake - Continuous Integration for Python
The Butler and the Snake - Continuous Integration for PythonThe Butler and the Snake - Continuous Integration for Python
The Butler and the Snake - Continuous Integration for Python
 
Continuous delivery of embedded systems embedded meetup
Continuous delivery of embedded systems   embedded meetupContinuous delivery of embedded systems   embedded meetup
Continuous delivery of embedded systems embedded meetup
 
Steve Sfartz - How to embed Messaging and Video in your apps - Codemotion Mil...
Steve Sfartz - How to embed Messaging and Video in your apps - Codemotion Mil...Steve Sfartz - How to embed Messaging and Video in your apps - Codemotion Mil...
Steve Sfartz - How to embed Messaging and Video in your apps - Codemotion Mil...
 
Android developer's toolbox
Android developer's toolboxAndroid developer's toolbox
Android developer's toolbox
 
Porque Odeio Branches
Porque Odeio BranchesPorque Odeio Branches
Porque Odeio Branches
 
Android Study Jam - Info Session
Android Study Jam - Info SessionAndroid Study Jam - Info Session
Android Study Jam - Info Session
 
Magento Continuous Integration & Continuous Delivery @MM17HR
Magento Continuous Integration & Continuous Delivery @MM17HRMagento Continuous Integration & Continuous Delivery @MM17HR
Magento Continuous Integration & Continuous Delivery @MM17HR
 
2013 10-28 php ug presentation - ci using phing and hudson
2013 10-28 php ug presentation - ci using phing and hudson2013 10-28 php ug presentation - ci using phing and hudson
2013 10-28 php ug presentation - ci using phing and hudson
 
TDD on OSGi, in practice.
TDD on OSGi, in practice.TDD on OSGi, in practice.
TDD on OSGi, in practice.
 
Continuous Integration @ MeetMagento Germany 2015
Continuous Integration @ MeetMagento Germany 2015Continuous Integration @ MeetMagento Germany 2015
Continuous Integration @ MeetMagento Germany 2015
 
Continuous Integration and PHP
Continuous Integration and PHPContinuous Integration and PHP
Continuous Integration and PHP
 
The Butler and the Snake - JCICPH
The Butler and the Snake - JCICPHThe Butler and the Snake - JCICPH
The Butler and the Snake - JCICPH
 
Continuous Integration, the minimum viable product
Continuous Integration, the minimum viable productContinuous Integration, the minimum viable product
Continuous Integration, the minimum viable product
 
10/29 Austin Ansible MeetUp - AnsibleFest Talk & Extending Ansible
10/29 Austin Ansible MeetUp - AnsibleFest Talk & Extending Ansible10/29 Austin Ansible MeetUp - AnsibleFest Talk & Extending Ansible
10/29 Austin Ansible MeetUp - AnsibleFest Talk & Extending Ansible
 
Intro to Github
Intro to GithubIntro to Github
Intro to Github
 
Contributing To The Mozilla Codebase
Contributing To The Mozilla CodebaseContributing To The Mozilla Codebase
Contributing To The Mozilla Codebase
 
Plog2014 doc the-new_deal
Plog2014 doc the-new_dealPlog2014 doc the-new_deal
Plog2014 doc the-new_deal
 

Viewers also liked

TOLL Cursus Opdracht Module 5-6 Carla Maeyens-Catherine Testelin-Anita Fauco...
TOLL Cursus Opdracht Module  5-6 Carla Maeyens-Catherine Testelin-Anita Fauco...TOLL Cursus Opdracht Module  5-6 Carla Maeyens-Catherine Testelin-Anita Fauco...
TOLL Cursus Opdracht Module 5-6 Carla Maeyens-Catherine Testelin-Anita Fauco...
Godot
 
Animal Farm History
Animal Farm HistoryAnimal Farm History
Animal Farm Historyphilnichols
 
Social NetWORKS!
Social NetWORKS!Social NetWORKS!
Social NetWORKS!
Faisal Laljee
 
Judge a bookbyitscover
Judge a bookbyitscoverJudge a bookbyitscover
Judge a bookbyitscoverphilnichols
 
TiConf NYC - Documenting Your Titanium Applications
TiConf NYC - Documenting Your Titanium ApplicationsTiConf NYC - Documenting Your Titanium Applications
TiConf NYC - Documenting Your Titanium Applications
Jamil Spain
 

Viewers also liked (6)

SOCIAL MEDIA
SOCIAL MEDIASOCIAL MEDIA
SOCIAL MEDIA
 
TOLL Cursus Opdracht Module 5-6 Carla Maeyens-Catherine Testelin-Anita Fauco...
TOLL Cursus Opdracht Module  5-6 Carla Maeyens-Catherine Testelin-Anita Fauco...TOLL Cursus Opdracht Module  5-6 Carla Maeyens-Catherine Testelin-Anita Fauco...
TOLL Cursus Opdracht Module 5-6 Carla Maeyens-Catherine Testelin-Anita Fauco...
 
Animal Farm History
Animal Farm HistoryAnimal Farm History
Animal Farm History
 
Social NetWORKS!
Social NetWORKS!Social NetWORKS!
Social NetWORKS!
 
Judge a bookbyitscover
Judge a bookbyitscoverJudge a bookbyitscover
Judge a bookbyitscover
 
TiConf NYC - Documenting Your Titanium Applications
TiConf NYC - Documenting Your Titanium ApplicationsTiConf NYC - Documenting Your Titanium Applications
TiConf NYC - Documenting Your Titanium Applications
 

Similar to Documenting apps ti confnyc

The Development History of PVS-Studio for Linux
The Development History of PVS-Studio for LinuxThe Development History of PVS-Studio for Linux
The Development History of PVS-Studio for Linux
PVS-Studio
 
Shipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOSShipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOS
Ross Kukulinski
 
OSCONF Jaipur - A Hitchhiker's Tour to Containerizing a Java application
OSCONF Jaipur - A Hitchhiker's Tour to Containerizing a Java applicationOSCONF Jaipur - A Hitchhiker's Tour to Containerizing a Java application
OSCONF Jaipur - A Hitchhiker's Tour to Containerizing a Java application
Nicolas Fränkel
 
Django Article V0
Django Article V0Django Article V0
Django Article V0Udi Bauman
 
Cross-platform Desktop Apps development using HTML, CSS, JS with Electron
Cross-platform Desktop Apps development using HTML, CSS, JS with ElectronCross-platform Desktop Apps development using HTML, CSS, JS with Electron
Cross-platform Desktop Apps development using HTML, CSS, JS with Electron
Esinniobiwa Quareeb
 
Building Commercial Applications with Oracle Applications Express by Scott Sp...
Building Commercial Applications with Oracle Applications Express by Scott Sp...Building Commercial Applications with Oracle Applications Express by Scott Sp...
Building Commercial Applications with Oracle Applications Express by Scott Sp...Enkitec
 
Build a chatroom!
Build a chatroom!Build a chatroom!
Build a chatroom!
SheilaJimenezMorejon
 
Hybrid Apps in a Snap
Hybrid Apps in a SnapHybrid Apps in a Snap
Hybrid Apps in a Snap
Paulina Gallo
 
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learnedBuilding an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learned
Wojciech Koszek
 
System design for Web Application
System design for Web ApplicationSystem design for Web Application
System design for Web Application
Michael Choi
 
Django simplified : by weever mbakaya
Django simplified : by weever mbakayaDjango simplified : by weever mbakaya
Django simplified : by weever mbakaya
Mbakaya Kwatukha
 
From hello world to goodbye code
From hello world to goodbye codeFrom hello world to goodbye code
From hello world to goodbye code
Kim Moir
 
How create react app help in creating a new react applications
How create react app help in creating a new react applications How create react app help in creating a new react applications
How create react app help in creating a new react applications
Concetto Labs
 
ChrisSchilling_SideProjects
ChrisSchilling_SideProjectsChrisSchilling_SideProjects
ChrisSchilling_SideProjectsChris Schilling
 
Front-end development introduction (JavaScript). Part 2
Front-end development introduction (JavaScript). Part 2Front-end development introduction (JavaScript). Part 2
Front-end development introduction (JavaScript). Part 2
Oleksii Prohonnyi
 
iOS development best practices
iOS development best practicesiOS development best practices
iOS development best practices
Michal Juhas
 
Introduction of deno 1
Introduction of deno 1Introduction of deno 1
Introduction of deno 1
Vishal Sharma
 
DevOps Fest 2020. immutable infrastructure as code. True story.
DevOps Fest 2020. immutable infrastructure as code. True story.DevOps Fest 2020. immutable infrastructure as code. True story.
DevOps Fest 2020. immutable infrastructure as code. True story.
Vlad Fedosov
 
Native Mobile Application Using Open Source
Native Mobile Application Using Open SourceNative Mobile Application Using Open Source
Native Mobile Application Using Open SourceAxway Appcelerator
 
OSCON Titanium Tutorial
OSCON Titanium TutorialOSCON Titanium Tutorial
OSCON Titanium Tutorial
Kevin Whinnery
 

Similar to Documenting apps ti confnyc (20)

The Development History of PVS-Studio for Linux
The Development History of PVS-Studio for LinuxThe Development History of PVS-Studio for Linux
The Development History of PVS-Studio for Linux
 
Shipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOSShipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOS
 
OSCONF Jaipur - A Hitchhiker's Tour to Containerizing a Java application
OSCONF Jaipur - A Hitchhiker's Tour to Containerizing a Java applicationOSCONF Jaipur - A Hitchhiker's Tour to Containerizing a Java application
OSCONF Jaipur - A Hitchhiker's Tour to Containerizing a Java application
 
Django Article V0
Django Article V0Django Article V0
Django Article V0
 
Cross-platform Desktop Apps development using HTML, CSS, JS with Electron
Cross-platform Desktop Apps development using HTML, CSS, JS with ElectronCross-platform Desktop Apps development using HTML, CSS, JS with Electron
Cross-platform Desktop Apps development using HTML, CSS, JS with Electron
 
Building Commercial Applications with Oracle Applications Express by Scott Sp...
Building Commercial Applications with Oracle Applications Express by Scott Sp...Building Commercial Applications with Oracle Applications Express by Scott Sp...
Building Commercial Applications with Oracle Applications Express by Scott Sp...
 
Build a chatroom!
Build a chatroom!Build a chatroom!
Build a chatroom!
 
Hybrid Apps in a Snap
Hybrid Apps in a SnapHybrid Apps in a Snap
Hybrid Apps in a Snap
 
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learnedBuilding an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learned
 
System design for Web Application
System design for Web ApplicationSystem design for Web Application
System design for Web Application
 
Django simplified : by weever mbakaya
Django simplified : by weever mbakayaDjango simplified : by weever mbakaya
Django simplified : by weever mbakaya
 
From hello world to goodbye code
From hello world to goodbye codeFrom hello world to goodbye code
From hello world to goodbye code
 
How create react app help in creating a new react applications
How create react app help in creating a new react applications How create react app help in creating a new react applications
How create react app help in creating a new react applications
 
ChrisSchilling_SideProjects
ChrisSchilling_SideProjectsChrisSchilling_SideProjects
ChrisSchilling_SideProjects
 
Front-end development introduction (JavaScript). Part 2
Front-end development introduction (JavaScript). Part 2Front-end development introduction (JavaScript). Part 2
Front-end development introduction (JavaScript). Part 2
 
iOS development best practices
iOS development best practicesiOS development best practices
iOS development best practices
 
Introduction of deno 1
Introduction of deno 1Introduction of deno 1
Introduction of deno 1
 
DevOps Fest 2020. immutable infrastructure as code. True story.
DevOps Fest 2020. immutable infrastructure as code. True story.DevOps Fest 2020. immutable infrastructure as code. True story.
DevOps Fest 2020. immutable infrastructure as code. True story.
 
Native Mobile Application Using Open Source
Native Mobile Application Using Open SourceNative Mobile Application Using Open Source
Native Mobile Application Using Open Source
 
OSCON Titanium Tutorial
OSCON Titanium TutorialOSCON Titanium Tutorial
OSCON Titanium Tutorial
 

Recently uploaded

Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 

Recently uploaded (20)

Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 

Documenting apps ti confnyc

  • 1. TiConf NYC 2014: Documenting Your Titanium Applications JAMIL HASSAN SPAIN, @JAMILSPAIN
  • 2. Little  Bit  About  me   !   NC  based  Software  Engineer,  big   linux  fan.   !   Started  with  PHP  in  early  days  3.x   or  PHP  F/I   !   Started  with  AppC  in  2011  as   Trainer  for  Certification  Programs   !   Currently  Architect  with  Solutions   Engineering  Group  
  • 3. Little  History  on  This  Topic   !   Built  my  first  large  scale  project  in  03/04.  Online   Admissions  Web  Application  for  school.    Really  became  a   stickler  for  this  process.   !   PHP  4/5,  LAMP  stack,  Fedora  Linux  as  base.   !   Ran  into  2  different  schools  of  thought   !   Code  should  be  written  to  be  readable     !   Document  regardless  to  explain  code  logic   !   My  philosophy  merges  the  two,  PhpDocumentor  was  the   cure  
  • 4. Documentation  for  Titanium  Mobile  Applications   !   No  standards  existed  for  documentation,  been  a  find   your  own  flavor.     !   #appcelerator  uses  it  for  our  own  SDK  documentation.   !   About  a  year  ago  internally,  after  discussion  with  Rick   Blalock  mentioned  he  had  some  success  using  JSDuck.     After  playing  around  with  it,  we  agreed  this  could  be  a   good  standard  to  recommend     !   I  began  the  R&D  on  the  best  way  to  implement  this  as   easy  to  use  for  general  public  use.  
  • 5. A  NPM  was  born   !   Roughly  about  6   months  ago.   !   First  initial  versions   are  out,  still  young  in   usage.  Glad  to  be  here   to  introduce  it   officially  to  the   community.  
  • 6. One  requirement  is  JS  Duck   !   JS  Doc  Generator  supported  by  Sencha  labs     !   I  have  always  been  a  fan  from  Ext.JS  days   !   Required  for  this  npm  package  to  work.   !   gem  install  jsduck  
  • 7. Features  for  Titanium-­‐JSDuck   !   Installable  through  npm  install     !   CLI  options  to  automate  the  setup  in  your  mobile   applications   !   Injects  itself  on  every  compile  to  simulator/device   (alloy.jmk  post:compile  )   !   Options  to  generate  documentation  without   compiling  
  • 8. How  to  Install       !   From  command,  do  a  global  install  for  the  titanium-­‐ jsduck  npm  module,  Version  1.2  is  the  latest   !   URL  to  package  is:   https://www.npmjs.org/package/titanium-­‐jsduck    
  • 9. Verify  Installation   !   Run  titanium-­‐jsduck  from  command  line,  will  return   this  help  screen  
  • 10. Activating  your  Mobile  Project   !   Open  terminal  to  the  root  of  your  titanium  project   !   Type  the  following  command:  
  • 11. You’re  Done   !   You’re  all  set  from  there!!!  Start  documenting.   !   A  few  things  will  change  after  install   !   If  alloy.jmk  does  not  exist,  we  create  it   !   If  does,  we  back  it  up  (alloy.jmk.txt)  to  preserve  any   existing  config   !   Docs  folder  will  appear  (  source  for  JS  Duck  to  use  )  
  • 12. Document  Your  Code  to  Integrate   !   Please  view  Sencha  Labs  Documentation  for   Convention  @   https://github.com/senchalabs/jsduck/wiki       ! Jsduck  will  scan  your  /app  JS  files  for  doc  syntax   !   Controller  files   !   Lib  folder  contents  
  • 13. How  do  I  View  the  Documentation   !   3  options  exist  via  CLI   !   Detects  to  see  if  Browsers  are  installed  in   Applications  folder  
  • 14. Typical  Dev  Workflow   !   Create  Mobile  Project  &  Install  NPM   !   titanium-­‐jsduck  install   !   Code  &  Document  your  project   !   docs  self  generate  on  compilation,  no  need  to  check   into  source  control   !   Open  Browser  to  View  Documentation  as  you  code   !   titanium-­‐jsduck  open  (  first  time  )   !   titanium-­‐jsduck  run  (  subsequent  +  refresh  browser  )  
  • 15. Hello  World  Demo   TITANIUM-­‐JSDUCK  NPM  MODULE  
  • 16. Roadmap   !   Additional  command  line  arguments  to  configure   looks  and  feel  of  documentation  site   !   Another  install  option  for  deluxe  documentation  to   include  (  test  plans,  version  release  notes,  etc  )   !   Testing  for  compatibility  with  Windows  8.1   !   Compatibility  with  Platino  in  development   !   Open  for  more  suggestions  on  more  improvements  
  • 17. Thank  You   JAMIL  HASSAN  SPAIN   @jamilspain