2. JavaScript on both Client and Server code
Server Code using Node.js API
Server Storage using Redis.io
Client code using proprietary API
3. Project-dir
• controller/ => javascript untuk setiap page
• res/ => semua resources aplikasi (gambar, music, etc)
• views/ => definisi setiap page, berupa .json
• backend.js => berisi kode2 server
• bootstrap.js => kode yang dijalankan pertama kali
• metadata.json => detail informasi aplikasi
Satu controller HARUS ada 1 pasangan views:
-controller/main.js
-views/main.json
8. Panel Layout
var Panels = require('ui/panels').Panels;
var p = new Panels();
p.add('first', 'firstView');
p.add('second', 'secondView');
9. TextView
var TextView = require(‘ui’).TextView;
new TextView();
new TextView(
{
label: theLabel
}
);
10. TextInput
var InputBox = require(‘ui’).InputBox;
new InputBox();
new InputBox(
{
constraint: theConstraint,
label: theLabel,
'multi-line': flag
} Constraint: normal // password
); „multi-line‟: true // false
11. ImageView
var ImageView = require('ui').ImageView;
var ui = require('ui');
var ImageView = ui.ImageView;
new ImageView();
new ImageView({
src: srcUrl, Load: direct // lazy
load: loadStrategy, retain: true // false
retain: shouldRetain
});
src => for images in res/
resource => for images from outside.
Need companion app.setResourceHandler() on backend.js
12. SceneView
var SceneView = require(‘ui’).SceneView;
var scene = new SceneView();
scene.setLayers();
sceneView.defineSpritesheet('anim',
app.imageURL('anim.png'), 25, 25);
scene.add(
{
sprite: 'anim',
x: 100, y: 100,
layer: 0, frame: 0
}
);
15. Step one: client send command to server
Client:
app.msg(‘commandMessage', {parameter});
Server:
app.message(
function(client, action, param){
if(action === ‘commandMessage’){
//Do whatever you want
}
}
);
16. Step two: server send back result to client
Server:
app.message(
function(client, action, param){
if(action === ‘commandMessage’){
client.msg( action, { parameter } );
}
}
);
Client (on „:load‟ handler):
app.on(‘commandMessage',
function(action, param)
{
//do whatever you want with returning parameter
});
17.
18. Initialize Storage Variable:
var storage = app.storage('storage-name');
Get Stored Data:
var data = storage.get('object-name');
Set Stored Data:
storage.set('object-name', daa);
19. Initialize Storage Variable:
var storage = require('blaast/simple-data');
Get Stored Data:
storage.get(key, function(err, value) {
if (value && value.data) {
self.data = value.data;
} else {
//failed to get server storage
}
});
Set Stored Data:
storage.set(key, data, function(err, oldData) {
if (err) {
//failed to set server storage
} else {
//server storage successfully stored
}
});
Removing Stored Data:
storage.remove(key);
20.
21. client.id=> unique device id
client.user.id => name of currently logged in user
app.realtime()
app.realtime(function(client, event) {
if (event === 'CONNECTED') {
clients[client.id] = client;
clients[client.user.id] = client;
} else if (event === 'DISCONNECTED') {
delete clients[client.id];
delete clients[client.user.id];
}
});