Wave6 Srbija - predstavljanje lokalnih rezultata najveceg i najobuhvatnijeg globalnog istrazivanja na temu drustvenih medija.
Globalno sprovedenog od strane UM-a, u Srbiji realizovano od strane UniversalMedia u saradnji sa svojim digitalnim partnerom agencijom Fastbridge.
Kvalitet uzorka za istrazivanje Mediana.
Podrzan od strane IAB Srbija.
Prezentaciju mozete pronaci na htttp://www.universalmedia.rs i http://www.fastbridge.rs
Wave6 Srbija - predstavljanje lokalnih rezultata najveceg i najobuhvatnijeg globalnog istrazivanja na temu drustvenih medija.
Globalno sprovedenog od strane UM-a, u Srbiji realizovano od strane UniversalMedia u saradnji sa svojim digitalnim partnerom agencijom Fastbridge.
Kvalitet uzorka za istrazivanje Mediana.
Podrzan od strane IAB Srbija.
Prezentaciju mozete pronaci na htttp://www.universalmedia.rs i http://www.fastbridge.rs
I moderne web og mobile applikasjoner forventer brukerne å ha samme kontroll og oversikt som i tradisjonelle desktopapplikasjoner. Det skaper noen nye utfordringer for oss utviklere når front-end kjøres på en annen enhet en back-end som igjen typisk kjøres på en annen server en eksisterende kjernesystemer.
I denne sesjonen viser Joar Øyen hvordan slike utfordringer er løst i en moderne web applikasjon fra Lindbak Retail Systems. Du får vite mer om Service Bus for Windows Server, Signal R og Windows Azure Notification Hubs og hvordan disse produktene er satt sammen for å holde brukere oppdatert i en asynkron verden.
Frokostseminar mai 2010 solr open source cominvent asCominvent AS
Slides fra frokostseminar om Open Souce søk med Apache Lucene/Solr i Oslo mai 2010. Dette var et arrangement av Cominvent AS og FindWise AB.
Presentation is in Norwegian language
Ikt Fagforum - Presentasjon Av Autentiseringsprosjektetleiftorger
Kort gjennomgang av åpne tekniske komponenter som er blitt benyttet i prosjektet "autentiseringsløsning for Helsebiblioteket" (I&AM for Helsebiblioteket).
Intern presentasjon for IKT-avdelingen i Kunnskapssenteret.
I moderne web og mobile applikasjoner forventer brukerne å ha samme kontroll og oversikt som i tradisjonelle desktopapplikasjoner. Det skaper noen nye utfordringer for oss utviklere når front-end kjøres på en annen enhet en back-end som igjen typisk kjøres på en annen server en eksisterende kjernesystemer.
I denne sesjonen viser Joar Øyen hvordan slike utfordringer er løst i en moderne web applikasjon fra Lindbak Retail Systems. Du får vite mer om Service Bus for Windows Server, Signal R og Windows Azure Notification Hubs og hvordan disse produktene er satt sammen for å holde brukere oppdatert i en asynkron verden.
Frokostseminar mai 2010 solr open source cominvent asCominvent AS
Slides fra frokostseminar om Open Souce søk med Apache Lucene/Solr i Oslo mai 2010. Dette var et arrangement av Cominvent AS og FindWise AB.
Presentation is in Norwegian language
Ikt Fagforum - Presentasjon Av Autentiseringsprosjektetleiftorger
Kort gjennomgang av åpne tekniske komponenter som er blitt benyttet i prosjektet "autentiseringsløsning for Helsebiblioteket" (I&AM for Helsebiblioteket).
Intern presentasjon for IKT-avdelingen i Kunnskapssenteret.
4. Om Mozilla
«Our mission is to promote openness,
innovation & opportunity on the Web»
http://www.mozilla.org/en-US/mission/
5. Hvorfor Firefox OS?
● Motivasjon: Et åpent Internet også for mobile enheter, hindre
lukkede systemer
● Skal ikke konkurrere med Android og iOS på features (ennå!)
● Tett samarbeid med mobiloperatører
● Sikter seg inn mot «utviklende økonomier»
6. Hva er Firefox OS?
● Operativsystem for mobile enheter
● Basert på web-teknologier
● HTML og JavaScript som eneste utviklingsplattform
7. Hva er Firefox OS?
Mobiltelefon
Hardware
Gonk
Operativsystem: Linux-kjerne og hardware abstraction layer
Gecko
Runtime: API'er, JavaScript, parser, DOM («Firefox uten GUI»)
Gaia
GUI: Systemapplikasjoner, 100% HTML, JavaScript og CSS
FirefoxOS
9. Status for Firefox OS
● Versjon 1.0 i februar i år
● Offisielle utviklertelefoner fra april
● Lansert i Spania og Polen i juli
● Lansert i Colombia og Venezuela i august, snart i Brasil
● Telenor skal lansere i Øst-Europa i høst
● Versjon 1.1 rett rundt hjørnet
● Planer om nye releaser 4 ganger i året
11. Andre muligheter for utvikling
● Få telefoner tilgjengelig (i Norge) ennå
● Mulig å installere på enkelte Android-telefoner, f.eks. Galaxy S2
● Firefox på Android
12. Hva er en Firefox OS-app?
● Manifest-fil for metadata
● API for å installere
● Kan også brukes på desktop
og Android
{
"version": "0.1",
"name": "Features",
"description": "Viser tilgjengelige API'er",
"launch_path": "/index.html",
"icons": {
"128": "/img/icon-128.png"
},
"developer": {
"name": "Håvard Wigtil",
"url": "http://www.kantega.no"
}
}
https://developer.mozilla.org/en-US/docs/Web/Apps/Manifest
https://developer.mozilla.org/en-US/docs/Web/Apps/JavaScript_API
window.navigator.mozApps.install(manifestUrl);
13. Sikkerhetsmodell
● Deling i kategorier av apps etter opprinnelse (hosted, installed,
privileged, certified)
● Manifest med ønskede rettigheter
● Stiller krav til kode for privileged og certified apps (egen content
security policy)
https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Security/Security_model
https://developer.mozilla.org/en-US/docs/Web/Apps/CSP
15. Offline web
● «Hvem vil ha en telefon som alltid må være koblet på nett?»
● Application cache API (AppCache) kan brukes til å lagre innhold
for en app offline
● Andre API'er for lokal lagring av brukerdata
16. Eksempel på AppCache
● Attributt i html-elementet
● Listing for cache-fil
https://developer.mozilla.org/en-US/docs/HTML/Using_the_application_cache
<html manifest="features.appcache">
CACHE MANIFEST
# v2
features.js
features.css
17. «Application cache is a doucebag»
● Filer hentes alltid fra cache
● Cache oppdateres kun når innholdet i manifest endres
● Cache oppdateres etter at side er lastet
● Hvis kun én fil ikke kan lastes ned vil cache ikke oppdateres
http://alistapart.com/article/application-cache-is-a-douchebag
18. Lokal lagring
● WebStorage for enkle brukerdata
● IndexedDB for lagring eller caching av komplekse brukerdata
● Også mulig med proprietær Device Storage-API som gir
begrenset tilgang til filsystem
https://developer.mozilla.org/en-US/docs/Web/Guide/DOM/Storage
https://developer.mozilla.org/en-US/docs/IndexedDB
https://developer.mozilla.org/en-US/docs/WebAPI/Device_Storage
sessionStorage.setItem("jz13.schedule", JSON.stringify(schedule));
...
var schedule = JSON.parse(sessionStorage.getItem("jz13.schedule"));
19. Manifest med rettigheter
● For å få tilgang til «priviligerte» API'er må rettigheter settes opp
i manifest
"type": "privileged",
"permissions": {
"geolocation": {},
"contacts": {
"description": "Sjekke adressebok og legge inn kontakter",
"access": "readcreate"
},
"device-storage:pictures": {
"access": "readwrite"
},
"desktop-notification": {}
}
20. Eksempel: Posisjon
● En «gammel» API, støttet i de fleste nettlesere
● Også mulig å få beskjed ved endret posisjon
function checkLocation() {
navigator.geolocation.getCurrentPosition(positionCallback, positionErrorCallback,
{ enableHighAccuracy: true});
}
function positionCallback(position) {
var c = position.coords;
if (c.longitude > 10.7528 && c.longitude < 10.7569
&& c.latitude > 59.9121 && c.latitude < 59.9137) {
document.getElementById("location_status").textContent = "Du er på JavaZone!";
} else {
document.getElementById("location_status").textContent = "Kom deg på JavaZone!";
}
}
https://developer.mozilla.org/en-US/docs/WebAPI/Using_geolocation
21. Eksempel: Kontakt-API
● Krever å være installert fra en app store for tilgang («privileged»)
● Eksempel: Hente ut en kontakt
var options = {
filterValue : "93846468",
filterBy : ["tel"],
filterOp : "contains",
filterLimit : 1
};
var search = navigator.mozContacts.find(options);
search.onsuccess = function() {
var status = document.getElementById("address_book_status");
if (search.result.length === 1) {
status.textContent = "Nummer finnes i adressebok";
} else {
status.textContent = "Nummer ikke i adressebok";
}
};
https://developer.mozilla.org/en-US/docs/WebAPI/Contacts
22. Eksempel: Lokalt filsystem
● Lese fra «bilder»-mappe
var pics = navigator.getDeviceStorage('pictures');
if (pics === null) {
document.getElementById("thumbnails").textContent = "Ikke støtte for bilder";
return;
}
var cursor = pics.enumerate();
cursor.onsuccess = function () {
var file = this.result;
var img = document.createElement("img");
img.height = 60;
img.src = window.URL.createObjectURL(file);
document.getElementById("thumbnails").appendChild(img);
if (!this.done) {
this.continue();
}
};
https://developer.mozilla.org/en-US/docs/WebAPI/Device_Storage
23. Eksempel: Systemvarsler
● Meldinger i «varslingsområde», dvs. øverst på skjermen
● Nylig standardisert API, Firefox OS har ikke siste versjon ennå
https://developer.mozilla.org/en-US/docs/Web/API/notification
if ("Notification" in window) {
new Notification("'API demo' har startet", {"body": "Systemvarsler med ny API"});
} else if ("mozNotification" in navigator) {
var notification = navigator.mozNotification.createNotification("'API demo' har startet",
"Systemvarsler med gammel API");
notification.show();
} else
{
alert("Ingen støtte for systemvarsler");
}
25. Web activities
● Lar applikasjoner bruke systemressurser på en sikker måte
● Applikasjoner kan registrere seg for å tilby aktiviteter
● GUI for å velge mest egnede app
26. Eksempel: Bilde med web activities
● Få bilde fra kamera eller filsystem
● Bruker velger først kilde
var pick = new MozActivity({name: "pick", data: {type: ["image/*"]}});
pick.onsuccess = function () {
var img = document.createElement("img");
img.src = window.URL.createObjectURL(this.result.blob);
var imagePresenter = document.getElementById("image_presenter");
imagePresenter.appendChild(img);
};
pick.onerror = function() {
alert("Bilde ikke valgt: " + pick.error.name);
}
27. Betaling
● Mozillas Marketplace med «standard» betingelser (tar 30%)
● Lagt opp til å kunne ha mange app stores
● Store telefonoperatører vil kanskje ha egen app store
28. In-app betaling
● Egen proprietær JavaScript-API for in-app betaling
● Krever en server for app-utvikler
● Kan også brukes på Firefox for Android
https://developer.mozilla.org/en-US/docs/Web/Apps/Publishing/In-app_payments
29. Eksempelflyt for in-app betaling
1. App tar kontakt med server og bestiller «vare», får et signert
JSON Web Token (JWT) tilbake
2. App kaller JavaScript-API med JWT som parameter
3. API tar dialog med betalingsformidler, i eget GUI
4. Betalingsformidler gir beskjed til server om gjennomført betaling
5. App poller server for å få beskjed om gjennomført betaling
30. Look and feel
● Få faste rammer
● Kan gjøre hva du vil med HTML og CSS
● Inger felles ressurser for app'er (men system-app'er deler)
31. Building Blocks
● Eget nettsted for å designe apps med integrert utseende
● Maler for GUI-elementer og transisjoner
● Kopiere ressurser og legge inn i egen app
● Demo-app finnes også på Mozilla marketplace
34. Andre web-baserte plattformer
● Blackberry 10
● Tizen
● Ubuntu Touch
● Chrome Apps
● Windows 8
http://developer.chrome.com/apps/about_apps.html
35. Oppsummering
● Du trenger lite ekstra for en Firefox OS-app
● Mobilt web har muligheter
● Økende antall plattformer krever en strategi
36. Pekere til eksempler
● Mange gode eksempler på nett
● Mozilla tilbyr også applikasjonsmaler
● To enkle eksempler på Kantega Github
https://github.com/robnyman/Firefox-OS-Boilerplate-App
https://developer.mozilla.org/en-US/docs/Web/Apps/App_templates
https://github.com/kantega/firefoxos-examples