Mostrando postagens com marcador Tecnologia. Mostrar todas as postagens
Mostrando postagens com marcador Tecnologia. Mostrar todas as postagens

Como criar um aplicativo sem saber programação nativa (Java, Swift ou Objective C)

Como criar um aplicativo pra Android e iOS sem saber Java, Swift ou ObjectiveC

Introdução

Existem diversas maneiras de desenvolver aplicações sem utilizar linguagens nativas. Nesse artigo vou citar especificamente o Apache Cordova e o framework Ionic 2 que roda sobre ele.


Top Empresas - App Híbrido


Princípio

Alguns anos atrás, a única forma de desenvolver aplicativos era utilizando as linguagens, bibliotecas e padrões nativos de cada plataforma. Desenvolvedores Android geralmente utilizam Java, e desenvolvedores iOS utilizam Swift (anteriormente utilizavam Objective C, até a Apple lançar o Swift no mercado, que traz diversas melhorias como facilidade de programação funcional, aumento de performance, diminuição na curva de aprendizado e assim por diante).

Em meados de 2008, surgiu o Phonegap. Basicamente, ele permitia que o desenvolvedor tivesse acesso à uma WebView, onde iria desenvolver todo o visual e lógica da aplicação utilizando HTML, CSS e JAVASCRIPT. O legal era que o Phonegap compilava uma aplicação nativa com a WebView, o que permite acesso aos recursos nativos do aparelho por intermédio de plugins, como Câmera, Vibração, Acelerômetros, Giroscópios, etc. 

Além disso, um dos maiores ganhos é o fato de ser possível escrever o código apenas uma vez, e compilar para diversas plataformas como Android, Windows, iOS e outros com poucas ou até mesmo nenhuma alteração.

Logo em seguida, em 2009, a Apple liberou o desenvolvimento de aplicações com Phonegap. Desenvolvedores Web, que geralmente possuem bastante conhecimento de HTML, CSS e JAVASCRIPT começaram a utilizar essa tecnologia para desenvolvimento de aplicações, que são denominadas "Aplicações Híbridas", por serem um misto de tecnologia Web e tecnologia nativa.

O projeto fez grande sucesso e em 2011 foi comprado pela adobe, e liberado sob a licença Apache, como o nome de Apache Cordova. O nome PhoneGap foi reservado pela Adobe para o seu serviço de build na nuvem, que permite compilar para o iOS, por exemplo, sem a necessidade de um Mac.


É mais lento? Perco performance? Compensa?

Após o surgimento das aplicações híbridas, surgiram diversos movimentos de crítica em relação à performance, pelo fato de não ser nativo, etc. No princípio as diferenças de performance eram notáveis, principalmente pelos Smartphones da época serem mais primitivos.

Hoje, oito anos depois, muita coisa melhorou: tanto a tecnologia do Apache Cordova, que é exaustivamente melhorada e atualizada, quanto os aparelhos que rodam aplicações híbridas de maneira que as diferenças tornam-se imperceptíveis.

É claro que existem áreas como Games, 3D, etc em que a preferência recai sobre o nativo. Cada caso deve ser analisado. Fato é que apesar de trazer diversos benefícios, é uma tecnologia que deve ser muito bem aplicada, assim como qualquer outra, pra trazer ótimos resultados.

Ou seja, não abandone o nativo. Analise. É uma aplicação crítica, que demanda performance ferrenha, animações incríveis, etc? Vá de nativo. É uma aplicação mais simples, com lista de dados baixados do servidor, perfis, etc? O Híbrido resolve com certeza. Algumas aplicações híbridas famosas: Instagram, Twitter. A primeira versão do Uber eu lembro que era híbrido também, mas não sei informar se as novas versões ainda são.


Ionic 2

O Ionic foi lançado em 2013, e rapidamente tornou-se um dos frameworks mais utilizados no mundo do desenvolvimento híbrido. Ele compila o aplicativo utilizando o Cordova, mas poupa o tempo do desenvolvedor trazendo diversas funcionalidades prontas, plugins e desenvolvimento sólido.

A primeira versão do Ionic utilizava o AngularJS 1, um Framework Javascript muito utilizado por desenvolvedores Web, que facilita muito o desenvolvimento SPA (aplicações de página única). O único problema do AngularJS 1 é que possui alguns problemas de performance que prejudicam o desenvolvimento para aparelhos menos potentes.

Recentemente (2016) foi lançado o AngularJS 2, e o Ionic 2 foi idealizado utilizando essa nova versão do framework, trazendo vantagens de performance, programação com TypeScript, compatibilidade com as últimas versões do JavaScript, visual com as últimas técnicas de design, e passou a suportar 3 plataformas: Android, Windows e iOS.


Como isso funciona?

É bem simples. Você vai programar o seu aplicativo usando os recursos do Ionic, que utiliza tecnologias web: HTML, CSS e JavaScript (AngularJS). Se precisar de algum recurso nativo, como a câmera, é só utilizar um plugin (existem os oficiais do Ionic e muitos outros de desenvolvedores independentes).

No final, o Ionic vai utilizar o Apache Cordova para compilar para cada uma das plataformas específicas.


Tiago, você já desenvolveu aplicações híbridas?

Sim, já desenvolvi, vou deixar aqui dois exemplos:

Dia na História
Top Empresas

Como podem ver são aplicações com recursos interessantes como: Localização GPS, Mapas, Login de Usuário, etc.


Quero saber mais sobre isso. Posso falar contigo?


Cooom certezaa!! Me add no skype: tiagosilvapereira1 e no email tiagosilvapereira3@gmail.com e vamos bater altos papos sobre programação. 

Bom é isso aí pessoal. Mais uma carta na manga. Sabe aquele restaurante que te pediu um App de cardápio? Que tal criar ele muito mais rápido, pra várias plataformas e ganhar uma grana legal? É pra se pensar né?

Abraços!!

Links das Tecnologias
Ionic Framework
Ionic 2
Apache Cordova

Como limpar o cache sem prejudicar sua aplicação

Recentemente desenvolvi uma aplicação que depende muito do cache para funcionar bem. O Rapid Mockup, um software para desenvolvimento de mockups em 3D, que roda diretamente no navegador. Lancei o Beta 1, rodou tudo bonito.


Imagem do Rapid Mockup


Aí chegou a vez de lançar o Beta 2, e surge um problema: como as pessoas vão receber as atualizações se a maior parte da aplicação fica em cache? Fui estudar as alternativas:


Limpeza total do cache

Sempre que abrir a aplicação, limpar todo o cache realizando um location.reload(true), o que força a página a ser carregada diretamente do servidor. 
Essa alternativa eu simplesmente descartei por ser inviável. Isso representava baixar toda a aplicação do servidor sempre que o usuária  acessasse. O Rapid Mockup é uma aplicação pesada, e mesmo que fosse mais leve, não poderia correr o risco de desperdiçar os benefícios do cache, que permitem carregar a aplicação de maneira muito rápida.


Tempo de Expiração

Configurar um tempo de expiração curto para o cache dos meus recursos no servidor.
Essa é uma boa alternativa, em partes. Eu poderia colocar um tempo de expiração de uma semana, por exemplo, e após uma semana, sempre atualizar a minha aplicação. Mas isso forçaria a recarga completa da aplicação toda semana, e muitas vezes, eu alterei apenas um arquivo pequeno. Além disso, se fiz um update, quero que os usuários tenham acesso agora, e não daqui dois, cinco, sete dias. 


Utilizando "Query Params"

Utilizar versionamento usando um "query param". Ex: <script src="./scripts/script.js?v=1.2">
Essa opção funciona, é um pequeno "hack" utilizado para resolver essa questão. O parâmetro na frente do script ("v=1.2") é apenas uma forma de modificar a URL de carregamento, e que faz com que o arquivo seja carregado novamente. No entanto, alguns proxies como o Squid não funcionam com essa opção, fazendo com que o script seja sempre recarregado, mesmo que não tenhamos modificado o parâmetro.


Versionamento no nome do arquivo

Utilizar versionamento no nome do arquivo. Ex: <script src="./scripts/script-1.2.js">
Essa é a melhor opção, pois também funciona com proxies como o Squid e outros. No entanto, tem um preço à se pagar por isso: o controle de diversos arquivos no seu sistema de versão.

Bom, depois de pesquisar e ler alguns artigos como este, acabei me decidindo por utilizar a quarta opção, versionando os arquivos separadamente. Não é a mais simples e intuitiva, mas é a que funciona melhor. E qualidade é o que desejamos entregar, não?

Se você souber de uma solução melhor, ou tiver alguma carta na manga, por favor comente abaixo. Afinal, estou aqui pra aprender e trocar experiências.

Sucesso e Abraços!!!

Dicas pra lançar um Software rentável

Uma das coisas que percebi após vários tombos é que, lançar um produto baseado em achismos é quase sempre um "fracasso". Coloquei em aspas porque existem exceções. Mas são raras. Pra criar novos produtos, existe jeito certo e errado. Após alguns fracassos, estou firmemente convicto disso.

Pouco tempo atrás, tive a "brilhante" ideia de lançar um aplicativo que mostrasse os postos de combustível mais próximos e o preço do combustível atualizado. Uai, mas isso já não existe? Sim, mas minha ideia principal era que os próprios postos atualizassem os preços, sendo assim, eles sempre estariam atualizados e tal. O principal problema é que não fui falar com donos de postos antes de desenvolver.



Imagem do Enche o Tanque, meu "brilhante" aplicativo


Coloquei a mão na massa e, 2 meses depois, o aplicativo estava pronto. Lindo, funcionava que era uma beleza, só faltavam os clientes. Aí eu fui pra rua, fazer o que eu deveria ter feito antes de iniciar o desenvolvimento do aplicativo. Fui atrás dos clientes.

E semanas depois, passando de posto em posto de combustível, não consegui nenhum cliente. Falei com donos de postos de combustível, e para a maioria deles, o melhor seria ter um App próprio, com recursos de fidelização de clientes. Pelo menos descobri o modelo de negócios. Mas já tinha perdido 2 meses em serviço, muito código, muita coisa feita. 

É claro que teve o aprendizado, aprendi trabalhar com Geolocalização, Mapas, e outras coisas interessantes. Mas eu poderia ter aprendido tudo isso construindo o produto certo.

Então, a minha principal dica é: Antes mesmo de colocar a mão no código, ou de criar seu produto, crie um Canvas do Modelo de Negócio (Business Model Canvas). O SEBRAE tem uma ótima ferramenta pra isso: https://www.sebraecanvas.com

Depois, converse com os futuros clientes. Entenda o problema ou necessidade deles, verifique se sua solução se encaixa. Vá melhorando seu Busines Model Canvas pra entender o modelo de negócio. Confesso que estou aprendendo à utilizar isso e é incrível como, ao conversar com o futuro cliente, você entende justamente o que ele precisa.

De repente, você chega com 10 hipóteses, e apenas uma delas é tudo que o cliente precisa. Aí ele te dá mais uma ideia, e pronto. Ao invés de 10 funcionalidades, você desenvolve apenas duas, e pronto.

É isso. O melhor é não se afobar, achar que sua ideia é a "matadora", a maior invenção da humanidade depois da roda. Calma. Pode não ser o momento certo pra sua ideia. Ou de repente, as pessoas precisam dela, mas com alguns ajustes. Não tem como adivinhar se o cliente vai gostar das suas hipóteses. Tem que conversar.

E conversando, você descobre coisas importantes. Descobre que ao invés do público 18-35 anos, ela pode ser voltada para 20-45 anos. Público feminino? De repente tem homens que também queiram utilizar seu produto. E assim por diante.

Para aprender mais sobre isso, tem um ótimo curso na Endeavor, intitulado Como Construir a Empresa Certa para os Clientes Certos. O curso é totalmente gratuito e de qualidade, ensinando todos os passos para a criação e lançamento de um produto, como conduzir entrevistas, avaliar o mercado e muito mais.

Parafraseando Augusto Cury: "Uma pessoa inteligente aprende com os seus erros, uma pessoa sábia aprende com os erros dos outros."

Bora lançar software rentáveis? Fui... Pra rua falar com prováveis clientes!! :D


Bem vindo à este Blog

Seja bem vindo ao meu blog!!




Olá, querido visitante! Seja bem vindo ao meu blog sobre tecnologia, linguagens de programação, desenvolvimento Web e muuitas dicas sobre tecnologia.

Aqui eu desejo passar o pouquinho que sei e adquiri na minha jornada profissional, ajudando o pessoal que está começando à se posicionar nessa longa caminhada da área de TI.

Bom, primeira, deixa eu me apresentar. Meu nome é Tiago Silva Pereira Rodrigues. Extenso não? Vamos ficar só com Tiago Rodrigues :D Tenho 22 anos, sou desenvolvedor Web e Mobile, trabalho com programação desde quando eu tinha mais ou menos 15 anos de idade.

Comecei desenvolvendo Jogos 3D com C++ e OpenGL. E aos poucos fui adquirindo conhecimento. Tenho muito que aprender, e o maior intuito desse blog é aprender com você, leitor!

Com o tempo, após a faculdade de Análise de Sistemas, passei à me interessar por desenvolvimento Web e Mobile, Startups, Empreendedorismo, etc.

Espero prover um conteúdo de qualidade aqui, útil pra todos que tenham desejo de crescer na nossa área.

Obrigado e Aproveite!!

Kategori

Kategori