<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>studio|chris · Greenwood, SC » Studio|chris Blog</title>
	
	<link>http://www.studiochris.us</link>
	<description />
	<lastBuildDate>Thu, 08 Nov 2012 08:55:41 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/StudiochrisBlog" /><feedburner:info uri="studiochrisblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>StudiochrisBlog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FStudiochrisBlog" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FStudiochrisBlog" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FStudiochrisBlog" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/StudiochrisBlog" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FStudiochrisBlog" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FStudiochrisBlog" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FStudiochrisBlog" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><item>
		<title>Creating Your First AppJS App with Custom Chrome</title>
		<link>http://feedproxy.google.com/~r/StudiochrisBlog/~3/4dfi08KTQHM/</link>
		<comments>http://www.studiochris.us/2012/creating-your-first-appjs-app-with-custom-chrome/#comments</comments>
		<pubDate>Sun, 23 Sep 2012 00:06:50 +0000</pubDate>
		<dc:creator>Chris Price</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[AppJS]]></category>
		<category><![CDATA[cross platform]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[WebKit]]></category>

		<guid isPermaLink="false">http://www.studiochris.us/?p=2134</guid>
		<description><![CDATA[Over the past few months, I&#8217;ve been studying up and trying out several cross-platform development solutions and one of the more interesting ones I&#8217;ve found, as a web designer and developer, is AppJS. It allows development for the desktop for all three major desktop operating systems using the mix of technologies commonly known as HTML5 &#8230; <a href="http://www.studiochris.us/2012/creating-your-first-appjs-app-with-custom-chrome/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><iframe style="width: 100%; height: 445px;" src="http://jsfiddle.net/studiochris/29Wst/embedded/result" frameborder="0" width="320" height="240"></iframe></p>
<p>Over the past few months, I&#8217;ve been studying up and trying out several cross-platform development solutions and one of the more interesting ones I&#8217;ve found, as a web designer and developer, is <a href="http://appjs.org/">AppJS</a>. It allows development for the desktop for all three major desktop operating systems using the mix of technologies commonly known as HTML5 and node.js.</p>
<p>Of course, I&#8217;ve also been using Adobe AIR since it was introduced, though AIR for HTML isn&#8217;t all that great in my experience. AppJS, on the other hand, uses the Chromium Embedded Framework which renders content beautifully, is super fast and has all of the latest and greatest features HTML5 has to offer without awkward workarounds.</p>
<p>Before getting started, it is worth mentioning that AppJS is still a relatively new project and documentation is sparse at the moment, but it is being worked on. I&#8217;m also not attempting to compile and package a completed app just yet, so I will be using the distributable version and simply replacing the content files throughout this tutorial.<br />
<span id="more-2134"></span></p>
<h2>Downloading and Extracting AppJS</h2>
<p>Visit the <a href="http://appjs.org/#download">AppJS website</a> and choose the correct version of the distributable for your operating system. Once the download is complete, extract the ZIP file to a location of your choosing. I am using a local web server to test my app in the browser as well as in AppJS, so I&#8217;ve extracted mine to the a home directory for the web server.</p>
<p>The main files associated with an app in the distributable package are:</p>
<ul>
<li><strong><code>app.exe</code></strong>(for Windows, not sure of the naming on other OSes, but it should be similar) – This is the launcher for your app. Double click it to start node and your app with its initial window.</li>
<li><strong><code>data/app.js</code></strong>– This is the main JavaScript file for the application. It is responsible for the connection to node.js and the native operating system. You can set options for your initial window in this file.</li>
<li><strong><code>/data/content</code></strong>Directory – This is where your app&#8217;s main content will live. You can create subdirectories to organize your content as you see fit.</li>
<li><strong><code>/data/content/index.html</code></strong>– This is the content for your initial AppJS window. We will be editing this file to create our custom chrome and application content.</li>
<li><strong><code>/data/content/style.css</code></strong> – Your app&#8217;s main stylesheet.</li>
</ul>
<h2>Editing the App&#8217;s Content</h2>
<h3>data/app.js</h3>
<p>As mentioned above, the <code>app.js</code> file controls the initial window for your app, and since we want custom chrome, some options will need to be changed. For custom chrome, the system default window chrome needs to be hidden, so in the <code>window</code> variable, inside the call to <code>app.createWindow</code>, change <code>showChrome</code> to false (or add it if needed… it&#8217;s just a standard JavaScript object).</p>
<p>Next, we need the web browser&#8217;s standard background to be transparent and hidden away (otherwise you&#8217;ll just get a white window with no transparency). To enable this in the window, set or add the <code>alpha</code> option inside of <code>app.createWindow</code> to true.</p>
<p>Once those two changes are made, your app is set up to use custom chrome. For ease of use, here is what my <code>app.js</code> file looks like:</p>
<pre class="brush: javascript; toolbar: false; highlight: [9,10,52]">var app = module.exports = require('appjs');

app.serveFilesFrom(__dirname + '/content');

var window = app.createWindow({
  width  : 1024,
  height : 768,
  icons  : __dirname + '/content/icons',
  showChrome : false,
  alpha: true,
  autoResize: false,
  resizable: true,
  margin: 0

  /***************************** defaults ********************************
* url            : 'http://appjs', // serve static file root and routers
* autoResize     : false,          // resizes in response to html content
* showChrome     : true,           // show border and title bar
* resizable      : false,          // control if users can resize window
* disableSecurity: true,           // allow cross origin requests
* opacity        : 1,              // flat percent opacity for window
* alpha          : false,          // per-pixel alpha blended (Win &amp; Mac)
* fullscreen     : false,          // client area covers whole screen
* left           : -1,             // centered by default
* top            : -1,             // centered by default
*************************************************************************/

});

window.on('create', function(){
  console.log("Window Created");
  window.frame.show();
  window.frame.center();
});

window.on('ready', function(){
  console.log("Window Ready");
  window.require = require;
  window.process = process;
  window.module = module;

  function F12(e){ return e.keyIdentifier === 'F12' }
  function Command_Option_J(e){ return e.keyCode === 74 &amp;&amp; e.metaKey &amp;&amp; e.altKey }

  window.addEventListener('keydown', function(e){
    if (F12(e) || Command_Option_J(e)) {
      window.frame.openDevTools();
    }

  });

  this.dispatchEvent(new this.Event('app-ready'));
});

window.on('close', function(){
  console.log("Window Closed");
});</pre>
<p>I&#8217;ve also added an event called app-ready that will be seen by the main window once the app has finished loading. This will be important later.</p>
<p>If you launch the app, it should launch without any of the default chrome of the OS. To exit, you&#8217;ll need to right click on your taskbar (for Windows) and choose Close Window. Or, if you&#8217;re adventurous and want to use JavaScript to close the app, press <code>F12</code> or <code>Command+Shift+J</code> on your keyboard and in the Chrome console, use:</p>
<pre class="brush: javascript; toolbar: false">window.close();</pre>
<h3>data/content/style.css</h3>
<p>Inside of <code>style.css</code>, the body of the app needs to be set to be transparent as well or you&#8217;ll continue to have an opaque window. The quickest and easiest way to set this up is to paste the following into the stylesheet:</p>
<pre class="brush: css; toolbar: false">body{
   margin: 0;
   padding: 0;
   background: transparent;
}</pre>
<p>Of course, you could edit the existing rule to include the same properties as well. For me, I want a fresh start, so that is the only declaration in my stylesheet for now.</p>
<h3>data/content/index.html</h3>
<p>Now it&#8217;s time to actually build the window&#8217;s custom chrome and app&#8217;s content. I always start by either deleting the entire <code>index.html</code> file and recreating it or deleting the content in the <code>body</code> tag. Before beginning to add elements, I also link up my stylesheet and any JavaScript libraries I know I&#8217;ll be using. For the tutorial, I&#8217;ve added jQuery which I&#8217;ve placed in a subdirectory called <code>libs</code> inside of the <code>content</code> folder. I also like to prototype in a single file, so I&#8217;ve added an extra style element and a script element for when the document is ready. When the time comes, if necessary, these elements can be moved to external files later in the project.</p>
<pre class="brush: xhtml; toolbar: false">&lt;!doctype html&gt;
&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;

&lt;title&gt;AppJS Project&lt;/title&gt;
&lt;link rel="stylesheet" href="style.css"&gt;
&lt;script src="libs/jquery-1.8.2.min.js"&gt;&lt;/script&gt;

&lt;style&gt;

&lt;/style&gt;
&lt;script&gt;
$(function(){

});
&lt;/script&gt;
&lt;/head&gt;

&lt;body&gt;</pre>
<pre class="brush: xhtml; toolbar: false">&lt;/body&gt;
&lt;/html&gt;</pre>
<h4>The Basic Window</h4>
<p>Now to build the actual window itself. You can use any HTML and CSS that you&#8217;d like to build your window. I use a basic structure that has a wrapper for the entire app window, a title bar, a body/content section for the app itself and then finally a status bar (sometimes). For the sake of simplicity, I also just use div elements. You can use any valid HTML5 elements you wish.</p>
<pre class="brush: xhtml; toolbar: false">&lt;div class="app"&gt;
	&lt;div class="title-bar"&gt;
		&lt;!-- Title Bar Elements go here... --&gt;
	&lt;/div&gt;&lt;!--.title-bar--&gt;
	&lt;div class="app-content"&gt;
		&lt;!-- App content goes here... --&gt;
	&lt;/div&gt;&lt;!--.app-body--&gt;
	&lt;div class="status-bar"&gt;
		&lt;!-- Status Bar elements are here... --&gt;
	&lt;/div&gt;&lt;!--.status-bar--&gt;
&lt;/div&gt;&lt;!--.app--&gt;</pre>
<h4></h4>
<h4>The Title Bar</h4>
<p>A basic title bar has three main elements: the title of the app, an icon and window controls. Again, to create these, use any HTML you&#8217;d like. Also, start to think cross-platform at this point. Windows users will expect the window controls to be on the right while Mac OS users will expect them on the left. Titles are also placed in different places depending on the operating system. To be able to move these around later, I use simple containers to hold the things that will change positions.</p>
<p>For the final HTML inside the .<code>title-bar</code> <code>div</code>:</p>
<pre class="brush: xhtml; toolbar: false">&lt;div class="title-drag"&gt;&lt;/div&gt;
&lt;div class="app-title"&gt;
	&lt;span class="app-icon"&gt;&lt;/span&gt;&lt;!--.app-icon--&gt;
	&lt;span class="text"&gt;&lt;/span&gt;
&lt;/div&gt;&lt;!--.app-title--&gt;
&lt;span class="button-container window-controls"&gt;
	&lt;ul class="inline"&gt;
		&lt;li&gt;&lt;a class="button minimize-button" href="#minimize-app"&gt;Minimize&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="button maximize-button" href="#maximize-app"&gt;Maximize&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="button close-button" href="#close-app"&gt;Close&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;
&lt;/span&gt;&lt;!--.window-controls--&gt;
&lt;span class="button-container fullscreen-button-container"&gt;
	&lt;a class="button fullscreen-button" href="#fullscreen-app"&gt;Full Screen&lt;/a&gt;
&lt;/span&gt;</pre>
<p>I added an extra <code>div</code> with a class named <code>title-drag</code> for a bit later. For the Mac side, I&#8217;ve also added an extra button that can be used to launch the app into a fullscreen experience.</p>
<p>If you were to run the app now, you would not be impressed. You&#8217;d see a floating blue list of links that do nothing except hover on a transparent background over your screen.</p>
<p>Here&#8217;s the final HTML for our app:</p>
<blockquote>
<pre class="brush: xhtml; toolbar: false">&lt;!doctype html&gt;
&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;

&lt;title&gt;AppJS Project&lt;/title&gt;
&lt;link rel="stylesheet" href="style.css"&gt;
&lt;script src="libs/jquery.js"&gt;&lt;/script&gt;

&lt;style&gt;

&lt;/style&gt;
&lt;script&gt;
$(function(){

});
&lt;/script&gt;

&lt;/head&gt;

&lt;body&gt;

&lt;div class="app"&gt;
	&lt;div class="title-bar"&gt;
		&lt;!-- Title Bar Elements go here... --&gt;
		&lt;div class="title-drag"&gt;&lt;/div&gt;
		&lt;span class="app-icon"&gt;&lt;/span&gt;&lt;!--.app-icon--&gt;
		&lt;span class="app-title"&gt;&lt;/span&gt;&lt;!--.app-title--&gt;
		&lt;span class="button-container window-controls"&gt;
			&lt;ul class="inline"&gt;
				&lt;li&gt;&lt;a class="button minimize-button" href="#minimize-app"&gt;Minimize&lt;/a&gt;&lt;/li&gt;
				&lt;li&gt;&lt;a class="button maximize-button" href="#maximize-app"&gt;Maximize&lt;/a&gt;&lt;/li&gt;
				&lt;li&gt;&lt;a class="button close-button" href="#close-app"&gt;Close&lt;/a&gt;&lt;/li&gt;
			&lt;/ul&gt;
		&lt;/span&gt;&lt;!--.window-controls--&gt;
		&lt;span class="button-container fullscreen-button-container"&gt;
			&lt;a class="button fullscreen-button" href="#fullscreen-app"&gt;Full Screen&lt;/a&gt;
		&lt;/span&gt;
	&lt;/div&gt;&lt;!--.title-bar--&gt;
	&lt;div class="app-content"&gt;
		&lt;!-- App content goes here... --&gt;
	&lt;/div&gt;&lt;!--.app-body--&gt;
	&lt;div class="status-bar"&gt;
		&lt;!-- Status Bar elements are here... --&gt;
	&lt;/div&gt;&lt;!--.status-bar--&gt;
&lt;/div&gt;&lt;!--.app--&gt;

&lt;/body&gt;
&lt;/html&gt;</pre>
</blockquote>
<h2></h2>
<h2>Dressing the Window</h2>
<p>With the title bar elements in place, our window is ready to be dressed with some CSS and brought to life using JavaScript. This is the part where you can unleash your creativity to make your app&#8217;s window look however you want. For the tutorial, I&#8217;ve keep it relatively simple with simple buttons and solid colors. Since you have the WebKit engine for rendering, you can use CSS gradients, SVG, <code>box-shadow</code>, <code>border-radius</code>, <code>canvas</code>, regular background images, <code>border-image</code>, and whatever else you&#8217;d like to style your window. I&#8217;ve even seen mention of Flash content being deployed in AppJS – is that even possible? – so if that works, you can use it too.</p>
<p>After styling, here&#8217;s what my window looks like… all 8 variations for different operating systems and versions:<br />
<img title="appjs-windows-xp" src="http://i1.wp.com/www.studiochris.us/site/wp-content/uploads/2012/09/appjs-windows-xp.png?resize=680%2C384" alt="appjs-windows-xp" border="0" data-recalc-dims="1" /><br />
<img title="appjs-windows" src="http://i1.wp.com/www.studiochris.us/site/wp-content/uploads/2012/09/appjs-windows.png?resize=680%2C384" alt="appjs-windows" border="0" data-recalc-dims="1" /><br />
<img title="appjs-windows-8" src="http://i2.wp.com/www.studiochris.us/site/wp-content/uploads/2012/09/appjs-windows-8.png?resize=680%2C384" alt="appjs-windows-8" border="0" data-recalc-dims="1" /><br />
<img title="appjs-macosx" src="http://i0.wp.com/www.studiochris.us/site/wp-content/uploads/2012/09/appjs-macosx.png?resize=680%2C384" alt="appjs-macosx" border="0" data-recalc-dims="1" /><br />
<img title="appjs-macosx-lion" src="http://i0.wp.com/www.studiochris.us/site/wp-content/uploads/2012/09/appjs-macosx-lion.png?resize=680%2C384" alt="appjs-macosx-lion" border="0" data-recalc-dims="1" /><br />
<img title="appjs-ubuntu-unity" src="http://i0.wp.com/www.studiochris.us/site/wp-content/uploads/2012/09/appjs-ubuntu-unity.png?resize=680%2C384" alt="appjs-ubuntu-unity" border="0" data-recalc-dims="1" /><br />
<img title="appjs-ubuntu-classic" src="http://i1.wp.com/www.studiochris.us/site/wp-content/uploads/2012/09/appjs-ubuntu-classic.png?resize=680%2C384" alt="appjs-ubuntu-classic" border="0" data-recalc-dims="1" /><br />
<img title="appjs-linux-classic" src="http://i0.wp.com/www.studiochris.us/site/wp-content/uploads/2012/09/appjs-linux-classic.png?resize=680%2C384" alt="appjs-linux-classic" border="0" data-recalc-dims="1" /></p>
<p>Without going into the gritty details of all of the CSS, I used basic box model techniques, floats, the new flexible box model and every other trick in the book that you&#8217;d use on a normal website to style and position the controls in the title bar. The Windows controls use normal floats and absolute positioning while the Mac OS and Linux variations use absolute positioning, flex boxes and the <code>order</code> property to reorder the buttons appropriately for the platforms.</p>
<p>Styles switch simply by adding and removing classes on to the <code>body</code> tag of the app. Just imagine using a single CSS class to switch around all of the required buttons in dialog boxes later in your project!</p>
<p>I didn&#8217;t add any symbols for the demonstration which kills the usability of the Windows 8 style. In a real application, of course it would be a good idea to include the proper icons.</p>
<p>Here is the full CSS for the example windows (including maximized and fullscreen states and simple styling for the little bit of app content):</p>
<p><iframe style="width: 100%; height: 445px;" src="http://jsfiddle.net/studiochris/29Wst/embedded/css" frameborder="0" width="320" height="240"></iframe></p>
<h3>The Window Shadow…</h3>
<p>When using custom chrome, you lose the OS default window shadow, which is a bummer because it can&#8217;t really be faked to perfectly match the system. They are possible to create in this layout, though, with just a simple <code>box-shadow</code> around the <code>.app</code> <code>div</code> element. To make it show, add some padding to the <code>body</code> element to match the size of the shadow. It takes a little experimentation to get it right. Also keep in mind that the padding will affect any media queries you plan to use for your app&#8217;s content since your visible window will not be the same size as the real window that is being queried.</p>
<p>Aside from not matching the OS shadow, the padding required on the <code>body</code> element also has a drawback. Unlike Adobe AIR which allows click through to underlying applications and the desktop environment in transparent areas of the window/stage, AppJS will capture all mouse events on the transparent areas. This isn&#8217;t specifically the fault of AppJS though. From my understanding Chromium doesn&#8217;t have the mechanisms in place for it to happen. Because of this, the smaller the shadow, and thus the body padding, is, the better. The Windows 8 style shadow is a perfect example, though it could still be a little darker and larger.</p>
<h3>A Note on Maximize and Full Screen</h3>
<p>Since this windowing experiment is basically a window within a window and has a drop shadow which requires padding on the <code>body</code> element, when maximizing the window or going full screen, the actual transparent window that holds our HTML-created window will be scaled appropriately, but our custom window retains the shadow and padding… and border-radii. This leads to a really weird looking maximized or full screen app window.</p>
<p>To fix that, when going into the maximized or fullscreen state, another class is added to the body and new CSS takes over to remove the shadow, the padding and the various instances of <code>border-radius</code> that keep the window from occupying the full space of the real app window.</p>
<p class="note">Note: At the time of writing, AppJS has a <a href="https://github.com/appjs/appjs/issues/171">bug</a> in the Windows implementation that causes maximized windows using custom chrome to cover the taskbar. For the moment, maximize and fullscreen do essentially the same thing.</p>
<h2>Wiring it all Together</h2>
<p>Up until this point, our AppJS window is basically just a pretty picture rendered by WebKit. To make it interactive, we&#8217;ll use a bit of JavaScript to call the AppJS functions that will allow us to control the window. The functions we&#8217;ll be using are listed in the <a href="https://github.com/appjs/appjs/blob/master/docs/index.md">AppJS docs at Github.</a></p>
<h3>The Main Window Controls</h3>
<p>We&#8217;ll start with the minimize and close buttons because they are easy and only require a single click handler each. For both, select the button with jQuery (or plain, vanilla JavaScript, or any other library loaded in your app) then add a call to the correct functions from <code>window</code> and <code>window.frame</code> in AppJS.</p>
<pre class="brush: javascript; toolbar: false">$('.title-bar .close-button').on('click', function(event){window.close();});
$('.title-bar .minimize-button').on('click', function(event){window.frame.minimize();});</pre>
<p>Next, the maximize and fullscreen button are a little more complicated because they are more like toggle buttons than the single-click minimize and close buttons that hide the window when clicked. For these, I use a couple of helper functions that set up the toggle action (these are very similar and could probably be combined into a single function with a little thinking time.</p>
<pre class="brush: javascript; toolbar: false">//Helper function with logic to toggle the action of the maximize 
//button between maximize and restore.
var maximizeWindow = function(event){
	switch(window.frame.state){
		case 'maximized' :
			window.frame.restore();
			$(document.body).removeClass('maximized');
		break;

		case 'normal' :
			window.frame.maximize();
			$(document.body).addClass('maximized');
		break;
	};		
};

//Helper function with logic to toggle the action of the fullscreen 
//button between fullscreen and restore.
var fullscreenWindow = function(event){
	switch(window.frame.state){
		case 'fullscreen' :
			window.frame.restore();
			$(document.body).removeClass('fullscreen');
		break;

		case 'normal' :
			window.frame.fullscreen();
			$(document.body).addClass('fullscreen');
		break;
	};		
};

$('.title-bar .maximize-button').on('click', function(event){maximizeWindow(event)});
$('.title-bar .fullscreen-button').on('click', function(event){fullscreenWindow(event)});</pre>
<p>These final function calls are almost identical to those used for minimizing and maximizing, except they call the helper functions which figure out which action to take and ultimately call on <code>window.frame</code> to complete the task.</p>
<h3>The Title Bar as a Drag Handle</h3>
<p>The final interaction our custom window needs is a little bit of movement, specifically being able to move the window around the screen by dragging the title bar. As of the time of writing, AppJS only supports this action on Windows and Mac OS X according to the docs, but as the framework matures, it should be the same for all platforms.</p>
<p>To accomplish the moving, simply listen for <code>mousedown</code> on the title bar or an element in the title bar (in this case, I&#8217;ll be using the extra <code>title-drag</code> <code>div</code> from the original code of the title bar) and calling <code>window.frame.drag()</code> from AppJS.</p>
<pre class="brush: javascript; toolbar: false">$('.title-drag').on('mousedown', function(event){window.frame.drag();});</pre>
<p>And with that, our window can be placed anywhere on the screen simply by dragging the title bar as one would expect.</p>
<h3>A Few Small Details</h3>
<p>So far, even though our window is fully functioning, it is missing a couple of small details. First, it has no title. The original HTML already has a place for the title text, so we&#8217;ll just fill it in with a little JavaScript that pulls the <code>title</code> text of the HTML page into the title bar&#8217;s <code>.app-title .text</code> element. This could also be hard-coded into the HTML, but the JavaScript approach leaves a little flexibility and shows how to change the window title if needed later.</p>
<pre class="brush: javascript; toolbar: false">$('.app-title .text').text(document.title);</pre>
<p>With adding the title text, which is selectable by default, the drag action used to move the window could be interrupted if the user initiates the dragging over the text (if you&#8217;ve just attached the event to the title bar element itself, that is). In this example, the problem is already fixed with the addition of the <code>.title-drag</code> <code>div</code> element. Through its CSS properties, it covers the title and makes the text unselectable. It accomplishes this using absolute positioning and the z-index property to make sure the <code>.title-drag</code> element is above the <code>.app-title</code> <code>div</code> in the z stacking order.</p>
<p>Next, because some of the CSS used for floating nad aligning buttons on the Windows Vista and 7 variation causes the buttons to overlap, if the traditional Windows glow is added to the buttons on hover with a simple <code>box-shadow</code>, the glow may be obstructed by the other buttons. Luckily, this is easily fixed with another small bit of JavaScript.</p>
<pre class="brush: javascript; toolbar: false">$('.window-controls .button')
	.on('mouseover', function(event){
		$(this).css('z-index', 2);}
	)
	.on('mouseout', function(event){
		$(this).css('z-index', 0);}
);</pre>
<p>All this does is manipulate the <code>z-index</code> property of the buttons on hover so that the currently hovered button is always higher in the stacking order. As a result, if the button has a glow or other effect, it will always render on top of the other buttons. I&#8217;ve used <code>mouseover</code> and <code>mouseout</code> events, but in jQuery, the <code>hover</code> event could also be used.</p>
<p>Of note, for this <code>z-index</code> trick to work, the <code>position</code> property of the buttons must be set to either <code>absolute</code> or <code>relative</code>. Default positioning does not allow reordering by using the <code>z-index</code> property.</p>
<h2>Finishing Up</h2>
<p>With a  fully functioning custom window, the only thing left is to add your app&#8217;s content to the <code>.app-content</code> <code>div</code>. Again, since WebKit is powering the rendering, you can use any and all techniques you would normally use in a browser-based app to produce the app content. With AppJS, you can also reach out to the native side using node.js to do things that would normally not be possible in a web app. For this example app, I just added a few buttons to change the window style using plain jQuery, but the sky is the limit. Can&#8217;t wait to see what you all build!</p>
<p>Here is the final app, with code:</p>
<p><iframe style="width: 100%; height: 445px;" src="http://jsfiddle.net/studiochris/29Wst/embedded/" frameborder="0" width="320" height="240"></iframe></p>
<h3>Update</h3>
<p>I&#8217;ve broken the code for this tutorial into files and organized <a title="Starter for AppJS on Github" href="https://github.com/studiochris/starter-for-appjs">Starter for AppJS</a> on Github. Extract the downloaded repository into your already extracted copy of the AppJS distributable package of your choice for everything needed for a custom chrome app.</p>
<p>11/07/2012 &#8211; Updated Starter for AppJS with new minor styling, including removal of the window shadow, and merged a patch by <a href="https://github.com/sihorton">Simon Horton</a> to include compatibility with his new <a href="http://appjs.delightfulsoftware.com/">AppJS packaging solution</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=4dfi08KTQHM:3_4C6meaQPg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=4dfi08KTQHM:3_4C6meaQPg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?i=4dfi08KTQHM:3_4C6meaQPg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=4dfi08KTQHM:3_4C6meaQPg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?i=4dfi08KTQHM:3_4C6meaQPg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=4dfi08KTQHM:3_4C6meaQPg:guobEISWfyQ"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?i=4dfi08KTQHM:3_4C6meaQPg:guobEISWfyQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/StudiochrisBlog/~4/4dfi08KTQHM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.studiochris.us/2012/creating-your-first-appjs-app-with-custom-chrome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.studiochris.us/2012/creating-your-first-appjs-app-with-custom-chrome/</feedburner:origLink></item>
		<item>
		<title>Digital Art Academy for Windows 8</title>
		<link>http://feedproxy.google.com/~r/StudiochrisBlog/~3/RYkfsETLQYQ/</link>
		<comments>http://www.studiochris.us/2012/digital-art-academy-for-windows-8/#comments</comments>
		<pubDate>Fri, 07 Sep 2012 05:30:59 +0000</pubDate>
		<dc:creator>Chris Price</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Digital Art Academy]]></category>
		<category><![CDATA[Windows 8]]></category>

		<guid isPermaLink="false">http://www.studiochris.us/?p=2077</guid>
		<description><![CDATA[Windows 8, the newest incarnation of Microsoft Windows, will officially be released to the masses on October 26, 2012. For those unfamiliar with the new operating system, Windows 8 is a reimagining of Windows and comes with a brand new user interface, Metro Modern UI that is, in Microsoft&#8217;s terms, &#8220;fast and fluid&#8221; and &#8220;authentically &#8230; <a href="http://www.studiochris.us/2012/digital-art-academy-for-windows-8/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><a href="http://windows.microsoft.com/en-US/windows-8/release-preview">Windows 8</a>, the newest incarnation of Microsoft Windows, will officially be released to the masses on October 26, 2012. For those unfamiliar with the new operating system, Windows 8 is a reimagining of Windows and comes with a brand new user interface, <strike>Metro</strike> Modern UI that is, in Microsoft&#8217;s terms, &#8220;fast and fluid&#8221; and &#8220;authentically digital.&#8221; It is the first time Windows has seen a major redesign since Windows 95, and it is MAJOR! Check out this video to see a preview:</p>
<p><iframe style="width: 700px; height: 360px" height="360" src="http://www.youtube.com/embed/aebfjzdLxJA?feature=player_detailpage&#038;html5=1" frameborder="0" width="700" allowfullscreen></iframe>
<p>Ahead of the Windows 8 release, Ratio Interactive, a design agency in Seattle, WA launched a <a href="http://ratiointeractive.com/win8contest/">design contest for Windows 8 apps</a>. It gave me the perfect excuse to begin exploring the design possibilities of the new operating system. For my entry, I chose to design an app for <a href="http://www.digitalartacademy.com">Digital Art Academy</a>.</p>
<p><span id="more-2077"></span>
<p>For those interested, in another post I&#8217;ll talk about some of the steps taken and decision-making processes through the design process. For now, though, here&#8217;s the final result:</p>
<h2>Live Tiles for the Start Screen</h2>
<p><a href="http://i0.wp.com/www.studiochris.us/site/wp-content/uploads/2012/09/00-daa-w8-start-tiles1.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="00-daa-w8-start-tiles" border="0" alt="00-daa-w8-start-tiles" src="http://i2.wp.com/www.studiochris.us/site/wp-content/uploads/2012/09/00-daa-w8-start-tiles_thumb1.png?resize=928%2C522"  data-recalc-dims="1"></a></p>
<p>The tiles for the Start Screen are minimal in appearance using simply a background color and icon to identify the app. They are are available in two variations, both in two sizes:</p>
<ol>
<li>Non-live tiles for those that may choose to opt out of live tiles. They show only an icon and name on a solid background as described above.
<li>Live tiles, which are the default for Windows 8, that show the app icon and various other useful information from the app right on the Start Screen. As shown in the screenshot, the DAA tiles may show new activity in an enrolled course, reminders for Live Sessions or information related to course download activity.</li>
</ol>
<h2>Splash Screen: Stage 1</h2>
<p><a href="http://i1.wp.com/www.studiochris.us/site/wp-content/uploads/2012/09/01-daa-w8-splash1.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="01-daa-w8-splash" border="0" alt="01-daa-w8-splash" src="http://i2.wp.com/www.studiochris.us/site/wp-content/uploads/2012/09/01-daa-w8-splash_thumb1.png?resize=928%2C522"  data-recalc-dims="1"></a></p>
<p>
<p>DAA&#8217;s splash screen, shown while the app is loading, mirrors the view from the tiles from the Start screen.</p>
<h2>Splash Screen: Stage 2</h2>
<p><a href="http://i0.wp.com/www.studiochris.us/site/wp-content/uploads/2012/09/02-daa-w8-signin1.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="02-daa-w8-signin" border="0" alt="02-daa-w8-signin" src="http://i2.wp.com/www.studiochris.us/site/wp-content/uploads/2012/09/02-daa-w8-signin_thumb1.png?resize=928%2C522"  data-recalc-dims="1"></a></p>
<p>Once loaded, the splash screen animates to show the DAA login form. Logging in is required for students to access their own personal dashboard and to allow access to their enrolled courses. New users may access the app in Guest mode or create an account from this screen as well. Of course, Guest mode users will need to sign in officially to take part in DAA courses.</p>
<h2>Home Screen</h2>
<p><a href="http://i2.wp.com/www.studiochris.us/site/wp-content/uploads/2012/09/03-daa-w8-home1.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="03-daa-w8-home" border="0" alt="03-daa-w8-home" src="http://i1.wp.com/www.studiochris.us/site/wp-content/uploads/2012/09/03-daa-w8-home_thumb1.png?resize=928%2C522"  data-recalc-dims="1"></a></p>
<p>Once logged in, users are taken to the Home screen, which is the main portal for the entire app, much like the Start screen is the main portal for Windows 8. It is broken into several groups that cover all of the main destinations in the app.</p>
<h3>Courses</h3>
<p>The Courses group contains all of the student&#8217;s classes that are currently in session and active. The tiles may show either a poster image or slideshow for the course or an alternative live tile that is similar to the main app tile shown on the Start Screen, only with information dedicated to the specific course being represented.</p>
<h3>Social</h3>
<p>In the Social group, students will find their Friends list along with user-customizable tiles, complete with online indicators, that link directly to their friends&#8217; profiles. Private messages and watched forum topics are also included.</p>
<h3>Catalog</h3>
<p>The Catalog group is the gateway to the entire DAA Course Catalog. Along with access to All Courses, live tiles are shown for specific categories and groupings and allow the student to browse quickly. The Wishlist feature of the Catalog is also front-and-center and allows students to add courses that they would like to participate in later. Being an official Corel Training Partner, of course Corel Painter courses are very easily accessible through a category tile. The remaining tiles in the Catalog group are for featured courses.</p>
<h3>History</h3>
<p>While not visible, the History group allows students to browse a snapshot of course content from classes that have completed in a familiar format.</p>
<h2>Course Enrollment Screen</h2>
<p><a href="http://i2.wp.com/www.studiochris.us/site/wp-content/uploads/2012/09/04-daa-w8-enroll1.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="04-daa-w8-enroll" border="0" alt="04-daa-w8-enroll" src="http://i1.wp.com/www.studiochris.us/site/wp-content/uploads/2012/09/04-daa-w8-enroll_thumb1.png?resize=928%2C522"  data-recalc-dims="1"></a></p>
<p>Accessed from the Catalog, the Course Enrollment screen gives a basic description of the course along with a slideshow of images used to demonstrate the techniques taught in the class as well as other helpful info that may help the student decide whether or not the course is a good fit for their needs. As shown the other info may include a short syllabus for the course as well as a preview of course materials and events.</p>
<p>The background used in this screen and other course-specific screens is chosen by the instructor during course creation. The app analyzes the background and chooses a complementary color for UI elements. In this case, the background is the image shown in the slider and a rich golden yellow was chosen as the complementary color.</p>
<p>For consistency and clarity throughout the app, when shown with user interface elements, the background is blurred and covered by a dark overlay. While it fades to the back, as a background should, the color mixing between the overlay and image establishes depth and helps the overall UI environment from feeling flat and boring.</p>
<h2>Classroom Overview Screen</h2>
<p><a href="http://i1.wp.com/www.studiochris.us/site/wp-content/uploads/2012/09/05-daa-w8-classroom-main1.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="05-daa-w8-classroom-main" border="0" alt="05-daa-w8-classroom-main" src="http://i0.wp.com/www.studiochris.us/site/wp-content/uploads/2012/09/05-daa-w8-classroom-main_thumb1.png?resize=928%2C522"  data-recalc-dims="1"></a></p>
<p>The main classroom remains simple and easy to navigate by showing only one week of course materials at a time. This view also shows the context menu for the student&#8217;s avatar with options to view private messages, edit/view their profile and log out of the app.</p>
<h3>Resources</h3>
<p>The course materials are front and center in the Resources group. They are organized by type, pre-downloaded where available and cached for ease and speed of access.</p>
<p>Videos are downloaded and play in the app itself. Finding a proper player has been a problem for students in the past, so the built in player removes one of the pain points of the current web experience.</p>
<p>Since Files are usually reference photos, sketches and brush files, during the download stage, they are saved to the student&#8217;s Documents library so they are easy to access in their digital painting software. PDF lessons may be viewed and commented on in the app with forum integration or through external apps like Adobe Reader or the new Reader app in Windows 8.</p>
<p>Events, usually webinars and live sessions, are coordinated through online conferencing and display through an in-app browser, so the student doesn&#8217;t have to open a dedicated web browser to register or participate. Of course, webinars may also be accessed through external web browsers.</p>
<h3>Discussion</h3>
<p>The weekly forums occupy the Discussion group. The two main forums available in each week of a DAA class are for asking questions and discussing the weekly assignments and related content. Each forum has a live tile indicating the unread counts since the last visit. Under the main love tiles are secondary tiles for popular or watched topics with new replies.</p>
<h3>Gallery</h3>
<p>The Gallery group gathers all of the images posted by the students in the weekly Show &amp; Tell forum into an easy to browse wall of images. Students have requested a feature like this many times in the past. While the current platform isn&#8217;t particularly well-suited for the feature, the underlying platform and API necessary to build the DAA app would make it very easy to construct. Gallery tiles would also allow access to the original forum posting for another way to browse the weekly Show &amp; Tell forum.</p>
<h2>Nav Bar for the Weekly Classroom Overview</h2>
<p><a href="http://i1.wp.com/www.studiochris.us/site/wp-content/uploads/2012/09/06-daa-w8-classroom-nav-bar.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="06-daa-w8-classroom-nav-bar" border="0" alt="06-daa-w8-classroom-nav-bar" src="http://i0.wp.com/www.studiochris.us/site/wp-content/uploads/2012/09/06-daa-w8-classroom-nav-bar_thumb.png?resize=928%2C522"  data-recalc-dims="1"></a></p>
<p>Original concepts for the app had a screen dedicated to switching between the weeks with some secondary content. In the final concept, the entire screen was replaced with a simple nav bar that removes a step in accessing course materials. Students are always returned to the last week they viewed when entering the classroom, or the new week when it becomes available for the first time.</p>
<p>The buttons in the nav bar show the status of each week, much like live tiles would in a conventional screen. In this view, the week 04 is locked and unavailable to students, so it is showing a disabled state. At the proper time, the week will unlock and be accessible with its button becoming fully opaque. </p>
<p>The ring around the week numbers, in addition to matching the styling of Windows 8 navigation and buttons, shows the download status for the course materials in the week. Week 03, in this case, is currently being downloaded and is approximately 65% complete. Weeks 01 and 02 are fully downloaded.</p>
<p>While not designed for the contest entry, and perhaps unconventional since the weeks cannot simply be scrolled into view with a single finger gesture, Windows 8&#8242;s Semantic Zoom feature from the Weekly Overview could be used as another way to switch between weeks.</p>
<h2>Weekly Forum Topics Screen</h2>
<p><a href="http://i2.wp.com/www.studiochris.us/site/wp-content/uploads/2012/09/07-daa-w8-forum-view.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="07-daa-w8-forum-view" border="0" alt="07-daa-w8-forum-view" src="http://i2.wp.com/www.studiochris.us/site/wp-content/uploads/2012/09/07-daa-w8-forum-view_thumb.png?resize=928%2C522"  data-recalc-dims="1"></a></p>
<p>The forums inside of DAA courses are where all of the discussion and sharing of work take place. They are accessed via the Discussion tabs in the weekly course overview screen. In the app, the traditional list of topics is replaced by a tile list showing the title of the thread, the author, number of new replies since the last visit and a thumbnail of the image being discussed (or the avatar of the first post author if no image is uploaded into the topic).</p>
<h3>Watched</h3>
<p>The Watched group is a student-customizable group that contains topics the student has chosen to follow closely. </p>
<h3>New</h3>
<p>Topics with new replies since the last forum visit are shown in this group. They are arranged newest to oldest by the last reply by default.</p>
<h3>All</h3>
<p>As the name suggests, all topics are listed in the All group. They are arranged newest to oldest by the original topic date by default so that the order of topics remains consistent as replies and new topics are posted.</p>
<h4>Notifications</h4>
<p>This screen also shows an example of in-app notifications that appear in the top right corner of the screen. Notifications can be shown when new private messages are received, course content downloads complete, a watched topic receives a new reply or other important events happen within the app and DAA environment.</p>
<h2>Gallery Overview Screen</h2>
<p><a href="http://i2.wp.com/www.studiochris.us/site/wp-content/uploads/2012/09/08-daa-w8-gallery-large.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="08-daa-w8-gallery-large" border="0" alt="08-daa-w8-gallery-large" src="http://i0.wp.com/www.studiochris.us/site/wp-content/uploads/2012/09/08-daa-w8-gallery-large_thumb.png?resize=928%2C522"  data-recalc-dims="1"></a></p>
<p>The Gallery overview screen collects all of the large images from the weekly forums for the course for display. As mentioned previously, this is a requested feature from students. It enables students to quickly see what their classmates have worked on throughout the course. Images can also be opened in a single-image, fullscreen view. Context menus provide other navigation options, such as opening the original forum thread for the image.</p>
<h2>Gallery Overview Semantic Zoom</h2>
<p><a href="http://i1.wp.com/www.studiochris.us/site/wp-content/uploads/2012/09/09-daa-w8-gallery-zoom.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="09-daa-w8-gallery-zoom" border="0" alt="09-daa-w8-gallery-zoom" src="http://i0.wp.com/www.studiochris.us/site/wp-content/uploads/2012/09/09-daa-w8-gallery-zoom_thumb.png?resize=928%2C522"  data-recalc-dims="1"></a></p>
<p>Semantic Zoom is used in the Gallery to allow students to quickly browse through large collections of images either by the original artist, predominant colors, or through thumbnails of the included images. Other metadata from gallery images could be included as a browsing group as well.</p>
<h2>Conclusion</h2>
<p>The final app design is vastly different from the DAA web interface, but feels right at home in Windows 8. The screens have been slimmed down and place course content easily within the grasp of students… quite literally with Windows 8&#8242;s emphasis on touch. </p>
<p>Downloaded course content is available in all situations, so the student is free to unplug from the Internet and learn and paint anywhere. Just imagine relaxing by the lake, watching a few lesson videos and then going straight into Painter or Photoshop to capture the sun setting over the water on a <a href="http://www.microsoft.com/surface/en/us/default.aspx">Surface Pro tablet</a>.&nbsp; If it were more than a design comp, Digital Art Academy for Windows 8 would enable exactly that! One can dream.</p>
<p>For credit where it&#8217;s due, the pencil, pen and brush icons used on the live tiles were designed by and can be downloaded from <a href="http://brankic1979.com/icons/">Brankic1979</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=RYkfsETLQYQ:5Drv4qlVDEE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=RYkfsETLQYQ:5Drv4qlVDEE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?i=RYkfsETLQYQ:5Drv4qlVDEE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=RYkfsETLQYQ:5Drv4qlVDEE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?i=RYkfsETLQYQ:5Drv4qlVDEE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=RYkfsETLQYQ:5Drv4qlVDEE:guobEISWfyQ"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?i=RYkfsETLQYQ:5Drv4qlVDEE:guobEISWfyQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/StudiochrisBlog/~4/RYkfsETLQYQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.studiochris.us/2012/digital-art-academy-for-windows-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.studiochris.us/2012/digital-art-academy-for-windows-8/</feedburner:origLink></item>
		<item>
		<title>FruitBat 1.5 Update Available</title>
		<link>http://feedproxy.google.com/~r/StudiochrisBlog/~3/c59kGHm8lEk/</link>
		<comments>http://www.studiochris.us/2012/fruitbat-1-5-update-available/#comments</comments>
		<pubDate>Tue, 03 Jul 2012 20:30:00 +0000</pubDate>
		<dc:creator>Chris Price</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[adobe air]]></category>
		<category><![CDATA[BlackBerry PlayBook]]></category>
		<category><![CDATA[FruitBat]]></category>

		<guid isPermaLink="false">http://www.studiochris.us/?p=2051</guid>
		<description><![CDATA[It has been a while since the last FruitBat update was made available and since then, a lot has changed. BlackBerry 10 is on the way and Tablet OS updated to 2.0 with 2.1 in beta. WebWorks also continues to evolve in the BlackBerry github repository. With all of the activity around BlackBerry development, FruitBat &#8230; <a href="http://www.studiochris.us/2012/fruitbat-1-5-update-available/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><img title="FruitBat 1.5 with Console" src="http://i2.wp.com/www.studiochris.us/site/wp-content/uploads/2012/07/fruitbat_1-5_thumb.png?resize=700%2C630" alt="FruitBat 1.5 with Console" border="0" data-recalc-dims="1" /></p>
<p>It has been a while since the last <a href="http://www.studiochris.us/software/fruit-bat/">FruitBat</a> update was made available and since then, a lot has changed. BlackBerry 10 is on the way and Tablet OS updated to 2.0 with 2.1 in beta. <a href="http://blackberry.github.com/webworks/index.html">WebWorks</a> also continues to evolve in the <a href="http://blackberry.github.com/">BlackBerry github repository</a>. With all of the activity around BlackBerry development, FruitBat needed some attention to keep up as well as improve some of its basic functionality.<span id="more-2051"></span></p>
<p>For instance, while working on a new, exciting WebWorks project, I discovered WebWorks support at a place it needed to be for any serious use. It was <strong>severely</strong> broken for all but the most basic apps, so I rewrote it from scratch, squashed every bug I could find, and now it is working beautifully and completely as intended. Packaging raw HTML, CSS and JavaScript files into a fully working app and installing directly to a PlayBook simulator or tablet is a one-click affair; it couldn&#8217;t be easier. Of course, there&#8217;s a lot more including a brand new Console window; check the Change Log for details.</p>
<p>Download links for the previous version will remain active for the time being if you need to downgrade for some reason. Please do <a href="http://www.studiochris.us/contact">send in any bugs</a> you encounter so that I can work on fixing them, and if you&#8217;ve found FruitBat to be helpful, please consider <a href="http://www.studiochris.us/donate/">donating</a> to keep the project going.</p>
<p>If you already have FruitBat installed, updates are enabled and accessible through the Help menu (Help &gt; Check for Updates) on both Mac OS and Windows. If it isn&#8217;t already installed, Mac users may need to download and install/update to <a href="http://www.adobe.com/go/getair/">AIR 3.3</a> before installing FruitBat. Windows should automatically update to AIR 3.3 if an earlier version is installed.</p>
<div class="button largebutton as3, blackberry, air, windows" style="margin-bottom: 1.5em;"><p><a href="http://www.studiochris.us/download/FruitBat-1.5.0259.exe" title="Download FruitBat 1.5 (Win) 1.5.0259">Download FruitBat 1.5 (Win)</a><br><small>v 1.5.0259 - 1.58 MB – <span class="filetype">exe</span></small></p></div>
<div class="button largebutton as3, blackberry, air, mac" style="margin-bottom: 1.5em;"><p><a href="http://www.studiochris.us/download/FruitBat-1.5.0259.dmg" title="Download FruitBat 1.5 (Mac) 1.5.0259">Download FruitBat 1.5 (Mac)</a><br><small>v 1.5.0259 - 1.46 MB – <span class="filetype">dmg</span></small></p></div>
<h2>Change Log</h2>
<p>FruitBat 1.5 includes the following changes:</p>
<ul>
<li><strong>CHANGE: </strong>Updated to use Adobe AIR 3.3.</li>
<li><strong>BUGFIX:</strong> WebWorks packaging automatic ZIP file creation could create a ZIP file with a name considered invalid by the WebWorks packager. ZIP files are now simply called &#8220;app.zip&#8221; for WebWorks packaging purposes. The final BAR file is renamed after your application.</li>
<li><strong>BUGFIX:</strong> WebWorks ZIP files did not maintain the original directory structure of your app&#8217;s source folder as intended. This would cause 404 errors in your final app when resource URLs pointed to the original directory structure. ZIP files are now formatted properly and directory structure is maintained.</li>
<li><strong>BUGFIX:</strong>When creating a ZIP file for the WebWorks packager or packaging an AIR application for Tablet OS, Git-specific files were included by mistake. &#8216;.gitignore&#8217; and &#8216;.gitattributes&#8217; have been added to the exclusion list and will not be added to your app&#8217;s final archive. For those using Dreamweaver to build WebWorks apps, the _notes folder is now excluded as well if Design Notes are enabled for your Dreamweaver site. Final ZIP files should be 100% clean. The total exclusion list now consists of:
<ul>
<li>hidden files</li>
<li>symbolic links</li>
<li>.gitignore</li>
<li>.gitattributes</li>
<li>thumbs.db</li>
<li>_notes</li>
<li>__MacOSX</li>
<li>.trash</li>
<li>.ds_store</li>
<li>any files with names beginning with &#8220;._&#8221;</li>
<li>all of the following file extensions: EXE, MSI, BAR, BAT, INI, COM, VB, VBS, DMG, APP, SEA, AIR, TMP, DEB, RPM, SCRIPT</li>
<li>any files that are 0 bytes in size</li>
<li>empty directories</li>
</ul>
</li>
<li><strong>BUGFIX:</strong> WebWorks app icons were sometimes not shown in the FruitBat app panel, even when properly specified in the loaded config.xml file due to XML parsing errors. FruitBat now uses more lenient matching to find the icon and should always display it properly.</li>
<li><strong>BUGFIX:</strong> Version 1.4 required the WebWorks SDK folder chosen to be the &#8220;bbwp&#8221; folder inside of the WebWorks SDK&#8217;s main directory. Now, you may choose either and Fruitbat will not complain or throw another folder select dialog in your face. &#8220;bbwp&#8221; is automatically appended if the main directory is chosen and it truly exists.</li>
<li><strong>CHANGE:</strong> Slightly modified the process for requesting a debug token from RIM. The setting for Debug Token Location is now a directory instead of a file. FruitBat will create the debug token inside of the specified directory and the final token will simply be called &#8220;debug_token.bar&#8221;. If a directory is specified already, a token will be automatically generated without asking you to select a file location.</li>
<li><strong>CHANGE:</strong> Settings/Preferences window content updated to use HTML and JavaScript instead of Flash components.</li>
<li><strong>CHANGE: </strong>Console window updated to use HTML and JavaScript instead of Flash components.</li>
<li><strong>NEW:</strong> When choosing files and folders from the Settings/Preferences window, the console will show error messages if incorrect files are chosen from the file/folder browse dialogs based on the current browsing requirements.</li>
<li><strong>NEW: </strong>Console messages are now color-coded and styled for readability. Messages with the FruitBat icon to the left are from the FruitBat app, green messages are from the command line interface of your operating system and error messages are red.</li>
<li><strong>NEW:</strong> Console themes for accessibility that change the red and green color scheme to blue and gold to maintain a difference between normal and error messages for those with color blindness. To change the theme, choose a different option from the select menu labeled &#8220;Console Color Assist&#8221; in the new Accessibility section of the Preferences window.</li>
<li><strong>NEW:</strong> Copy and paste from the Console window (thanks HTML).</li>
<li><strong>NEW:</strong> Clear function added to the Console window.</li>
<li><strong>NEW: </strong>More messages added to the console to show what FruitBat is doing or any errors it may encounter.</li>
<li><strong>BUGFIX: </strong>Browse buttons in the Settings/Preferences window did not always correctly open a file browsing dialog when clicked. Fixed July 4, 2012, but doesn&#8217;t need an entirely new post.</li>
<li><strong>BUGFIX: </strong>Changed app panel to look for bar-descriptor.xml as well as blackberry-tablet.xml to support both 1.0 and 2.0 versions of the PlayBook AIR SDK. Fixed July 5, 2012.</li>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=c59kGHm8lEk:AkfRMWEg7l0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=c59kGHm8lEk:AkfRMWEg7l0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?i=c59kGHm8lEk:AkfRMWEg7l0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=c59kGHm8lEk:AkfRMWEg7l0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?i=c59kGHm8lEk:AkfRMWEg7l0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=c59kGHm8lEk:AkfRMWEg7l0:guobEISWfyQ"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?i=c59kGHm8lEk:AkfRMWEg7l0:guobEISWfyQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/StudiochrisBlog/~4/c59kGHm8lEk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.studiochris.us/2012/fruitbat-1-5-update-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.studiochris.us/2012/fruitbat-1-5-update-available/</feedburner:origLink></item>
		<item>
		<title>FruitBat 1.4.0134: Not Expired</title>
		<link>http://feedproxy.google.com/~r/StudiochrisBlog/~3/9sEd5lB3Bes/</link>
		<comments>http://www.studiochris.us/2012/fruitbat-1-4-0134-not-expired/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 16:58:30 +0000</pubDate>
		<dc:creator>Chris Price</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.studiochris.us/?p=2044</guid>
		<description><![CDATA[I apologize, everyone. I thought I had disabled the expiration on the build that was posted back in November 2011, especially when it didn&#8217;t expire properly on January 1, 2012. I was wrong. It didn&#8217;t expire in January due to a bug in that build. It is fixed now and FruitBat no longer has an &#8230; <a href="http://www.studiochris.us/2012/fruitbat-1-4-0134-not-expired/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I apologize, everyone. I thought I had disabled the expiration on the build that was posted back in November 2011, especially when it didn&#8217;t expire properly on January 1, 2012. I was wrong. It didn&#8217;t expire in January due to a bug in that build. It is fixed now and FruitBat no longer has an expiration date at all, not even a disabled one.</p>
<p><div class="button largebutton as3, windows, air, blackberry" style="margin-bottom: 1.5em;"><p><a href="http://www.studiochris.us/download/FruitBat-beta_1.4.0134.exe" title="Download FruitBat 1.4 Beta (Win) 1.4.0134">Download FruitBat 1.4 Beta (Win)</a><br><small>v 1.4.0134 - 1.26 MB – <span class="filetype">exe</span></small></p></div>
<div class="button largebutton as3, blackberry, air, mac" style="margin-bottom: 1.5em;"><p><a href="http://www.studiochris.us/download/FruitBat-beta_1.4.0134.dmg" title="Download FruitBat 1.4 Beta (Mac) 1.4.0134">Download FruitBat 1.4 Beta (Mac)</a><br><small>v 1.4.0134 - 1.18 MB – <span class="filetype">dmg</span></small></p></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=9sEd5lB3Bes:cjKsrv4K_64:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=9sEd5lB3Bes:cjKsrv4K_64:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?i=9sEd5lB3Bes:cjKsrv4K_64:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=9sEd5lB3Bes:cjKsrv4K_64:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?i=9sEd5lB3Bes:cjKsrv4K_64:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=9sEd5lB3Bes:cjKsrv4K_64:guobEISWfyQ"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?i=9sEd5lB3Bes:cjKsrv4K_64:guobEISWfyQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/StudiochrisBlog/~4/9sEd5lB3Bes" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.studiochris.us/2012/fruitbat-1-4-0134-not-expired/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.studiochris.us/2012/fruitbat-1-4-0134-not-expired/</feedburner:origLink></item>
		<item>
		<title>FruitBat 1.4.0132 Update Available</title>
		<link>http://feedproxy.google.com/~r/StudiochrisBlog/~3/nXj-O_BmLbo/</link>
		<comments>http://www.studiochris.us/2011/fruitbat-1-4-0132-update/#comments</comments>
		<pubDate>Mon, 07 Nov 2011 10:47:15 +0000</pubDate>
		<dc:creator>Chris Price</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[adobe air]]></category>
		<category><![CDATA[BlackBerry PlayBook]]></category>
		<category><![CDATA[FruitBat]]></category>

		<guid isPermaLink="false">http://www.studiochris.us/?p=2029</guid>
		<description><![CDATA[The FruitBat 1.4.0132 update includes the following changes: BUGFIX: (Mac Only) Automatic updates did not function in 1.4.0127 (sorry guys &#8211; you&#8217;ll have to download the installer from the site this time). This was fixed and tested in an intermediate unreleased version 1.4.0130. BUGFIX: Auto-generated WebWorks ZIP file name could possibly be invalid when attempting &#8230; <a href="http://www.studiochris.us/2011/fruitbat-1-4-0132-update/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>The FruitBat 1.4.0132 update includes the following changes:</p>
<ul>
<li><strong>BUGFIX</strong>: (Mac Only) Automatic updates did not function in 1.4.0127 (sorry guys &#8211; you&#8217;ll have to download the installer from the site this time). This was fixed and tested in an intermediate unreleased version 1.4.0130.</li>
<li><strong>BUGFIX</strong>: Auto-generated WebWorks ZIP file name could possibly be invalid when attempting to package a WebWorks app. This would cause packaging to fail. All ZIP file names should be fully valid now, every time.</li>
<li><strong>BUGFIX</strong>: Register Signing Keys item in the Publish menu was not linked to its action, so it did nothing when selected. Now, registering signing keys via this menu item should function properly.</li>
<li><strong>CHANGE</strong>:  The process for installing debug tokens was changed to allow file selection if the Debug Token Save Location in the Settings/Preferences window did not contain a valid file location.</li>
<li><strong>NEW</strong>: Added messages to the console for:</li>
<ul>
<li> loading XML from any of the available options (drag &amp; drop, shortcut key, menu item)</li>
<li>creating/refreshing the package file list</li>
<li>updating the main app panel</li>
<li>installing standalone BAR files</li>
<li>uninstalling standalone BAR files</li>
</ul>
</ul>
<p>Windows users may use the update feature to download and install the update automatically. Mac users should use the download button below for this time. There is no need to uninstall the previous version before installing this one. The old version will simply be replaced on install.</p>
<div><div class="button largebutton as3, windows, air, blackberry" style="margin-bottom: 1.5em;"><p><a href="http://www.studiochris.us/download/FruitBat-beta_1.4.0134.exe" title="Download FruitBat 1.4 Beta (Win) 1.4.0134">Download FruitBat 1.4 Beta (Win)</a><br><small>v 1.4.0134 - 1.26 MB – <span class="filetype">exe</span></small></p></div></div>
<div><div class="button largebutton as3, blackberry, air, mac" style="margin-bottom: 1.5em;"><p><a href="http://www.studiochris.us/download/FruitBat-beta_1.4.0134.dmg" title="Download FruitBat 1.4 Beta (Mac) 1.4.0134">Download FruitBat 1.4 Beta (Mac)</a><br><small>v 1.4.0134 - 1.18 MB – <span class="filetype">dmg</span></small></p></div></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=nXj-O_BmLbo:54ZA1ZBWeUE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=nXj-O_BmLbo:54ZA1ZBWeUE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?i=nXj-O_BmLbo:54ZA1ZBWeUE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=nXj-O_BmLbo:54ZA1ZBWeUE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?i=nXj-O_BmLbo:54ZA1ZBWeUE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=nXj-O_BmLbo:54ZA1ZBWeUE:guobEISWfyQ"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?i=nXj-O_BmLbo:54ZA1ZBWeUE:guobEISWfyQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/StudiochrisBlog/~4/nXj-O_BmLbo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.studiochris.us/2011/fruitbat-1-4-0132-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.studiochris.us/2011/fruitbat-1-4-0132-update/</feedburner:origLink></item>
		<item>
		<title>FruitBat 1.4 Beta Release</title>
		<link>http://feedproxy.google.com/~r/StudiochrisBlog/~3/5Y4kZT3KE-M/</link>
		<comments>http://www.studiochris.us/2011/fruitbat-1-4-beta-release/#comments</comments>
		<pubDate>Sun, 06 Nov 2011 13:02:58 +0000</pubDate>
		<dc:creator>Chris Price</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[adobe air]]></category>
		<category><![CDATA[BlackBerry PlayBook]]></category>
		<category><![CDATA[FruitBat]]></category>

		<guid isPermaLink="false">http://www.studiochris.us/2011/fruitbat-1-4-beta-release/</guid>
		<description><![CDATA[Considering it has been so long, I&#8217;ve decided to release a public beta of the in-progress version of FruitBat… and this time something for the Mac folks too! As there is so much new stuff, be sure to check the main page for instructions, though you probably won&#8217;t need them because most actions have only &#8230; <a href="http://www.studiochris.us/2011/fruitbat-1-4-beta-release/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Considering it has been so long, I&#8217;ve decided to release a public beta of the in-progress version of FruitBat… and this time something for the Mac folks too! As there is so much new stuff, be sure to check the <a href="http://www.studiochris.us/software/fruit-bat/">main page</a> for instructions, though you probably won&#8217;t need them because most actions have only one step. How&#8217;s that for easy?</p>
<p><img class="photoframe" title="FruitBat: Cross-Platform" src="http://i0.wp.com/www.studiochris.us/site/wp-content/uploads/2011/11/fruitbat-x-platform_thumb.png?resize=600%2C450" alt="FruitBat: Cross-Platform" border="0" data-recalc-dims="1" /></p>
<p><strong>This beta installation will expire and no longer run at midnight on December 31, 2011.</strong></p>
<p>Updates have been enabled for all current installations. To install the current version, use &#8220;Check for updates&#8221; from the Help menu. Settings are not compatible between the two versions, so they will have to be redone via the new Settings window. Update is not required if you would like to stay with version 1.3, despite it&#8217;s display bug.</p>
<p>Download links, release notes, known issues, etc after the jump.</p>
<p><span id="more-2010"></span></p>
<p><div class="button largebutton as3, windows, air, blackberry" style="margin-bottom: 1.5em;"><p><a href="http://www.studiochris.us/download/FruitBat-beta_1.4.0134.exe" title="Download FruitBat 1.4 Beta (Win) 1.4.0134">Download FruitBat 1.4 Beta (Win)</a><br><small>v 1.4.0134 - 1.26 MB – <span class="filetype">exe</span></small></p></div> <div class="button largebutton as3, blackberry, air, mac" style="margin-bottom: 1.5em;"><p><a href="http://www.studiochris.us/download/FruitBat-beta_1.4.0134.dmg" title="Download FruitBat 1.4 Beta (Mac) 1.4.0134">Download FruitBat 1.4 Beta (Mac)</a><br><small>v 1.4.0134 - 1.18 MB – <span class="filetype">dmg</span></small></p></div></p>
<h2>New Features</h2>
<ul>
<li>Compatibility with Mac OS X (Snow Leopard &amp; Lion)</li>
<li>Platform specific interface features &amp; language</li>
<li>Easily switchable, dedicated simulator and tablet launch targets</li>
<li>No longer relies on batch files or standard Windows Command Prompt commands (except ping)</li>
<li>Floating, transparent Settings/Preferences window for quick changes</li>
<li>Compatibility with the BlackBerry® WebWorks™ SDK [the works!]</li>
<li>Everything FruitBat will do for the AIR SDK, it will do for WebWorks</li>
<li>Access to the FruitBat console in case you want to see the command line fly past as FruitBat works</li>
<li>Link to order signing keys from RIM</li>
<li>Automated registration for both your code signing key and debug token</li>
<li>Create debug tokens</li>
<li>Install debug tokens</li>
<li>Package and sign final releases of your app with one click (Okay, it&#8217;s two, but at least you don&#8217;t have to touch the command line tools!)</li>
</ul>
<h2>Bug Fixes</h2>
<ul>
<li>&#8220;undefined&#8221; app title, version and BAR file name issues have been resolved</li>
</ul>
<h2>Known Issues &amp; Incomplete Features</h2>
<p>There are a few lingering issues in this release, but it&#8217;s been far too long since the last release (especially with the display bug) to hold onto the release any longer. If you run into issues, feel free to leave a comment here or get in touch via the contact form (forums are coming).</p>
<p>These issues will all be addressed and do not need to be reported:</p>
<ul>
<li>&#8220;Copy FruitBat Settings/Preferences&#8221; menu item not enabled or implemented yet.</li>
<li>Activate/Deactivate menu items do not perform any action yet.</li>
<li>No alerts, notifications or messages are available outside of the Console window, so to see what&#8217;s going on, open it.</li>
<li>Installing a debug token does not ping the tablet first, like the other actions, so it is slow to fail when the tablet cannot be reached via its IP address (debug tokens not required in the simulator).</li>
<li><del>&#8220;Register Signing Keys&#8221; from the Publish menu does not perform any action. It was meant to be in this release, but it will be in the first update to the beta.</del> Fixed in 1.4.0132.</li>
<li>When choosing files and folders for the various settings, checks are performed on the selected files to make sure they are valid and what they&#8217;re supposed to be. If the check fails, no error is currently shown, but the file/folder browse dialog will open again immediately. Error dialogs are forthcoming and will ask for confirmation before opening the dialog again.</li>
<li>I&#8217;ve tried to add messages to the console so you can see that something is happening (outside of the standard SDK output), but some actions may be missing their additional messages.</li>
<li>Mac version has not been tested for registering signing keys, debug tokens or packaging a final release (which includes signing). If these do not work, please let me know. These commands are identical to the Windows version, which all work properly from my testing.</li>
<li>WebWorks basic functions work, but you must have the WebWorks SDK set up properly, according to RIM&#8217;s instructions (especially regarding debug token and certificate [sigtool.p12]) before using any of the WebWorks features.</li>
<li>For WebWorks, be sure to assign a build ID in your config.xml file by adding a fourth set of digits (between 0 and 999) in the version number [1.0.0.XXX]. FruitBat will use &#8220;0&#8243; if no build ID is found. <strong>Opinions and comments welcome</strong> on whether FruitBat should add its own configuration file to your project folder to store an auto-incrementing build ID and any other project-specific settings that may be required in the future. This, of course, would be excluded automatically from any BAR files created via the app.</li>
</ul>
<p>Not really an issue, but do not attempt to sign a BAR file created by clicking the &#8220;Package &amp; Install&#8221; button on the main screen. For AIR applications, the debug flag is set, and for WebWorks, the browser inspector is enabled. Use the Publish menu to create final packages.</p>
<p>Please, let me know your thoughts and interest in the continued development of FruitBat in the comments section. Reporting bugs is also greatly appreciated.</p>
<h3>Update</h3>
<p><del>12:09: Just found a bug with ZIP file name generation that may stop WebWorks apps from packaging properly. Will issue an update later today to address it.</del> Fixed in 1.0.0132.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=5Y4kZT3KE-M:24YerWvxkR0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=5Y4kZT3KE-M:24YerWvxkR0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?i=5Y4kZT3KE-M:24YerWvxkR0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=5Y4kZT3KE-M:24YerWvxkR0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?i=5Y4kZT3KE-M:24YerWvxkR0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=5Y4kZT3KE-M:24YerWvxkR0:guobEISWfyQ"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?i=5Y4kZT3KE-M:24YerWvxkR0:guobEISWfyQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/StudiochrisBlog/~4/5Y4kZT3KE-M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.studiochris.us/2011/fruitbat-1-4-beta-release/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.studiochris.us/2011/fruitbat-1-4-beta-release/</feedburner:origLink></item>
		<item>
		<title>FruitBat 1.3 Bug with SDK version 1.1.0</title>
		<link>http://feedproxy.google.com/~r/StudiochrisBlog/~3/cU8FUvYh-Pg/</link>
		<comments>http://www.studiochris.us/2011/fruitbat-1-3-bug-with-sdk-version-1-1-0/#comments</comments>
		<pubDate>Sun, 26 Jun 2011 17:16:12 +0000</pubDate>
		<dc:creator>Chris Price</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[BlackBerry PlayBook]]></category>
		<category><![CDATA[FruitBat]]></category>

		<guid isPermaLink="false">http://www.studiochris.us/2011/fruitbat-1-3-bug-with-sdk-version-1-1-0/</guid>
		<description><![CDATA[Using Tablet OS SDK version 1.1.0 and AIR 2.7, the main screen in FruitBat that shows your application&#8217;s icon when a descriptor is loaded may show &#8220;undefined&#8221; for both app name and app version. This does not affect FruitBat&#8217;s main functions; it still works as advertised, you&#8217;ll just see &#8220;undefined&#8221; instead of your app&#8217;s name &#8230; <a href="http://www.studiochris.us/2011/fruitbat-1-3-bug-with-sdk-version-1-1-0/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Using Tablet OS SDK version 1.1.0 and AIR 2.7, the main screen in FruitBat that shows your application&#8217;s icon when a descriptor is loaded may show &#8220;undefined&#8221; for both app name and app version. This does not affect FruitBat&#8217;s main functions; it still works as advertised, you&#8217;ll just see &#8220;undefined&#8221; instead of your app&#8217;s name or version. This includes the name of any packaged BAR file. You can change the package&#8217;s filename to anything you wish after it is generated (all of the important &#8220;stuff&#8221; is inside).</p>
<p>The fix has already been completed for the next update.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=cU8FUvYh-Pg:ZfPMTOlGSmY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=cU8FUvYh-Pg:ZfPMTOlGSmY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?i=cU8FUvYh-Pg:ZfPMTOlGSmY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=cU8FUvYh-Pg:ZfPMTOlGSmY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?i=cU8FUvYh-Pg:ZfPMTOlGSmY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=cU8FUvYh-Pg:ZfPMTOlGSmY:guobEISWfyQ"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?i=cU8FUvYh-Pg:ZfPMTOlGSmY:guobEISWfyQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/StudiochrisBlog/~4/cU8FUvYh-Pg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.studiochris.us/2011/fruitbat-1-3-bug-with-sdk-version-1-1-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.studiochris.us/2011/fruitbat-1-3-bug-with-sdk-version-1-1-0/</feedburner:origLink></item>
		<item>
		<title>MXSMaker: Image to Painter Mixer Pad</title>
		<link>http://feedproxy.google.com/~r/StudiochrisBlog/~3/0IgdpAbc9H8/</link>
		<comments>http://www.studiochris.us/2011/mxsmaker-image-to-painter-mixer-pad/#comments</comments>
		<pubDate>Sat, 04 Jun 2011 17:19:21 +0000</pubDate>
		<dc:creator>Chris Price</dc:creator>
				<category><![CDATA[Corel Painter]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Digital Painting]]></category>
		<category><![CDATA[Mixer Pad]]></category>
		<category><![CDATA[MXSMaker]]></category>

		<guid isPermaLink="false">http://www.studiochris.us/2011/mxsmaker-image-to-painter-mixer-pad/</guid>
		<description><![CDATA[Painter has a few ways of creating color palettes from images whether it be through color sets, the Match Color command or the stylistic coloring achieved through automatic processes such as in the Underpainting panel. Now, add one more: the Mixer panel. With MXSMaker, it is very easy to convert any JPG, PNG or GIF &#8230; <a href="http://www.studiochris.us/2011/mxsmaker-image-to-painter-mixer-pad/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Painter has a few ways of creating color palettes from images whether it be through color sets, the Match Color command or the stylistic coloring achieved through automatic processes such as in the Underpainting panel. Now, add one more: the Mixer panel. With <a href="http://www.studiochris.us/software/mxsmaker">MXSMaker</a>, it is very easy to convert any JPG, PNG or GIF file, with transparency preserved, into a Mixer Pad file that can be loaded directly into the Mixer panel of Painter 8.1 through Painter 12.</p>
<p><a title="MXSMaker" href="http://www.studiochris.us/software/mxsmaker/"><img class="photoframe" title="MXSMaker Main Window" src="http://i2.wp.com/www.studiochris.us/site/wp-content/uploads/2011/06/MXSMakerMain_thumb.png?resize=688%2C400" border="0" alt="MXSMaker Main Window" data-recalc-dims="1" /></a><span style="color: #a5a5a5;">MXSMaker Main Window</span></p>
<p><span id="more-1842"></span></p>
<p>MXSMaker is a minimal application with only one button that does one thing – make MXS files for Painter, and it is as easy to use as it looks:</p>
<ol>
<li>Click the Select Image button</li>
<li>Choose an image from the dialog</li>
<li>Save the converted file</li>
</ol>
<p>In addition to the button, there are three other ways to create Mixer Pad files with MXSMaker, and all are just as easy and fast.</p>
<ul>
<li>Drag any JPG, PNG or GIF file over the application window and drop the file</li>
<li>Copy and paste any compatible file from your OS&#8217; filesystem using standard OS shortcuts</li>
<li>Copy and paste any image data from any application (ex. a selection from Painter&#8217;s canvas, Photoshop, SnagIt or your web browser)</li>
</ul>
<p>Automatic updates are included in the application and are checked every time the application starts if an active internet connection is available. This behavior cannot be turned off; however, downloading and installing an update is your choice.</p>
<p>Special thanks to <a href="http://www.painterfun.com">Kaburaya</a> for the first Mixer Pad online converter and <a href="http://www.jitterbrush.com">David Gell</a> for sharing it.</p>
<div class="button largebutton" style="margin-bottom: 1.5em;"><p><a href="http://www.studiochris.us/download/MXSMaker-latest.air" title="Download MXSMaker 1.0.101">Download MXSMaker</a><br><small>v 1.0.101 - 564.12 kB – <span class="filetype">air</span></small></p></div>
<h2>Using an MXS File</h2>
<p>To load a converted MXS file into Painter, first make sure the Mixer panel is open. If it isn&#8217;t the panel can be accessed through the menu Window &gt; Color Panels &gt; Mixer or by using Ctrl/Cmd+2 from the default keyboard shortcuts.</p>
<p><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="Painter 12 Mixer Panel" src="http://i0.wp.com/www.studiochris.us/site/wp-content/uploads/2011/06/mixerPanel_thumb.png?resize=700%2C500" border="0" alt="Painter 12 Mixer Panel" data-recalc-dims="1" /><br />
<span style="color: #a5a5a5;">Painter 12 Mixer Panel</span></p>
<p>Next, be sure to save the current Mixer Pad file if you&#8217;d like to use it again later. Painter will not ask you to save before opening the new MXS file, and the old Mixer Pad will be lost forever. The save command is in the Mixer panel&#8217;s menu at the top-right of the panel.</p>
<p>After saving, click the menu button once more and choose Open Mixer Pad. After choosing your file, it will be loaded and ready for color mixing and picking.</p>
<h3>Known Issue</h3>
<p><del>Copy and paste only works with Ctrl+V in Mac OS instead of Cmd+V because the default Paste shortcut from the application menu is taking over the command. An update will be issued to address this at a later date.</del></p>
<p>Update issued as version 1.0.101 that corrects all known issues.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=0IgdpAbc9H8:b2M0gjATet8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=0IgdpAbc9H8:b2M0gjATet8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?i=0IgdpAbc9H8:b2M0gjATet8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=0IgdpAbc9H8:b2M0gjATet8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?i=0IgdpAbc9H8:b2M0gjATet8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=0IgdpAbc9H8:b2M0gjATet8:guobEISWfyQ"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?i=0IgdpAbc9H8:b2M0gjATet8:guobEISWfyQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/StudiochrisBlog/~4/0IgdpAbc9H8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.studiochris.us/2011/mxsmaker-image-to-painter-mixer-pad/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://www.studiochris.us/2011/mxsmaker-image-to-painter-mixer-pad/</feedburner:origLink></item>
		<item>
		<title>Using Brush Manager 0.6.1012 with Corel Painter 12</title>
		<link>http://feedproxy.google.com/~r/StudiochrisBlog/~3/FkX0u1o_oAo/</link>
		<comments>http://www.studiochris.us/2011/using-brush-manager-0-6-with-painter-12/#comments</comments>
		<pubDate>Sun, 22 May 2011 19:00:29 +0000</pubDate>
		<dc:creator>Chris Price</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[brush manager]]></category>
		<category><![CDATA[Corel Painter 12]]></category>

		<guid isPermaLink="false">http://www.studiochris.us/?p=1807</guid>
		<description><![CDATA[The current version of Brush Manager will not receive an update specifically for Painter 12; other plans are in the works. However, the current version is compatible with Painter 12. Here&#8217;s what to do: Open the Settings panel by clicking the wrench icon in the title bar. Leave your settings the way they are, especially &#8230; <a href="http://www.studiochris.us/2011/using-brush-manager-0-6-with-painter-12/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>The current version of Brush Manager will not receive an update specifically for Painter 12; other plans are in the works. However, the current version is compatible with Painter 12. Here&#8217;s what to do:</p>
<ol>
<li>Open the Settings panel by clicking the wrench icon in the title bar.</li>
<li>Leave your settings the way they are, especially User Mode which should be set to YES for most users. If you use a location that isn&#8217;t one of the default locations for Painter (ex. a folder on D: drive), skip steps 3 and 4.</li>
<li>For consistency choose Painter 11 from the Painter Version drop down.</li>
<li>Click the button that says Set to Default Location, then check the checkbox beside it for using a custom path.</li>
<li>If your path uses Application Data or AppData in Windows or Application Support on Mac OS, change 11 (or your version number) to 12 &#8212; this should be most users. If your path uses Program Files on Windows or Applications in Mac OS, change &#8220;Corel Painter 11&#8243; to &#8220;Painter12&#8243; with no spaces. Windows 64-bit users should also remove &#8221; (x86)&#8221; &#8212; the space in front of it too&#8211;  from the Program Files folder name.</li>
</ol>
<p>That&#8217;s it! This will install brushes into the Default workspace in the Painter Brushes library. Changing &#8220;Default&#8221; to another workspace name will use that workspace instead. Changing &#8220;Painter Brushes&#8221; to another library name will use that library instead. It&#8217;s all pretty straightforward.</p>
<p>If you do choose to use a different workspace or library, my recommendation is to use the Browse button that opens beside the path&#8217;s text box, just to make sure spelling and spacing are exact. The folder selection dialog that opens will be set to your current location and you should be able to see the folders for your other workspaces. Expand a workspace along with its Brushes folder and choose a library (any folder inside of the Brushes folder) and click OK. Now Brush Manager will install into the chosen workspace and library.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=FkX0u1o_oAo:Ck_Pmn1n9k0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=FkX0u1o_oAo:Ck_Pmn1n9k0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?i=FkX0u1o_oAo:Ck_Pmn1n9k0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=FkX0u1o_oAo:Ck_Pmn1n9k0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?i=FkX0u1o_oAo:Ck_Pmn1n9k0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=FkX0u1o_oAo:Ck_Pmn1n9k0:guobEISWfyQ"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?i=FkX0u1o_oAo:Ck_Pmn1n9k0:guobEISWfyQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/StudiochrisBlog/~4/FkX0u1o_oAo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.studiochris.us/2011/using-brush-manager-0-6-with-painter-12/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.studiochris.us/2011/using-brush-manager-0-6-with-painter-12/</feedburner:origLink></item>
		<item>
		<title>FruitBat 1.3 Released</title>
		<link>http://feedproxy.google.com/~r/StudiochrisBlog/~3/XUVSPMgm7Ng/</link>
		<comments>http://www.studiochris.us/2011/fruitbat-1-3-released/#comments</comments>
		<pubDate>Thu, 19 May 2011 14:31:06 +0000</pubDate>
		<dc:creator>Chris Price</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[BlackBerry PlayBook]]></category>
		<category><![CDATA[FlashDevelop]]></category>
		<category><![CDATA[FruitBat]]></category>

		<guid isPermaLink="false">http://www.studiochris.us/2011/fruitbat-1-3-released/</guid>
		<description><![CDATA[The BlackBerry PlayBook is finally here! This update to FruitBat adds the ability to install in-development apps to the PlayBook hardware for testing while using a debug token. It also has the ability to install and uninstall signed BAR files to and from the device. Current users can update by choosing Help &#62; Check for &#8230; <a href="http://www.studiochris.us/2011/fruitbat-1-3-released/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><a href="http://i0.wp.com/www.studiochris.us/site/wp-content/uploads/2011/05/fruitbat_1-3.png"><img class="photoframe" title="FruitBat 1.3" src="http://i2.wp.com/www.studiochris.us/site/wp-content/uploads/2011/05/fruitbat_1-3_thumb.png?resize=688%2C426" border="0" alt="FruitBat 1.3 Screenshot" data-recalc-dims="1" /></a></p>
<p>The BlackBerry PlayBook is finally here! This update to FruitBat adds the ability to install in-development apps to the PlayBook hardware for testing while using a debug token. It also has the ability to install and uninstall signed BAR files to and from the device.</p>
<p><span id="more-1813"></span></p>
<p>Current users can update by choosing Help &gt; Check for Updates from the application menu.</p>
<div class="button largebutton" style="margin-bottom: 1.5em;"><p><a href="http://www.studiochris.us/download/fruitbat-latest.exe" title="Download FruitBat 1.3.0025">Download FruitBat</a><br><small>v 1.3.0025 - 1006.99 kB – <span class="filetype">exe</span></small></p></div>
<h2>FlashDevelop Template Update</h2>
<p>Along with FruitBat, the FlashDevelop template has been updated for the latest version of the Tablet OS SDK. Several fields have been added to the blackberry-tablet XML template. A new icon template and two splash screen templates (one for landscape orientation and the other for portrait) have been added as well. All of these items match the current BlackBerry application design guidelines.</p>
<div class="button largebutton" style="margin-bottom: 1.5em;"><p><a href="http://www.studiochris.us/download/FlashDevelop_BlackBerry_PlayBook_Project.zip" title="Download BlackBerry Tablet OS Template 1.3.0025">Download BlackBerry Tablet OS Template</a><br><small>v 1.3.0025 - 672.73 kB – <span class="filetype">zip</span></small></p></div>
<h2>Release Notes</h2>
<ul>
<li>-devMode added to Package &amp; Install command</li>
<li>Install button removed from the multi-button</li>
<li>On-screen icon display resized to 86&#215;86 pixels</li>
<li>Successful actions will close the command prompt window automatically</li>
<li>Install command (Ctrl+I) from the application menu tested with signed BAR files</li>
<li>Graphic templates added to FlashDevelop template</li>
<li>blackberry-tablet.xml template updated for current SDK</li>
</ul>
<h3>Troubleshooting</h3>
<p>The newest version of the Tablet OS SDK doesn&#8217;t show error messages in the same way it did in 0.9.4, and the errors I have seen may not match what&#8217;s really going on (or tell what needs to be fixed). If something happens, the FruitBat script will only give an generic error message and may or may not show the error message from the SDK. If you run into an error, the following list may help you locate the problem:</p>
<ul>
<li>Are you using the latest version of the SDK?</li>
<li>Check the &#8220;Simulator IP Address&#8221; from the settings panel</li>
<li>Make sure the password for the simulator/device is correct</li>
<li>Make sure the device is in development mode</li>
<li>If installing a debug version of an app, check to see if a debug token has been installed and is still valid (these installs only last 30 days)</li>
<li>In the blackberry-tablet XML file, make sure you&#8217;ve used your exact vendor name from App World and have filled in the Author ID field with the correct value</li>
</ul>
<h2></h2>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=XUVSPMgm7Ng:bTJzvDFk6cY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=XUVSPMgm7Ng:bTJzvDFk6cY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?i=XUVSPMgm7Ng:bTJzvDFk6cY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=XUVSPMgm7Ng:bTJzvDFk6cY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?i=XUVSPMgm7Ng:bTJzvDFk6cY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/StudiochrisBlog?a=XUVSPMgm7Ng:bTJzvDFk6cY:guobEISWfyQ"><img src="http://feeds.feedburner.com/~ff/StudiochrisBlog?i=XUVSPMgm7Ng:bTJzvDFk6cY:guobEISWfyQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/StudiochrisBlog/~4/XUVSPMgm7Ng" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.studiochris.us/2011/fruitbat-1-3-released/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.studiochris.us/2011/fruitbat-1-3-released/</feedburner:origLink></item>
	</channel>
</rss><!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 16/45 queries in 0.212 seconds using disk: basic
Object Caching 1124/1284 objects using disk: basic

 Served from: www.studiochris.us @ 2013-05-15 09:59:00 by W3 Total Cache -->
