Aqui ficam os slides e o código da nossa apresentação, Renato Ribeiro (Genehome) e José Fernandes (Bloomidea), no DrupalCamp Porto 2012.
Se precisar dos nossos serviços de desenvolvimento de apps mobile estamos disponíveis através da Bloomidea.
> Download do PDF "Desenvolvimento de aplicações mobile (iOS e Android) com Drupal e Titanium"
> Download do código pronto a importar para o Titanium
Outline dos slides
A importância do Mobile
-
87% das pessoas no mundo são utilizadores de Mobile
-
Foram vendidos 488,5 milhões de Smart Phones em 2011
-
Foram desenvolvidas mais de 300,000 Apps nos últimos 3 anos
-
10,9 mil milhões de downloads...
-
O Facebook reportou 425 milhões de utilizadores ativos via Mobile
-
200 milhões de reproduções de vídeo no Youtube por dia
A importância do Mobile
-
Só no último trimestre:
- 31,5 Milhões de iPhones vendidos
- 11,8 milhões de iPad vendidos
- 850,000 sistemas Android ativados por dia!
- 40% de todo o tráfego da internet vai ser mobile em 1013!
Quanto custa uma App
- “Most apps take at least six months of full-time work and cost between $20,000 and $150,000 to develop” Fonte: Forrester Research
Workflow Tradicional
WOOOOPS!
10 razões para usar o Drupal
-
Comunidade apaixonada e dedicada
-
Desenvolvimento rápido
-
Desenvolvimento flexível
-
Altamente extensível
-
Escalabilidade garantida
-
Construído para ser social
-
Aberto para a sua marca
-
Sem custos de aquisição ou de licenciamento
-
Segue os standards
-
Segurança máxima
Porquê usar o Drupal no Mobile?
-
Gere todos os conteúdos, dados e utilizadores
-
O Drupal funciona como a Cloud, armazenando todos os dados da aplicação
-
Temos o Views + Services Views
Porquê usar o Titanium?
- Grátis!
- Compilação nativa
- Open Source
- Muito rápido (desenvolvimento e performance)
- API extensa e estruturada
- Cloud services
- Development tools
Porquê usar o Titanium?
- Escrevemos código uma vez
- Fazemos o deployment para as múltiplas plataformas
- Não precisamos de utilizar múltiplas linguagens (a maior parte do tempo...)
- Muito bom! Todos os programadores conhecem Javascript/HTML(5)/CSS!
- Nem todos sabem Java...
- Quase ninguém sabe Objective-C...
- Só temos que resolver problemas num único projeto
Workflow (Titanium)
Porquê usar Titanium + Drupal?
-
Ambas têm como característica serem “fast deployment”
-
Ambas têm comunidades fortes e ativas
-
Ti.Network + Drupal Services
-
Encontro de Titãs!!
- O maior na Web (Drupal)
- Os maiores no mobile (iOS + Android)
Receita
Services
Preparar o Drupal
Instalar/ativar os módulos:
- Services 3.x
- Ativar o REST server
- Requer a lib spyc.php
- Views 3.x
- Services Views
- Devel
Preparar o Titanium
- Instalar a Cocoa Touch (Mac, instalar o Xcode é o mais simples...)
- Instalar a Android SDK
- Criar conta na Appcelerator (www.appcelerator.com)
- Descarregar e instalar o Titanium
- Definir a localização da Android SDK no Titanium
- Em Windows, vai fazer falta:
- Instalar JAVA 6
- Adicionar JAVA_HOME nas variáveis de ambiente
- Adicionar %JAVA_HOME% e %JAVA_HOME%\bin na PATH
Como usar
-
Titanium API
- UI
- Network
- JSON
- Location APIs
- Rich Media APIs
- ...
Windows and Views
Namespaces
- Titanium.UI: componentes gráficos
- Titanium.Platform: dados da plataforma (p.ex. Sistema Operativo)
- Titanium.Database: dados persistentes da aplicação (Data Base)
- Titanium.Properties: dados persistentes da aplicação (não Data Base)
- Titanium.Gesture: gestão de gestos e orientações (“acelerómetro”)
- Titanium.Geolocation: GPS!
- Titanium.Map: mapas
- Titanium.Network: WEB!
- Titanium.Cloud: cloud services
- Titanium.Android: específico do Android
- Titanium.UI.iOS: específico do iOS
- ...
Factory Methods
Método
- Ti.UI.createView({ ... })
- Ti.UI.createTextField({ ... })
- Ti.UI.createButton({ ... })
- Ti.UI.createTableView({ ... })
- Ti.UI.createHTTPClient({ ... })
- ...
Objecto
- Ti.UI.View
- Ti.UI.TextField
- Ti.UI.Button
- Ti.UI.TableView
- Ti.Network.HTTPClient
- ...
Criar uma App no Titanium
- Criar o projeto
- Escolher o ID da App
-
ATENÇÃO! Em Android, é importante que coincida com o nome da App e com o domínio, ou seja:
-
Nome: teste
-
Domínio: genehome.pt
-
ID: pt.genehome.teste
- Escolher as plataformas suportadas e a versão Titanium SDK
- Pode ser modificado mais tarde...
Comunicação
Demo
-
Três tabs
- Login/logout
- New post
- View posts
- Comunicação baseada em eventos
- Carregamento da cache local efectuado ao levantar um evento
- Carregamento da tableview de dados quando a cache muda
Saber mais...