Desenvolvimento de aplicativos móveis multiplataforma. Desenvolvimento multiplataforma: a favor ou contra? Baixos custos operacionais

Lar / Portáteis

Parece que temos desenvolvimento multiplataforma, o que permite criar aplicações universais para diferentes plataformas. Escrevi o aplicativo mais rápido e imediatamente o lancei em todos os lugares - lucro! E nenhum desenvolvimento nativo é necessário. Ou ainda é necessário? Sobre as nuances de ambas as abordagens de desenvolvimento aplicativos móveis perguntamos aos nossos especialistas.

“Desenvolvedor móvel” é um conceito amplo. Desenvolvedor implementando partes de dispositivos móveis sistema operacional, também é desenvolvedor móvel. E se o objetivo é se tornar um desenvolvedor assim, então você precisa começar aprendendo C++, um sistema operacional e hardware móvel. dispositivos móveis.

Se você se refere a um desenvolvedor que implementa aplicativos móveis personalizados, precisa começar com o desenvolvimento nativo.

Por que isso acontece? O desenvolvimento nativo permite estudar melhor e mais profundamente os recursos de sistemas operacionais específicos (e aplicativos para eles) e hardware móvel.

Do ponto de vista do usuário, o desenvolvimento nativo definitivamente vence. Os aplicativos nativos funcionam mais rápido, sua interface é mais responsiva e mais familiar para os usuários de um sistema operacional móvel específico, eles fazem melhor uso dos recursos de hardware do dispositivo, funcionam melhor offline e apresentam menos bugs.

A ideia original do desenvolvimento multiplataforma é reduzir os custos de mão de obra do desenvolvedor. Pode ser expresso resumidamente da seguinte forma: “Feito uma vez, funciona em qualquer coisa”. A ideia é boa e correta (do ponto de vista do desenvolvedor), mas há problemas de qualidade. Qualquer versatilidade vem inerentemente com um compromisso, e o campo do desenvolvimento móvel não é exceção.

Ao escolher o tipo de desenvolvimento para uma tarefa específica, o desenvolvedor precisa avaliar o quão aceitável é esse compromisso. Existem uma série de tarefas onde a utilização do desenvolvimento multiplataforma será bastante justificada, por exemplo, em projetos de teste, versões mobile de sites, jogos utilizando frameworks como Unity 3D.

Ao mesmo tempo, para projetos que resolvem problemas de negócios móveis (com alta carga, necessidade de suporte ao modo offline, visando desenvolvimento de longo prazo), o desenvolvimento nativo parece ser o único ideal (e para algumas tarefas, o único possível ) opção.

Ao mesmo tempo, as principais desvantagens do desenvolvimento nativo são o tempo de desenvolvimento (é necessário mais) e a necessidade de recursos diversos (desenvolvedores em diferentes linguagens de programação nativas). Existem maneiras de mitigar essas deficiências - por exemplo, usar algum tipo de plataforma de aplicativos móveis (classe MEAP) para desenvolvimento, que permite criar aplicativos nativos.

Promover rebaixar

, Diretor de Desenvolvimento Tecnológico da empresa de TI "ID - Management Technologies"

Qualquer biblioteca ou estrutura multiplataforma é baseada nos mesmos mecanismos nativos nos quais o desenvolvimento nativo é implementado diretamente. Só que no caso de soluções multiplataforma, os processos de trabalho são construídos de forma a “suavizar os cantos” no sentido de trazer a interface da solução final para um determinado denominador comum.

Via de regra, o universalismo nem sempre é a resposta para a tarefa de criar uma solução móvel funcional: o desenvolvedor trabalha melhor quanto melhor entende os mecanismos de vários processos por dentro, como se costuma dizer, “nos bastidores”.

Além disso, bastante modelo de trabalho Haverá domínio simultâneo dos elementos básicos das duas abordagens; não há nada impossível em tal tarefa de aprendizagem no estágio inicial; Por exemplo, tal cenário pode revelar-se bastante viável e promissor: começar a trabalhar num paradigma multiplataforma e, ao mesmo tempo, de forma independente ou com a ajuda de colegas, estudar quais as capacidades nativas existentes para o desenvolvimento de soluções atuais e como eles podem ser aplicados na prática.

Nesse caso, é mais fácil obter uma compreensão abrangente de como funciona em princípio o processo de desenvolvimento mobile, que é chamado de ponta a ponta. Isso também é útil porque qualquer plataforma universal, mesmo a mais avançada, fica atrás da plataforma nativa em suas capacidades: os fabricantes de hardware e sistemas operacionais móveis geralmente trabalham juntos e aumentam constantemente os recursos das soluções finais - os recursos das plataformas de desenvolvimento móvel, especialmente cruzadas soluções de plataforma, inevitavelmente ficam para trás.

Novos produtos no segmento de dispositivos móveis aparecem constantemente no mercado, alguns deles significativamente à frente de seu tempo - vejamos a Samsung e seu desenvolvimento de um dispositivo com tela dobrável: é óbvio que, devido a um front-end radicalmente diferente , as plataformas de desenvolvimento existentes não estão preparadas para tais coisas.

É aqui que o conhecimento profundo de plataformas nativas se torna útil: somente um desenvolvedor com conhecimento profundo e sistêmico de desenvolvimento móvel, ou seja, plataformas nativas, pode compensar o atraso natural em relação ao hardware e ao sistema operacional. Somente tal especialista será capaz de aumentar a funcionalidade de sua solução para os dispositivos móveis mais recentes, com base nas plataformas de desenvolvimento não totalmente avançadas atualmente disponíveis.

O desenvolvimento multiplataforma é ótimo para prototipagem, teste rápido ideias, etc. Assim que se trata de criar produtos verdadeiramente fundamentais, o desenvolvedor inevitavelmente se depara com a necessidade de um estudo aprofundado dos elementos básicos do processo, ou seja, do desenvolvimento nativo.

Promover rebaixar

, Reitor da Faculdade de Desenvolvimento iOS GeekUniversity, portal educacional GeekBrains

Resposta curta: se você não tem experiência em programação, então, é claro, você precisa escolher o desenvolvimento nativo. O desenvolvimento multiplataforma é bom para especialistas que estão migrando de áreas relacionadas para o desenvolvimento móvel. Por exemplo, se você é um desenvolvedor front-end com bom conhecimento de JavaScript usando a estrutura React Native (construída sobre a estrutura React), você pode tentar dominar o desenvolvimento móvel de forma rápida e fácil. Da mesma forma, será mais fácil para um desenvolvedor .NET dominar a estrutura Xamarin.

O desenvolvimento multiplataforma também é benéfico para o cliente - é mais fácil encontrar uma equipe de desenvolvedores que, de acordo com um modelo comum, desenvolverá um aplicativo para duas plataformas ao mesmo tempo.

As vantagens são óbvias, mas quais são as desvantagens do desenvolvimento multiplataforma?! Acredita-se que quanto mais complexa e sutil for a funcionalidade de um aplicativo móvel, mais difícil, senão impossível, implementá-la usando ferramentas multiplataforma - isso muitas vezes supera todas as vantagens das ferramentas universais. Na minha experiência, existem várias grandes empresas que, com o crescimento da sua aplicação, foram obrigadas a abandonar o cross-platform em favor do desenvolvimento nativo. Assim, para pequenos projetos e, possivelmente, tarefas freelance, as soluções gerais são suficientes, mas para grandes projetos, as nativas são mais adequadas.

A demanda para ambas as áreas é bastante alta, mas para desenvolvimento nativo é um pouco maior: por solicitação de Swift em hh.ru na Rússia - 369 vagas, Kotlin - 397, React Native - 111, Flutter - 13 Xamarin - 18. Mas fique tranquilo , um bom especialista em Não sobrará emprego em nenhum setor.

Promover rebaixar

Para começar, é importante observar que qualquer aplicativo móvel consiste em várias camadas:

  • UI é o que o usuário vê;
  • lógica de negócios é a razão pela qual o aplicativo foi escrito;
  • outros componentes da plataforma - trabalhando com a rede, bancos de dados e outros componentes do sistema que são usados ​​pela lógica de negócios.

Dependendo da aplicação específica, o tamanho dos componentes nessas camadas pode variar bastante. Por exemplo, um aplicativo para leitura de notícias em um site será muito diferente de um cliente VPN.

O desenvolvimento em si pode ser dividido em três tipos: nativo, totalmente multiplataforma e híbrido.

Desenvolvimento nativo

No desenvolvimento nativo, todas as três camadas são escritas usando o mesmo conjunto de ferramentas. Portanto, eles podem interagir entre si sem qualquer complexidade adicional.

Vantagens do desenvolvimento nativo:

Desenvolvimento híbrido

Este tipo de desenvolvimento combina as duas abordagens anteriores. A camada de lógica de negócios é construída como um componente “portátil”, e a interface do usuário e a integração da plataforma são criadas usando ferramentas padrão. Existem várias linguagens para escrever lógica geral: C/C++ (solução madura e poderosa), KotlinNative (desenvolvida muito ativamente) e JavaScript (menos comum).

Vantagens:

  • os componentes mais adequados para isso permanecem nativos;
  • a lógica geral é criada uma vez.

Imperfeições:

  • se um componente comum for criado por uma equipe móvel, será necessário obter conhecimento em mais um idioma;
  • há uma sobrecarga para integração de componentes de plataforma cruzada.

Que tipo de desenvolvimento é melhor para começar?

Para responder a essa pergunta, você precisa entender que tipo de projetos deseja criar. Pequenos projetos podem ser puramente multiplataforma e isso será completamente justificado. Aqui eu aconselho você a dar uma olhada no Flutter.

Mas hoje eu começaria com o desenvolvimento nativo. Em primeiro lugar, a maioria dos projetos hoje são criados de forma nativa. Isso significa que você terá mais oportunidades de mudar de projeto/empresa. Em segundo lugar, com o tempo será possível passar para o desenvolvimento híbrido de plataforma cruzada. Isso permitirá que você cresça em questões técnicas.

Promover rebaixar

Na minha opinião, é melhor começar com o nativo e depois, se você realmente quiser, dominar uma ou mais ferramentas multiplataforma. A única exceção pode ser o desenvolvimento de jogos, já que eles são escritos principalmente em Unity, e este é um mecanismo multiplataforma.

Se falamos das vantagens do desenvolvimento nativo, então para um programador isso significa menos obstáculos e um maior número de ferramentas diferentes para trabalhar. Ele também terá mais fontes de informação para resolver problemas complexos que surgem no processo de criação de um aplicativo - não é segredo que há muito mais dicas e truques na Internet para desenvolvimento nativo do que para desenvolvimento multiplataforma.

Para o usuário final, o desenvolvimento nativo significa que o aplicativo terá interfaces e padrões de comportamento familiares e previsíveis - desde que o aplicativo seja escrito de acordo com todos os guias.

Uma aplicação multiplataforma nem sempre consegue cumprir integralmente as diretrizes de ambas as plataformas, e isso pode criar dificuldades adicionais para o desenvolvedor e para o usuário. O exemplo mais simples- a situação do botão “Voltar”: no Android está presente em quase todas as telas, enquanto no iOS não. Se você fizer um aplicativo multiplataforma sem este botão, alguns usuários do Android poderão sentir desconforto.

Também vale a pena mencionar as diferenças nos custos de desenvolvimento. Se o projeto não for complexo, então escolher o desenvolvimento multiplataforma permite economizar seu orçamento, já que você, na verdade, não está desenvolvendo produtos separados para plataformas diferentes, mas um para todas. Mas se o projecto crescer, então a balança começa a pender na outra direcção e o desenvolvimento nativo pode revelar-se mais rentável.

Quando se trata de velocidade de aplicação, os produtos multiplataforma são mais lentos. Por exemplo, aqueles baseados em tecnologias web possuem um navegador como camada, o que retarda significativamente a aplicação.

Promover rebaixar

A escolha de uma abordagem multiplataforma ou nativa depende, na verdade, de dois fatores: a natureza do desenvolvimento móvel que você deseja realizar pessoalmente ou a solicitação dos empregadores com os quais você está interessado em colaborar. Assim, por exemplo, se você olhar para o Upwork (uma plataforma para encontrar especialistas remotos para projetos e tarefas), notará uma clara preponderância de ofertas na direção de Xamarin e React Native. As vantagens aqui são óbvias: é barato, rápido e permite implementar projetos em todas as plataformas ao mesmo tempo. Porém, se considerarmos as grandes empresas de TI que buscam funcionários internos, então há uma ênfase significativa no desenvolvimento nativo, apesar de esse tipo exigir mais tempo e ser mais caro.

Em nossa empresa, priorizamos e escolhemos o desenvolvimento nativo porque permite que designers e desenvolvedores criem uma UX/UI mais suave e intuitiva. Além disso, o desenvolvimento nativo oferece controle mais flexível sobre as funções do sistema.

Promover rebaixar

Se você deseja se tornar um desenvolvedor móvel, a resposta é óbvia: você precisa escolher qualquer um dos ambientes de desenvolvimento nativos e contar com Objective-C/Swift para iOS ou Java/Kotlin para Android. Neste caso, todas as capacidades do sistema estão ao seu serviço;

Se você deseja apenas escrever um programa que também funcione em telefones, não precisa pensar muito e escolher o que mais lhe apaixona ou no qual você tem alguma experiência notável: C++, React Native, Xamarin ou quinhentos mil frameworks JS para desenvolvimento multiplataforma. Ou até mesmo continue criando seus próprios sites [responsivos].

Admito que sou bastante cético em relação a toda a ideia de desenvolvimento multiplataforma em plataformas tão diferentes (e divergentes) quanto Android e iOS. Nenhum dos fornecedores gosta de desenvolvedores “errados” tentando sentar em duas cadeiras ao mesmo tempo. Todos estão tentando vincular os programadores a ferramentas e ambientes, e nenhuma tendência de convergência pode ser esperada no futuro próximo. O que posso dizer, a Apple nesta corrida até abandonou o OpenGL, a mais multiplataforma de todas as bibliotecas depois do Curl, mas agora eles têm seu próprio Metal, que parece fazer a mesma coisa, só que melhor e em uma linguagem diferente.

Por outro lado, muitas vezes o desenvolvimento móvel significa criar duas aplicações de aparência idêntica para algum serviço de rede. Os clientes nem sempre estão dispostos a pagar por dois produtos que parecem completamente indistinguíveis, por isso a procura por tecnologias de desenvolvimento multiplataforma existe e, reconhecidamente, é bastante elevada. Os programadores também não são avessos a economizar dinheiro, especialmente se desejam vender um aplicativo móvel e não desejam aprender Swift/Kotlin, mas JS/C# já está ao seu alcance.

É claro que o desenvolvimento multiplataforma traz consigo muitas nuances não óbvias. Todas as soluções universais são forçadas a construir castelos na areia: seja contando com soluções tecnológicas complexas e frágeis (como o Xamarin), ou com motores JavaScript móveis, como o React Native. Ao mesmo tempo, os fornecedores de plataformas nem sequer pensam em oferecer suporte a qualquer uma das soluções, e cada atualização do SDK nativo é uma grande dor de cabeça para qualquer estrutura multiplataforma. Sem mencionar recursos específicos do sistema, como acesso à câmera, chaveiro ou até mesmo uma galeria de fotos banal, que todos tentam contornar com vários graus de sucesso. Os desenvolvedores que escolhem o caminho universal ficam reféns de sua estrutura e, muitas vezes, o desenvolvimento que prometia economias significativas se transforma em uma luta contra o rake.

Também é comum que soluções multiplataforma sacrifiquem o que é chamado de experiência do usuário (UX): muitos frameworks tentam usar controles o mais gerais possíveis para ambos os sistemas, e esta solução é quase sempre igualmente inconveniente para todos. Ou desacelera. Ou se destaca do estilo geral. Ou esgota a bateria. Continue a lista você mesmo.

Destacam-se os aplicativos multiplataforma, cujos kernels são escritos em um nível baixo, tão comum quanto possível para todos os sistemas operacionais: em linguagens como C/C++. Nesse caso, costuma-se generalizar o uso de código que atende à lógica de negócios, e a interface é escrita para cada plataforma separadamente. Idealmente, a duplicação de uma parte crítica da aplicação seria evitada, mantendo ao mesmo tempo uma experiência de usuário específica da plataforma. Porém, na vida real tudo é mais complicado. Por exemplo, o Dropbox tentou conviver com um kernel de baixo nível por vários anos consecutivos, mas no final desistiu por vários motivos e agora está satisfeito com os aplicativos da plataforma nativa. Remeto aos interessados ​​o seu interessante artigo sobre este tema.

Na minha opinião, as poupanças em estruturas multiplataforma são sempre ilusórias. Provavelmente, em alguns projetos triviais, onde o aplicativo é apenas uma versão do site principal, superotimizado para mobile, a abordagem generalizada funciona. Em outros casos, você corre o risco de repetir o destino do Dropbox. Meu conselho é que se você quer ser um desenvolvedor mobile, se esforce para aprender a plataforma. Eles sempre valerão a pena, mesmo que você tenha que participar de um projeto multiplataforma.

Promover rebaixar

, desenvolvedor de software sênior no Accenture Tver Technology Center

O mercado de aplicativos móveis está se desenvolvendo ativamente e a gama de tecnologias para seu desenvolvimento está crescendo correspondentemente. Existem muitas ferramentas que você pode usar.

Para desenvolvimento nativo em Plataforma Android Existe Java ou um wrapper sobre a JVM - Kotlin. Para iOS, você pode usar Objective-C ou seu wrapper - Swift. Todas essas são linguagens OOP que herdaram muito do Smalltalk e do C.

Para desenvolvimento multiplataforma, atualmente eles usam o Flutter do Google, para o qual você precisará conhecer o Dart. Ou React Native do Facebook.

Para um desenvolvedor móvel iniciante, o fator determinante provavelmente será sua experiência anterior e conhecimento de idiomas. Se seu kit de ferramentas for baseado em Java, ele poderá explorar o mundo do desenvolvimento mobile com muito mais rapidez através da plataforma Android, usando o mesmo Java ou Kotlin.

Ao mesmo tempo, o desenvolvimento de Objective-C para iOS exigiu muito do Smalltalk, como Java, então, se desejar, você pode optar pelo iOS. Mas vale a pena considerar que o desenvolvimento para Android pode ocorrer em Windows ou Linux, mas iOS requer MacOS X. Mas para um desenvolvedor JavaScript com conhecimento de React, React Native é obviamente o caminho mais rápido. Assim como para os desenvolvedores do Dart, a escolha será a favor do Flutter.

Depois que um desenvolvedor iniciante tiver uma ideia do que é desenvolvimento móvel, quais os prós e contras que o caminho escolhido oferece, ele decidirá por si mesmo se trabalhará com uma abordagem ou resolverá problemas usando soluções multiplataforma.

Essa abordagem tem suas vantagens: o método multiplataforma permite lançar um projeto em um ambiente produtivo com um pouco mais de rapidez, utilizando menos recursos. Além disso, é mais fácil de manter. Mas também tem desvantagens óbvias tanto para o desenvolvedor quanto para o usuário. Por exemplo, um desenvolvedor não precisa conhecer tecnologias nativas, mas as diretrizes da plataforma devem ser levadas em consideração, pois uma aplicação escrita de acordo com as diretrizes do iOS causará dificuldades para Usuários do Android e vice-versa.

Os aplicativos multiplataforma não podem atingir o mesmo nível de integração de dispositivos que os nativos. Ou seja, se o aplicativo trata de interagir com um dispositivo, por exemplo, com uma câmera, um calendário, ou usar o poder computacional do dispositivo, então será mais fácil conseguir isso usando uma abordagem nativa, e será mais rápido e mais produtivo.

Ao desenvolver uma aplicação multiplataforma, os especialistas levam em consideração as capacidades do framework, que impõe restrições. Vale considerar também que para desenvolver um produto utilizando tecnologias nativas são necessários especialistas para cada plataforma.

Se você trabalha como freelancer ou tem como objetivo cobrir o número máximo de dispositivos com recursos mínimos, concentre-se no desenvolvimento multiplataforma se você se concentra em soluções móveis ou trabalha como desenvolvedor front-end.

Quais são as principais vantagens e desvantagens do desenvolvimento móvel nativo e multiplataforma? O desenvolvimento nativo em si é caro porque a empresa precisa investir em duas equipes – iOS e Android. Para aplicações simples, a velocidade de desenvolvimento no Flutter/React Native é maior.

Mas a vantagem é que a infraestrutura já está formada e é compreensível. Você obtém acesso a qualquer recurso do dispositivo e pode desenvolver sob relógio inteligente, carros e muito mais.

O desenvolvimento multiplataforma também é uma coisa legal. Mas ainda não está muito desenvolvido no mercado de trabalho de TI na Rússia. Você pode contar os especialistas inteligentes nos dedos. A infra-estrutura-quadro é jovem, mas a situação está gradualmente a mudar para melhor. Este desenvolvimento permite escrever para vários dispositivos ao mesmo tempo. Mesmo se você escrever em Flutter, por exemplo, ele se integra facilmente ao código nativo.

Promover rebaixar

O desenvolvimento multiplataforma visa resultados rápidos e economias orçamentárias significativas - escrevemos um código para todos os dispositivos. O seu âmbito de aplicação é quer uma solução para uso interno, onde a usabilidade do produto não é tão importante, e a funcionalidade desempenha um papel dominante, ou a criação de um rápido projecto “piloto”, quando o cliente necessita de mostrar o princípio ou ideia do aplicativo. Além disso, se não houver um entendimento preciso do dispositivo com qual sistema operacional seu protótipo será visualizado, o desenvolvimento multiplataforma é a saída. No entanto, você precisa entender antecipadamente que todos os dispositivos possuem arquiteturas diferentes, portanto, é fisicamente quase impossível executar um aplicativo de alta qualidade usando apenas código de plataforma cruzada. Cenários complexos exigirão a escrita de código nativo. Além disso, devido às suas especificidades, o desenvolvimento multiplataforma acarreta custos que não permitem que a aplicação seja o mais eficiente possível. Isto é compreensível, em nesse caso o código intermediário multiplataforma deve ser traduzido para cada plataforma, o que torna a aplicação mais “pesada” pelo fato de além do código funcional conter seu ambiente de execução.

Me dê outra opinião

Está tudo claro, mostre suas conclusões

Então, qual abordagem de desenvolvimento você deve adotar?

Tudo depende da tarefa. Se você precisar escrever um protótipo de aplicativo para múltiplas plataformas ou versão móvel site, então você pode procurar estruturas de plataforma cruzada. Com a ajuda deles, você provavelmente escreverá um aplicativo mais rápido do que com o desenvolvimento nativo, especialmente se trabalhar em uma estrutura semelhante à sua ferramenta usual, como o React Native.

Por outro lado, a versatilidade das aplicações multiplataforma deve ser compensada de alguma forma. Em algum lugar aparece um elemento de interface “não nativo”, em algum lugar a interação com o sistema é pior, em algum lugar a velocidade de trabalho diminui, etc. Apesar do desenvolvimento nativo exigir mais recursos, muitas empresas preferem porque O resultado é mais produto estável e de aparência nativa.

A este respeito, se você está apenas começando desenvolvimento móvel, então seria melhor fazer o desenvolvimento nativo primeiro. Você pode encontrar mais informações sobre isso na Internet, obterá uma compreensão mais profunda dos recursos da plataforma e não será prejudicado por certas nuances do desenvolvimento multiplataforma. Além disso, se você decidir se envolver no desenvolvimento multiplataforma no futuro, o conhecimento adquirido definitivamente não irá prejudicá-lo.

Lembramos que você pode fazer sua pergunta aos especialistas e coletaremos as respostas se for interessante. As perguntas que já foram feitas podem ser encontradas na lista de problemas. Se você deseja se juntar ao grupo de especialistas e enviar uma resposta da sua empresa ou de você mesmo, escreva para , nós lhe diremos como fazer isso.

O desenvolvimento multiplataforma permite criar um aplicativo móvel que funcionará simultaneamente em iOS e Android. Esta é uma alternativa de baixo custo para criar um aplicativo para cada sistema operacional separadamente.

Recursos de desenvolvimento multiplataforma

Desenvolver um aplicativo para plataformas diferentes é bom e ruim ao mesmo tempo. Bom, porque isso pode ser feito de forma mais rápida e barata do que vários aplicativos para cada sistema operacional. E isso é ruim, porque o comprometimento afeta o funcionamento do aplicativo.

Estas características devem ser levadas em consideração antes de iniciar o projeto:

  • Em um ambiente multiplataforma, o código é escrito uma vez. Para fazer o aplicativo funcionar em outro sistema operacional, o código é traduzido para outra linguagem de programação. O tempo e o dinheiro gastos no desenvolvimento são 1,5 vezes menores.
  • Os aplicativos podem não funcionar corretamente. No desenvolvimento multiplataforma, é impossível levar em consideração todas as nuances de trabalhar com a arquitetura de cada sistema operacional, portanto os aplicativos podem rodar mais lentamente do que aqueles desenvolvidos especificamente para iOS ou Android.
  • Os requisitos de interface e design de elementos variam entre os sistemas operacionais. Por exemplo, o iOS não possui um botão Voltar como o Android. Ao desenvolver um design unificado, este ponto deve ser levado em consideração: no iOS o botão permanecerá, mas não funcionará, ou terá que ser recortado manualmente, o que significa trabalho adicional com o código.

A maioria dos erros na migração de uma plataforma para outra pode ser resolvida manualmente, mas é impossível resolver completamente os problemas de adaptação a um sistema operacional “não nativo”.

Então o desenvolvimento multiplataforma é ruim?

Não, o desenvolvimento multiplataforma é bom, desde que você não exija mais dele do que ele pode oferecer.

Esta opção pode ser selecionada nos seguintes casos:

  • Cubra todos os sistemas operacionais com um orçamento limitado. Se o público-alvo usa ativamente iOS ou Android, você pode começar com um aplicativo nativo para um sistema operacional. Se a cobertura máxima for importante imediatamente, é melhor escolher uma opção multiplataforma.
  • Verifique o nicho. Se houver uma ideia promissora, mas você não tiver certeza de que funcionará, é arriscado investir imediatamente um grande orçamento em desenvolvimento. Faz sentido começar com o desenvolvimento multiplataforma, estudar as reações dos usuários e tomar decisões estratégicas com base nisso.
  • O aplicativo não utiliza animações complexas e não realiza cálculos. Essas operações carregam seriamente o dispositivo e o aplicativo multiplataforma não é otimizado para uso total dos recursos de uma plataforma específica.
  • O aplicativo utiliza apenas as funções básicas do dispositivo. Mostre informações, faça upload de arquivos, use geolocalização, faça um pedido - o aplicativo multiplataforma pode cuidar de tudo isso. É necessária uma integração mais profunda dos recursos do dispositivo - você terá que escolher o desenvolvimento nativo.
  • Aplicativo corporativo para funcionários. Se o aplicativo for desenvolvido para tarefas internas restritas e as pessoas trabalharem com ele por meio de dispositivos pessoais, um aplicativo multiplataforma será a melhor opção.

Não existe uma resposta universal para a questão de saber se soluções multiplataforma podem ser usadas para o seu projeto. Preencha o formulário abaixo: estudaremos seu projeto e selecionaremos a melhor opção para sua implantação.

Aplicativos multiplataforma – ser ou não ser? A questão não é fácil, pois cada empresa tem seus próprios objetivos e requisitos para aplicações móveis. Mas hoje com certeza descobriremos qual desenvolvimento é certo para você.

O que são aplicativos multiplataforma?

Aplicativos de plataforma cruzada são aplicativos desenvolvidos e executados em Android e iOS. A essência do desenvolvimento é que código fonte O aplicativo é traduzido para nativo, ou seja, compreensível para um dispositivo móvel específico. Como resultado, o programa pode interagir com o sistema operacional instalado nele.

Lembramos: os aplicativos nativos, ao contrário dos aplicativos multiplataforma, são escritos para um sistema operacional específico.

Prós do desenvolvimento multiplataforma

  • extensão base de usuários devido ao aparecimento do aplicativo em diversas lojas simultaneamente;
  • O código-fonte único elimina a necessidade de contratar vários desenvolvedores para cada plataforma;
  • 75% da base de código de uma aplicação multiplataforma pode ser reaproveitada, adaptando-a para novos projetos.

Desvantagens do desenvolvimento multiplataforma

1. Forte dependência de um dispositivo móvel

Os aplicativos multiplataforma geralmente não funcionam offline. Portanto, suas capacidades dependem muito de o usuário ter uma conexão estável com a Internet. A versão do sistema operacional e o modelo do dispositivo também são importantes. É quase certo que um aplicativo multiplataforma reduzirá o desempenho de um dispositivo com mais de um ou dois anos. Embora um aplicativo nativo funcione de forma estável, mesmo em um gadget antigo com firmware desatualizado. Portanto, se você não deseja que seus clientes leiam comentários irritados sobre como seu aplicativo finalmente “acabou” com o smartphone de alguém, escolha o desenvolvimento nativo.

2. Interface de usuário hostil

Os usuários ficam tão acostumados com isso aparência e a funcionalidade dos seus gadgets, que esperam a máxima capacidade de resposta das aplicações neles instaladas. Eles querem ter certeza de que cada botão estará em seu devido lugar, que a página rolará na velocidade ideal para eles e que qualquer ação realizada será seguida por uma resposta imediata. Os aplicativos multiplataforma geralmente têm dificuldade de adaptação ao dispositivo e não podem se orgulhar de desempenho.

O problema é que não existem diretrizes para o desenvolvimento multiplataforma - padrões de desenvolvimento dos criadores do sistema operacional. Portanto, um aplicativo multiplataforma feito “para Android” não será conveniente para um usuário iOS e vice-versa. É claro que você pode criar designs separados para cada plataforma, mas em termos de custos de mão de obra isso será igual à criação de dois aplicativos diferentes, embora no mesmo idioma.

3. A luta pela primazia entre as ferramentas de desenvolvimento

No mercado de soluções de desenvolvimento multiplataforma, a concorrência está cada dia mais acirrada. Até o momento, React Native e Xamarin são os mais populares entre os desenvolvedores, mas podem muito bem ser superados, por exemplo, pelo Vue Native. Neste caso, os antigos líderes da corrida perderão a sua vantagem mais importante - suporte operacional código. E isso pode acontecer com qualquer ferramenta multiplataforma.

O desenvolvimento nativo não tem medo de tal problema. A introdução de novas ferramentas ocorre de forma gradual, e o conhecimento de diversas linguagens de programação, obrigatório para um especialista, permitirá que ele entenda rapidamente todas as inovações. Além disso, existem enormes comunidades profissionais em torno de cada sistema operativo, pelo que qualquer dificuldade que surja é resolvida através da procura de um problema semelhante em fóruns, onde milhares de pessoas estão prontas para sugerir e ajudar a resolvê-lo.

Qual aplicativo é ideal para o seu negócio?

Antes de responder a essa pergunta, é fundamental analisar o seu negócio. Segmentos de consumidores, o valor dos recursos de tempo e dinheiro, a profundidade desejada de integração do aplicativo com os dispositivos do usuário, além de metas de longo prazo claramente definidas - o mínimo do qual sua escolha dependerá. Mas tornaremos tudo mais fácil se você responder às perguntas relevantes agora mesmo.

1. O que seu público usa?

Se você sabe que a proporção de usuários de iOS e Android entre seus clientes é próxima de 50/50, escolha o desenvolvimento nativo. Isso mostrará que você respeita igualmente as necessidades de todos os seus clientes, independentemente do nível de renda.

A ligação entre a escolha de um dispositivo móvel e o nível de solvência foi mais uma vez confirmada pela App Annie. Como resultado de um estudo sobre o número de downloads e vendas de aplicativos móveis em Google Play E Loja de aplicativos no primeiro trimestre de 2018, descobriu-se que os usuários de smartphones Android baixaram 135% mais aplicativos do que os visitantes de lojas iOS. Ao mesmo tempo, a App Store trouxe aos seus proprietários 85% mais receita do que o Google Play.

O caminho para o sucesso é óbvio: jogar em dois campos ao mesmo tempo. Mais precisamente, em duas lojas. Basta calcular em qual deles o aplicativo deverá aparecer primeiro. Claro, a menos que um lançamento simultâneo faça parte da sua estratégia digital).

2. Quanto tempo você tem para desenvolvimento?

Os custos financeiros do projeto dependem da resposta a esta pergunta. O fato é que do ponto de vista do tempo gasto no desenvolvimento, uma aplicação multiplataforma só parece ser uma solução mais lucrativa. Na verdade, adaptá-lo às plataformas pode levar quase tanto tempo quanto criar dois aplicativos nativos, já que os desenvolvedores terão que escrever códigos adicionais para áreas problemáticas.

Com uma aplicação nativa definitivamente não haverá tais problemas, o que é muito importante para fidelizar um público extremamente intolerante a erros e bugs. De acordo com estatísticas da Compuware, 79% dos usuários estão dispostos a reiniciar um aplicativo se ele não funcionar corretamente durante a primeira inicialização, mas apenas 16% concordam em dar-lhe outra chance. Outros provavelmente irão simplesmente desinstalar o programa.

3. Quais recursos do dispositivo você planeja usar?

Já falamos sobre o fato de que apenas aplicativos nativos são capazes de reproduzir gráficos pesados ​​de forma rápida e sem perda de qualidade. Mas as vantagens técnicas do desenvolvimento nativo não se limitam a isto. Veja o aplicativo do Facebook como exemplo. Graças ao lançamento de versões separadas para Android e iOS, a rolagem ficou mais suave, o tempo de carregamento das imagens foi reduzido e todos os problemas de cache foram resolvidos.


Além disso, os aplicativos nativos têm acesso direto a todos os serviços do dispositivo, permitindo obter informações sobre a geolocalização do usuário ou sua lista de contatos. Os aplicativos multiplataforma precisam usar plug-ins nativos especiais, o que afeta negativamente a velocidade de transferência de dados e sobrecargas BATER dispositivos.

4. Que resultados você busca?

Uma estratégia digital é uma lista de objetivos que sua empresa pode alcançar usando ferramentas digitais. A escolha deste último depende muito dos benefícios que você deseja obter no final.


Divida o processo desde a ideia até o resultado ponto por ponto, levando em consideração todos os recursos disponíveis. As descobertas podem ser as mais inesperadas.

Por exemplo, você pode achar que é muito caro transformar seu site responsivo, que é carregado com recursos e elementos interativos, em um aplicativo multiplataforma como você queria originalmente. Ou, finalmente, certifique-se de que um site móvel sempre perca para um aplicativo móvel, assim como o desenvolvimento multiplataforma perde para o desenvolvimento nativo. E entre os motivos você encontrará aqueles que descrevemos acima.

Conclusão: um aplicativo multiplataforma é benéfico apenas em um caso - você está criando uma versão demo do aplicativo, limitada em tempo, dinheiro e especialistas altamente especializados. Em todos os outros casos, uma aplicação nativa lhe dará muitas vezes mais vantagens, pois é um nível de desenvolvimento qualitativamente diferente.

Os aplicativos móveis tornaram-se um companheiro invariável de nossas vidas. Com a ajuda deles, podemos não só divertir-nos e simplificar a nossa vida, fazer compras ou encomendar determinados serviços online, mas também promover o nosso negócio, aumentar a nossa base de clientes e, consequentemente, aumentar os lucros. E se ninguém duvida da necessidade de criar uma aplicação para o seu negócio, então podem surgir algumas dificuldades na escolha do tipo de mobile-app.

Todos os aplicativos modernos para dispositivos móveis podem ser divididos em nativos e multiplataforma, e cada um desses dois grupos tem seu próprio pontos fortes, e suas deficiências.

Aplicativos nativos são aqueles desenvolvidos especificamente para uma plataforma específica na linguagem de programação apropriada. Assim, ao criar um aplicativo para Android, utiliza-se Java, e para aplicativos iOS - Objective-c ou Swift. Ao criar tais projetos, os especialistas levam em consideração todas as funcionalidades das plataformas, prestando especial atenção ao design UI/UX, aos requisitos/recomendações dos desenvolvedores de sistemas operacionais, bem como às últimas tendências da indústria móvel. Um especialista não conseguirá dominar totalmente todas as linguagens acima, portanto, para desenvolver um produto nativo para diferentes plataformas, é necessário conectar-se desenvolvedores diferentes, e esses são custos adicionais e o tempo de desenvolvimento será impressionante. Mas, ao mesmo tempo, os aplicativos serão “adaptados” a uma plataforma específica, terão acesso aos recursos e funções internas do dispositivo e funcionarão da forma mais eficiente possível.

Apesar da considerável lista de vantagens dos desenvolvimentos nativos, nem sempre os clientes querem gastar tempo e dinheiro no seu desenvolvimento, envolvendo vários especialistas no processo de criação. A melhor opção nesses casos, é utilizado o desenvolvimento multiplataforma, que permite criar aplicativos para qualquer plataforma usando tecnologias web padrão. Neste caso, o desenvolvimento pode ser realizado por uma pessoa com o conhecimento e experiência necessários no trabalho com HTML5, JavaScript e CSS3. Os desenvolvimentos multiplataforma podem ser compilados em um arquivo .apk para Android e um arquivo .ipa para IOS. Assim, com base em um desenvolvimento, você pode obter dois aplicativos para sistemas operacionais populares, gastando menos tempo e dinheiro com isso. No entanto, tais desenvolvimentos também têm suas desvantagens, por isso é altamente aconselhável abordar cada caso específico individualmente e escolher a opção mais adequada - desenvolvimento nativo ou multiplataforma.

Partes cliente e servidor do aplicativo

Os aplicativos mais sérios têm sua própria parte de cliente, geralmente chamada de front-end, e uma parte de servidor - back-end. O frontend é responsável por aquilo que você vê na tela do seu dispositivo móvel, ou seja, toda a apresentação visual da aplicação, incluindo design, tamanho e localização de janelas, menus, botões, setas e quaisquer outros elementos. O frontend também é responsável pela resposta do aplicativo a determinadas ações do usuário destinadas a mover-se para diferentes seções do aplicativo, chamar novos menus e assim por diante.

O backend é a parte do servidor da aplicação e está localizado em um servidor remoto, que pode estar localizado em qualquer lugar e ser controlado por meio de uma ampla variedade de programas. A relação entre as partes cliente e servidor é realizada graças à API (interface de programação de aplicativos). Ou seja, a API é uma espécie de intermediário entre o frontend e o backend, que transmite as solicitações do lado do cliente para o servidor, devolvendo os dados que o usuário necessita.

Desenvolvimento de front-end

A parte cliente da aplicação é extremamente importante, pois é com ela que o próprio usuário irá lidar e seu entendimento geral do funcionamento do app dependerá da comodidade do frontend. Ele pode ser desenvolvido tanto manualmente, mas para isso é necessário ter um bom conhecimento de HTML5, CSS3 e java-script, ou utilizando os chamados frameworks. No primeiro caso, o ambiente de desenvolvimento Apache Cordova, também conhecido como PhoneGap, é frequentemente usado. Usando este ambiente, você pode criar aplicativos para qualquer plataforma usando tecnologias web, que o Cordova converte em código compreensível para uma plataforma específica. Cordova abre possibilidades virtualmente ilimitadas para desenvolvedores web que não precisam necessariamente aprender Objective-C ou Swift, Java ou Kotlin para criar aplicativos para sistemas operacionais específicos.

Embora Cordova não tenha limitações de UI e lógica, as estruturas oferecem soluções de modelos prontas. Por um lado, isso acelera e simplifica significativamente o processo de desenvolvimento, uma vez que um especialista pode usar botões, listas, campos de entrada, cartões e outros elementos de UI prontos. Por outro lado, um especialista pode utilizar para desenvolvimento apenas as ferramentas e elementos que estão disponíveis na estrutura selecionada. O mais popular deles é o Ionic, que permite criar aplicativos multiplataforma para todos os gostos. Esta estrutura possui uma grande coleção integrada de elementos padrão que imitam visualmente os aplicativos nativos, mas seu design pode ser alterado se necessário. Ao mesmo tempo, o desenvolvedor pode conectar muitos plug-ins adicionais que expandem os recursos da estrutura iônica, e o projeto criado nesta estrutura pode ser iniciado diretamente na janela do navegador e avaliar como o aplicativo criado ficará e funcionará sem a necessidade de use um emulador ou instale-o em um smartphone.

Desenvolvimento de back-end

Enquanto o lado do cliente é feito por designers e desenvolvedores com conhecimento de HTML, CSS, JS e frameworks, o backend é feito por programadores de um perfil diferente. Pode ser usado para configurar servidores idiomas diferentes programação e ferramentas, o principal é configurar corretamente seu trabalho e relacionamento com a parte cliente. Aqui é necessário utilizar sistemas de gerenciamento de banco de dados adequados. Pode ser MySQL tradicional, Redis, PostgreSQL ou qualquer outro banco de dados (por exemplo, MongoDB) que seja adequado para a implementação de um projeto específico e no qual o desenvolvedor backend seja bem versado. Para criar o lado servidor do aplicativo, os desenvolvedores podem usar PHP, NodeJS, C#, Ruby, Python, Java e outras linguagens de programação.

Os especialistas do estúdio móvel KitApp abordam o desenvolvimento de peças de front-end e back-end de forma abrangente e tão responsável quanto possível. Nossos desenvolvedores criarão para você um aplicativo multiplataforma de qualquer complexidade e foco da maneira mais rápida e eficiente possível! Contacte-nos e os nossos especialistas irão aconselhá-lo prontamente sobre todas as suas questões!

O mercado de aplicativos móveis tem mais de dez anos, mas ainda está em rápido desenvolvimento. A demanda das empresas está em constante crescimento e ainda supera significativamente a oferta, o que leva a um aumento constante no custo de desenvolvimento. Uma solução para reduzir o custo desse processo é o desenvolvimento multiplataforma, quando o mesmo código é utilizado em todas as plataformas.

Da última vez, abordamos o desenvolvimento de aplicativos móveis multiplataforma e muita coisa mudou desde então. É hora de falar novamente sobre métodos e ferramentas.

Vamos primeiro revisar a terminologia novamente.

Parentes

Se os desenvolvedores, no processo de escrita de um aplicativo, utilizarem a linguagem de programação adotada para uma plataforma específica, seja Objective-C e Swift para iOS ou, tal aplicativo será chamado de nativo (do inglês nativo - nativo, natural).

Vantagens dos aplicativos nativos:

  • velocidade e resposta da interface. O aplicativo responde aos cliques instantaneamente, praticamente não há atrasos na animação, rolagem, recebimento e saída de dados;
  • acesso claro e fácil às funções e sensores do dispositivo. Para o desenvolvedor, trabalhar com geolocalização, notificações push, tirar fotos e gravar vídeos pela câmera, som, acelerômetro e outros sensores não é problema;
  • a capacidade de trabalhar em profundidade com as funções do smartphone. Como no parágrafo anterior, coisas como animações, a criação de interfaces complexas e a operação de redes neurais diretamente nos dispositivos são implementadas, talvez não de forma simples, mas previsível;
  • . As aplicações nativas geralmente operam com elementos de interface da “plataforma”: menus, navegação, formulários e todos os demais elementos de design são retirados do sistema operacional e, portanto, são familiares e compreensíveis para o usuário.

Há apenas uma desvantagem - o alto custo de desenvolvimento e suporte, inclusive porque você precisa escrever seu próprio código para cada plataforma.

Com o crescimento do mercado de aplicativos móveis, os desenvolvedores tornaram-se não apenas caros, mas muito caros, e o desenvolvimento nativo não é algo que todo empresário possa pagar. Mas não desenvolver um aplicativo móvel pode custar mais caro no futuro. A digitação ao vivo pode ajudá-lo a economizar dinheiro - descreva sua ideia e indique o orçamento aproximado que deseja atingir, em formato .

E não parentes

Os aplicativos multiplataforma são escritos para várias plataformas ao mesmo tempo em uma linguagem diferente da nativa. Como esse código pode funcionar dispositivos diferentes? Existem também duas abordagens aqui.

A primeira é que na fase de preparação do aplicativo para publicação ele é transformado em nativo para uma plataforma específica por meio de um transpilador. Na verdade, uma linguagem de programação multiplataforma é “traduzida” para outra.

A segunda é que um determinado wrapper é adicionado ao código resultante, que, já funcionando no dispositivo, traduz instantaneamente chamadas de código não nativo para funções nativas do sistema.

Supõe-se que a maior parte deste código pode ser transferido entre plataformas – é óbvio que, por exemplo, a lógica de fazer compras, guardar mercadorias no carrinho, calcular uma rota para um táxi, escrever uma mensagem no mensageiro não muda dependendo se o cliente possui Android ou iOS. Só precisamos melhorar a UI e a UX das plataformas, mas agora, dentro de certos limites, até isso pode ser combinado - por exemplo, o menu hambúrguer é usado ativamente tanto no Android quanto no iOS. Portanto, mesmo fazer correções na interface para que o aplicativo corresponda ao espírito e à letra da plataforma desejada é uma questão de desejo, da velocidade e qualidade de desenvolvimento exigidas.

Vantagens:

  • custo e velocidade de desenvolvimento. Como é necessário escrever muito menos código, o custo do trabalho é reduzido;
  • a capacidade de usar os recursos internos da empresa. Como mostraremos mais tarde, o desenvolvimento de aplicativos multiplataforma muitas vezes pode ser feito pelos programadores existentes.

Imperfeições:

  • interface não nativa ou, no mínimo, a necessidade de trabalhar com a interface de cada plataforma separadamente. Cada sistema tem seus próprios requisitos para o design dos elementos e às vezes são mutuamente exclusivos. Isto deve ser levado em conta durante o desenvolvimento;
  • problemas na implementação de funções complexas ou possíveis problemas trabalhando mesmo com procedimentos simples devido a erros nos próprios frameworks de desenvolvimento. O ambiente de plataforma cruzada apenas traduz solicitações para chamadas e interfaces do sistema em um formato que o sistema entende e, portanto, neste estágio, tanto dificuldades de compreensão quanto erros podem ocorrer dentro da própria estrutura;
  • velocidade de trabalho. Como o ambiente multiplataforma é uma “superestrutura” do código (nem sempre, mas em determinadas situações), ele possui seus próprios atrasos e pausas no processamento das ações do usuário e na exibição dos resultados. Isso era especialmente perceptível há alguns anos em smartphones que tinham menor potência em comparação aos atuais, mas agora, com o aumento do desempenho dos dispositivos móveis, isso já pode ser negligenciado.

Como você pode ver, esses dois métodos são praticamente imagem espelhada entre si - que o desenvolvimento de aplicativos nativos tem vantagens, o desenvolvimento de aplicativos multiplataforma tem desvantagens e vice-versa.

Plataformas e ferramentas populares para desenvolvimento móvel multiplataforma

Como escrevemos acima, existem duas abordagens - transformar o código em nativo na fase de montagem ou adicionar um determinado wrapper que traduz chamadas de e para o sistema.

Cordova e PWA são duas ferramentas que funcionam justamente na ideologia de um wrapper.


Córdoba e HTML5

Uma das áreas mais populares da programação multiplataforma, que costuma ser popularmente chamada de PhoneGap. Na verdade, é criado um site mobile, que é “envolto” em um pequeno código de plataforma que transmite chamadas do sistema para o aplicativo e vice-versa.

Todas as desvantagens e vantagens são expressas aqui de forma mais clara do que em qualquer outro lugar. Você pode usar desenvolvedores web (HTML, CSS e JavaScript como tecnologias principais) e fazer a primeira versão do aplicativo em um mês ou até algumas semanas por relativamente pouco dinheiro. Sim, sua operação será lenta e poderá não ter uma geolocalização totalmente precisa, mas funcionará em todos os dispositivos e permitirá, no mínimo, testar a demanda dos clientes em dispositivos móveis.

Um grande número de estruturas foram criadas para esta abordagem, mas todas fazem essencialmente a mesma coisa. A diferença entre eles é que Cordova (PhoneGap) não define restrições e modelos na lógica e UI para seu projeto HTML5, e os frameworks operam com seus próprios elementos de UI prontos que simulam plataformas móveis e sua lógica de desenvolvimento. Um exemplo desta abordagem é: Ionic Framework – wrapper; Framework7, Mobile Angular UI, Sencha Touch, Kendo UI - estruturas de interface.

PWA

A tecnologia da moda do Google são as mesmas aplicações web, mas através do uso de certas tecnologias (principalmente os chamados Service Workers - trabalhando em fundo scripts e Web App Manifest - uma descrição de um aplicativo da web em um formato compreensível para um sistema móvel) eles podem funcionar como nativos sem o wrapper PhoneGap. Eles podem ser instalados na tela inicial, contornando a app store, funcionar offline, funcionar com notificações push e com funções nativas.

O problema é que nem todas as plataformas ainda suportam estas “certas tecnologias”. Isso diz respeito principalmente à Apple, que aparentemente não gosta da capacidade de distribuir aplicativos contornando a App Store.

Levando em consideração todas as deficiências das soluções HTML5, muitas empresas criaram ferramentas que permitem escrever código em um idioma não nativo e depois traduzi-lo para o nativo. Isso mata dois coelhos com uma cajadada só: há apenas uma base de código e os aplicativos são o mais próximos possível dos nativos.


Xamarin

Plataforma Microsoft. O padrão de linguagem de programação para desenvolvimento empresarial é C#, e o ambiente de desenvolvimento multiplataforma é Visual Studio. A saída são aplicativos nativos para iOS, Android e Windows. É verdade que é relativamente grande em tamanho.

Reagir nativo

Plataforma de - os aplicativos são escritos em JavaScript e usam estilos semelhantes a CSS. A interface acaba sendo nativa e o código é interpretado na plataforma, o que lhe confere a flexibilidade necessária.

Sendo uma plataforma relativamente jovem, o React Native ainda sofre obviamente (embora não catastroficamente) de falta de ferramentas de desenvolvimento e documentação.

Vibração

Naturalmente, um gigante como o Google não poderia ignorar o tema do desenvolvimento multiplataforma de aplicativos Android e iOS. O Flutter, embora atualmente apenas em beta, adota uma abordagem diferente do React Native e do Xamarin. Ele não transforma o código-fonte em código nativo, que é executado pela plataforma, mas na verdade desenha uma janela na tela do smartphone e renderiza ele mesmo todos os elementos. A linguagem usada é o Dart “proprietário”, que o Google criou como uma versão melhorada do JavaScript.

Isto tem vantagens (por exemplo, interfaces externamente idênticas) e desvantagens (por exemplo, redesenhar a interface requer uma certa quantidade de memória e tempo de CPU).

A plataforma está se desenvolvendo rapidamente e o Google está investindo muito esforço e dinheiro nela. Mas comparado ao Flutter, até mesmo o React Native parece um ecossistema muito estabelecido e impressionante.

O que escolher

Provavelmente sua cabeça já está girando, mas você ainda não tem ideia do que escolher. Vamos apresentar uma lista simples de perguntas para te ajudar:

  • De alguma forma, deveria funcionar em qualquer dispositivo? Escolher HTML como base;
  • Você tem fundos suficientes, não tem pressa e deseja um aplicativo da mais alta qualidade? Você tem um caminho direto para desenvolvimento nativo;
  • Você tem um desenvolvedor web “integrado” ou deseja apenas testar um aplicativo móvel em ação de maneira rápida e fácil? Aqui podemos recomendar Cordova/HTML ou PWA;
  • Você tem seu próprio sistema CRM e um desenvolvedor C# para apoiá-lo? Pegue Xamarin;
  • você “quer experimentar”, mas precisa deixar tudo lindo e fashion? Desvie o olhar Reaja nativo ou flutter.

Você também pode ir do outro lado. Veja a funcionalidade necessária em seu aplicativo e prossiga a partir daí:

  • um aplicativo simples de cartão de visita? Pegar Reagir nativo ou HTML5 e você receberá duas plataformas por um preço mínimo;
  • Você tem um site com muito tráfego e precisa testar sua presença no espaço mobile? HTML5;
  • aplicações complexas com acesso a funções necessárias dispositivos? Desenvolvimento nativo, Xamarin, React Native.

O desenvolvimento multiplataforma não é uma panacéia

Ao escolher, você precisa proceder a partir das tarefas atribuídas e dos recursos existentes. O desenvolvimento multiplataforma é uma direção boa e compreensível, mas com vantagens e desvantagens que devem ser lembradas antes de lançar o projeto. Um aplicativo multiplataforma completo é obviamente melhor do que um aplicativo nativo desfeito. Você pode desenvolvê-lo de forma rápida e barata, carregá-lo na loja e simplesmente verificar a demanda dos usuários - se alguém está procurando seu aplicativo, se o instala, quais funções utiliza. Com base nos resultados desse experimento, será possível decidir o destino da direção mobile em sua empresa e os investimentos nela.

Você ainda tem dúvidas e perguntas sobre aplicativos multiplataforma? Leia como criamos um aplicativo para obter rapidamente a assinatura de uma das instituições esportivas da cidade e experimente o aplicativo para pagar todos os tipos de serviços - desde habitação e serviços comunitários até pedidos em lojas online. Melhor ainda, inscreva-se para uma consulta gratuita, indicando seu orçamento aproximado e breve descrição ideias ou entre em contato com nossa gerente Katya por telefone

© 2024 ermake.ru - Sobre reparo de PC - Portal de informações