TideSDK – TideSDK – Desktop Applications



TideSDK – TideSDK – Desktop Applications

0 0


tidesdk-introduction


On Github Salzig / tidesdk-introduction

TideSDK

TideSDK

was

Appcelerator

Titanium for Desktop

Desktop Applications

Desktop Apps are Native

Build With…

C#, Java, C++, VB?

.NET? WPF? GTK? Swing?

All Desktop Apps?

Spotify

Chromium

Firefox, Thunderbird

XULrunner since Sept. 2006

ICQ

Boxely since 2007

InternetExplorer before 2007

Windows Widgets, MacOS Widgets, Gnome GJS, KDE Plasmoids, WebOS, Boot2Gecko, Chrome Webapps, ChromeOS Apps, Windows 8 Tiles, Windows 8 Store Apps, …

… Games like Battlefield Play4Free and SimCity use web technologie

Web Technologie?

Why?

What is TideSDK?

Browser++

Webkit

+ Python

def greet(person = 'world')
  "greet person"
  print "Hello, %s!" % person;

greet("HAW Hamburg");
              

+ PHP

function greet($person = 'world') {
  echo 'Hello, ' . $person . '!';
}
greet("HAW Hamburg");
            

+ Ruby

def greet(person = 'world')
  puts "Hello, #{person}!"
end
greet "HAW Hamburg"
            

+ Kroll

Hello, world?

Demo

Kroll

libtide

Microkernel

it's a bridge

Module API

Module initialization

can be written in any supported language

Binding API

Value boxing/unboxing

you can invoke a function from Ruby which might take a Python function as a reference and return a Javascript object.

TideSDK API

Ti.App

  • getArguments()
  • stderr(data)
  • stdin(prompt, delimiter)
  • stdout(data)

Ti.Filesystem

  • open(as_binary, as_append)
  • read()
  • write(data)

Ti.Network

  • createTCPSocket(host, port)
  • socket.connect()
  • socket.onRead()
  • socket.write()

Ti.Notification

var notification = Ti.Notification.createNotification({
  'title' : 'HAW is awesome!',
  'message' : 'Everybody should study something'
});
notification.show();
            
var notification = window.webkitNotifications.createNotification('',
  'HAW is awesome!',
  'Everybody should study something'
});
notification.show();
            

Ti.Platform

  • openURL(url)
  • takeScreenshot(filename)
  • openApplication(path)

Ti.Process

  • createPipe()
  • createProcess(args, env, pipe_in, pipe_out, pipe_err)
  • launch(commadn, args)

Ti.Worker

  • createWorker(source)
  • worker.start()
  • worker.postMessage(data)
  • worker.terminate()

Ti.UI

  • Clipboard
  • Menu
  • Tray
  • UserWindow

Ti.*

Analytics, API, Bytes, Codec, Database, JSON, Media, UpdateManager, …

The nice thing about standards is that you have so many to choose from.

Andrew S. Tanenbaum – Computer Networks, 2nd ed., p. 254

App.js

since 2012

Current Release 0.0.20

Windows, Linux, MacOS

node-webkit

since 2011

Current Release 0.5.0

Windows, Linux, MacOS

LightTable

Adobe Integrated Runtime

since 2008

Current Release 3.7

Windows, MacOS, Android, iOS (linux support dropped as of AIR 2.7)

SAP, FedEX

XULrunner

since 2006

Current Release 12.0

Windows, Linux, MacOS

ViViPOS, TomTom HOME 2

Q&A

Don't use it!

in production

Thanks

ben.rexin.at/tidesdk-introduction

  • tidesdk.org - API
  • de.wikipedia.org/wiki/Adobe_Integrated_Runtime - AIR History
  • de.wikipedia.org/wiki/XULRunner - xulrunner History
  • de.wikipedia.org/wiki/ICQ - ICQ History
  • backbonejs.org/#examples-battlefield - BattleField Free4Play using JavaScript
  • news.ycombinator.com/item?id=5359143 - SimCity using JavaScript