SlideShare a Scribd company logo
Bartosz Olchówka
31 March 2014
Smart Client:
Installable web applications
Why install a web app?
● Access to low-level functions
○ auto-away
○ fullscreen mode
○ file system
○ …
Why install a web app?
● Access to low-level functions
○ auto-away
○ fullscreen mode
○ file system
○ …
● Login on system startup
Why install a web app?
● Access to low-level functions
○ auto-away
○ fullscreen mode
○ file system
○ …
● Login on system startup
● Easy access with ALT/⌘ + TAB
Why install a web app?
The good part is…
… you can still build a native app with HTML,
CSS & JavaScript
Solution: Smart Client
● native container including your web app
Solution: Smart Client
● native container including your web app
● WebKit rendering engine
Solution: Smart Client
● native container including your web app
● WebKit rendering engine
● web app ⇔ “smart client” communication
with a simple JavaScript API
Solution: Smart Client
Smart Client libraries
● Mac OS X: macgap
Smart Client libraries
● Mac OS X: macgap
● Windows/Linux: AppJS (no longer maintained)
Smart Client libraries
● Mac OS X: macgap
● Windows/Linux: AppJS (no longer maintained)
● Mobile: PhoneGap
Smart Client libraries
macgap - examples #1
// Display (10) badge on the Dock
macgap.dock.badge = "10";
macgap - examples #1
// Display (10) badge on the Dock
macgap.dock.badge = "10";
// Detect “wake” event
document.addEventListener('wake', function() {
console.log('Hello, world!')
}, true);
macgap - examples #1
// Toggle fullscreen mode
macgap.window.toggleFullscreen();
macgap - examples #2
// Toggle fullscreen mode
macgap.window.toggleFullscreen();
// Play a sound
macgap.sound.play("./sounds/tadaaa.mp3")
macgap - examples #2
Real world example: LiveChat
Real world example: LiveChat
Advantages #1
● Smart Client users are more engaged
Advantages #2
● no need to maintain multiple apps
Windows Mac Web app
Advantages #3
● consistent user experience
Usage ideas
#1: Products used everyday
● communication (Gmail, Slack)
#1: Products used everyday
● communication (Gmail, Slack)
● text editors (Atom.io)
#1: Products used everyday
#1: Products used everyday
● communication (Gmail, Slack)
● text editors (Atom.io)
● music (Spotify)
#2: Games
#2: Games
App = new Game()
App.build(‘train’)
App.pause()
#3: Mobile apps
● example:
BBC Winter Olympics app
● shared CSS across
web & mobile apps
#3: Mobile apps
Questions?

More Related Content

ODP
Introduction to webGL
PPTX
It works on my computer
PPTX
Saying goodbye to localhost - developing in the cloud with Cloud9 IDE
PDF
Fixing Gaps. Strengthening the Chromium platform for content blocking
PDF
Salt and pepper — native code in the browser Browser using Google native Client
PPTX
Node.js 201: building real-world applications in pure JavaScript
PDF
An Overview of the Open Source Vulkan Driver for Raspberry Pi 4
PPTX
Typescript - a JS superset
Introduction to webGL
It works on my computer
Saying goodbye to localhost - developing in the cloud with Cloud9 IDE
Fixing Gaps. Strengthening the Chromium platform for content blocking
Salt and pepper — native code in the browser Browser using Google native Client
Node.js 201: building real-world applications in pure JavaScript
An Overview of the Open Source Vulkan Driver for Raspberry Pi 4
Typescript - a JS superset

What's hot (20)

PPTX
Gutenberg: You Can't Teach an Old Dev New Tricks - WordCamp Chicago 2018
PDF
GWT - Building Rich Internet Applications Using OO Tools
PPTX
PHP and node.js Together
PDF
Using PhantomJS to keep product screenshots up to date
PDF
React Typescript for beginners: Translator app with Microsoft cognitive services
PDF
Dev/Stage/Prod Parity with Vagrant
PDF
JavaDay Lviv 2019 - Micronaut in action!
PDF
Integrating Node.js with PHP
PDF
Waylandifying Chromium: From downstream to shipping (ELCE 2020)
PDF
xPad - Building Simple Tablet OS with Gtk/WebKit
ODP
Django packages list
PDF
Alternative approach to native Kotlin
PDF
The Chromium/Wayland Project (BlinkOn 9)
PDF
Vagrant workshop 2015
PDF
NodeJs Intro - JavaScript Zagreb Meetup #1
PDF
WPE, a New WebKit Port Optimised for Embedded (IBC 2017)
PDF
Vagrantfordevops
PPTX
Full stack development
PDF
Full stack java script development
PDF
WebAssembly with Rust
Gutenberg: You Can't Teach an Old Dev New Tricks - WordCamp Chicago 2018
GWT - Building Rich Internet Applications Using OO Tools
PHP and node.js Together
Using PhantomJS to keep product screenshots up to date
React Typescript for beginners: Translator app with Microsoft cognitive services
Dev/Stage/Prod Parity with Vagrant
JavaDay Lviv 2019 - Micronaut in action!
Integrating Node.js with PHP
Waylandifying Chromium: From downstream to shipping (ELCE 2020)
xPad - Building Simple Tablet OS with Gtk/WebKit
Django packages list
Alternative approach to native Kotlin
The Chromium/Wayland Project (BlinkOn 9)
Vagrant workshop 2015
NodeJs Intro - JavaScript Zagreb Meetup #1
WPE, a New WebKit Port Optimised for Embedded (IBC 2017)
Vagrantfordevops
Full stack development
Full stack java script development
WebAssembly with Rust
Ad

Viewers also liked (20)

PDF
Tickets in LiveChat
PDF
New LiveChat Introduction
PDF
How To Increase Sales Using Live Chat
PPTX
Mailingtage Nürnberg - Social media is coming home
PPTX
NICE Interaktionsanalyse
PDF
Wie messe ich den Erfolg eines Redesigns? - Vorher-Nachher-Befragung vs. Conv...
PPS
科技人與過勞死系列2
PDF
G2 - SEMIÓTICA
PDF
Climate Change Impact On Coffee Production Uganda
PDF
Apresentacao Rodrigo Schaurich
PPT
飛飛攝影手札–印度人文篇
PPT
養生藥膳100道!!
PPT
PPT
PPT
Marketing Digital: As competências do profissional de marketing para atuar no...
PPS
Soooos ,真的很Q
PDF
Making Health Care Universally Accessible
PPT
Empresas Sociais Yunus
PPT
Scienza. Come è fatto chi la fa?
PPT
Don't be an Innovation Laggard!
Tickets in LiveChat
New LiveChat Introduction
How To Increase Sales Using Live Chat
Mailingtage Nürnberg - Social media is coming home
NICE Interaktionsanalyse
Wie messe ich den Erfolg eines Redesigns? - Vorher-Nachher-Befragung vs. Conv...
科技人與過勞死系列2
G2 - SEMIÓTICA
Climate Change Impact On Coffee Production Uganda
Apresentacao Rodrigo Schaurich
飛飛攝影手札–印度人文篇
養生藥膳100道!!
Marketing Digital: As competências do profissional de marketing para atuar no...
Soooos ,真的很Q
Making Health Care Universally Accessible
Empresas Sociais Yunus
Scienza. Come è fatto chi la fa?
Don't be an Innovation Laggard!
Ad

Similar to Installable web applications (20)

PDF
Rapid and Reliable Developing with HTML5 & GWT
PDF
Introducing chrome apps (ogura)
PDF
Chromium: NaCl and Pepper API
PDF
Building the IoT - Coding Serbia 2015
PDF
HTML5 on the AGL demo platform with Chromium and WAM (AGL AMM March 2021)
PPTX
Google I/O 2019 - what's new in Android Q and Jetpack
PDF
Introduction to WAMP, a protocol enabling PUB/SUB and RPC over Websocket
PPTX
Basic html5 and javascript
PDF
Apache Flex and the imperfect Web
PDF
openMIC barcamp 11.02.2010
PDF
Always on! Or not?
PPT
Introduction to Google Web Toolkit
PPT
Java script anywhere. What Nombas was doing pre-acquisition.
ODP
Swt 2009
PDF
Easing offline web application development with GWT
PDF
iOS Indie Developer Toolkit - CocoaHeads 3city
PDF
Building Kick Ass Video Games for the Cloud
PDF
Import golang; struct microservice
PDF
Flux Security & Scalability using VS Code GitOps Extension
PPSX
Electron - Build cross platform desktop apps
Rapid and Reliable Developing with HTML5 & GWT
Introducing chrome apps (ogura)
Chromium: NaCl and Pepper API
Building the IoT - Coding Serbia 2015
HTML5 on the AGL demo platform with Chromium and WAM (AGL AMM March 2021)
Google I/O 2019 - what's new in Android Q and Jetpack
Introduction to WAMP, a protocol enabling PUB/SUB and RPC over Websocket
Basic html5 and javascript
Apache Flex and the imperfect Web
openMIC barcamp 11.02.2010
Always on! Or not?
Introduction to Google Web Toolkit
Java script anywhere. What Nombas was doing pre-acquisition.
Swt 2009
Easing offline web application development with GWT
iOS Indie Developer Toolkit - CocoaHeads 3city
Building Kick Ass Video Games for the Cloud
Import golang; struct microservice
Flux Security & Scalability using VS Code GitOps Extension
Electron - Build cross platform desktop apps

Recently uploaded (20)

PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
assetexplorer- product-overview - presentation
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PPTX
CHAPTER 2 - PM Management and IT Context
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
PTS Company Brochure 2025 (1).pdf.......
PPT
Introduction Database Management System for Course Database
PPTX
Computer Software and OS of computer science of grade 11.pptx
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
history of c programming in notes for students .pptx
PDF
Designing Intelligence for the Shop Floor.pdf
PPTX
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
medical staffing services at VALiNTRY
Design an Analysis of Algorithms II-SECS-1021-03
assetexplorer- product-overview - presentation
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
CHAPTER 2 - PM Management and IT Context
Reimagine Home Health with the Power of Agentic AI​
PTS Company Brochure 2025 (1).pdf.......
Introduction Database Management System for Course Database
Computer Software and OS of computer science of grade 11.pptx
Wondershare Filmora 15 Crack With Activation Key [2025
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Operating system designcfffgfgggggggvggggggggg
VVF-Customer-Presentation2025-Ver1.9.pptx
Upgrade and Innovation Strategies for SAP ERP Customers
history of c programming in notes for students .pptx
Designing Intelligence for the Shop Floor.pdf
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
Internet Downloader Manager (IDM) Crack 6.42 Build 41
medical staffing services at VALiNTRY

Installable web applications