AGENDA RAD STUDIO XE5. Embarcadero Technologies 10/4/2013

Tamanho: px
Começar a partir da página:

Download "AGENDA RAD STUDIO XE5. Embarcadero Technologies 10/4/2013"

Transcrição

1 AGENDA Bem vinda Novo RAD Studio XE5. Programação Nativa para Android em acção Pausa Serviços de dados como fundamento das aplicações multi-dispositivo Quais são os erros mais comuns quando migramos uma aplicação para um ambiente móvel? Perguntas e respostas RAD STUDIO XE5 Luis Alfonso Rey l.alfonso@danysoft.com Embarcadero Technologies Fundada em 1990 Mais de clientes na Europa e América Especializados no mundo da programação +20 anos apostando pelo Delphi, C++Builder e na comunidade ibérica Sensíveis à situação Preço mínimo garantido Descontos em licenças e manutenção Novos tipos de formação e consultoría Valor adicional com formação, eventos, utilidades, livros, vídeos e artigos Fundada em Milhões de clientes 500+ funcionários em 29 países 5 Centros de excelência R&D Vendas a nível mundial e suporte Após a aquisição da Borland, confia na Danysoft para o mercado ibérico 4 1

2 PRODUCTOS EMBARCADERO Programação de aplicações RAD Studio C++Builder Delphi HTML5 Builder Arquitectura e modelação de dados ER/Studio Data Architect ER/Studio Portal ER/Studio Business Architect ER/Studio Software Architect Programação de bases de dados, administração e optimização de rendimento DB Power Studio DBArtisan Rapid SQL DB Optimizer DB Change Manager Bases de dados implementadas e de grupo de trabalho InterBase 3 Milhões de programadores Delphi/C Mil millhões de linhas por ano Aplicações Windows 80% menos de código requerido- 1.2 por linha de código efectivo 47.2 mil milhões de poupança em programação EVOLUÇÃO DO PANORAMA DO AMBIENTE DE CLIENTE O MUNDO MULTIDISPOSITIVO EM QUE VIVEMOS Análise da situação Windows Windows & Web W 2

3 2013: A REVOLUÇÃO DO CLIENTE A REVOLUÇÃO DO CLIENTE 1 Mil Mill. 65 Milhões +1 Mil Mill Windows Mac Móvil Panorama multidispositivo sem precedentes hoje em dia Panorama multidispositivo sem precedentes hoje em dia QUANDO É QUE AS TABLETS IRÃO ULTRAPASSAR OS NOTEBOOKS? Julho 2012 Os analistas prevêem que serão ultrapassadas em 2016 Setembro 2012 Os analistas prevêem que serão ultrapassdas em 2015 QUANDO É QUE AS TABLETS IRÃO ULTRAPASSAR OS NOTEBOOKS? Este ano. Janeiro 2013 Os analistas prevêem que serão ultrapassadas em

4 2013+ ENVIOS DE PORTÁTEIS E MÓVEIS A diversidade de clientes será cada vez maior ENVIOS GLOBAIS DOS SMARTPHONES TABLET OS, REPARTIÇÃO DE ENVIOS E MERCADO Q

5 MUDANÇA É UMA CONSTANTE EM TODOS OS MEIOS << MORE TO COME HERE >> DEMO QUAL É O SIGNIFICADO DESTAS MUDANÇAS TODAS PARA TI? Tu A Tua equipa O Teu negócio BLOQUEADO NO AMBIENTE DE TRABALHO DO PC? 5

6 ESTAS MUDANÇAS E TU As tuas opções de carreira ou São ampliamente aumentadas Diminuem continuamente, assim que agarra-te com muita força ao teu trabalho A tua participação no projecto Dirige-te para os melhores projectos novos Tens a oportunidade de ser o heroí da programação de negócio Inovação em aspectos que nunca imaginaste Ou Trabalhas mais e mais em projectos antigos e herdados ESTAS MUDANÇAS E A TUA EQUIPA Todos com o mesmo critério que tu Divide-se no mesmo número de plataformas que existem Actualmente isto significa quatro grupos (Win, Android, ios, OS X) Como gestionarias isso Orçamentos 3x/4x e programadores 3x/4x Membros desmotivados irão sair à procura de melhores projectos e perspectivas ESTAS MUDANÇAS E O TEU NEGÓCIO SELECÇÕES ACTUAIS DE FERRAMENTAS Os clientes esperam que estejas sempre aí Interacção 24/7 e imediata é agora pedida no negócios de todos os tamanhos Naqueles que se GANHAN, e naqueles que não se PERDEM Custos O custo da transação e compra por impulso Retenção e lealdade do cliente Oportunidade completamente perdida se não se aproveitam os tempos do mercado Ser totalmente excluído da demografia do grande consumo Vendor Tools Apenas um dispositivo Realmente nativas Apple Google Microsoft Multidispositivo Baseadas em scripts HTML5 e JavaScript Web Tech Based Tools 6

7 PRÓS E CONTRAS DAS FERRAMENTAS MULTIDISPOSITIVO FERRAMENTAS DE FABRICANTES VS FERRAMENTAS BASEADAS NA WEB APROXIMAÇÃO DAS FERRAMENTAS DE FABRICANTES À PROGRAMAÇÃO MULTIDISPOSITIVO Prós Interface Nativa Rendimento Nativo Seguras Apenas um dispositivo Multidispositivo $ $ $ $ Contras Múltiplas bases de código Equipamentos múltiplos Maiores custos de programação Realmente nativas Apple Google Microsoft Baseadas em scripts HTML5 e JavaScript Objective-C ios SDK Java C# or C++ Android SDK.NET or MFC Múltiplas linguagens, múltiplas bases de código C++ or Obj-C OSX SDK 2 PRÓS E CONTRAS RELATIVAMENTE AO MULTIDISPOSITIVO FERRAMENTAS BASEADAS EM WEB Prós Uma equipa Apenas um dispositivo Realmente nativas Apple Google Microsoft Multidispositivo Baseadas em scripts HTML5 e JavaScript Menor custo de programação Mais rápido no mercado Contras Rendimento script Interface não nativo Inseguras SOLUÇÕES MÓVEIS DE CÓDIGO VIRTUAL Platform SDK $ $ $ JavaScript or C# Platform SDK Platform SDK Uma linguagem, múltiples bases de código 2 7

8 MULTIDISPOSITIVO REALMENTE NATIVO Un solo dispositivo Realmente nativas Apple Google Microsoft Multidispositivo Realmente Nativo Embarcadero Multidispositivo Basadas en script HTML5 y JavaScript MULTIDISPOSITIVO REALMENTE NATIVO Prós Interface Nativa Rendimento Nativo Seguras Apenas um dispositivo Realmente nativas Apple Google Microsoft Multidispositivo Realmente Nativo Embarcadero Multidispositivo Baseadas em scripts HTML5 e JavaScript Prós Uma equipa Menor custo de programação Mais rápido no mercado DEMO ERROS DOS PROGRAMADORES AO MUDAREM-SE PARA DISPOSITIVOS MÓVEIS 8

9 ERRO #1 Tentar encaixar uma experiência de computador num dispositivo móvel Os dispositivos móveis não têm as facilidades do PC incluindo Ecrã grande para uma fácil visualização Uma caché robusta em memória para um processamento rápido de dados Teclado externo para ser fácil teclar Os programadores cosntroiem programas complexos nos dispositivos móveis: Com ecrãs confusos Drenando os recursos do dispositivo Impactam a experiência de usuário Como evitá-lo Identificar as acções mais valiosas e que são mais apropriadas de usar na app Desenhar apenas para esses requisitos Assegurar-se de que os usuários as podem completar com um mínimo de taps Establecer um máximo de tolerância nos pasos que se têm que tomar para completar Aprender a fórmula das apps mais comuns e ajustar-se a elas até que sejamos realmente especialistas ERRO #1: COMO EVITÁ-LO COM O RAD STUDIO Templates de App para começar Distribuições mais comuns para os dispositivos móviles (telefones e tablets) Templates com detalhes de mestre Componentes fáceis de usar, para uma programação consistente e rápida Suporte de design para diferentes tipos de dispositivos, form factors, resoluções e orientações. ERRO #2 Não converter a experiência de usuário na prioridade Com centenas de milhar de apps, os usuários têm muitas opções Se a tua app não é fácil de usar, as pessoas irão evitá-la Os usuários não voltam depois de uma experiência inicial pobre Recorda nem todos os dispositivos são iguais! Como evitá-lo Centra-te numa boa experiência de usuário e design Mostra aos usuários chave, protótipos da app nos dispositivos actuais para obter um feedback regular Sê consciente das zonas tácteis Entende como o teclado afecta o teu design ERRO #2: COMO EVITAR-LO COM O RAD STUDIO Prototipagem rápida de modo que tu (e o teu cliente) possam revisar-lo a cada paso Utiliza o sensor de comportamento e de dispositivos para descobrir dinâmicamente o que se encontra disponível no dispositivo 9

10 ERRO # 3 Desperdiçar recursos entre a app, o OS e o Hardware Deves poupar cada milisegundo possível e utilizar todas as capacidades relevantes oferecidas Uma plataforma de programação móvel que se abstraí dos detalhes do dispositivo apenas trabalha com a funcionalidade comum a todos eles Como evitá-lo Constroí uma aplicação realmente nativa sem que a tua aplicação esteja desenhada para um sistema operativo específico Uma aplicação nativa está optimizada para um hardware em particular Evita os wrappers como os JVMs que se abstraem do controlo das capacidades em detalhe e programa o dispositivo quando seja possível ERRO #3: COMO EVITAR-LO COM O RAD STUDIO Constroí aplicações realmente nativas Truques e pistas de rendimento paginação? Maior facilidade para evitar os erros de design da App ERRO #4 Construir apps diferentes para plataformas diferentes Construir diferentes apps com códigos separados pode produzir problemas diferentes Muitos dos teus usuários têm múltiplos dispositivos A app comporta-se de modo diferente para cada dispositivo As características novas e a correcção de erros em momentos diferentes Os resultados em cenários sem sincronização confusão dos usuários Múltiplas bases de código produzem mais programação e maior sobrecarga de trabalho ERRO #4: COMO EVITÁ-LO COM O RAD STUDIO Uma linguagem Uma base de código Uma plataforma de aplicações Como evitá-lo Apoia-te em apenas uma base de código que é compilada e optimizada para diferentes plataformas e dispositivos Criarás uma experiência de usuário mais consistente nos dispositivos suportados Realizar poupanças significativas com menos recursos para a programação, melhoras e solução de erros em apenas um base de código 10

11 ERRO # 5 Não redobrar esforços na segurança Confiar na segurança do dispositivo ou da rede como protecção da app pode ser periogoso A app deve tomar medidas activas para proteger os dados residentes no dispositivo A app deve tomar medidas activas para proteger os dados transferidos e as chamadas internas da app Java e JavaScript são objetivos notórios dos hackers Como evitá-lo Para as interacções chave, codifica especificamente para o dispositivo Incluí segurança própria para reduzir os risgos de ataques de terceiros Encripta os dados sensíveis armazenados no dispositivo ERRO #5: COMO EVITÁ-LO COM O RAD STUDIO Mostrar vistas do CPU para provar as aplicações Eventos de encriptação com clientes móveis de DataSnap? RAD STUDIO XE5 $ C++ or Delphi* FM Framework Future TOMAR CONTROLO DA PROGRAMAÇÃO NATIVA APENAS COM UMA BASE DE CÓDIGO NO AMBIENTE MULTI DISPOSITIVO Uma equipa, uma base de código 11

12 DELPHI FIREMONKEY NO ANDROID E IOS Estilos Nativos e personalizados Aplicações realmente nativas Modelo de programação e componentes Delphi PROGRAMAÇÃO VISUAL FRAMEWORK BASEADO EM COMPONENTES LINGUAGEM COM CARACTERÍSTICAS MODERNAS Propiedade-Evento-Método Conta de referências automática Interfaces Atributos Genéricos/Colecções Métodos anónimos (funções lambda/ closures ) RTTI rico (introspecção/reflexão) 12

13 ARQUITECTURA COMUM DE COMPILAÇÃO ARQUITECTURA BASEADA EM COMPONENTES FM Linguagem C/C++ * Delphi Open IR Intel ARM Framework 3D API *) C++ support for ARM scheduled for later 2013 Platforma Ambiente de trabalho Dispositivos móveis 49 COMPILAÇÃO CRUZADA E PACOTES WIZARD DE APLICAÇÃO MÓVEL INCORPORADO Cocoa SDK.app in IPA App Sources FM Framework Native Developer Kit.so in APK Começa com uma aplicação FireMonkey vazia HD ou 3D Elige entre templates Tabbed Application, Header/Footer e Master/Detail Templates 13

14 OPÇÕES DE IMPLEMENTAÇÃO NO IDE PARA ANDROID Implementa o Android apps no Emulador Qualquer dispositivo AVD Implementa as apps Android no dispositivo Debug depura/implementa no dispositivo Ad-hoc Distribuí o APK para qualquer lugar App Store Implementa uma app para uma loja como Play ou Amazon OPÇÕES DE IMPLEMENTAÇÃO NO IDE PARA IOS Implementa apps ios no Simulator iphone (Retina/no-Retina) iphone 5 (Retina/no-Retina) ipad (Retina/no-Retina) Implementa apps ios no dispositivo Debug (depura/implementa no dispositivo) Ad-hoc (distribui dentro da tua própia empresa) App Store (implementa na App Store) DEFINIR CONFIGURAÇÕES DA APLICAÇÃO ESTILOS NATIVOS Define o suporte do dispositivo em Project->Options Selecciona os ícons para as app stores (múltiplas resoluções) em Project-> Options 14

15 ESTILOS ANDROID CONTROLOS NATIVOS Holo Light (Estilo Android por defeito) Holo Dark (Estilo Android personalizado) Ambos incluiem suporte incorporado para todas as resoluciones suportadas no Android (1x 3x) Mensagens de alerta Selectores personalizados Selector de data Marcador telefónico Teclados ios Edição de texto: TMemo y TEdit Cortar/Copiar/Colar/Zoom 57 GESTÃO DO LAYOUT Alignment Anchors Form Family para o carregamento correcta do formulário dependendo do dispositivo quando programamos para telefones vs tablets ou na horizontal ou vertical GESTOS Swipe Tap Pinch & Zoom Tap & Hold Double-Tap 15

16 ACÇÕES DA LIVRARIA DE MEIOS Aceder à app. Câmara Aceder à livraria de fotos Compartir conteúdo p.ej. fotos via Mensagem (SMS), Mail, Facebook, Twitter etc. Transição de Slides para separadores COMPONENTES SENSOR Sensor de localização (GPS) Sensor de movimento (Acelerómetro) Sensor de orientação (Giroscópio) SENSOR DE LOCALIZAÇÃO Mais frequentemente usado em aplicações que necessitam conhecer a localização Obtém a localização do teu dispositivo usando a latitude e a longitude Utiliza geo codificação inversa para conversão de datos em direcções legíveis Funciona em Win/Mac/iOS/Android Podem ser usadas dentro do componente WebBrowser SENSOR DE MOVIMENTO (ACELERÓMETRO) Usado para detectar o movimiento na tua aplicação segundo o movimento do teu dipositivo Obtém os valores de aceleração e aceleração angular (X, Y, Z) Determina a velocidade Determina o movimento 16

17 SENSOR DE ORIENTAÇÃO (GIRÓSCOPO/BÚSSOLA) Obtém os valores de inclinação Obtém os valores de distância X, Y, Z SERVIÇOS MÓVEIS Centro de notificação... E mais CENTRO DE NOTIFICAÇÃO Novo componente no XE5 Suporta vários tipos de notificações em ios, Android e Mac OS X CÂMARA Fornece acesso aos sensores de câmara: Activar o flash Obtém a posição do sensor, etc. Acede à traseira e frontal Tira fotos 17

18 TIMEEDIT Novo componente FireMonkey no XE5 Suportado no Windows, Mac, ios e Android Selector nativo em ios e Android CARACTERÍSTICAS DO TLISTVIEW NO XE5 Swipe para apagar Vários modos de visualização e edição Vários estilos de acessórios Animações em modo de edição Filtro de procura LiveBindings SUPORTE DE IMAGEM MULTIRESOLUÇÃO TImage foi actualizado A propriedade MultiResBitmap foi adicionada As opções 1x e 2x são mostradas por defeito Os usuários podem adicionar fácilmente as suas, ej. 1.5x, 3x etc. MAIS COMPONENTES MÓVEIS TWebBrowser para navegação web implementada TMagnifier usado com a edição de texto, embora pode ser também ser utilizado com outros componentes TCamera acesso à câmara frontal/traseira, flash, etc. TListBox para listas curtas sem scroll ou muito pouco e estilo com cabeçalho/rodapé/grupo/procura TListView para listas compridas e com scroll ligadas a dados TSwitch para seleções on/off TProgressBar para um controlo de visualização flexível TSpeedButton com variedade de icons e mais! 18

19 PRONTO PARA A EMPRESA DataSnap MEAP N-tier Enterprise Backend Your App FM FireDAC DataSnap Server FireDAC Methods C++ or Delphi Oracle MSSQL DB2 Sybase & more... InterBase or SQLLite Device 73 Client Devices BAAS MULTICAMADA COM O DATASNAP Acedendo remotamente a serviços vía REST/JSON sobre SOAP, em dispositivos própios ou na nuvem Conectar os dados da empresa ao dispositivo móvel FIREDAC Componentes universais de acesso a dados para programação sobre qualquer base de dados para Delphi e C++Builder Alto-rendimento, fáceis de usar, conectividade empresarial Acesso a dados universal Mas com muitas características específicas Delphi for mobile app DataSnap Server Database 19

20 BASES DE DADOS LOCAIS VISUAL LIVEBINDINGS SQLite IBLite InterBase ToGo Gratís Gratís Comercial Algumas funções Algumas funções Todas as funções Sem segurança Sem segurança Encriptação segura Armazenagem simples SQL-92 RDBMS completa SQL-92 RDBMS completa Leitura/escrita simples Multi leitura/escrita rápida Multi leitura/escrita rápida Liga controlos a dados Prototipagem rápida BAAS? Backend como serviço Pilha de clientes REST Abstracção BAAS Implementação Kinvey Implementação Parse eg.. Notificações Push PILHA DE CLIENTE REST XE5 Componentes REST Para programar aplicações de cliente REST RESTDemos.exe Utiliza os componentes REST para aceder a alguns fornecedores diferentes RESTDebugger.exe Utiliza os componentes REST para executar petições ad hoc 20

21 REST CARACTERÍSTICAS DO COMPONENTE Cliente HTTP compreensivo Execução Assíncrona Conexão Proxy HTTPS Autenticação Basic, OAuth1, OAuth2 JSON Parsing, Formatting JSON to TObject, TObject to JSON Prototipagem Rápida LiveBindings Execução de tempo de Design RESUMO RESUMO Multidispositivo significa que não temos que suportar vários projectos para desenvolver aplicações nativas em vários dispositivos (Android, ios, Windows e Mac). Apps Realmente nativas permitem criar aplicações livres de scripts e optimizadas para a plataforma subjacente cria aplicações mais ricas e rápidas que os usuários gostam. O caminho mais rápido para criar apps para ios e Android com programação visual com um framework visual completo. Segurança herdada está incorporada ao codificar aplicações que se ejecutam directamente no dispositivo sem apontar runtimes virtuais. Plataforma multidispositivo empresarial que significa conectividade a bases de dados empresariais, tecnologia middleware nas nossas instalações e conexões para serviços BAAS incluídos no producto. RESUMO: O MUNDO MULTIDISPOSITIVO O mundo multidispositivo em que vivemos uma análise da situação Bloqueado ao ambiente de trabalho do PC? Os cinco erros que comentem os programadores quando passam a dispositivos móveis e como evitá-los Tomar controlo da programação nativa apenas com código base no ambiente multi dispositivo 21

22 APPS PARA CADA DISPOSITIVO VALOR ADICIONAL PARA OS ASSISTENTES 10% desconto por assistir ao evento MUITO OBRIGADO Mariana Araújo