Students Save 30%! Learn & create with unlimited courses & creative assets Students Save 30%! Save Now
Advertisement
  1. Code
  2. Mobile Development
Code

Como criar um aplicativo (app)

Portuguese (Português) translation by thierry rene matos (you can also view the original English article)

Existem diversas maneiras de criar uma aplicação para dispositivos móveis. Quer saber qual a melhor maneira? Depende. Quais das tecnologias utilizadas você conhece e tem experiência? Que plataformas você pretende abordar? Quanto tempo você deseja gastar desenvolvendo sua aplicação?

O mundo dos dispositivos móveis passou por uma tremenda revolução após o lançamento do iPhone em 2007. Em 2008, a Apple apresentou o SDK (kit de desenvolvimento nativo), que deu mais gás a essa revolução. Hoje, existem milhões de aplicações mobile, dezenas de plataformas, incontáveis frameworks, e ferramentas para criar aplicações mobile.

Como decidir o que é melhor para você? Responder essa questão é o foco deste artigo. Vamos discutir sobre os tipos de aplicações mobiles, as vantagens de aplicações híbridas ou nativas, e as principais plataformas disponíveis.

Tipos de aplicação

Podemos separar aplicações mobile em 3 catagorias:

  • aplicações web
  • aplicações hibridas
  • aplicações nativas

Cada um destes tipos tem seus pros e contras. Se você me perguntar qual tipo de aplicação melhor atende as suas necessidades, eu vou responder "depende". Para justificar minha resposta, primeiro vou discorrer sobre cada tipo de aplicação. Vamos começar com aplicações web.

Aplicações Web

Você já deve estar familiarizado com aplicações web. Uma aplicação web nada mais é do que um website, que atua como uma aplicação. Antes da apresentação do iOS SDK, em 2008, esta era a única maneira dos desenvolvedores criarem aplicações para o iPhone.

Aplicações web tem uma séria de vantagens, e a mais importante é o tempo de desenvolvimento. Como aplicações web são criadas em cima de um website, uma vez concluído o projeto, o mesmo fica disponível a qualquer dispositivo que tenha acesso a internet através de um navegador web. Para algumas empresas, essa é a melhor solução, já que o desenvolvimento de aplicações nativas, que vamos discutir mais a frente, pode ter alto custo além de consumir muito tempo de trabalho. Podemos dizer que aplicações web são cross plataform, ou seja, operam da mesma maneira em qualquer plataforma.

Outro ponto importante, é a linha de aprendizado para o desenvolvimento de aplicações web. Para desenvolver uma aplicação web, você vai precisar utilizar tecnologias que você provavelmente já conhece, como o HTML, CSS e JavaScript. Se você já tem o conhecimento prévio, você pode começar agora agora.

Bom. Sem pontos negativos? Existem sim alguns pontos negativos. Os dois pontos mais relevantes são em relação a performance e acesso aos recursos dos dispositivos. Se você deseja desenvolver um jogo, então uma aplicação web não é a melhor opção. Até é possível, mas a performance não será das melhores. Websites e aplicações web, tem acesso limitado aos recursos de dispositivos móveis, como a câmera, localização, etc. Apesar do suporte a aplicações web ter melhorado bastante nos últimos anos, não chega a competir com aplicações nativas.

Se você quer limitar o custo de desenvolvimento e manutenção da sua aplicação móvel e performance não é o aspecto mais importante, aplicações web certamente são uma opção a se considerar.

Se você quer entender o que são aplicações web e como funcionam, esse tutorial pode ser uma boa introdução. Por exemplo, o Laravel:

Aplicações Híbridas

Aplicações híbridas ainda hoje são muito populares. Elas combinam o melhor de dois mundo, no nosso caso, o ambiente web e o ambiente nativo. As tecnologias utilizadas para criar aplicações híbridas são as mesmas utilizadas para criar aplicações web (HTML, CSS e JavaScript). A razão é óbvia, se você entender como aplicações híbridas funcionam.

Uma aplicação híbrida é uma aplicação web que é executada em dentro de uma aplicação nativa, através do recurso web view (basicamente a aplicação habilita a tela do navegador na aplicação). Em outras palavras, uma aplicação híbrida utiliza é apenas um container que executa uma aplicação web com foco nos recursos nativos. Isso significa que para o usuário, uma aplicação híbrida vai se parecer e se comportar como um aplicação nativa. O usuário pode baixar a aplicação na loja de aplicativos e o ícone da aplicação é a apresentado na home screen.

Algum ponto negativo? Como aplicações híbridas utilizam tecnologias web, e são executadas em uma web view, as aplicações híbridas podem sofrer os mesmos problemas das aplicações web. A performance não é comparável em relação a aplicações nativas. É uma melhora constante, todos os anos a performance melhora mais. É impressionante como a performance do JavaScript melhorou na ultima década.

A solução mais popular para o desenvolvimento de aplicações híbridas é o Apache Cordova, ou Cordova apenas. Quando a Adobe adquiriu a PhoneGap, alguns anos atrás, eles liberaram a maior parte do código, e daí surgiu o Cordova. O PhoneGap ainda existe, e basicamente é uma versão comercial do Cordova.

Para acelerar o desenvolvimento, os desenvolvedores utilizam o Cordova combinado com outros frameworks, com o Ionic e o Onsen UI.

Para aprender mais sobre aplicações híbridas, recomendo checar alguns dos tutoriais que publicamos sobre o Cordova:

Aplicações nativas

Escolher o desenvolvimento de aplicações nativas é o mesmo que optar por performance e segurança. Porque o desenvolvimento de aplicações nativas assusta tanto os desenvolvedores? Vamos pegar a plataforma iOS como exemplo. Se a intenção é desenvolver uma aplicação para o iOS, você vai precisar aprender uma nova linguagem, Objective-C ou Swift. Você também vai precisar se familiarizar com o Xcode, a IDE da Apple. Uma aplicação nativa geralmente demora mais para ser desenvolvida simplesmente porque você está trabalhando em um ambiente a ser explorado. Objetive-C e JavaScript são duas linguagens muito diferentes.

Qual o retorno? A performance da aplicação é claramente a melhor vantagem de aplicações nativas. Aplicações nativas fluem bem, especialmente jogos, que conseguem ter acesso aos recursos do dispositivo e do sistema. Todo recurso e capacidades do dispositivo é exposto pelas API's dos diversos SDK's, disponíveis a qualquer desenvolvedor. Esse é outro ponto relevante entre aplicações nativas e híbridas/web.

Existem diversas abordagens híbridas que tornam o desenvolvimento de aplicações nativas acessível aos desenvolvedores. A solução é simples, escreva o código na sua linguagem de preferência, e depois compile esta para gerar a aplicação nativa. As soluções mais populares, enquanto escrevo este artigo, são o Xamarin e o React Native.

O Xamarin permite aos desenvolvedores escrever aplicações nativas para iOS, Android e Windows Phone, utilizando a linguagem C#. As ferramentas do Xamarin ajudaram no desenvolvimento do projeto open source Mono. O React Native nasceu no Facebook e permite aos desenvolvedores a criação de aplicações nativas utilizando JavaScript.

A Envato Tuts+ cobre diversas plataformas, incluindo a plataforma iOS, Android, Xamarin, e o React Native. Dê uma olhada nestes tutoriais para se familiarizar com essas tecnologias:

Nativa ou Hibrida?

Qual a melhor solução? Nativa? Ou híbrida? Ou uma aplicação web? Não existe uma resposta. Isso depende de diversos fatores. Se você é um desenvolvedor, então a resposta é menos complicada. Com quais tecnologias você já está familiarizado? Você quer focar em uma plataforma ou criar aplicações para diversas plataformas?

É realmente um desafio se manter no iOS, Android e Windows Phone. Alguns desenvolvedores criam aplicações nativas para diversas plataformas, mas o risco é alto e eu não recomendo isso. O universo mobile se desenvolve muito rápido e é quase impossível conhecer todas as plataformas a fundo. Se você escolher o desenvolvimento nativo, então este tem de ser o seu objetivo. Tente se familiarizar o máximo possível com a plataforma. Esse deve ser o seu objetivo como um desenvolvedor de aplicações nativas.

Esse é uma das razões pela qual muitos desenvolvedores escolhem o desenvolvimento híbrido. Se você for um desenvolvedor web experiente, você não vai perder tempo para começar a trabalhar. O Apache Cordova, combinado com o Ionic ou o Onsen UI, pode agilizar e muito o desenvolvimento.

Devemos ter aplicações web em mente. Apesar delas estarem em uma categoria diferente. Criar uma aplicação web, significa que você não quer sua aplicação em nenhuma loja de aplicativos. Muitas empresas escolheram este caminho, anos atrás. Hoje, se houver verba e recursos disponíveis, aplicações nativas ou híbridas são mais populares.

Questões a responder

Vou terminar o artigo expondo algumas questões que podem ajudar a decidir qual a melhor abordagem para o seu projeto.

A performance é importante?

Aplicações nativas são a melhor opção. Você também pode dar uma olhada no Unity, se a intenção for desenvolver um jogo.

O suporte multi plataforma é importante?

Não? então você pode considerar as aplicações nativas. Se o suporte multi plaforma for vital, então uma aplicação híbrida ou web pode ser a melhor escolha. Dê uma olhada no Xamarin ou no React Native, para ter noção se a performance e os recursos são também importantes.

É o seu próximo grande projeto?

Se a sua intenção é se tornar um desenvolvedor mobile, a minha sugestão é que você escolha a abordagem nativa. No entanto, isso é muito pessoal. Eu sou um desenvolvedor iOS, mas não gostaria disso de qualquer maneira. Ao focar em apenas uma plataforma (iOS, vOS, watchOS e OS X), tenho tempo para de me familiarizar com a plataforma. Esse é um aspecto importante no desenvolvimento mobile se você deseja criar uma aplicação bem feita com uma boa experiência de usuário.

Se você já tem um conhecimento prévio em desenvolvimento web, a abordagem nativa continua sendo uma opção. De qualquer forma, se você quer algo pronto rápido, a abordagem hibrida ou web são as melhores opções.

Conclusão

Se você esperava uma reposta mais direta, eu posso ter te desapontado.  Se você ainda não se decidiu, sugiro dar uma olhada nas opções que listei no artigo. Dê uma fuçada no Cordova, ou faça uma introdução ao Swift, e veja como se adpta. Não escolha o caminho mais rápido e fácil para alcançar o seu objetivo. Tenha cerveja de que há um retorno nessa caminhada, pois é isso que garante a diversão.

Se você já sabe qual a melhor abordagem para a sua aplicação, você pode acelerar o desenvolvimento das aplicações Android e iOS com o seguintes templates. Dê uma olhada no Envato Market:

Seja o primeiro a saber sobre novas traduções–siga @tutsplus_pt no Twitter!

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.