Tag Archive : Boxee


http://wiki.xbmc.org/index.php?title=Add-on:XeeBo 可直接在线安装

Size of this preview: 800 × 450 pixels

Full resolution‎ (1,280 × 720 pixels, file size: 486 KB, MIME type: image/jpeg)

自动化你的Boxee APP打包过程

自动化你的Boxee APP打包过程

If you’re developing apps for a client in an agile fashion, you’ll be showing the app to the client many times as you introduce new features in order to get feedback as soon as possible. Ensuring you have a nice tight feedback loop and the right app gets built. Any kind of friction will only slow you down and perhaps even avoid deploying as often. An automated solutions works in seconds, is consistent and avoids mistakes.

To be effective at getting rapid feedback you will need 2 things:

  • A custom repository to deploy your apps to, for clients to use your app and give feedback.
  • A build script to automate packaging and deploying the app to your custom repository. That’s what this post is about.

I did have an automated package and deploy until API keys were introduced, so at the moment this only packages. I’m hoping to redevelop that part, if it’s possible, so I can deploy in seconds too (joy).

The Build Script

The build script packages your app into a zip file, ready for publishing to a custom repository and the official Boxee library. Your free to download the build script and use it in any type of Boxee app development you like. It’s good to go as it is without and configuration (as long as you adhere to some conventions, although it’s easy to change if you like). It uses NAnt, so Windows only I’m afraid. I’m currently transitioning to a Mac, follow greatboxee on twitter or subscribe to this blog to hear when that’s out.


  • Packages the app into a zip file, in the right structure, ready for deployment
  • Strips out unwanted files (.svn, thumbs.db, Eclipse projects files etc)
  • No need to remember to remove the test-app tag
  • Version management automatically increments the version of your app, embeds the version into your descriptor file and appends to packaged zip
  • Keeps an audit trail of packaged apps, in case you need to go back to a deployed version
  • Easily identify the version of the app your coding, the version in the custom repository and the version in the official Boxee library

Getting it Working

Download the build script (GreatBoxee.Builds\package.build) from the Great Boxee GitHub repo and put in a folder inside your app in a folder called ‘Build’. There’s also an example app there with it working.

Create 3 descriptor files in your app root, one for each location the app will exist or be deployed to. They must have these names (conventions!).

  • descriptor.xml – the version of the app that your developing in your current apps folder on your dev machine. This will have the test-app tag in it. eg App Id – greatboxee.myvids
  • descriptor.beta.xml – the version of the app that will be deployed to your custom repository eg App Id – greatboxee-beta.myvids
  • descriptor.prod.xml – the version of the app that will be deployed to the official Boxee repository eg App Id – myvids

You can also give the app different names or logos so you can distinguish between them, when they are listed in Boxee App Library.

Then navigate to the Build folder in a command window and execute nant package. I use a little batch file to run which is in the example app on GitHub too. This runs the packaging task in the build script and only takes a few seconds. This creates 2 zipped up apps, ready for deployment, in your build location (see build.dir property, the default will create it in your ‘Build’ folder). One is for the custom repository and one for the official Boxee library. You get 2, so when your client says “That’s fantastic, I’m happy with that make it live” you can then deploy exactly the same app you have just shown them in your custom repository. No room for mistakes in going to package the app as it stands on you dev box (or source control).

This packaging script is just a part of the puzzle that is continuous integration.With a build server you can automate the entire process (test, package, tag, deploy). Triggered by checkin into your source control or manually.

Get the Build Script


创建你的第一个Boxee APP应用系列之一 设计皮肤Skin

这是9篇系列文章Building Your First App的第一篇

Boxee家族每个月都会增加很多因为更多的开发者发现了在这个平台上创建自己的客厅应用是如何的简单。  使用工具如Yahoo Pipes和流行的脚本库来生成feed, 开发者可以不用很多时间就从零开始发布应用使用Boxee的默认皮肤.  只要RSS feed 符合conforms to the Boxee spec and Boxee “just works.”

But where Boxee really shines as a development platform is with full skin apps.  A lot of Boxee RSS app developers are intimidated by the Boxee API, believing a strong Python background is necessary to build a full skin app.  However, this is just not the case.  Boxee apps can be as simple or as complex as the individual developer needs them to be with many applications requiring no Python application logic whatsoever to work well.  The XML-driven GUI available for Boxee developers gives you everything you need to take your RSS feed and provide a rich, compelling living room interface.

If you can make an RSS feed, you can make a Boxee skin app.

Last month, I got to work with prolific Boxee developer jendabom on building her first skin app for Boxee.  Together, we were able to take one of her RSS apps (Storyline) and make a full skin with a few emails and a couple afternoons worth of work .  From that correspondence, we’ve developed this series taking you step-by-step through building your first skin app.

The way I attack a new app is first designing the interface in my favorite graphic design suite.  I use GIMP myself (as it is FOSS), but if you have access to something more professional like Photoshop or Paintshop Pro that would be good too.

The goal of this step is to layout the interface you are looking for in individual layers that can then be cut out into individual graphics elements that you will make into Boxee app controls.

Here are a few tips:

  • Set your canvas size to 720p (1280×720).  This will ensure your skin looks good on a variety of displays.
  • We can start by choosing between two basic interface options – List and Panel. An example of a “List” interface would be Auto-Tune The News or The Philip DeFranco Show.  An example of a “Panel” interface would be AL TV or KidMango.  Adjust your UI design to fit each paradigm appropriately.
  • Text over multi-color images == bad.  Try to avoid this pet peeve of Boxee QA.

Here’s an example of what jendabom came up with for Storyline: