Cordova

Iniciando soluções mobile híbrido

Postado em Atualizado em

Continuando o post sobre soluções mobile híbrido, segue abaixo tutoriais para iniciar o desenvolvimento desse tipo de produto usando cordova:

IDE NetBeans:

IDE Eclipse:

E assim, já podemos iniciar ai a nossa jornada. Bons estudos a todos!

“Portanto, sejam humildes debaixo da poderosa mão de Deus para que ele os honre no tempo certo.”1 Pedro 5:6

Devo eu criar soluções mobile híbrido ou nativo?

Postado em Atualizado em

O que é um app mobile nativo?

Os aplicativos nativos são instalados e armazenados dentro do dispositivo mobile, baixados através de uma loja específica para cada plataforma (como iOs ou Android). Eles são feitos usando os SDKs e as linguagens nativas especificas de cada uma dessas plataformas, o que facilita o acesso a funcionalidades do sistema operacional e sensores como GPS e a câmera. Uma das grandes vantagens de concentrar o desenvolvimento em um aplicativo nativo é a facilidade de otimizar o código por tratar diretamente com as bibliotecas do sistema operacional do dispositivo. A desvantagem é que um aplicativo nativo custa mais caro, precisando de desenvolvedores com conhecimentos totalmente específico.

O que é um app mobile híbrido?

Aplicativos híbridos são feitos usando linguagens e tecnologias de web apps e usam wrappers ou frameworks para serem convertidos em um aplicativo instalável no dispositivo do usuário. Esse tipo de app também é publicado na loja e funciona de forma similar aos nativos. Sua grande vantagem é exigir apenas conhecimento de desenvolvimento web e, portanto, tem um custo muito menor de desenvolvimento. Alguns frameworks têm bibliotecas para facilitar a integração de aplicativos híbridos com várias funcionalidades de dispositivos. E a alternativa mais rápida e barata para garantir presença do seu aplicativo em todas as app stores. O produto mais usado desse segmento é o Cordova – https://cordova.apache.org.

Vejo muito “bla bla bla” por ai em torno desse assunto, hoje então gostaria de dar meu pitaco, baseado em minhas experiências no assunto, sempre é claro respeitando a sua.

1. Qual é melhor?

Vou começar falando mais uma vez, e já to cansado de falar isso, não existe solução melhor ou pior! Tudo tem seu valor e pode se encaixar dependendo do contexto em si. Voltamos ao assunto da Alice no país das maravilhas.

2. João disse: “Eu gosto do nativo”. Maria replicou: “Eu prefiro híbrido”

Segundo, essa escolha não é baseada em emoções, premonições ou gosto pessoal. É uma decisão puramente técnica! Do ponto de vista do seu usuário, não há diferença. Um aplicativo híbrido bem construído se integra à plataforma da mesma forma que um nativo. Sendo assim, essa decisão deve ser feito baseado em argumentos sistemáticos e não em opinião pessoal.

3. Híbrido é lento de mais

Mentira e frescura pura! Hibrido tem sim performance inferior ao nativo, mão não é nada lento. É muito bom e bem rápido. Você usando um bom controller JS e um kit de GUI HTML5 moderno ai de hoje, o uso fica bem acima do aceitável. Você já deve ter alguns ai no seu Smartphone e nem noto isso. Há diferenças de performance apenas em casos muito específicos que exijam realmente bastante processamento no dispositivo. Somente nesses casos, opte pelo nativo. Segue abaixo soluções reais, instale esses apps hibridos no seu smartphone e veja por sim mesmo:

4. Quando exatamente o nativo é melhor?

Aqui é aonde eu vejo o pessoal pecar muito. Nativo é melhor em casos como: games 3D complexos, ou em aplicações que precisem de multithreading. Não é recomendado também para apps que precisem ficar executando serviços em background. Só o ambiente nativo consegue fazer isso de forma realmente eficiente, sem consumir a bateria do usuário. Somente nesses casos, opte pelo nativo.

5. Experiencia única

Outro caso que também pode ser considerado, seria a questão de oferecer uma experiência única ao seu usuário no seu app.  Como o híbrido usa HTML e CSS para criar o visual, é comum acabarmos com um design comum a várias plataformas, apenas com pequenos ajustes. Mas se você quer algo que use os componentes nativos, nesses casos, opte pelo nativo. Mas eu te pergunto: Vai valer a pena o custo? tempo? e manutenção? Essa “suposta experiência” cobre tudo isso? É algo a ser pensando. O que eu vejo na prática é a necessidade de disponibilizar servições corporativos no mobile, sem frescuras de GUI.

6. Na dúvida deve eu escolher nativo?

Muito errado! Como a maioria das apps não se encaixa exatamente nas categorias 3, 4, e 5, um híbrido é suficiente! E o que pesa em seu favor é o menor custo de desenvolvimento. Um único projeto, um único código serve todas as plataformas. Não é necessário ter equipes específicas programando Android, iOS, Windows Mobile e outras, por exemplo. Isso reflete diretamente no custo, tempo, cronograma e manutenção. Esses são os principais argumentos que pesam em favor do híbrido. Outro fator é que se você já tem uma equipe com conhecimentos de HTML, CSS e JS, a curva de aprendizado para o híbrido é bem pequena. E se não sabe, aprender uma única plataforma baseado em W3C é infinitamente mais rápido e barato de acontecer e manter.

7. Mas se eu optar pelo híbrido e depois precisar acessar código nativo?

Soluções híbridas hoje te da acesso a vários serviços nativos com grande cobertura. Conforme o tempo avança, novos serviços são disponibilizados em novas versões. A chance de você fazer uma coisa extremamente especifica e que não seja coberta pelo serviços hibrido é baixa. Infelizmente poucos sabem que as decisões técnicas devem ser feitas baseadas nas necessidades reais e não em especulações ou bola de cristal.

8. Já fiz uma solução hibrida, já esta produção e agora eu tenho que fazer algo realmente nativo e específico. O que fazer?

Qual é problema disso? Nenhum! Isso é desenvolvimento de software brother! Mudança sempre! Você fez exatamente o que deveria fazer, começou com uma app híbrida para cobrir rapidamente o maior número de plataformas, e depois se precisar, se realmente surgir ou emergir necessidades não existentes na híbrida, você pode então custear a produção de uma versão nativa, agora realmente embasado em uma decisão técnica, substituindo a versão hibrida. O Facebook começou assim, todo em HTML5, e hoje tem aplicações nativas em várias plataformas (além de um excelente site mobile). O grande erro aqui é começar bancando vários nativos sem necessidade nenhuma e ao longo de vários anos, não emergir nada que justificasse ter a solução em nativo, virando desperdício total por parte da gestão.

O post fica aberto para você nos dar sua opinião. Até a próxima pessoal!

“Como dizem as Escrituras Sagradas: “Rios de água viva vão jorrar do coração de quem crê em mim” João 7:38