Pessoal

O software da vida

codigo_genetico

A TV Aljazeera traz dessa vez uma incrível entrevista com Craig Venter, eu o chamo de hacker do código humano. Eu fico imaginando daqui a 20 anos como nós humanos seremos com tanto avanço tecnológico. Antes demorou 3 anos para decifrar e bilhões de dolares; Hoje você pode mapear seu genoma por US$1.000 ~ (R$2.100,00 reais) e em apenas 1 dia, ter todo seu DNA sequenciado, ou seja seu próprio código fonte. Ou talvez apenas uma fração dele por até 10x menos que isso.

Assista essa entrevista e mude a maneira de pensar sobre religião, política e doenças. A singularidade é só uma questão de tempo.

Apache Flex/ Flex

Apache Flex deixa de ser incubado e passa a ser oficial

apache_flex_logo

apache_flex_logo

 

É oficial, e uma boa maneira de começar 2013 com o projeto Apache Flex sendo um projeto oficial da fundação, devido a diversas contribuições e a frenética troca de mensagens na lista o projeto continua firme e forte.

Depois de votarem no final de Novembro o projeto entrou em um novo estágio e passa agora a ficar na mesma fileira de importância como o Apache Tomcat ou Apache Ant.

Trago mais notícias para vocês no próximo ano.

 

ios/ iPad/ Iphone/ Mobile/ Negócios/ Notícias/ Phonegap

As plataformas preferidas do desenvolvedor Mobile esse ano e no próximo

mobile_war

Dizem que uma foto vale mais do que mil palavras, e uma foto mostrando um gráfico vale mais do que mil argumentos sem cabimentos.

Eu gosto de acreditar nesses fatos já que está ai com o tempo provando que é o que é.

grafico_mobile_2013

 

 

O gráfico acima, pertence a empresa AppCelerator, que faz uma pesquisa a cada quatro meses para medir a confiabilidade do desenvolvedor ao mercado e predicar onde o desenvolvedor está atento.

iOS e Android continuam sendo os mercados onde desenvolvedores utilizam suas habilidades para ganhar dinheiro. E um fato bem importante é que nesse relatório, o Google Nexus que é o Tablet do Google ganhou bastante na disparada para competir com o Tablet da Apple.

A Blackberry está cambaleando com seus 9% de preferência, perdendo para o estreante Windows Phone, que em 2013 será alvo de grande especulação na competição.

Veja na íntegra aqui o relatório.

Phonegap

Arquitetura de uma aplicação em Apache Cordova “Phonegap” para Multiplos projetos Mobile

cordova_logo

Criar uma App móvel com tecnologia Web parece tirar leite de pedra quando se tem disponível um SDK inteiro para você explorar. E eu concordo com você quando pensa nisso. Já que existe aquela grande batalha entre “O que devo usar App Web ou App Nativo?”. Não tenha dúvida que quem lhe escreve também tem esse tipo de dúvida, afinal assim como você eu sou desenvolvedor. E é gostoso compartilhar aquilo que você desbrava, especialmente em português; Em fim, é uma gama de dúvidas e arrodeios que você faz para chegar a uma solução final e entregar o produto para seu cliente.

Esse é mais um post com uma abrangência geral do que um bem específico, já que isso é um divisor de opiniões, eu preferir expor as minhas escolhas e de uma maneira geral ver como eu encaro isso.

Para esclarecer melhor algumas questões que eu tive e provavelmente você terá, faça um check-list do que é importante na hora de partir para as discussões móveis dentro de sua empresa ou dentro de si mesmo, eis algumas de suas perguntas.

– Quero expor minha App que extende um serviço Web.
– Quero criar uma App que use serviços Web e seja disponível para todas as plataformas populares “ios e Android”.
– Minha empresa precisa criar uma App especialmente para tomadores de decisão.
– Minha App precisa comunica-se com um dispositivo feito pela minha empresa
– Preciso criar um Jogo em 3D que não consuma tanto a bateria do aparelho.
– Quero criar uma App responsiva que funcione para N telas e N resoluções “Ninja Style”.
– Etc.

Dentre várias outras Apps, a sua não é diferente da Maioria, o que importa para quem usa sua App é a qualidade final do produto, se ela atinge o objetivo principal e se a UX é bacana.

É uma área bem ampla que gera horas e horas de discussões, o melhor a fazer nesses casos é usar o bom senso e uma rápida pesquisa na internet para ver o que é tendência e assim tirar melhor proveito do que já foi discutido.

Por hora, essas são as dicas que você pode aproveitar para planejar sua estratégia móvel daqui para frente. “Vamo sí bora” ao que interessa.

Arquitetar um projeto é simplesmente organizar o que você precisa e aonde você quer chegar, simplesmente é seguir a planta de uma casa antes de você construir uma, esboçar o que você precisa para concluir o projeto.

No Apache Cordova “PhoneGap”, você precisa tomar uma decisão quanto a utilizá-lo, eu já comentei antes sobre qual a real vantagem do PhoneGap. O que parece moleza à primeira vista, pode-se levar um bom tempo para concluir.

Faça um check-list do que você precisa, digamos que eu tenho um App que precisa dos seguintes itens:

  • App para Android
  • App para iOS
  • Formulários e Relatórios em gráficos
  • Efeitos de transição de tela
  • Chamar metodos em um serviço Restful
  • Fazer persistência local
  • Guardar informações de posição geográfica

O Apache Cordova consegue atingir todas essas funções, e você sabendo programar em CSS3, HTML5 e JS você consegue com facilidade atingir esse objetivo. A produtividade pode competir diretamente com o SDK nativo, isso pode virar assunto para outro post de pos e cons, por hora ficamos com a arquitetura.

Feito a checagem do que preciso, é hora de começar a criar o projeto, as bibliotecas que preciso são “Gestos, Web Storage/SQLite, GPS, RestFul”. Biblioteca para isso é que não falta. As que eu gostei bastante foram.  HammerJS, jStorage, ZeptoJS, AngularJS.

Bibliotecas em seus devidos lugares, agora é partir para a estrutura necessária. Compartilho aqui com você a estrutura usei em um projeto recente.

 Estrutura de pastas

 Configurações da plataforma

Se você seguiu o get Started to Cordova, provavelmente você terá todas as funções do aparelho habilitadas, isso pode assustar um pouco seu usuário e isso vai levar mais tempo para ser analisado por algumas lojas se sua App precisa daquilo ou não, como no caso da Apple Store. O segredo é deixar apenas habilitado o que realmente você precisa na App.

 

Prototipar ou criar o Wireframe de sua App

Elaborar uma App, não vai só de uma boa idéia, é necessário planejar o que ela vai ter, navegação, carregamentos, efeitos, reposição. E isso demanda um workflow que só vai ser possível se você prototipar ou fazer o wireframe dela. Ferramentas boas para isso tem diversas, eu gosto muito de utilizar o Adobe Fireworks, e caso você não tenha o Fireworks, você pode usar o Moqups, Porém se em seu caso essa App, demanda muita gente e muitas reuniões, sugiro os templates que a Smashing Magazine disponibilizou.

Inspire-se

Seja em um copo de vinho, ou na música do Michel Té logo, a inspiração tem que vim, o Dribbble e o Behance é uma baita fonte de inspiração. Para aquelas dúvidas de como apresentar a informação.

Testes outras Apps e veja como elas deram com um problema em particular que você vai enfrentar na sua.

Pratique

Depois que criar a App, dê a alguém que não tem muita habilidade na tela de um celular, em especial a uma criança, eu uso minha sobrinha como cobaia sempre que possível, e os insights que ela me fornece não tem preço, especialmente quando se fala em joguinho.

Tenha em mente que sua App se não for jogo, precisa funcionar com 1 dedo e que se encaixe em um denominador comum dos dedos em 44px. Assim como as fontes, no máximo 1.5em é o suficente para que seu App saia ganhando a atenção do usuário.

 

Colabore com os bugs

Apache Cordova é um projeto Open-source e você desenvolvedor tem a obrigação moral de devolver aquilo que você descobre, se achar erro, divulgue na lista oficial, se achou uma solução para o erro comite ela. Assim como em qualquer outro projeto open-source você está tornando seu trabalho um pouco mais fácil, devido o esforço de uns, então nada mais justo do que ajudar outros também a terem menos problemas, torne o mundo um pouco melhor.

 

Até o próximo.

 

 

HTML 5/ ios/ JQuery/ JQuery Mobile/ Phonegap

Phonegap só resolve 50% do problema, o resto é contigo

cordova_logo_problem

Ok, eu já falei das vantagens e desvantagens do phonegap em comparação ao Adobe AIR, e eu acho que faltou um post mais completo sobre a maior dificuldade que se tem em criar uma solução mobile completa fora da caixa de areia do SDK nativo.

Phonegap resolve parte do problema em suportar Apps escritos em HTML5/JS/CSS, depois que você cria seu primeiro Hello World, você se pergunta, “Ok, e agora o que eu faço?”.

É ai, onde seus problemas começam, definir uma interface fluída, que funcione em diversos dispositivos é tarefa ultra complicada, já que temos dispositivos de diferentes densidades.

Resolver esses problemas sem o SDK nativo é um baita desafio, em especial quando se tem em mente que grande parte de Apps móveis, são customizáveis, já que você vai enfrentar isso, é bom se preparar, eis algumas ferramentas e frameworks para JS que ajudam a encurtar esse caminho.
Se você é do tipo que gosta de frameworks, com tudo prontinho, essa é a lista que eu sugiro para você.

Sencha Touch – O melhor entre todos

JQuery Mobile – Funciona para apps nativas também, só que não é tão bom para diferentes telas.

LungoJS – Biblioteca bem interessante e completa que imita um pouco do jQuery Mobile, mas trabalha com a idéia de componentização.

KendoUI – Igual ao JQueryMobile, poucos componentes.

Agora se você está em um nível que prefere fazer tudo do zero já que sua App demanda isso, devido seu nível de complicação e elementos gráficos, então aqui vai algumas dicas bem interessantes.

Zepto.js – Biblioteca igual ao jQuery, só que mais leve e compatível com o Phonegap, muito rápida por sinal na hora do loop para montagem de listas.

Foundation da ZURB – Eu uso os media-queries do framework Foundation em meu CSS próprio, já que eu não quero gastar tempo calculando o tamanho exato da fluidez das coisas, eles são os melhores e coloca o Twitter bootstrap no bolso nessa questão.

Abuse e reuse bastante de Media queries, aqui vai uma maneira de como eu resolvi meus problemas nessa questão.

 

Separando cada CSS com suas particularidades e aplicando o estilo quando for necessário em cada tela. Dica Javascript Desabilite o Touch Move no body do documento, ou você vai ter problemas de redimensionamento com o conteúdo sambando para um lado e para outro, caso o usuário toque e arraste na tela.

 document.addEventListener('touchmove', function(e) { e.preventDefault(); }, false);

Precisa controlar melhor os gestos que são usados em sua aplicação? Você pode usar os padrões ‘touchmove’,’touchTap’,’swipeLeft’,’swipeRight’, mas você está acostumado com a sintaxe do JQuery ou ZeptoJS, por que não continuar com isso?

O HammerJS é uma biblioteca para isso, muito útil nas dificuldades de implementar gestos em containers que possuem gestos internos já existentes.

O que o phonegap se propoe é lhe ajudar a acessar recursos nativos do aparelho, e isso ele faz com louvor. O que ele não faz é te dar de mão beijada a interface ou componentes que serão usados para criar uma app móvel. É nessa parte que você se pergunta o por que.

Então, da próxima vez que você for criar Apps móveis com tecnologia HTML, leia esse post ou indique à um amigo. Vai salvar alguns dias em seu calendário apertado de entregas.

 

AIR Mobile/ Android/ Apache Cordova/ ios/ iPad/ Iphone/ JQuery Mobile/ Phonegap/ Tablets

Apache Cordova vs Adobe AIR para dispositivos móveis

cordova_logo

É bom ter competitividade na esfera web, assim nasce projetos fantásticos que ajudam o desenvolvedor a criar soluções práticas e rápidas.
Este é o caso do Apache Cordova aka “Phonegap”, o Cordova tem surpreendido diversos desenvolvedores móveis, pela sua praticidade em acessar recursos nativos do aparelho para diferentes plataformas móveis, assim como o Adobe AIR o Apache Cordova te ajuda de uma maneira fácil acessar calendário, contato, notificações, alertas, vibrar, geolocalização, compasso e uma diversidade de novas funções built-in que vem no seu celular.

Depois de gastar um bom tempo estudando seu modelo, seu comportamento e como ele trabalha, decidi escrever um post sobre ele e compara-lo ao Adobe AIR, o que nesse caso eu tenho mais intimidade.

Assim como em qualquer tecnologia, você tem os pros e cons, acho que com isso você já tem uma noção maior do que usar e o que não usar, colocando em mente que cada caso é obrigatório analisar primeiro antes de decidir.

Apache Cordova

Pros:

  • Atinge 6 plataformas com uma só API
  • 90% de sua API já é built-in ( Vibration, BatteryLevel, Menu, Alertas, Calendário, Contatos)
  • Possibilita você criar suas extensões próprias com facilidade
  • Larga comunidade e alta frequência de builds.
  • Curva de aprendizagem muito rápida
  • Arquivo de instalação leve máx (4mb)
  • Performance de execução do App e efeitos de transição beira o nativo.
  • Interface pode ser feita em HTML/CSS/JS o que muito designer pode criar suas próprias Apps facilmente.
  • Componentes são criados e desacoplados em tempo de execução
  • Interfae é interpretada por um navegador interno WebKit

Cons:

  • Diversos frameworks para UI, faz você se perder em qual usar para seu projeto
  • Não tem suporte a HTTPS
  • Não suporta gestos por padrão, você tem que usar biblioteca externa para isso.
  • Ainda para dispositivos ios você tem que colocar o velho POG em ação para aceleração de hardware
  • Documentação é pobre de exemplos
  • Sem suporte a SQlite por padrão
  • Não suporta encriptação do sqlite
  • Suporta transferencia de dados em XML/JSON

 

Adobe AIR  3.5 para mobile

Pros:

  • Atinge apenas (Android 2.3.3+, ios 3.1+ e Blackberry Playbook)
  • Ciclo de vida de componentes baseado em eventos
  • Suporte a gestos por padrão
  • Suporta transferencia de arquivos em AMF/AMF3/JSON/XML
  • Suporta HTTPS/ SQLite/ Webcam/Audio e Video
  • Live stream de videos
  • Componentes já pré-fabricados usando o Flex Framework
  • Performance de 60fps quando usadas as classes Stage3D
  • Documentação extensa

Cons:

  • Arquivo de instalação ~10mb o que é grande para se transmitir via 3G
  • Interface é compilada e rendenizada
  • Suporta recursos nativos apenas se você extender com o ANE
  • Rendenização de texto é um pesadelo
  • Layout fluido para diversas telas diferentes é um POG gigantesco
  • Performance lenta quando se tem mais de 5 views
  • Ciclo de 24fps deixa qualquer celular com Android 2.3.3 lento
  • Não melhora o gerenciamento da bateria.

 

Claro que tem outros pros e cons de cada tecnologia, só que essas são as mais corriqueiras que você vai ver em grande parte dos casos quando for escolher.

E qual devo usar? Essa deve ser sua pergunta agora depois de ter lido os pros e cons. Minha resposta é vai depender de seu caso e o que você precisa fazer.

Um exemplo é, se você vai fazer jogos, eu lhe aconselho usar o Adobe AIR, já que a performance é melhor e muito mais fácil para criar jogos, agora se você vai fazer uma App para empresa que ela coleta informações de inventário, informações de cliente ou um App para registro de compras, o Apache Cordova é seu melhor parceiro.

Depois de duzias de Apps escritos, eu estou considerando o Apache Cordova como primeira opção e logo em seguida o Adobe AIR para boa parte dos Apps que escrevo diariamente.

Pergunto a você quais foram seus maiores problemas entre as duas plataformas?