tith-db
v1.1.9
Published
TiTh (TiTheme) - allows you to switch Alloy themes via the terminal.
Downloads
11
Maintainers
Readme
TiTh
Allows you to switch Alloy themes from the command line and also supports theme based TiApp.xml files.
Why?
This was an experiement to solve an issue I have with an app (or series of apps) built from a single code base. I first attempted to solve it with TiCh which kind of works, but isn't great when it comes to having Android sections in the Tiapp.xml file.
The only way to resolve that was to have separate TiApp.xml files for each app. So the solution I came up with was have a "throwaway" tiapp.xml file that can get replaced with the correct one for each theme.
Install
As global CLI:
$ npm install -g tith
Usage
This will show the current theme name:
$ tith
##Switch themes (Alloy)
$ tith set <name> <platform>
if you omit a platform (ios or android) it'll default to ios.
##Theme-based tiapp.xml
A handy feature is the ability to switch tiapp.xml files with the theme change. This means you can have one code base, use themes for different clients / apps and switch the tiapp.xml file to change the app name, id etc.
The simplest way to use the tiapp.xml theming is to place your tiapp.xml file for each theme in the relevant folder. There's support for a single tiapp.xml file, or files per platform.
Valid paths are (in order they are checked):
##Theme-based DefaultIcon.png
As of version 1.1.2 you can also theme the DefaultIcon.png -- DefaultIcon.png was added in Titanium SDK 5.0.0+ to auto-generate all required App Icons. Unfortunately DefaultIcon.png isn't supported with themes out-of-the-box with Titanium so TiTh now supports this.
Like the tiapp.xml, just drop a DefaultIcon.png in the theme folder OR the platform folder and TiTh will find this and copy to the project root.
Valid paths are (in order they are checked):
##Setting themes
Using the config above, the following will update the theme to app1 and copy the tiapp.xml file from it's theme folder to the app root.
$ tith set app1 ios ;
##Clearing themes
To clear the theme, just use
$ tith clear;
However, if you want to have a default tiapp.xml file when no theme is specified, you can do this by creating a specially named folder in themes folder, prefixed with an underscore. So:
(If a theme folder is prefixed with _ then the theme will be cleared in config.json but the tiapp.xml will still be used).
Suggestions, improvements, PRs, welcome!
##License Copyright 2015 Jason Kneen
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.