No dia 28 de novembro de 2012, eu apresentei a palestra "Desenvolvimento para dispositivos móveis - iOS, Android, Windows Phone, Windows 8 e Firefox OS". A palestra foi escolhida democraticamente, dentre várias opções disponíveis, numa votação entre os alunos da instituição. O objetivo principal da minha apresentação foi dar uma visão geral das principais plataformas de desenvolvimento para dispositivos móveis disponíveis no mercado atualmente, além de uma com potencial: Firefox OS.
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
1. Desenvolvimento para
dispositivos móveis
iOS, Android, Windows Phone, Windows 8
e Firefox OS
Rogério Moraes de Carvalho – VITA Informática (novembro de 2012)
@rogeriomc
rogeriomc.wordpress.com
3. Sistema operacional móvel
iOS 6.0.1 (versão mais recente)
Em desenvolvimento: iOS 6.1 beta
Sistema derivado do Mac OS X (baseado no Unix)
Anunciado na Macworld 2007 em 09/01/2007
No anúncio do iPhone foi chamado de OS X
Em 06/03/2008, foi nomeado iPhone OS
Na liberação do Software Development Kit (SDK) beta
Em junho de 2010, foi renomeado para iOS
4. Arquitetura do iOS
Camadas (visão macro)
Cocoa Touch Funcionalidades chaves para apps
(Documentos, impressão, gestos, etc.)
Media Tecnologias de imagem, áudio e vídeo
Core Services Serviços fundamentais do iOS
(iCloud, ARC, SQLite, suporte XML, etc.)
Core OS Características de baixo-nível do iOS
(Threading, E/S, memória, rede, etc.)
5. Linguagens de programação
Aplicações nativas
Linguagem de programação Objective-C 2.0
Criadaem 1980 por Brad Cox e Tom Love
Linguagem de POO que é uma extensão da linguagem C
Em 1988, a NeXT licenciou o Objective-C
Linguagem primária de desenvolvimento para iOS e Mac OS X
Aplicações Web
JavaScript
Linguagem usada em conjunto com HTML5 e CSS3
6. Frameworks
Frameworks da camada Cocoa Touch
Address Book UI Framework (manipulação de contatos)
Event Kit UI Framework (eventos de calendário)
Game Kit Framework (capacidade P2P em apps)
iAd Framework (propaganda baseada em banner)
Map Kit Framework (interface de mapas com rolamento)
Message UI Framework (mensagens de e-mail)
Twitter Framework (composição e envio de tweets)
UIKit Framework (recursos para apps gráficas orientada a eventos)
7. Ferramentas de desenvolvimento
Xcode 4.5.2 (versão mais recente)
Em desenvolvimento: Xcode 4.6 Developer Preview
Contém o OS X 10.8 SDK e o iOS 6.1 SDK beta
IDE da Apple para desenvolvimento de apps
Permite desenvolver apps para Mac OS X e iOS
Exigeum Mac baseado em Intel com Mac OS X
Snow Leopard ou superior (Lion ou Mountain Lion)
Distribuído gratuitamente pela Mac App Store
8. Documentação
iOS Developer Library
developer.apple.com/library/ios/
Orientação de estudos
Getting Started: Start Developing iOS Apps Today
Guides: iOS Technology Overview
Guides: iOS Human Interface Guidelines
Guides: Developing for the App Store
Guides: Programming with Objective-C
9. Loja virtual
App Store
Plataforma digital de distribuição de apps para iOS
Mantida pela Apple Inc
Construção de uma app para a App Store
Preparar o ambiente
e o time de
desenvolvimento Desenvolver a app
Criar um projeto Publicar a app na
App Store
10. Publicação na loja virtual
Fornecimento de informações para serem
apresentadas pela app na App Store
Submissão da app para a Apple para o
processo de aprovação
Após a aprovação, definição da data de
aparecimento da app na App Store
Monitoramento das vendas, revisões de
usuários e relatórios de problemas
11. Licença de desenvolvedor
Que programa de desenvolvedor é para você?
developer.apple.com/programs/which-program/
iOS Developer Program
iOS Developer Program – Individual ($99/ano)
Desenvolvedores individuais que criarão apps para
distribuição na App Store
iOS Developer Program – Company ($99/ano)
Para empresas que criarão apps para distribuição na
App Store
12. Licença de desenvolvedor
iOS Developer Program (continuação)
iOS Developer Enterprise Program ($299/ano)
Para empresas que criarão apps proprietárias para
distribuição internamente
iOS Developer University Program (grátis)
Para instituições de educação superior que querem
introduzir desenvolvimento para iOS em seus currículos
14. Sistema operacional móvel
Android 4.2.1 (Jelly Bean)
Em desenvolvimento: Android 5.0 (Key Lime Pie)
Sistema operacional baseado no Linux
Sistema Open Source sob a Apache License
O sistema foi anunciado em 06/11/2007
Juntamente com a Open Handset Alliance (OHA)
T-Mobile G1 lançado em outubro de 2008
Primeiro smartphone com sistema Android
16. Linguagens de programação
Linguagem de programação Java
Dalvik Virtual Machine
Otimizada para dispositivos móveis
Diversas bibliotecas da plataforma Java SE
Pacotes java.*, javax.*, org.apache.*, org.xml.*, etc.
Diversas bibliotecas da específicas para Android
Pacotes android.*
Linguagem C/C++ (vários componentes/ADK)
17. Ferramentas de desenvolvimento
Requisitos de sistema
Sistemas operacionais
WindowsXP (32-bit), Windows Vista (32/64-bit) ou
Windows 7 (32/64-bit)
Mac OS X 10.5.8 ou superior
Linux (testado no Ubuntu)
GNU C Library (glibc) 2.7 ou superior
Ubuntu Linux 8.04 ou superior
Distribuiçõesde 64-bit devem ser capazes de executar
aplicações de 32-bit
18. Ferramentas de desenvolvimento
Requisitos de sistema
Eclipse IDE
Eclipse 3.6.2 (Helios) ou superior
Eclipse JDT (Java Development Tools) plugin
JDK 6 (JRE somente não é suportado)
Android Development Tools plugin (recomendado)
Outros ambientes de desenvolvimento
JDK 6 (JRE somente não é suportado)
Apache Ant 1.8 ou superior
19. Ferramentas de desenvolvimento
ADT Bundle
Eclipse IDE mais o plug-in ADT
Ferramentas do Android SDK
Ferramentas da plataforma Android
Plataforma Android mais recente
Imagem do sistema Android
mais recente para o emulador
Download: developer.android.com/sdk/
20. Documentação
Android Developers Training
developer.android.com/training/
Construindo apps
Getting Started
Building Apps with Multimedia
Building Apps with Graphics & Animation
Building Apps with Connectivity & the Cloud
Building Apps with User Info & Location
21. Documentação
Melhores práticas
Best Practices for User Experience & UI
Best Practices for Performance
Best Practices for Security & Privacy
Distribuição e monetização
Using Google Play to Distribute & Monetize
22. Loja virtual
Google Play Store (antiga Android Market)
Plataforma de distribuição digital de apps da Google
Concorrentes: Amazon Appstore, Samsung Apps, etc.
Construção de uma app para a Google Play Store
Preparar o ambiente
e o time de
desenvolvimento Desenvolver a app
Criar um projeto Publicar a app na
Google Play Store
23. Publicação na loja virtual
Processo de registro de uma conta de editor
(publisher account)
Submissão da app para a Google Play para o
processo de aprovação
Após a aprovação, definição da data de
aparecimento da app na Play Store
Gerenciamento antes, durante e depois da
publicação pelo Google Play Android
Developer Console
24. Registro de desenvolvedor
O desenvolvedor deve se registrar para estar
apto a distribuir apps pela Google Play Store
Existe uma taxa única de registro de $25
A Google justifica a cobrança da taxa para
encorajar produtos de qualidade superior
Paravender apps, o desenvolvedor deve estar
registrado como Google Checkout Merchant
26. Sistema operacional móvel
Windows Phone 8
Segunda geração do Windows Phone
Em desenvolvimento: Windows Phone 9
Arquitetura baseada no kernel do Windows NT
Compartilhamento de componentes com o Windows 8
A versão anterior era baseada no Windows CE
O sistema foi liberado em 14/09/2012 (RTM)
Disponível para o público em geral em 29/10/2012
Smartphones WP7 não atualizarão para WP8
28. Ferramentas de desenvolvimento
Windows Phone SDK 8.0
Permite criar apps para Windows Phone 8.0 e 7.5
Com o Visual Studio Express 2012 for Windows Phone
Gratuito, mas exige registro para obter uma chave
É necessário ter ou criar uma conta da Microsoft
Sem uma chave de ativação, o produto funciona 30 dias
Add-in do Visual Studio 2012 comercial
Ultimate, Premium ou Professional
VS 2012 Update 1 liberado em 26/11/2012
29. Ferramentas de desenvolvimento
Requisitos de sistema
Sistema operacional
Windows 8 (64-bit) ou Windows 8 Pro (64-bit)
Hardware
6.5 GB de espaço em disco, 4 GB de RAM e CPU 64-bit
Emulador do Windows Phone 8
Windows 8 Pro ou superior
Processador que suporta Second Level Address
Translation (SLAT)
30. Documentação
Dev Center – Windows Phone
dev.windowsphone.com
Tutoriais
Getting started
Developing apps
Testing apps
Monetizing apps
Concepts and architecture
31. Loja virtual
Windows Phone Store (antigo Marketplace)
Plataforma de distribuição digital de apps da Microsoft
Distribui apps para Windows Phone (smartphones)
Construção de uma app para a Windows Phone Store
Preparar o
ambiente e o
time de
desenvolvimento Desenvolver a app
Criar um projeto Publicar a app na
Windows Phone Store
32. Publicação na loja virtual
Processo de registro de uma conta Dev Center
Submissão da app para a Windows Phone
Store para o processo de aprovação
Após a aprovação, definição da data de
aparecimento da app na Windows Phone Store
Gerenciamento antes, durante e depois da
publicação pelo Windows Phone Dev Center
33. Registro de uma conta Dev Center
Criação ou uso de uma conta da Microsoft
Antigo Windows Live ID
Assinatura anual Dev Center para estar apto a
distribuir apps pela Windows Phone Store
Taxa de assinatura anual de $99
Direito de submissão de apps da assinatura anual
Número ilimitado de apps pagas
Até 100 apps gratuitas
35. Sistema operacional desktop e
móvel
Windows 8
Em desenvolvimento: Windows 9
Sistema operacional baseado no kernel do NT
Núcleo dos sistemas Windows 7, Windows Server
2008 R2, Windows 8 e Windows Server 2012
O sistema foi liberado em 01/08/2012 (RTM)
Disponível para o público em geral em 26/10/2012
36. Windows imaginado de novo
Uma nova interface gráfica projetada para
toque além do suporte a mouse e teclado
38. Linguagens de programação
Windows Store Apps Desktop Apps
XAML HTML / CSS
View
C C#
Controller
Model
JavaScript HTML C C#
C++ VB JavaScript C++ VB
WinRT APIs
System Services
Communication Devices &
DirectX & Media
& Data Printing
Application Model Internet .NET
Explorer
Win32 SL
Windows Kernel Services
Kernel
39. APIs de Windows Store apps
User Interface
HTML5/CSS XAML DirectX Controls Data Binding
SVG Tiles Input Accessibility Printing
Devices Communications & Data
Geolocation Portable Sensors NFC Contracts Local & Cloud Storage Web
Notifications Streams
Media
Visual Background
Playback Capture PlayTo XML Networking SMS
Effects Transfer
Fundamentals
Application Services Threading/Timers Memory Management Authentication Cryptography Globalization
40. Ferramentas de desenvolvimento
Visual Studio Express 2012 for Windows 8
Gratuito, mas exige registro para obter uma chave
É necessário ter ou criar uma conta da Microsoft
Sem uma chave de ativação, o produto funciona 30 dias
Vem junto com o Blend for Visual Studio 2012
Edição comercial do Visual Studio 2012
Ultimate, Premium ou Professional
VS 2012 Update 1 liberado em 26/11/2012
41. Documentação
Dev Center – Windows Store apps
msdn.microsoft.com/windows/apps
Tutoriais
Download the tools and SDK
Get your developer account now
Hands-on labs for Windows 8
Windows 8 labs for JavaScript and HTML
Windows 8 labs for C# and XAML
42. Loja virtual
Windows Store
Plataforma de distribuição digital de apps da Microsoft
Distribui um novo tipo de app: Windows Store apps
Construção de uma app para a Windows Store
Preparar o ambiente
e o time de
desenvolvimento Desenvolver a app
Criar um projeto Publicar a app na
Windows Store
44. Publicação na loja virtual
Abertura de uma conta de desenvolvedor da
Windows Store
Teste da app com o Windows App Certification
Kit e submissão da app para a Windows Store
Após a aprovação, definição da data de
aparecimento da app na Windows Store
Gerenciamento antes, durante e depois da
publicação pelo Windows Store dashboard
45. Licença de desenvolvedor
Requisito
obrigatório para desenvolver
Windows Store apps
É necessário ter ou criar uma conta da Microsoft
Termos de uso da licença de desenvolvedor
Permissão somente para desenvolver, testar e
avaliar Windows Store apps
Dados são enviados para a Microsoft sobre o uso
da sua licença de desenvolvedor
A licença precisa ser renovada a cada 90 dias
47. Sistema operacional móvel
Firefox OS 1.0 (em desenvolvimento)
Previsão de lançamento: 1o semestre de 2013
Sistema operacional open source
Projeto de codinome Boot to Gecko (B2G)
Usa o kernel do Linux
Engine de execução baseado no Gecko
Executa apps desenvolvidas em HTML5 e JavaScript
48. Sistema operacional móvel
O Firefox OS produzirá uma implementação dos novos padrões Web
Usuários e desenvolvedores não ficam presos a uma única plataforma
49. Sistema operacional móvel
• A interface com o usuário do Firefox OS
Gaia • Camada responsável pelas telas do sistema
• Ambiente de execução de apps do Firefox OS
Gecko • Camada que suporta HTML, CSS e JavaScript
• Sistema operacional de baixo nível do Firefox OS
Gonk • Camada que consiste do kernel do Linux
50. Linguagens de programação
Linguagem de programação JavaScript
HTML5 para criação da interface
CSS3 para formatação da interface
Outras APIs abertas de aplicações Web
51. Ferramentas de desenvolvimento
Qualquer ferramenta de desenvolvimento com
suporte a HTML5, CSS3 e JavaScript
Visual Studio 2012 Ultimate, Premium ou Professional
Visual Studio Express 2012 for Web
Eclipse Classic 4.2.1 (Juno Sr1)
JavaScript Development Tools (JSDT)
Netbeans 7.2.1
Developing with HTML, JavaScript, and CSS
52. Documentação
Mozilla Developer Network (MDN) – Firefox OS
developer.mozilla.org/docs/Mozilla/Firefox_OS
Tutoriais
Introduction to Firefox OS
Writing apps for Firefox OS
Building and installing Firefox OS
54. application/x-web-app-manifest+json
Publicação na loja virtual
Adição de um app manifest para a web app
(arquivo JSON que descreve a app)
Hospedagem do manifesto no mesmo
domínio da web app
Content-Type:
application/x-web-app-manifest+json
Mais informações:
developer.mozilla.org/docs/Apps/Manifest
56. Recursos oficiais na Web
iOS Dev Center
developer.apple.com/devcenter/ios
Android Developers
developer.android.com
Windows Phone Dev Center
dev.windowsphone.com
Firefox OS – Mozilla Developer Network
developer.mozilla.org/docs/Mozilla/Firefox_OS