Palestra Desenvolvimento de Apps Móveis: Iniciando no iOS e Android

Preview:

DESCRIPTION

Palestra proferida na FATENE, em 23/11/2011, na III Semana de Tecnologia, com o tema Desenvolvimento de Apps Móveis: Iniciando no iOS e no Android.Mais informações em: http://cetorres.com e http://cacira.com.br.

Citation preview

palestra

CRIAÇÃO DE APPS MÓVEISIniciando em iOS e Android

oferecimentoCarlos Eugênio TorresEng. de Computação carlos.torres@cacira.com.br facebook.com/carloseugeniotorres @cetorres

palestrante

Sobre Carlos Eugênio TorresGraduado em Ciência da Computação pela UFC, Brasil (2004);

Graduado em Engenharia Informática e de Computadores pelo IST, Portugal (2005);

MBA em Gestão de Projetos pela FGV, Brasil;

Mais de 12 anos de experiência com desenvolvimento web e móvel, inclusive internacional, na Vodafone Telecom, Portugal;

Fundador da CACIRA Tecnologia, empresa especializada em soluções móveis para iOS e Android.

AgendaTipos de Apps Móveis

Apps Móveis e Internet

Plataforma Android

Arquitetura

Instalando Ambiente

Plataforma iOS

Arquitetura

Instalando Ambiente

Frameworks Alternativas

Lojas de Apps Móveis

Projeto: Cliente de Twitter no Android

Tipos de Apps Móveis

O aplicativo móvel é o componente de software da mobilidade e o que mais a torna flexível e útil. É um dos componentes de onde partem a maioria das inovações e utilizações diferentes.

Tipos de Apps Móveis

Nativos

Web

Híbridos

Apps Móveis e InternetUmas das formas de comunicação que podem ser usadas pelas aplicações móveis é através da internet;

Utiliza meios de ligações sem fio como 3G, Edge, GPRS ou WiFi;

Solicita e envia informações a serviços web, e-mail IMAP, RSS feeds, API remotas a fim de buscar integração com variados sistemas online.

Apps Móveis e InternetTodas as plataformas disponibilizam API para comunicação com os protocolos disponíveis na internet;

Integrações mais comuns:

Redes sociais (Twitter, Facebook etc);

RSS feeds e blogs;

Mapas online;

Meteorologia;

Notícias (economia, esportes, política etc).

Plataformas Mais Usadas

Android iOS

Plataforma Android

Android

Google

Free: desenvolverUSD 25/ano: distribuir

API bastante rica e documentada

Possui App Inventor

Será a plataforma mais usada até 2012

Ambiente de desenvolvimento em

Windows, Linux e Mac

Vendas crescentes

Linguagem Java

Open source

Android Market com mais de 400 mil apps

Possui outras lojas de apps não oficiais

Plataforma AndroidLinguagem: Java, Web;

Criada pela Google para smartphones e tablets;

Muitas funcionalidades na API;

Possui loja de venda de aplicações. Desenvolvedor paga anuidade para vender na loja;

Pequena curva de aprendizado para quem já conhece Java;

IDE: Eclipse;

SDK: http://developer.android.com/sdk/index.html

Plataforma AndroidPrincipais funcionalidades:

Framework de desenvolvimento de aplicações;

Nova máquina virtual Dalvik;

Navegador web integrado Webkit;

Biblioteca gráfica para dispositivos móveis;

SQLite;

Suporte multimídia;

Telefonia GSM;

Bluetooth, EDGE, 3G e WiFi;

Câmeras, acelerômetro e GPS;

Ambiente de desenvolvimento com plugin no Eclipse.

Android

Plataforma AndroidComo tornar-se um desenvolvedor

Windows XP+, Linux ou Mac OS X;

Inscrever-se como desenvolvedor Android

http://developer.android.com/index.html

Java SDK 5 ou 6

Eclipse 3.2+

Plugin JDT (desenvolvimento Java)

Plugin ADT (desenvolvimento Android)

Android SDK

Configurar Android SDK no Eclipse

Testar instalação com aplicativo padrão no simulador.

Android

Plataforma Android

Android

Criar novo projeto no Eclipse

Plataforma Android

AndroidTela com novo projeto

Principais pastas:src gen Android 2.xassets res

Plataforma Android

AndroidArquitetura

Material de aprendizado

Documentação da Google (tutoriais, vídeos, referência da linguagem Java e da API do SDK)

http://developer.android.com

Tutoriais na internet

Livros impressos e eletrônicos

Plataforma Android

Android

Plataforma iOS

iOS

Apple

Free: desenvolverUSD 99/ano: distribuir

API bastante rica e documentada

Muitas frameworks de terceiros

Plataforma madurae robusta com grande

suporte da comunidade

Ambiente de desenvolvimento

apenas em Mac OS X

Comercialmente à frente das outras

Linguagem Objective-C

Modelo comercial atraente

App Store com maisde 500 mil apps

Maior canal demídia móvel

Plataforma iOSLinguagem: Objective-C, Web;

Exclusivo para iPhone, iPod Touch e iPad;

Muitas funcionalidades na API, mas a aplicação fica presa numa “sandbox” quando instalada;

Possui loja de venda de aplicações. Desenvolvedor paga anuidade para vender na loja;

Grande curva de aprendizado na linguagem Objective-C, por ser pouco difundida;

IDE: Xcode (apenas Mac OS X);

SDK: http://developer.apple.com/devcenter/ios/index.action

iOS

Plataforma iOSPrincipais funcionalidades:

Framework de desenvolvimento de aplicações;

Navegador web integrado Webkit;

Biblioteca gráfica para dispositivos móveis;

SQLite, Core Data;

Suporte multimídia;

Telefonia GSM e CDMA;

Bluetooth, EDGE, 3G e WiFi;

Câmeras, acelerômetro e GPS;

Ambiente de desenvolvimento X-Code, mesmo para aplicações Mac OS X.

iOS

Plataforma iOSComo tornar-se um desenvolvedor

Mac OS X (atualizado com última versão);

Criar Apple ID e inscrever-se como desenvolvedor iOS

http://developer.apple.com/programs/register/

Download do XCode + iOS SDK

http://developer.apple.com/devcenter/ios/index.action

Instalar pacote XCode + iOS SDK

Testar instalação com aplicativo padrão no simulador.

iOS

Plataforma iOS

iOS

Criar novo projeto no XCode

Plataforma iOS

iOSTela com novo projeto

Principais pastas:ClassesOther sourcesResourcesFrameworksProducts

Plataforma iOS

Arquitetura

iOS

Plataforma iOS

iOS

Material de aprendizado

Documentação da Apple (tutoriais, vídeos, referência da linguagem Objective-C e da API do SDK)

http://developer.apple.com/devcenter/ios/index.action

Tutoriais na internet

Livros impressos e eletrônicos

Frameworks AlternativasFrameworks alternativas

Existem frameworks de terceiros para desenvolvimento em iOS e Android sem necessidade de ter conhecimento das linguagens e SDKs nativos.

Essas frameworks tem o objetivo de facilitar a entrada de novos desenvolvedores no mundo dos Apps móveis com uma curva de aprendizado menor, usando linguagens já conhecidas ou mais fáceis como Javascript ou Lua.

Geralmente interpretam código escrito numa linguagem diferente da nativa e geram o código nativo para ser compilado.

Em geral são multiplataforma, gerando código para iOS e Android, dentre outras;

Plataformas mais usadasFrameworks alternativas - Exemplos

Titanium Appcelerator

http://www.appcelerator.com

Usa Javascript, tem API própria e gera código em Objective-C

Gera aplicativos nativos para iPhone, iPad e Android.

Phonegap

http://www.phonegap.com

Deixa o desenvolvedor criar aplicativos usando HTML, CSS e Javascript, encapsulando uma web app num navegador interno.

Não cria aplicativos nativos, mas consegue ser usado para aplicativos em iPhone, iPad e Android).

Plataformas mais usadasFrameworks alternativas - Exemplos

Corona

http://www.anscamobile.com/corona

Usa Lua, tem API própria e gera aplicativos nativos

Usado para criação de jogos em 2D

Cria aplicativos para iPhone, iPad e Android.

Unity 3D

http://unity3d.com

Usa C#, tem API e IDE próprias

Usado para criação de jogos em 3D

Cria aplicativos para iPhone, iPad e Android.

Lojas de Apps Móveis

Apple App Store Google Android Market

Lojas de Apps MóveisA primeira loja de aplicativos móveis foi a App Store da Apple. Criada em 2008 como uma extensão a já existente iTunes Store, que vendia música e filmes, passou a vender aplicativos inicialmente para iPhone, depois para iPad.

Após a App Store da Apple, surgiram a Windows Marketplace da Microsoft e a Android Market da Google. Ambas seguindo os mesmos moldes.

Lojas de Apps MóveisCaracterísticas principais de uma app store:

Um lugar centralizado para todas as apps organizadas por categorias, com busca e ranking;

Contas de usuário com cartão de crédito pré-cadastrado para facilitar compras;

Revisão e testes das apps antes de serem disponibilizadas na loja;

Download de apps diretamente do dispositivo móvel, sem necessidade de um desktop intermediar a transação;

Comentários e notas dos usuários nas apps;

Painel online para o desenvolvedor para gerenciar suas apps e ganhos.

Lojas de Apps MóveisNúmeros

Apple App Store

500.000+ apps disponíveis para iPhone

140.000+ apps disponíveis para iPad

18 bilhões de downloads desde julho de 2008

Google Android Market

300.000+ apps disponíveis

10 bilhões de downloads desde agosto de 2008

ProjetoCliente de Twitter para Android

ProjetoCliente de Twitter para Android

Principais conceitos abordados

Chamadas HTTP (GET)

Parse de JSON (REST API)

Montagem de interface (Widgets, Styles, Menus, Drawables...)

Listagens (ListView, ListAdapter)

Tarefas assíncronas (AsyncTask)

Preferências de usuário (SharedPreferences)

Android Manifest

ProjetoCliente de Twitter para Android

Mãos à obra!

+

Endereço: Av. Washington Soares, 1400, sala 909, Fortaleza, CE, CEP 60811-341Website: http://cacira.com.br - E-mail: contato@cacira.com.br - Tel/Fax: (85) 3273-5701

Obrigado!Perguntas?

@CACIRAfacebook.com/cacira