Pebble Local Simulator
[Overview]
This is an extension to the PebbleSDK2.0 Beta2 which allows you to build and run your pebble apps on your computer. It's compatible with Linux, Windows and Mac (thanks to @EdwardPatel).
The installation and the use of this simulator is very simple. Building and running your application needs two commands (one for building and one for running :) )
[Non-implemented features]
Dictionary
AppMessage
AppSync
MenuLayer
SimpleMenuLayer
Except from these, all features should be implementedNumberWindowBattery status
Accelerometer
JavaScript API
[Compatibility]
The most important feature for this simulator is compatibility. You should be able to leave your source code like it is for your watch, but there are a few problems:
- Non-implemented features. Very simple. I try to implement all features left as soon as possible. At the moment this simulator is my only possibility to actual code for pebble, so it is in my own interest to work as quick and as best as I can.
- Bugs. This simulator has lots of code, lots of unverified or not enough verified code and there are probably lots of little bugs crawling inside of it. This is an important reason why I release it now. I can not find all bugs but with your help the search will be much easier.
- Documentation. Even though there is much more than I expected, I can not make sure that all functions behave like their original ones. If you find any differences, please tell them to me.
I tested the sample watches from the SDK to detect these problems:- Fonts. The fonts that are most common on the pebble are Bitham (renamed from Gotham) and Gothic. I presume that they are commercial fonts which could be extracted from the firmware, but I think this would be illegal. In the case that you have these fonts (as TrueTypeFont) you can replace them, as I filled the missing fonts up with Droid Serif and Roboto which have a free license (you can find the fonts and their license text in the directory local/simdata/systemFonts). The problem with these fonts are, that they are wider than the original ones, so some applications have graphical bugs because of this. In the most sample watches, where this was a problem, it could be solved with extending the layer frame with and reducing the margin.
big_time [No problems]
classio [Minor font problem]
classio-battery-connection [Unsupported feature (battery status)]
drop_zone [No problems]
fuzzy_time [No problems]
just_a_bit [No problems]
ninety_one_dub [Probably invalid? day_name_layer is being used without initialising]
onthebutton [Minor font and margin problems]
rumbletime [No problems]
segment_six [No problems]
simple_analog [No problems]
simplicity [No problems]
Pretty good result, isn't it :)tic_tock_toe [No problems]
[I want YOU!]
... to find:
- bugs
- suggestions
- feedback
and tell them to me. I will try to answer them all- questions
[License]
The fonts are copyright by Google Inc. under "Apache License, Version 2.0"
The pebble pictures are copyright by Chaotic
The actual simulator and the custom resource compiler (C version) are licensed by Helco (me) under GNU GPL v3
The python based resource compiler was placed in the public domain by Shirk
[Credits]
Many many thanks to:
@Shirk - for his huge work (Battery/Bluetooth Status, Python based resource compiler, etc.)
@robhh - for his AppTimer implementation
Otto Greenslade (Chaotic) - for his pebble pictures
https://github.com/abl - for his empebble (which was original the basecode of this simulator, now nearly all code is rewritten)https://github.com/AmandaCameron - for his metadata support implementation (in PebbleSDK 1.2)
https://github.com/epatel - for his mac support
Libraries that I used:The Pebble Team - for the amazing watch, the SDK and their long shipping procedure, which was the motivation to build this
SDL 1.2 (www.libsdl.org)
SDL_ttf (http://www.libsdl.org/projects/SDL_ttf/)
SDL_image (http://www.libsdl.org/projects/SDL_image/)