SlideShare a Scribd company logo
1 of 26
Download to read offline
ECOSYSTEM


1
Interação
                             Nokia Developer
            http://www.developer.nokia.com
                   Twitter: @nokiadev_brasil



        Grupo Devs S40 no Nokia Developer
        http://www.developer.nokia.com/Co
       mmunity/Discussion/group.php?grou
                                  pid=114




2
Apps de consumo de
APIs de Internet para
mobile phones
Raymundo Junior
Desenvolvedor – INdT
Evangelista Nokia de Tecnologia



3
Conteúdo
•       Device S40
•       Estrutura do Projeto
•       Main
•       Template
•       Lib
•       Service
•       JSON Viewer
•       View1
•       View2
•       View3
•       Estudo de Caso

    4
Device S40
Nokia Developer
• http://www.developer.nokia.com/Devices/Device_sp
  ecifications/?filter1=s40




5
Estrutura do Projeto




6
Main
var main = {
init : function(){
view1.init();
}
};




7
Template
var template = {
'item_view1' : '<div class="item-view1"
onclick="mwl.switchClass('#content','view*','view2');
view2.init('{ID}');">{TEXT}</div>',
'item_view2' : '<div
onclick="mwl.switchClass('#content','view*','view3');
view3.init('{ID}');">{TEXT}</div>',
'item_view3' : '<div>{TEXT}</div>'
};



8
Lib
var lib = {
call: function(url, successCallback, errorCallback){
var request = new XMLHttpRequest();
try {
request.open("GET", url, true);
request.onreadystatechange = function(){
if (request.readyState == 4) {
if (request.status == 200) {
successCallback(eval('(' + request.responseText + ')'));
} else {
errorCallback("error status: " + request.status);
}
}
};
request.send(null);
} catch (e) {
errorCallback("error try: " + e);
}
}
};




 9
Service
var BASE_URL = 'http://justkaws.com/json/';




10
Service
var URLS = {
'plataformas' : 'index.php?opcao=plataformas',
'devices' : 'index.php?opcao=devices&id={ID}',
'device' : 'index.php?opcao=device&id={ID}'
};




11
Service
getView2 : function(id, success, error) {
var url = service.getUrl('devices').replace("{ID}",
id);
lib.call(url, success, error);
},
getView3 : function(id, success, error) {
var url = service.getUrl('device').replace("{ID}", id);
lib.call(url, success, error);
}



12
Service
var BASE_URL = 'http://justkaws.com/json/';
var URLS = {
'plataformas' : 'index.php?opcao=plataformas',
'devices' : 'index.php?opcao=devices&id={ID}',
'device' : 'index.php?opcao=device&id={ID}'
};

var service = {
     getUrl: function(id) {
         return BASE_URL + URLS[id];
     },
     getView1 : function(success, error) {
     var url = service.getUrl('plataformas');
     lib.call(url, success, error);
},
getView2 : function(id, success, error) {
var url = service.getUrl('devices').replace("{ID}", id);
lib.call(url, success, error);
},
getView3 : function(id, success, error) {
var url = service.getUrl('device').replace("{ID}", id);
lib.call(url, success, error);
}
};




 13
JSON Viewer




      LINK: http://jsonviewer.stack.hu/


14
JSON Viewer




      LINK: http://jsonviewer.stack.hu/


15
View1
init : function(){
document.getElementById('title-view1').innerHTML =
"Plataformas NOKIA";

service.getView1(
function(data){
view1.render(data);
},function(data){
document.getElementById('view-content1').innerHTML =
data;
}
);
},




16
View1
render : function(data){
var dados = data.json;
var limit = dados.length;
  var itemTemplate = template.item_view1;
  var itens = "";

for (var x = 0; x< limit; x++){
var params = dados[x].platform + '[!{#?#?#}!]' + dados[x].id;
itens += itemTemplate.replace("{TEXT}",
dados[x].platform).replace("{ID}", params);
}

document.getElementById('view-content1').innerHTML = itens;
}



17
View1
var view1 = {
init : function(){
document.getElementById('title-view1').innerHTML = "Plataformas NOKIA";

service.getView1(
function(data){
view1.render(data);
},function(data){
document.getElementById('view-content1').innerHTML = data;
}
);
},
render : function(data){
var dados = data.json;
var limit = dados.length;
   var itemTemplate = template.item_view1;
   var itens = "";

for (var x = 0; x< limit; x++){
var params = dados[x].platform + '[!{#?#?#}!]' + dados[x].id;
itens += itemTemplate.replace("{TEXT}", dados[x].platform).replace("{ID}", params);
}

document.getElementById('view-content1').innerHTML = itens;
}
};




  18
View2
init : function(args){

var vetor = args.split('[!{#?#?#}!]');

document.getElementById('title-view2').innerHTML = vetor[0];

service.getView2( vetor[1],
function(data){
view2.render(data);
},function(data){
document.getElementById('view-content2').innerHTML = data;
}
);
},



 19
View2
render : function(data){
var dados = data.json;
var limit = dados.length;
var itemTemplate = template.item_view2;
var itens = "";

for (var x = 0; x< limit; x++){
var params = dados[x].name + '[!{#?#?#}!]' + dados[x].id;
itens += itemTemplate.replace("{TEXT}",
dados[x].name).replace("{ID}", params);
}

document.getElementById('view-content2').innerHTML = itens;
}



20
View2
var view2 = {
init : function(args){

var vetor = args.split('[!{#?#?#}!]');

document.getElementById('title-view2').innerHTML = vetor[0];

service.getView2( vetor[1],
function(data){
view2.render(data);
},function(data){
document.getElementById('view-content2').innerHTML = data;
}
);
},
render : function(data){
var dados = data.json;
var limit = dados.length;
var itemTemplate = template.item_view2;
var itens = "";

for (var x = 0; x< limit; x++){
var params = dados[x].name + '[!{#?#?#}!]' + dados[x].id;
itens += itemTemplate.replace("{TEXT}", dados[x].name).replace("{ID}", params);
}

document.getElementById('view-content2').innerHTML = itens;
}
};




  21
View3
init : function(args){

var vetor = args.split('[!{#?#?#}!]');

document.getElementById('title-view3').innerHTML = vetor[0];

service.getView3( vetor[1],
function(data){
view3.render(data);
},function(data){
document.getElementById('view-content3').innerHTML = data;
}
);
},



 22
View3
render : function(data){
var dados = data.json;
var limit = dados.length;
var itemTemplate = template.item_view3;
var itens = "";

for (var x = 0; x< limit; x++){
itens += itemTemplate.replace("{TEXT}", dados[x].label + ": "
+ dados[x].value);
}

document.getElementById('view-content3').innerHTML =
itens;
}



23
View3
var view3 = {
init : function(args){

var vetor = args.split('[!{#?#?#}!]');

document.getElementById('title-view3').innerHTML = vetor[0];

service.getView3( vetor[1],
function(data){
view3.render(data);
},function(data){
document.getElementById('view-content3').innerHTML = data;
}
);
},
render : function(data){
var dados = data.json;
var limit = dados.length;
var itemTemplate = template.item_view3;
var itens = "";

for (var x = 0; x< limit; x++){
itens += itemTemplate.replace("{TEXT}", dados[x].label + ": " + dados[x].value);
}

document.getElementById('view-content3').innerHTML = itens;
}
};




  24
Estudo de Caso




25
Obrigado!
Raymundo Junior
Desenvolvedor – INdT
Evangelista de Tecnologia

E-mail: raymundo.ferreira-junior@indt.org.br
Twitter: twitter.com/justkaws
Site: justkaws.com
Blog: blog.justkaws.com



26

More Related Content

More from Microsoft Mobile Developer

Intro to Nokia X software platform 2.0 and tools
Intro to Nokia X software platform 2.0 and toolsIntro to Nokia X software platform 2.0 and tools
Intro to Nokia X software platform 2.0 and toolsMicrosoft Mobile Developer
 
Location based services for Nokia X and Nokia Asha using Geo2tag
Location based services for Nokia X and Nokia Asha using Geo2tagLocation based services for Nokia X and Nokia Asha using Geo2tag
Location based services for Nokia X and Nokia Asha using Geo2tagMicrosoft Mobile Developer
 
Lumia App Labs: Lessons learned from 50 windows phone 8 design consultations
Lumia App Labs: Lessons learned from 50 windows phone 8 design consultationsLumia App Labs: Lessons learned from 50 windows phone 8 design consultations
Lumia App Labs: Lessons learned from 50 windows phone 8 design consultationsMicrosoft Mobile Developer
 
Windows Phone 8 speech: parliamo con la nostra app
Windows Phone 8 speech: parliamo con la nostra appWindows Phone 8 speech: parliamo con la nostra app
Windows Phone 8 speech: parliamo con la nostra appMicrosoft Mobile Developer
 
La pubblicazione di un'applicazione sullo store
La pubblicazione di un'applicazione sullo storeLa pubblicazione di un'applicazione sullo store
La pubblicazione di un'applicazione sullo storeMicrosoft Mobile Developer
 
Il pattern mvvm come strutturare al meglio il vostro progetto
Il pattern mvvm come strutturare al meglio il vostro progettoIl pattern mvvm come strutturare al meglio il vostro progetto
Il pattern mvvm come strutturare al meglio il vostro progettoMicrosoft Mobile Developer
 
Lens app trasformare il telefono in una fotocamera
Lens app trasformare il telefono in una fotocameraLens app trasformare il telefono in una fotocamera
Lens app trasformare il telefono in una fotocameraMicrosoft Mobile Developer
 

More from Microsoft Mobile Developer (20)

Intro to Nokia X software platform 2.0 and tools
Intro to Nokia X software platform 2.0 and toolsIntro to Nokia X software platform 2.0 and tools
Intro to Nokia X software platform 2.0 and tools
 
Nokia Asha from idea to app - Imaging
Nokia Asha from idea to app - ImagingNokia Asha from idea to app - Imaging
Nokia Asha from idea to app - Imaging
 
Healthcare apps for Nokia X and Nokia Asha
Healthcare apps for Nokia X and Nokia AshaHealthcare apps for Nokia X and Nokia Asha
Healthcare apps for Nokia X and Nokia Asha
 
Push notifications on Nokia X
Push notifications on Nokia XPush notifications on Nokia X
Push notifications on Nokia X
 
DIY Nokia Asha app usability studies
DIY Nokia Asha app usability studiesDIY Nokia Asha app usability studies
DIY Nokia Asha app usability studies
 
Lessons learned from Nokia X UI reviews
Lessons learned from Nokia X UI reviewsLessons learned from Nokia X UI reviews
Lessons learned from Nokia X UI reviews
 
Location based services for Nokia X and Nokia Asha using Geo2tag
Location based services for Nokia X and Nokia Asha using Geo2tagLocation based services for Nokia X and Nokia Asha using Geo2tag
Location based services for Nokia X and Nokia Asha using Geo2tag
 
HERE Maps for the Nokia X platform
HERE Maps for the Nokia X platformHERE Maps for the Nokia X platform
HERE Maps for the Nokia X platform
 
Nokia In-App Payment - UX considerations
Nokia In-App Payment - UX considerationsNokia In-App Payment - UX considerations
Nokia In-App Payment - UX considerations
 
Introduction to Nokia Asha SDK 1.2 (beta)
Introduction to Nokia Asha SDK 1.2 (beta)Introduction to Nokia Asha SDK 1.2 (beta)
Introduction to Nokia Asha SDK 1.2 (beta)
 
UX considerations when porting to Nokia X
UX considerations when porting to Nokia XUX considerations when porting to Nokia X
UX considerations when porting to Nokia X
 
Kids' games and educational app design
Kids' games and educational app designKids' games and educational app design
Kids' games and educational app design
 
Nokia X: opportunities for developers
Nokia X: opportunities for developersNokia X: opportunities for developers
Nokia X: opportunities for developers
 
Lumia App Labs: Nokia Imaging SDK 1.1
Lumia App Labs: Nokia Imaging SDK 1.1Lumia App Labs: Nokia Imaging SDK 1.1
Lumia App Labs: Nokia Imaging SDK 1.1
 
Intro to Nokia X software platform and tools
Intro to Nokia X software platform and toolsIntro to Nokia X software platform and tools
Intro to Nokia X software platform and tools
 
Lumia App Labs: Lessons learned from 50 windows phone 8 design consultations
Lumia App Labs: Lessons learned from 50 windows phone 8 design consultationsLumia App Labs: Lessons learned from 50 windows phone 8 design consultations
Lumia App Labs: Lessons learned from 50 windows phone 8 design consultations
 
Windows Phone 8 speech: parliamo con la nostra app
Windows Phone 8 speech: parliamo con la nostra appWindows Phone 8 speech: parliamo con la nostra app
Windows Phone 8 speech: parliamo con la nostra app
 
La pubblicazione di un'applicazione sullo store
La pubblicazione di un'applicazione sullo storeLa pubblicazione di un'applicazione sullo store
La pubblicazione di un'applicazione sullo store
 
Il pattern mvvm come strutturare al meglio il vostro progetto
Il pattern mvvm come strutturare al meglio il vostro progettoIl pattern mvvm come strutturare al meglio il vostro progetto
Il pattern mvvm come strutturare al meglio il vostro progetto
 
Lens app trasformare il telefono in una fotocamera
Lens app trasformare il telefono in una fotocameraLens app trasformare il telefono in una fotocamera
Lens app trasformare il telefono in una fotocamera
 

Apps de consumo de APIs de Internet para mobile phones

  • 2. Interação Nokia Developer http://www.developer.nokia.com Twitter: @nokiadev_brasil Grupo Devs S40 no Nokia Developer http://www.developer.nokia.com/Co mmunity/Discussion/group.php?grou pid=114 2
  • 3. Apps de consumo de APIs de Internet para mobile phones Raymundo Junior Desenvolvedor – INdT Evangelista Nokia de Tecnologia 3
  • 4. Conteúdo • Device S40 • Estrutura do Projeto • Main • Template • Lib • Service • JSON Viewer • View1 • View2 • View3 • Estudo de Caso 4
  • 5. Device S40 Nokia Developer • http://www.developer.nokia.com/Devices/Device_sp ecifications/?filter1=s40 5
  • 7. Main var main = { init : function(){ view1.init(); } }; 7
  • 8. Template var template = { 'item_view1' : '<div class="item-view1" onclick="mwl.switchClass('#content','view*','view2'); view2.init('{ID}');">{TEXT}</div>', 'item_view2' : '<div onclick="mwl.switchClass('#content','view*','view3'); view3.init('{ID}');">{TEXT}</div>', 'item_view3' : '<div>{TEXT}</div>' }; 8
  • 9. Lib var lib = { call: function(url, successCallback, errorCallback){ var request = new XMLHttpRequest(); try { request.open("GET", url, true); request.onreadystatechange = function(){ if (request.readyState == 4) { if (request.status == 200) { successCallback(eval('(' + request.responseText + ')')); } else { errorCallback("error status: " + request.status); } } }; request.send(null); } catch (e) { errorCallback("error try: " + e); } } }; 9
  • 10. Service var BASE_URL = 'http://justkaws.com/json/'; 10
  • 11. Service var URLS = { 'plataformas' : 'index.php?opcao=plataformas', 'devices' : 'index.php?opcao=devices&id={ID}', 'device' : 'index.php?opcao=device&id={ID}' }; 11
  • 12. Service getView2 : function(id, success, error) { var url = service.getUrl('devices').replace("{ID}", id); lib.call(url, success, error); }, getView3 : function(id, success, error) { var url = service.getUrl('device').replace("{ID}", id); lib.call(url, success, error); } 12
  • 13. Service var BASE_URL = 'http://justkaws.com/json/'; var URLS = { 'plataformas' : 'index.php?opcao=plataformas', 'devices' : 'index.php?opcao=devices&id={ID}', 'device' : 'index.php?opcao=device&id={ID}' }; var service = { getUrl: function(id) { return BASE_URL + URLS[id]; }, getView1 : function(success, error) { var url = service.getUrl('plataformas'); lib.call(url, success, error); }, getView2 : function(id, success, error) { var url = service.getUrl('devices').replace("{ID}", id); lib.call(url, success, error); }, getView3 : function(id, success, error) { var url = service.getUrl('device').replace("{ID}", id); lib.call(url, success, error); } }; 13
  • 14. JSON Viewer LINK: http://jsonviewer.stack.hu/ 14
  • 15. JSON Viewer LINK: http://jsonviewer.stack.hu/ 15
  • 16. View1 init : function(){ document.getElementById('title-view1').innerHTML = "Plataformas NOKIA"; service.getView1( function(data){ view1.render(data); },function(data){ document.getElementById('view-content1').innerHTML = data; } ); }, 16
  • 17. View1 render : function(data){ var dados = data.json; var limit = dados.length; var itemTemplate = template.item_view1; var itens = ""; for (var x = 0; x< limit; x++){ var params = dados[x].platform + '[!{#?#?#}!]' + dados[x].id; itens += itemTemplate.replace("{TEXT}", dados[x].platform).replace("{ID}", params); } document.getElementById('view-content1').innerHTML = itens; } 17
  • 18. View1 var view1 = { init : function(){ document.getElementById('title-view1').innerHTML = "Plataformas NOKIA"; service.getView1( function(data){ view1.render(data); },function(data){ document.getElementById('view-content1').innerHTML = data; } ); }, render : function(data){ var dados = data.json; var limit = dados.length; var itemTemplate = template.item_view1; var itens = ""; for (var x = 0; x< limit; x++){ var params = dados[x].platform + '[!{#?#?#}!]' + dados[x].id; itens += itemTemplate.replace("{TEXT}", dados[x].platform).replace("{ID}", params); } document.getElementById('view-content1').innerHTML = itens; } }; 18
  • 19. View2 init : function(args){ var vetor = args.split('[!{#?#?#}!]'); document.getElementById('title-view2').innerHTML = vetor[0]; service.getView2( vetor[1], function(data){ view2.render(data); },function(data){ document.getElementById('view-content2').innerHTML = data; } ); }, 19
  • 20. View2 render : function(data){ var dados = data.json; var limit = dados.length; var itemTemplate = template.item_view2; var itens = ""; for (var x = 0; x< limit; x++){ var params = dados[x].name + '[!{#?#?#}!]' + dados[x].id; itens += itemTemplate.replace("{TEXT}", dados[x].name).replace("{ID}", params); } document.getElementById('view-content2').innerHTML = itens; } 20
  • 21. View2 var view2 = { init : function(args){ var vetor = args.split('[!{#?#?#}!]'); document.getElementById('title-view2').innerHTML = vetor[0]; service.getView2( vetor[1], function(data){ view2.render(data); },function(data){ document.getElementById('view-content2').innerHTML = data; } ); }, render : function(data){ var dados = data.json; var limit = dados.length; var itemTemplate = template.item_view2; var itens = ""; for (var x = 0; x< limit; x++){ var params = dados[x].name + '[!{#?#?#}!]' + dados[x].id; itens += itemTemplate.replace("{TEXT}", dados[x].name).replace("{ID}", params); } document.getElementById('view-content2').innerHTML = itens; } }; 21
  • 22. View3 init : function(args){ var vetor = args.split('[!{#?#?#}!]'); document.getElementById('title-view3').innerHTML = vetor[0]; service.getView3( vetor[1], function(data){ view3.render(data); },function(data){ document.getElementById('view-content3').innerHTML = data; } ); }, 22
  • 23. View3 render : function(data){ var dados = data.json; var limit = dados.length; var itemTemplate = template.item_view3; var itens = ""; for (var x = 0; x< limit; x++){ itens += itemTemplate.replace("{TEXT}", dados[x].label + ": " + dados[x].value); } document.getElementById('view-content3').innerHTML = itens; } 23
  • 24. View3 var view3 = { init : function(args){ var vetor = args.split('[!{#?#?#}!]'); document.getElementById('title-view3').innerHTML = vetor[0]; service.getView3( vetor[1], function(data){ view3.render(data); },function(data){ document.getElementById('view-content3').innerHTML = data; } ); }, render : function(data){ var dados = data.json; var limit = dados.length; var itemTemplate = template.item_view3; var itens = ""; for (var x = 0; x< limit; x++){ itens += itemTemplate.replace("{TEXT}", dados[x].label + ": " + dados[x].value); } document.getElementById('view-content3').innerHTML = itens; } }; 24
  • 26. Obrigado! Raymundo Junior Desenvolvedor – INdT Evangelista de Tecnologia E-mail: raymundo.ferreira-junior@indt.org.br Twitter: twitter.com/justkaws Site: justkaws.com Blog: blog.justkaws.com 26