Baixe o app para aproveitar ainda mais
Prévia do material em texto
03/09/2019 00(03Desenvolvimento mobile multiplataforma ou nativo, qual é melhor? Página 1 de 19https://becode.com.br/desenvolvimento-mobile-multiplataforma-ou-nativo/ Desenvolvimento mobile multiplataforma ou nativo, qual é melhor? Desenvolvimento nativo ou multiplataforma? Assunto extremamente importante e debatido no universo mobile. Tópico que só tem ganhado destaque devido ao aumento na demanda por apps mobile ao redor do mundo! Mas afinal de contas, o que é desenvolvimento nativo e o que é multiplataforma (ou como muitos conhecem, cross-platform)? Quais são as diferenças? O que é melhor para empresas? O que é melhor para a carreira de um desenvolvedor mobile? Existe uma solução perfeita!? por Erick Scudero há 2 anos ! 12.1k Visualizações " 14 03/09/2019 00(03Desenvolvimento mobile multiplataforma ou nativo, qual é melhor? Página 2 de 19https://becode.com.br/desenvolvimento-mobile-multiplataforma-ou-nativo/ Enfim, são muitas dúvidas, eu sei! Mas não se preocupe! Tentaremos responder tudo nesse artigo! Então continue lendo! Relação UX e Mobile Dev. Antes de falarmos sobre as diferentes abordagens para desenvolvimento mobile, é fundamental falarmos sobre o conceito de experiência de usuário (UX). Até porque, o ganho em UX é o grande argumento a favor para o desenvolvimento nativo. As últimas ferramentas para desenvolvimento cross-platform tem tentado, cada vez mais, implementar experiências de usuário tão fiéis quanto a das SDKs e IDEs próprias de cada sistema operacional. O que é UX? Resumindo, experiência de usuário – do inglês, user experience (UX) – é o conjunto de sensações e percepções que uma pessoa tem ao comprar um produto ou contratar um serviço especifico. Obviamente, esse conceito também se aplica ao mundo da TI, para softwares, apps e sistemas como um todo. Aspectos como: 03/09/2019 00(03Desenvolvimento mobile multiplataforma ou nativo, qual é melhor? Página 3 de 19https://becode.com.br/desenvolvimento-mobile-multiplataforma-ou-nativo/ Facilidade de aprendizado e uso; Localização e aparência de ícones; Cores típicas; Caminhos e configurações típicas; Usabilidade e facilidade de uso; Velocidade de aplicações; Tudo isso gera um sentimento e um conjunto de sensações que podemos caracterizar como a experiência do usuário (UX) com aquele software. Evidentemente, sistemas diferentes possuem UX distintas. Qualquer aplicativo que fuja do universo ao qual o usuário está acostumado não terá uma receptividade tão natural. Faça um teste você mesmo! Analise o seu smartphone de acordo com os itens listados anteriormente. Ao final da sua análise, você terá uma lista dos apps com a melhor UX, de acordo com o seu gosto que, “tende” a ser similar aos demais usuários daquele sistema operacional. Tenho certeza que nomes como Uber, Cabify, Nubank, Spotify, Whatsapp, Instagram e Netflix estarão no topo da sua lista. Melhor UX em mobile nativo Enfim, tudo isso para dizer que o desenvolvimento nativo para mobile irá focar o máximo em extrair as características de cada sistema. Com isso, irá criar uma UX fiel ao sistema operacional usado, seja ele Android, iOS ou qualquer outro. Já, o desenvolvimento cross-platform (a grosso modo) usa o mesmo código para sistemas diferentes. Isso é possível graças a utilização das linguagens HTML, CSS e mais uma linguagem de programação, que pode variar conforme a ferramenta escolhida para o desenvolvimento multiplataforma. “Entendi, desenvolvimento nativo é sempre melhor!” 03/09/2019 00(03Desenvolvimento mobile multiplataforma ou nativo, qual é melhor? Página 4 de 19https://becode.com.br/desenvolvimento-mobile-multiplataforma-ou-nativo/ Não! Não é tão simples assim! Nem tudo na vida é 0 ou 1. Agora que definimos o que é UX, com mais calma, iremos analisar as vantagens e desvantagens de cada abordagem de desenvolvimento mobile. Vamos aos pontos! O que é desenvolvimento nativo? O desenvolvimento nativo é o modo tradicional para desenvolvimento de aplicações mobile. Em outras palavras, a equipe de desenvolvimento cria um aplicativo para cada sistema operacional no qual o app será lançado. Se uma aplicação vai ser lançada em Android, iOS e Windows OS, então serão três aplicativos diferentes. Cada um desses programas é criado com a SDK, IDE e recursos próprios de cada sistema operacional. Para exemplificar: Apps para iOS: IDE Xcode e linguagem Swift ou Objective-C Apps para Android: IDE Android Studio e linguagem Java Pensando nessa sistemática, para acelerar o tempo de desenvolvimento dos apps, diferentes equipes são alocadas para cada sistema operacional distinto. Dessa 03/09/2019 00(03Desenvolvimento mobile multiplataforma ou nativo, qual é melhor? Página 5 de 19https://becode.com.br/desenvolvimento-mobile-multiplataforma-ou-nativo/ forma, uma equipe especializada em iOS desenvolve a versão do app para iPhones e iPads, enquanto outra equipe com foco em Android desenvolve o app utilizando o Android Studio. Seguindo a mesma lógica para diferentes sistemas mobile. Outra alternativa é alongar o tempo de desenvolvimento. Nesse caso, uma mesma equipe irá ser responsável pelo desenvolvimento nos diferentes sistemas previstos. “Tudo isso para garantir a UX?” Exato! Querendo ou não, o termo UX atualmente é praticamente sagrado. Então, em muitos casos, esse esforço é recompensador. Principalmente em mercados extremamente competitivos. A utilização da IDE e das SDKs próprias de cada sistema operacional oferece mais recursos para proporcionar a melhor experiência ao usuário da aplicação. Os aplicativos desenvolvidos de forma nativa possuem features e usabilidade 100% características daquele sistema operacional. Sendo assim, para resumirmos: Vantagens: Capacidade de proporcionar uma experiência de usuário mais característica do sistema operacional do app; Desenvolvimento com SDKs e IDE do próprio sistema operacional, extraindo o máximo do sistema operacional. Desvantagens: Necessidade de equipes de desenvolvimento especializadas para cada sistema operacional previsto; Custo elevado para manter mais de uma equipe de desenvolvimento; Mais tempo dedicado para o desenvolvimento e release. Se você está decidido a usar a abordagem nativa de desenvolvimento mobile, na Becode, temos dois cursos que podem ajudar você a dar esse primeiro passo na 03/09/2019 00(03Desenvolvimento mobile multiplataforma ou nativo, qual é melhor? Página 6 de 19https://becode.com.br/desenvolvimento-mobile-multiplataforma-ou-nativo/ área. O curso de desenvolvimento para Android e também temos o treinamento de Swift, para iOS. Dê uma olhada nos treinamentos. Tenho certeza de que você irá gostar. O que é desenvolvimento multiplataforma? A abordagem cross-platform diz respeito à criação de um aplicativo por meio de um único processo de desenvolvimento, onde o resultado final serão apps lançados em plataformas diferentes (Android e iOS, por exemplo). # Menu $ % 03/09/2019 00(03Desenvolvimento mobile multiplataforma ou nativo, qual é melhor? Página 7 de 19https://becode.com.br/desenvolvimento-mobile-multiplataforma-ou-nativo/ Isso é possível graças a ferramentas e frameworks de desenvolvimento que utilizam linguagens web como HTML5, CSS3 e Javascript (ou outras linguagens de programação possíveis). Os principais sistemas operacionais do mercado mobile suportam essas linguagens e suas APIs, de forma que, ao criar um aplicativo baseado nessas ferramentas, o mesmo código pode ser compilado para sistemas operacionais diferentes. & 03/09/2019 00(03Desenvolvimento mobile multiplataforma ou nativo, qual é melhor? Página 8 de 19https://becode.com.br/desenvolvimento-mobile-multiplataforma-ou-nativo/ Vantagens: Permite o desenvolvimento de apps para diversas plataformas mobile, a partir de um código comum; Não requer a existência de equipes de desenvolvimentoespecíficas para sistemas e plataformas diferentes; Acelera o tempo de desenvolvimento, pois o aplicativo é desenvolvido para várias plataformas ao mesmo tempo; Custos são menores, pois a equipe é mais enxuta. Desvantagens: Apesar das ferramentas estarem se aproximando das características gráfica e nativas de cada sistema mobile, ainda há uma desvantagem considerável quando o assunto é experiência do usuário (UX). Ferramentas multiplataforma 03/09/2019 00(03Desenvolvimento mobile multiplataforma ou nativo, qual é melhor? Página 9 de 19https://becode.com.br/desenvolvimento-mobile-multiplataforma-ou-nativo/ O desenvolvimento multiplataforma tem ganhado muitos adeptos ao longo dos anos. Com isso, o mercado também se expandiu consideravelmente. Logo, novas ferramentas cross-platform foram surgindo no mundo do desenvolvimento mobile. Diante desse cenário, atualmente, se você optar pela abordagem cross-platform, é essencial estar por dentro das principais ferramentas existentes no setor. Pensando nisso, listamos abaixo algumas das ferramentas mais conhecidas para facilitar a sua busca e escolha: 1- FireMonkey O FireMonkey é um software desenvolvido pela Embarcadero. Com a ferramenta é possível desenvolver para iOS, Android, Windows Phone e Mac OS. Trata-se de uma ferramenta focada em desenvolver aplicativos visualmente ricos. Portanto, o software possui um ótimo recurso para visualizar a aparência de cada nova adição de código. Veja mais no site oficial. 2 – Xamarin O Xamarin foi criado pela Xamarin Studio em 2013. É uma IDE que permite o desenvolvimento de apps utilizando a linguagem C#. Além disso, a ferramenta possui integração com o Microsoft Visual Studio, o que permite que usuários acostumados com essa IDE não precisem migrar de ambiente. É uma ferramenta especialmente atrativa para desenvolvedores C#. Faça o download e conheça mais aqui. 3 – Motorola Rhomobile Ferramenta desenvolvida em Ruby. Trata-se de uma IDE que suporta desenvolvimento para um número considerável de plataformas, como: Windows Mobile; Symbian; Android; 03/09/2019 00(03Desenvolvimento mobile multiplataforma ou nativo, qual é melhor? Página 10 de 19https://becode.com.br/desenvolvimento-mobile-multiplataforma-ou-nativo/ iOS; E entre outros. É baseado no Rhodes, um framework open source para desenvolvimento cross- platform. Visite o site oficial para saber mais. 4 – PhoneGap Trata-se de um framework para desenvolvimento de apps mobile. O software utiliza- se da tecnologia Apache Cordova para acessar funções comuns nos smartphones (geolocalização, gps, câmera e por ai vai…). Com o PhoneGap, é possível desenvolver para: Android; Symbian; Palm; Blackberry; iPhone; E entre outros. Os cursos e a documentação do PhoneGap são diferenciais interessante em relação aos seus competidores. Conheça mais sobre a ferramenta no site oficial. 5 – Adobe Air 03/09/2019 00(03Desenvolvimento mobile multiplataforma ou nativo, qual é melhor? Página 11 de 19https://becode.com.br/desenvolvimento-mobile-multiplataforma-ou-nativo/ Desenvolvido pela renomada Adobe, o Adobe Air utiliza extensões AIR (Adobe Integrated Runtime) para poder acessar recursos específicos nativos dos sistemas operacionais. Pode ser usado para as principais plataformas do mercado. É uma ferramenta que fornece um bom nível de experiência de usuário, quando comparado com outros concorrentes. Está disponível no site da Adobe para download. Veja mais aqui. 6 – Appcelerator Criado pela empresa Axway, o Appcelerator é desenvolvido em Java Script. Segundo a empresa, quase um milhão de desenvolvedores em todo o mundo utilizam a plataforma. É uma opção avançada de desenvolvimento multiplataforma. Conheça mais no site do software. 7 – Ionic Focado em performance, design e otimizações, essa ferramenta visa ao máximo se aproximar das aplicações nativas. Entre as tecnologias utilizadas no Ionic, encontramos o AngularJS, TypeScript, HTML5 e o JavaScript. Veja mais sobre o Ionic aqui. 03/09/2019 00(03Desenvolvimento mobile multiplataforma ou nativo, qual é melhor? Página 12 de 19https://becode.com.br/desenvolvimento-mobile-multiplataforma-ou-nativo/ Como escolher uma ferramenta!? Sim, são muitas ferramentas! E a escolha não é tão simples. Contudo, procure sempre se guiar pelas tecnologias que são exigidas em cada ferramenta. Digamos, se você sabe JavaScript, procure usar uma ferramenta que use o JavaScript para o desenvolvimento mobile e não o C# (sim, meio óbvio). Além disso, como existem diversas ferramentas e as empresas e programadores usam muitas versões diferentes. No desenvolvimento multiplataforma, é extremamente importante conhecer os principais sistemas operacionais e seus aspectos relativos à experiência de usuário. Assim, ao utilizar uma ferramenta multiplataforma ou outra, você vai ter mais facilidade em aprender os pontos específicos de como usá-la com eficiência em seus projetos mobile. Multiplataforma ou nativo, qual é melhor? Ao pesarmos as vantagens e desvantagens de cada tipo de desenvolvimento, fica claro que não é uma escolha simples. Depende muitas das suas necessidades 03/09/2019 00(03Desenvolvimento mobile multiplataforma ou nativo, qual é melhor? Página 13 de 19https://becode.com.br/desenvolvimento-mobile-multiplataforma-ou-nativo/ como programador ou dos requisitos da empresa. Para uma empresa, ter times especializados em sistemas operacionais diferentes pode ser muito caro. Entretanto, isso irá proporcionar uma melhor especialização e experiência de usuário (UX) para os aplicativos. Por outro lado, equipes que trabalham com ferramentas cross- platform podem ser mais enxutas e, mesmo assim, criar “apps multiplataforma” em muito menos tempo. Sendo assim: O tipo de cliente da empresa é um fator importante. Digamos que 90% da receita provém de aplicativos Android. Nesse caso, não existem motivos suficientes para ter uma equipe especializada em iOS. Você pode investir no desenvolvimento nativo focado exclusivamente em Android. Já, quando a criação de apps para várias plataformas é um requisito fundamental e os custos não permitem ter equipes especializadas, é melhor utilizar-se da abordagem de desenvolvimento cross-platform. Caso o objetivo seja ser uma referência em um sistema operacional e, com isso, conseguir extrair o máximo do sistema e, a partir disso, proporcionar a melhor UX possível. Pensando por esse lado, a criação nativa de apps é mais indicada. Do ponto de vista de programadores e freelancers, existe aquela velha questão: ser generalista ou especialista. Há quem defenda cada uma das opções, e a verdade é que o seu perfil como profissional e pessoa é determinante para indicar qual é a melhor opção para você. Ser especialista é mais arriscado em termos de emprego e oportunidades, contudo, tende a remunerar melhor. Nesse caso, o desenvolvimento nativo é o mais indicado. Agora, se você quer ter estabilidade e estar sempre empregado. Aprenda a desenvolver para Android, iOS e também saiba como utilizar as ferramentas multiplataforma. Resumindo… Não há uma resposta certa. Você sempre terá que avaliar o ambiente atual, pesar os 03/09/2019 00(03Desenvolvimento mobile multiplataforma ou nativo, qual é melhor? Página 14 de 19https://becode.com.br/desenvolvimento-mobile-multiplataforma-ou-nativo/ seus objetivos futuros e, além disso, fazer uma reflexão interna, caso você seja um profissional e não uma empresa. O que você achou do texto? Esperamos que tenha gostado das dicas de ferramentas e em conhecer as diferenças entre essas duas abordagens de desenvolvimento mobile. Deixe os seus comentários abaixo que teremos prazer em responder! Abraços e até a próxima. 03/09/2019 00(03Desenvolvimento mobile multiplataforma ou nativo, qual é melhor? Página 15 de 19https://becode.com.br/desenvolvimento-mobile-multiplataforma-ou-nativo/Escrito por Erick Scudero Especialista em Marketing Digital e apaixonado por tudo que envolve o universo de tecnologia e comunicação. Durante sua jornada na terra dos cangurus (Austrália), atuou em diversos projetos prestando consultoria em questões de UX, SEO, Marketing Digital e modelos de negócio com foco em startups. É cofundador da Becode, da M2up e instrutor de cursos presenciais na TargetTrust. 03/09/2019 00(03Desenvolvimento mobile multiplataforma ou nativo, qual é melhor? Página 16 de 19https://becode.com.br/desenvolvimento-mobile-multiplataforma-ou-nativo/ 03/09/2019 00(03Desenvolvimento mobile multiplataforma ou nativo, qual é melhor? Página 17 de 19https://becode.com.br/desenvolvimento-mobile-multiplataforma-ou-nativo/ 14 COMENTÁRIOS LEAVE A REPLY Harley há 2 anos Achei muito bom o texto, mas para um iniciante em desenvolvimento mobile qual dessas ferramentas você sugere levando em consideração facilidade e documentação? Erick Scudero há 2 anos Harley, tudo bem? Então, essa uma decisão que você precisa tomar por conta própria. Eu mesmo não consegui analisar todas essas ferramentas (infelizmente). A lista acima foi elaborada com base no critério popularidade. Como dica, sugiro que você dê uma olhada no Ionic, React Native e o Xamarin (C#). Dois frameworks que costumam receber muitos elogios entre seus usuários. Luciano há 2 anos Muito boa e esclarecedora esta matéria. Parabéns. Erick Scudero há 2 anos Legal Luciano, ficamos felizes com o seu comentário! Abraços! Andersson OS há 2 anos Muito bom. Eu sou programador c#, tentei um tempo desenvolver com Google Android e ate com Xamarin. Mas de uns tempo pra cá, comecei trabalhar bastante como front-end com angularjs, html5 me sai bem. Hoje eu escolheria o Ionic que ta bem mais no meu perfil. Erick Scudero há 2 anos Verdade, Andersson, o Ionic tem crescido muito. Estamos pensando em lançar um curso com a tecnologia. Abraços e valeu pelo comentário. 03/09/2019 00(03Desenvolvimento mobile multiplataforma ou nativo, qual é melhor? Página 18 de 19https://becode.com.br/desenvolvimento-mobile-multiplataforma-ou-nativo/ Ana há 2 anos Parabéns pelo post Erick Scudero há 2 anos Valeu Ana! Hilton há 2 anos Parabéns pelo post. Muito Bom. Devo me matricular em breve. Abraços. Erick Scudero há 2 anos Legal Hilton, fico feliz com o seu comentário. Abraços! Carlos Augusto há um ano Erick, Minha APP necessita de uso de banco de dados e estou iniciando com C# usando SQLite. Tenho três dúvidas: 1) SQLite é uma boa escolha? 2) Usando SQLite como BD qual seria a melhor escolha de ambiente? (Estou tendente a optar por multiplataforma.) 3) Em sendo multiplataforma qual seria a ferramente que você escolheria? Muito obrigado e parabéns pelo post! Becode há um ano Carlos, tudo bem? 1) Não temos muito como opinar sobre o SQLite. Não usamos ele na Becode. Recomendo que você dê uma olhada nesse post para mais informações sobre SGBDs. 2) Quanto a escolha do ambiente, você pretende desenvolver para iOS e Android? Você tem uma equipe ou é só você? Se for só você, recomendo multiplataforma, a não ser que você esteja falando de uma aplicação que precise ser desenvolvida nativamente. 3) Carlos, a ferramenta é uma escolha que varia bastante, mas gostamos muito do React 03/09/2019 00(03Desenvolvimento mobile multiplataforma ou nativo, qual é melhor? Página 19 de 19https://becode.com.br/desenvolvimento-mobile-multiplataforma-ou-nativo/ Native, Ionic, Xamarin, enfim… Espero ter conseguido ajudar um pouco Abraços! William há 10 meses Meus rascunhos de um app está quase finalizado e agora só me restam dúvidas. Mesmo com tantos frameworks, fico com dúvidas sobre o licenciamento destas ferramentas. A maioria é totalmente gratuita se seu código for open-source, mas e exigem uma licença ($) para fins comerciais. Muitos não se atentam a esse detalhe. Pretendem lançar um app para obter algum retorno financeiro e dúvido que queiram abrir o código-fonte. Existe algum framework gratuito também para desenvolvimento de código fechado para quem não tem muitos recursos para pagar por essas licenças? Franciele há 2 meses Apesar do nome, React native é uma tecnologia para desenvolvimento hibrido e não nativo , certo? Sabe dizer exemplos de app feitos com ele?
Compartilhar