the tishadow repl is available and evaluates commands in a persistent sand-boxed context.
to launch the repl enter the following command:
clearCache() methods available
to interact with apps cached in the TiShadow app.
Ti.include() and assets are relative the running app
inside the tishadow app
note: you can now also pipe to the tishadow repl using the
--pipe flag. have a look
at this screencast
you can add spies on objects so that you can modify them from the repl at run time. in your code add the following command
this can be included as a comment which will automatically be uncommented when pushed using tishadow, for example
to get the object from the repl, simply use, e.g.
for alloy, since comments are removed at compile time you can use the
following alloy.jmk to
automatically inject spies on the
$ object in your controllers, naming
the spy with the file's name
from the browser
enter the following address in a browser window:
in the editor you can enter code and press command+s to deploy the code snippet to all connected devices. Have a look at the demo video.
coding from the webpage works much like the repl and variables are stored in a sand-boxed context
tishadow appify command can be used to create a
stand-alone app that is integrated with tishadow. the app automatically
launches the contained tishadow bundle and connects to a pre-configured
server. this allows connecting to the deployed app via the repl and/or
you may need to provide the
of the remote tishadow server you want the app to connect to. since the appify command
generates a new project you will need to provide the destination path for the new project. E.g.
$ mkdir ~/myapp $ tishadow appify -d ~/myapp --host myhost.com --port 80 --room my_private_room
new: you can run the server with the
--manage-versions flag and it
will track bundle versions. apps (or appified apps) that connect with an
old version will automatically upgrade. you may wish to use the
deploy command instead
run command, which sends new versions to your server without immediately pushing it
out to connected devices.
see the following blog post for a guided example
you can capture screenshots of all connected devices using the following command:
$ tishadow screenshot
the screenshots will be saved in
png format in the
/tmp directory or the path
configured using the
--screenshot-path flag when starting the server.
alternatively, instead of saving the screenshots you can stream them to the browser. use the following command:
$ tishadow screenshot --screencast 1000 --scale 0.1
in the above example a screenshot is sent every 1000ms and scales the images to 10% of their height/width.
http://localhost:3000/screencast to view the screencast.
tishadow server hosting
the tishadow server can be hosted on a number of paas providers. most however have limited support
for web sockets. you may need to use the
--long-polling flag when running the tishadow server.
you may wish to try ticaster.io. it is a service designed specifically for tishadow appified apps. ticaster.io manages version deployment so you can use control which versions are deployed to the devices and even supports production a/b testing.