SlideShare uma empresa Scribd logo
1 de 34
MOBILE APPS
     CROSS-PLATFORM
Adriel Café

ac@adrielcafe.com

/adrielcafe

@adrielcafe

/in/adrielcafe
Plataformas
Tantas plataformas
Tantas linguagens

                          Tão pouco tempo
                        Tão pouco dinheiro



       Precisamos fazer escolhas...
Como anda o mercado?
                                                 Parcela do Mercado
      Sistema Operacional
                                                   (2º Sem. 2012)

Android                                   68,1 %
iOS                                       16,9 %
BlackBerry                                4,8 %
Symbian                                   4,4 %
Windows Phone                             2,5 %
Outros                                    2,4 %
          Fonte: IDC Worldwide Mobile Phone Tracker, 8 de Agosto de 2012
Mas ainda assim enfrentamos um grande desafio:


                       Criar aplicativos
                      multi-plataforma
O que os desenvolvedores querem?




     Fonte: Developer Economics 2012 (developereconimics.com), Junho de 2012
• .NET Framework (C#,        • Java, C/C++, HTML5, Adobe
  Visual Basic, F#,            AIR
  IronPython, IronRuby...)   • Android Runtime
• Visual Studio




• Objective-C                • Java, C++
• X Code                     • Eclipse, NetBeans, MotoDev...
• Mac OS                     • Open Source
Objective-C      C++
 Java
         C#        Adobe AIR    Visual Basic


   Como criar um aplicativo multi-plataforma
                neste cenário?


Visual Studio        Eclipse
           NetBeans             MotoDev
Tecnologias Web
Tecnologias Web
• Arquitetura Cliente-Servidor
• Rodam em quase todas as plataformas existentes
• Fáceis de aprender
• Rápido desenvolvimento
Tecnologias Web




  Disponível em: http://goo.gl/aX8yE
HTML5, CSS3 & JavaScript
HTML5
CSS3
• Novas propriedades
  • @font-face
  • Border-radius
  • Box-shadow
  • Opacity
  • Transform
  • Transition
  • Resize
  • ...
JavaScript
• Linguagem client-side
• Orientada a objetos
• Tipagem fraca e dinâmica
• Possui milhares de API’s
   • AJAX, JQuery, ExtJS, Node.js, GWT, MooTools, RaphaëlJS...
Estão pensando o mesmo que eu?



        Que tal utilizar tecnologias web
          para criar aplicativos móveis
                      multi-plataforma?
Mobile Apps Cross-Platform
Mobile Apps Cross-Platform
• Write Once, Run Anywhere
• Utiliza, na maioria das vezes, tecnologias web
• Técnicas utilizadas
   • JavaScript Frameworks
    • jQuery Mobile, Wink, Zepto JS, LimeJS...
  • App Factories
     • AppMkr, Tiggzi, Mobjectify...
  • Web-to-native wrappers
    • Sencha Touch, PhoneGap, MoSync...
  • Runtimes
     • Titanium Mobile, Unity, Adobe Air, AppMobi...
Mobile Apps Cross-Platform
• Reduzem drasticamente o custo e tempo de
  desenvolvimento
• Permitem que os web developers possam reutilizar seus
  conhecimentos em uma nova plataforma
Frameworks mais utilizados




Fonte: Cross-Platform Tools 2012 (crossplatformtools.com), Fevereiro de 2012
Solução perfeita? Não.




Nem tudo são flores...
Native App, Web App & Hybrid App
Native App
Prós
•Melhor performance
•UI nativa
•Pode armazenar mais informações offline
•Disponível nas App Stories
•Acesso a todas as funcionalidades do aparelho
•Instalado no aparelho


Contras
•Mais demorado e custoso para desenvolver
•Suporta apenas uma plataforma
•Precisa ser aprovado para ser publicado na App Store
Web App
Prós
•Utiliza tecnologias web (HTML5, CSS3 & JavaScript)
•Suporta múltiplas plataformas
•Não é preciso ser aprovado nas App Stories
•Atualizações instantâneas


Contras
•Linguagem interpretada
•Não possui acesso a todas as funcionalidades do aparelho
•Não pode ser encontrado nas App Stories
Hybrid App
Prós
•Utiliza tecnologias web (HTML5, CSS3 & JavaScript)
•Suporta múltiplas plataformas
•UI nativa (suportado por alguns frameworks)
•Pode armazenar mais informações offline
•Disponível nas App Stories
•Instalado no aparelho
•Suporta muitas funcionalidades do aparelho


Contras
•Linguagem interpretada
•Precisa ser aprovado para ser publicado na App Store
Qual a melhor opção?
• O aplicativo requer o uso de alguma funcionalidade
    especial? (Câmera, acelerômetro, GPS, armazenamento...)
•   Qual o seu orçamento?
•   O aplicativo requer conexão com a internet?
•   Quantas plataformas você pretende suportar?
•   Quais linguagens de programação eu, ou minha equipe,
    domina?
•   A performance é muito importante?
•   O tempo é curto?
Ferramentas Cross-Platform
• Baseado no jQuery e jQuery UI
• Suporta as plataformas iOS, Android, Windows Phone,
  BlackBerry, WebOS, Bada, MeeGo, Symbian
• Possui o Download builder

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Hello jQuery Mobile</title>
        <link rel="stylesheet“ href="http://code.jquery.com/jquery.mobile.min.css" />
        <script src="http://code.jquery.com/jquery-1.5.2.min.js"></script>
        <script src="http://code.jquery.com/mobile/jquery.mobile-1.0a4.min.js"></script>
    </head>
    <body>
        <div data-role="page">
            Hello jQuery Mobile
        </div>
    </body>
</html>
• Suporta as plataformas Android, iOS e Blackberry
• Baseado nas bibliotecas javascript ExtJS, jQTouch e Raphaël
• Possui sua própria IDE: o Sencha Architect
• Possui a extensão Sencha Animator
• Roda apenas na engine webkit
• Documentação perfeita

 Ext.application({
      launch: function () {
           Ext.create('Ext.Panel', {
                fullscreen: true,
                html: 'Hello World!'
           });
      }
 });
• Suporta as plataformas iOS, Android, Blackberry, Symbian,
  Bada e Windows Phone
• Possui suas próprias APIs javascript que possibilitam o uso
  de recursos nativos que as plataformas oferecem


 var showMessageBox = function() {
      navigator.notification.alert("Hello World!");
 }
 function init(){
      document.addEventListener("deviceready", showMessageBox, true);

 }
• Suporta as plataformas iOS, Android e Blackberry (beta)
• Possui sua própria IDE: o Titanium Studio
• Possui sua própria loja virtual: a Appcelerator Marketplace
• Suporta as linguagens server-side PHP, Python e Ruby
• Possui suas próprias APIs javascript que possibilitam o uso de
 recursos nativos que as plataformas oferecem
 var winHello = Titanium.UI.createWindow();

 var lblHello = Titanium.UI.createLabel({
     text: 'Hello World!',
 });

 winHello.add(lblHello);
 winHello.open();
Conclusão



“Cada caso é um caso”
   (Autor desconhecido)
JOptionPane.showMessageDialog(null,
     "Muito Obrigado!“
);
System.exit(0);

   Adriel Café

   ac@adrielcafe.com

   /adrielcafe

   @adrielcafe

   /in/adrielcafe

Mais conteúdo relacionado

Mais procurados

Desenvolvimento de Aplicativos Móveis Multiplataforma
Desenvolvimento de Aplicativos Móveis MultiplataformaDesenvolvimento de Aplicativos Móveis Multiplataforma
Desenvolvimento de Aplicativos Móveis MultiplataformaJose Augusto Cintra
 
Introdução ao Xamarin
Introdução ao XamarinIntrodução ao Xamarin
Introdução ao XamarinStudyxnet
 
Eureka! E agora: Nativo ou Híbrido
Eureka! E agora: Nativo ou HíbridoEureka! E agora: Nativo ou Híbrido
Eureka! E agora: Nativo ou Híbridodrbatiston
 
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...Leonardo Melo Santos
 
EDTED - Frameworks mobile multiplataforma
EDTED - Frameworks mobile multiplataforma EDTED - Frameworks mobile multiplataforma
EDTED - Frameworks mobile multiplataforma Alano Teles
 
Desenvolvimento multiplataforma com Xamarin e MVVM: da arquitetura a UIs espe...
Desenvolvimento multiplataforma com Xamarin e MVVM: da arquitetura a UIs espe...Desenvolvimento multiplataforma com Xamarin e MVVM: da arquitetura a UIs espe...
Desenvolvimento multiplataforma com Xamarin e MVVM: da arquitetura a UIs espe...Alexandre Zollinger Chohfi
 
Curso: Desenvolvimento de aplicativos híbridos (dia 1)
Curso: Desenvolvimento de aplicativos híbridos (dia 1)Curso: Desenvolvimento de aplicativos híbridos (dia 1)
Curso: Desenvolvimento de aplicativos híbridos (dia 1)Wennder Santos
 
Xamarin Introdução
Xamarin IntroduçãoXamarin Introdução
Xamarin Introduçãoakamud
 
Curso de Desenvolvimento de Aplicativos Híbridos com PhoneGap/Cordova, e Ionic
Curso de Desenvolvimento de Aplicativos Híbridos com PhoneGap/Cordova, e IonicCurso de Desenvolvimento de Aplicativos Híbridos com PhoneGap/Cordova, e Ionic
Curso de Desenvolvimento de Aplicativos Híbridos com PhoneGap/Cordova, e IonicFelipe Blini
 
Desenvolvimento Mobile com Ionic
Desenvolvimento Mobile com IonicDesenvolvimento Mobile com Ionic
Desenvolvimento Mobile com IonicFelipe Renan Vieira
 
Curso: Desenvolvimento de aplicativos híbridos (dia 2)
Curso: Desenvolvimento de aplicativos híbridos (dia 2)Curso: Desenvolvimento de aplicativos híbridos (dia 2)
Curso: Desenvolvimento de aplicativos híbridos (dia 2)Wennder Santos
 
Minicurso de Desenvolvimento Híbrido utilizando Ionic Framework
Minicurso de Desenvolvimento Híbrido utilizando Ionic FrameworkMinicurso de Desenvolvimento Híbrido utilizando Ionic Framework
Minicurso de Desenvolvimento Híbrido utilizando Ionic FrameworkCristian Dean
 
Desenvolvimento Multiplataforma com Appcelerator Titanium
Desenvolvimento Multiplataforma com Appcelerator TitaniumDesenvolvimento Multiplataforma com Appcelerator Titanium
Desenvolvimento Multiplataforma com Appcelerator TitaniumDirlei Dionísio
 
Desenvolvimento de aplicações nativas para ios e android
Desenvolvimento de aplicações nativas para ios e androidDesenvolvimento de aplicações nativas para ios e android
Desenvolvimento de aplicações nativas para ios e androidDiogo Andre Loff
 
SESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao AndroidSESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao AndroidRafael Sakurai
 
Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...
Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...
Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...Pedro Edson Silva Barros
 

Mais procurados (20)

Desenvolvimento de Aplicativos Móveis Multiplataforma
Desenvolvimento de Aplicativos Móveis MultiplataformaDesenvolvimento de Aplicativos Móveis Multiplataforma
Desenvolvimento de Aplicativos Móveis Multiplataforma
 
PhoneGap - Desenvolvimento mobile multiplataforma - SECCOMP 2014
PhoneGap - Desenvolvimento mobile multiplataforma - SECCOMP 2014PhoneGap - Desenvolvimento mobile multiplataforma - SECCOMP 2014
PhoneGap - Desenvolvimento mobile multiplataforma - SECCOMP 2014
 
Introdução ao Xamarin
Introdução ao XamarinIntrodução ao Xamarin
Introdução ao Xamarin
 
Eureka! E agora: Nativo ou Híbrido
Eureka! E agora: Nativo ou HíbridoEureka! E agora: Nativo ou Híbrido
Eureka! E agora: Nativo ou Híbrido
 
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...
 
EDTED - Frameworks mobile multiplataforma
EDTED - Frameworks mobile multiplataforma EDTED - Frameworks mobile multiplataforma
EDTED - Frameworks mobile multiplataforma
 
Desenvolvimento multiplataforma com Xamarin e MVVM: da arquitetura a UIs espe...
Desenvolvimento multiplataforma com Xamarin e MVVM: da arquitetura a UIs espe...Desenvolvimento multiplataforma com Xamarin e MVVM: da arquitetura a UIs espe...
Desenvolvimento multiplataforma com Xamarin e MVVM: da arquitetura a UIs espe...
 
Apps Hibridos
Apps HibridosApps Hibridos
Apps Hibridos
 
Introdução ao Azure Mobile Apps
Introdução ao Azure Mobile AppsIntrodução ao Azure Mobile Apps
Introdução ao Azure Mobile Apps
 
Curso: Desenvolvimento de aplicativos híbridos (dia 1)
Curso: Desenvolvimento de aplicativos híbridos (dia 1)Curso: Desenvolvimento de aplicativos híbridos (dia 1)
Curso: Desenvolvimento de aplicativos híbridos (dia 1)
 
Xamarin Introdução
Xamarin IntroduçãoXamarin Introdução
Xamarin Introdução
 
Curso de Desenvolvimento de Aplicativos Híbridos com PhoneGap/Cordova, e Ionic
Curso de Desenvolvimento de Aplicativos Híbridos com PhoneGap/Cordova, e IonicCurso de Desenvolvimento de Aplicativos Híbridos com PhoneGap/Cordova, e Ionic
Curso de Desenvolvimento de Aplicativos Híbridos com PhoneGap/Cordova, e Ionic
 
Desenvolvimento Mobile com Ionic
Desenvolvimento Mobile com IonicDesenvolvimento Mobile com Ionic
Desenvolvimento Mobile com Ionic
 
Curso: Desenvolvimento de aplicativos híbridos (dia 2)
Curso: Desenvolvimento de aplicativos híbridos (dia 2)Curso: Desenvolvimento de aplicativos híbridos (dia 2)
Curso: Desenvolvimento de aplicativos híbridos (dia 2)
 
Minicurso de Desenvolvimento Híbrido utilizando Ionic Framework
Minicurso de Desenvolvimento Híbrido utilizando Ionic FrameworkMinicurso de Desenvolvimento Híbrido utilizando Ionic Framework
Minicurso de Desenvolvimento Híbrido utilizando Ionic Framework
 
Flash mobile
Flash mobileFlash mobile
Flash mobile
 
Desenvolvimento Multiplataforma com Appcelerator Titanium
Desenvolvimento Multiplataforma com Appcelerator TitaniumDesenvolvimento Multiplataforma com Appcelerator Titanium
Desenvolvimento Multiplataforma com Appcelerator Titanium
 
Desenvolvimento de aplicações nativas para ios e android
Desenvolvimento de aplicações nativas para ios e androidDesenvolvimento de aplicações nativas para ios e android
Desenvolvimento de aplicações nativas para ios e android
 
SESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao AndroidSESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao Android
 
Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...
Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...
Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...
 

Semelhante a Criando Apps Multiplataforma com Tecnologias Web

Aplicações Móveis Híbridas
Aplicações Móveis HíbridasAplicações Móveis Híbridas
Aplicações Móveis HíbridasThomas Kanzig
 
Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento MobileElton Minetto
 
Phonegap - self RJ
Phonegap - self RJPhonegap - self RJ
Phonegap - self RJjavamanrj
 
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013javamanrj
 
Introdução ao PhoneGap
Introdução ao PhoneGapIntrodução ao PhoneGap
Introdução ao PhoneGapLucas Félix
 
Introdução ao PhoneGap
Introdução ao PhoneGapIntrodução ao PhoneGap
Introdução ao PhoneGapLucas Félix
 
PhoneGap - criando aplicações Android e iOS com HTML5
PhoneGap - criando aplicações Android e iOS com HTML5PhoneGap - criando aplicações Android e iOS com HTML5
PhoneGap - criando aplicações Android e iOS com HTML5Rafael Sakurai
 
GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...
GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...
GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...Paulo Cesar Ortins Brito
 
PhoneGap - Criando aplicações Android e iOS com HTML5
PhoneGap - Criando aplicações Android e iOS com HTML5PhoneGap - Criando aplicações Android e iOS com HTML5
PhoneGap - Criando aplicações Android e iOS com HTML5Rodrigo Cascarrolho
 
Apresentação JAVOU 5
Apresentação JAVOU 5Apresentação JAVOU 5
Apresentação JAVOU 5Bruno Muniz
 
8ºConnecting Knowledge Web ou App
8ºConnecting Knowledge Web ou App8ºConnecting Knowledge Web ou App
8ºConnecting Knowledge Web ou AppHeider Lopes
 
Palestra Desenvolvimento de Apps Móveis: Iniciando no iOS e Android
Palestra Desenvolvimento de Apps Móveis: Iniciando no iOS e AndroidPalestra Desenvolvimento de Apps Móveis: Iniciando no iOS e Android
Palestra Desenvolvimento de Apps Móveis: Iniciando no iOS e AndroidCarlos Eugenio Torres
 
Descomplicando o Android
Descomplicando o AndroidDescomplicando o Android
Descomplicando o AndroidHeider Lopes
 
Apresentação de minha Monografia do curso de Sistema e Mídias Digitais
Apresentação de minha Monografia do curso de Sistema e Mídias DigitaisApresentação de minha Monografia do curso de Sistema e Mídias Digitais
Apresentação de minha Monografia do curso de Sistema e Mídias DigitaisÉdipo Souza
 
Xamarin em 7 minutos
Xamarin em 7 minutosXamarin em 7 minutos
Xamarin em 7 minutosakamud
 
Hello world hybrid apps oportunidades com ionic framework v2
Hello world hybrid apps  oportunidades com ionic framework v2Hello world hybrid apps  oportunidades com ionic framework v2
Hello world hybrid apps oportunidades com ionic framework v2Ricardo Netto - MCP, MSP
 

Semelhante a Criando Apps Multiplataforma com Tecnologias Web (20)

Aplicações Móveis Híbridas
Aplicações Móveis HíbridasAplicações Móveis Híbridas
Aplicações Móveis Híbridas
 
Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento Mobile
 
Phonegap - self RJ
Phonegap - self RJPhonegap - self RJ
Phonegap - self RJ
 
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
 
Introdução ao PhoneGap
Introdução ao PhoneGapIntrodução ao PhoneGap
Introdução ao PhoneGap
 
Introdução ao PhoneGap
Introdução ao PhoneGapIntrodução ao PhoneGap
Introdução ao PhoneGap
 
PhoneGap - criando aplicações Android e iOS com HTML5
PhoneGap - criando aplicações Android e iOS com HTML5PhoneGap - criando aplicações Android e iOS com HTML5
PhoneGap - criando aplicações Android e iOS com HTML5
 
GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...
GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...
GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...
 
PhoneGap - Criando aplicações Android e iOS com HTML5
PhoneGap - Criando aplicações Android e iOS com HTML5PhoneGap - Criando aplicações Android e iOS com HTML5
PhoneGap - Criando aplicações Android e iOS com HTML5
 
Apresentação JAVOU 5
Apresentação JAVOU 5Apresentação JAVOU 5
Apresentação JAVOU 5
 
8ºConnecting Knowledge Web ou App
8ºConnecting Knowledge Web ou App8ºConnecting Knowledge Web ou App
8ºConnecting Knowledge Web ou App
 
Web ou App?
Web ou App?Web ou App?
Web ou App?
 
Jquery Mobile
Jquery MobileJquery Mobile
Jquery Mobile
 
Palestra Desenvolvimento de Apps Móveis: Iniciando no iOS e Android
Palestra Desenvolvimento de Apps Móveis: Iniciando no iOS e AndroidPalestra Desenvolvimento de Apps Móveis: Iniciando no iOS e Android
Palestra Desenvolvimento de Apps Móveis: Iniciando no iOS e Android
 
Descomplicando o Android
Descomplicando o AndroidDescomplicando o Android
Descomplicando o Android
 
A vez do mobile - Dev in Bahia #3
A vez do mobile - Dev in Bahia #3A vez do mobile - Dev in Bahia #3
A vez do mobile - Dev in Bahia #3
 
Apresentação de minha Monografia do curso de Sistema e Mídias Digitais
Apresentação de minha Monografia do curso de Sistema e Mídias DigitaisApresentação de minha Monografia do curso de Sistema e Mídias Digitais
Apresentação de minha Monografia do curso de Sistema e Mídias Digitais
 
Xamarin em 7 minutos
Xamarin em 7 minutosXamarin em 7 minutos
Xamarin em 7 minutos
 
Hello world hybrid apps oportunidades com ionic framework v2
Hello world hybrid apps  oportunidades com ionic framework v2Hello world hybrid apps  oportunidades com ionic framework v2
Hello world hybrid apps oportunidades com ionic framework v2
 
Going Mobile
Going MobileGoing Mobile
Going Mobile
 

Mais de Adriel Café

Desenvolvendo aplicativos Android com Kotlin
Desenvolvendo aplicativos Android com KotlinDesenvolvendo aplicativos Android com Kotlin
Desenvolvendo aplicativos Android com KotlinAdriel Café
 
Uma Arquitetura com Implementação para Integração Semântica de Ontologias e B...
Uma Arquitetura com Implementação para Integração Semântica de Ontologias e B...Uma Arquitetura com Implementação para Integração Semântica de Ontologias e B...
Uma Arquitetura com Implementação para Integração Semântica de Ontologias e B...Adriel Café
 
Desenvolvendo para Android com componentes Open Source
Desenvolvendo para Android com componentes Open SourceDesenvolvendo para Android com componentes Open Source
Desenvolvendo para Android com componentes Open SourceAdriel Café
 
Gryphon Framework - Preliminary Results Feb-2014
Gryphon Framework - Preliminary Results Feb-2014Gryphon Framework - Preliminary Results Feb-2014
Gryphon Framework - Preliminary Results Feb-2014Adriel Café
 
Ontology integration - Heterogeneity, Techniques and more
Ontology integration - Heterogeneity, Techniques and moreOntology integration - Heterogeneity, Techniques and more
Ontology integration - Heterogeneity, Techniques and moreAdriel Café
 
SPARQL-DL - Theory & Practice
SPARQL-DL - Theory & PracticeSPARQL-DL - Theory & Practice
SPARQL-DL - Theory & PracticeAdriel Café
 
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...Adriel Café
 
2º ETI - Minicurso "Desenvolvendo para Plataforma Android"
2º ETI - Minicurso "Desenvolvendo para Plataforma Android"2º ETI - Minicurso "Desenvolvendo para Plataforma Android"
2º ETI - Minicurso "Desenvolvendo para Plataforma Android"Adriel Café
 

Mais de Adriel Café (8)

Desenvolvendo aplicativos Android com Kotlin
Desenvolvendo aplicativos Android com KotlinDesenvolvendo aplicativos Android com Kotlin
Desenvolvendo aplicativos Android com Kotlin
 
Uma Arquitetura com Implementação para Integração Semântica de Ontologias e B...
Uma Arquitetura com Implementação para Integração Semântica de Ontologias e B...Uma Arquitetura com Implementação para Integração Semântica de Ontologias e B...
Uma Arquitetura com Implementação para Integração Semântica de Ontologias e B...
 
Desenvolvendo para Android com componentes Open Source
Desenvolvendo para Android com componentes Open SourceDesenvolvendo para Android com componentes Open Source
Desenvolvendo para Android com componentes Open Source
 
Gryphon Framework - Preliminary Results Feb-2014
Gryphon Framework - Preliminary Results Feb-2014Gryphon Framework - Preliminary Results Feb-2014
Gryphon Framework - Preliminary Results Feb-2014
 
Ontology integration - Heterogeneity, Techniques and more
Ontology integration - Heterogeneity, Techniques and moreOntology integration - Heterogeneity, Techniques and more
Ontology integration - Heterogeneity, Techniques and more
 
SPARQL-DL - Theory & Practice
SPARQL-DL - Theory & PracticeSPARQL-DL - Theory & Practice
SPARQL-DL - Theory & Practice
 
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
 
2º ETI - Minicurso "Desenvolvendo para Plataforma Android"
2º ETI - Minicurso "Desenvolvendo para Plataforma Android"2º ETI - Minicurso "Desenvolvendo para Plataforma Android"
2º ETI - Minicurso "Desenvolvendo para Plataforma Android"
 

Criando Apps Multiplataforma com Tecnologias Web

  • 1. MOBILE APPS CROSS-PLATFORM Adriel Café ac@adrielcafe.com /adrielcafe @adrielcafe /in/adrielcafe
  • 3.
  • 4. Tantas plataformas Tantas linguagens Tão pouco tempo Tão pouco dinheiro Precisamos fazer escolhas...
  • 5. Como anda o mercado? Parcela do Mercado Sistema Operacional (2º Sem. 2012) Android 68,1 % iOS 16,9 % BlackBerry 4,8 % Symbian 4,4 % Windows Phone 2,5 % Outros 2,4 % Fonte: IDC Worldwide Mobile Phone Tracker, 8 de Agosto de 2012
  • 6. Mas ainda assim enfrentamos um grande desafio: Criar aplicativos multi-plataforma
  • 7. O que os desenvolvedores querem? Fonte: Developer Economics 2012 (developereconimics.com), Junho de 2012
  • 8. • .NET Framework (C#, • Java, C/C++, HTML5, Adobe Visual Basic, F#, AIR IronPython, IronRuby...) • Android Runtime • Visual Studio • Objective-C • Java, C++ • X Code • Eclipse, NetBeans, MotoDev... • Mac OS • Open Source
  • 9. Objective-C C++ Java C# Adobe AIR Visual Basic Como criar um aplicativo multi-plataforma neste cenário? Visual Studio Eclipse NetBeans MotoDev
  • 11. Tecnologias Web • Arquitetura Cliente-Servidor • Rodam em quase todas as plataformas existentes • Fáceis de aprender • Rápido desenvolvimento
  • 12. Tecnologias Web Disponível em: http://goo.gl/aX8yE
  • 13. HTML5, CSS3 & JavaScript
  • 14. HTML5
  • 15. CSS3 • Novas propriedades • @font-face • Border-radius • Box-shadow • Opacity • Transform • Transition • Resize • ...
  • 16. JavaScript • Linguagem client-side • Orientada a objetos • Tipagem fraca e dinâmica • Possui milhares de API’s • AJAX, JQuery, ExtJS, Node.js, GWT, MooTools, RaphaëlJS...
  • 17. Estão pensando o mesmo que eu? Que tal utilizar tecnologias web para criar aplicativos móveis multi-plataforma?
  • 19. Mobile Apps Cross-Platform • Write Once, Run Anywhere • Utiliza, na maioria das vezes, tecnologias web • Técnicas utilizadas • JavaScript Frameworks • jQuery Mobile, Wink, Zepto JS, LimeJS... • App Factories • AppMkr, Tiggzi, Mobjectify... • Web-to-native wrappers • Sencha Touch, PhoneGap, MoSync... • Runtimes • Titanium Mobile, Unity, Adobe Air, AppMobi...
  • 20. Mobile Apps Cross-Platform • Reduzem drasticamente o custo e tempo de desenvolvimento • Permitem que os web developers possam reutilizar seus conhecimentos em uma nova plataforma
  • 21. Frameworks mais utilizados Fonte: Cross-Platform Tools 2012 (crossplatformtools.com), Fevereiro de 2012
  • 22. Solução perfeita? Não. Nem tudo são flores...
  • 23. Native App, Web App & Hybrid App
  • 24. Native App Prós •Melhor performance •UI nativa •Pode armazenar mais informações offline •Disponível nas App Stories •Acesso a todas as funcionalidades do aparelho •Instalado no aparelho Contras •Mais demorado e custoso para desenvolver •Suporta apenas uma plataforma •Precisa ser aprovado para ser publicado na App Store
  • 25. Web App Prós •Utiliza tecnologias web (HTML5, CSS3 & JavaScript) •Suporta múltiplas plataformas •Não é preciso ser aprovado nas App Stories •Atualizações instantâneas Contras •Linguagem interpretada •Não possui acesso a todas as funcionalidades do aparelho •Não pode ser encontrado nas App Stories
  • 26. Hybrid App Prós •Utiliza tecnologias web (HTML5, CSS3 & JavaScript) •Suporta múltiplas plataformas •UI nativa (suportado por alguns frameworks) •Pode armazenar mais informações offline •Disponível nas App Stories •Instalado no aparelho •Suporta muitas funcionalidades do aparelho Contras •Linguagem interpretada •Precisa ser aprovado para ser publicado na App Store
  • 27. Qual a melhor opção? • O aplicativo requer o uso de alguma funcionalidade especial? (Câmera, acelerômetro, GPS, armazenamento...) • Qual o seu orçamento? • O aplicativo requer conexão com a internet? • Quantas plataformas você pretende suportar? • Quais linguagens de programação eu, ou minha equipe, domina? • A performance é muito importante? • O tempo é curto?
  • 29. • Baseado no jQuery e jQuery UI • Suporta as plataformas iOS, Android, Windows Phone, BlackBerry, WebOS, Bada, MeeGo, Symbian • Possui o Download builder <!DOCTYPE html> <html lang="en"> <head> <title>Hello jQuery Mobile</title> <link rel="stylesheet“ href="http://code.jquery.com/jquery.mobile.min.css" /> <script src="http://code.jquery.com/jquery-1.5.2.min.js"></script> <script src="http://code.jquery.com/mobile/jquery.mobile-1.0a4.min.js"></script> </head> <body> <div data-role="page"> Hello jQuery Mobile </div> </body> </html>
  • 30. • Suporta as plataformas Android, iOS e Blackberry • Baseado nas bibliotecas javascript ExtJS, jQTouch e Raphaël • Possui sua própria IDE: o Sencha Architect • Possui a extensão Sencha Animator • Roda apenas na engine webkit • Documentação perfeita Ext.application({ launch: function () { Ext.create('Ext.Panel', { fullscreen: true, html: 'Hello World!' }); } });
  • 31. • Suporta as plataformas iOS, Android, Blackberry, Symbian, Bada e Windows Phone • Possui suas próprias APIs javascript que possibilitam o uso de recursos nativos que as plataformas oferecem var showMessageBox = function() { navigator.notification.alert("Hello World!"); } function init(){ document.addEventListener("deviceready", showMessageBox, true); }
  • 32. • Suporta as plataformas iOS, Android e Blackberry (beta) • Possui sua própria IDE: o Titanium Studio • Possui sua própria loja virtual: a Appcelerator Marketplace • Suporta as linguagens server-side PHP, Python e Ruby • Possui suas próprias APIs javascript que possibilitam o uso de recursos nativos que as plataformas oferecem var winHello = Titanium.UI.createWindow(); var lblHello = Titanium.UI.createLabel({ text: 'Hello World!', }); winHello.add(lblHello); winHello.open();
  • 33. Conclusão “Cada caso é um caso” (Autor desconhecido)
  • 34. JOptionPane.showMessageDialog(null, "Muito Obrigado!“ ); System.exit(0); Adriel Café ac@adrielcafe.com /adrielcafe @adrielcafe /in/adrielcafe