prefácio
O 50º "Relatório Estatístico sobre o Desenvolvimento da Internet na China" mostra muitos dados interessantes.
Entre eles, em junho de 2022, o número de internautas em meu país era de 1,051 bilhão e a taxa de penetração da Internet chegava a 74,4%.
O tempo online médio semanal por internauta é de 29,5 horas, um aumento de 1,0 hora em relação a dezembro de 2021.
Graças ao desenvolvimento de smartphones domésticos e Internet móvel, a proporção de acesso à Internet móvel é absolutamente líder, representando 99,6% .
Não importa se você é um gerente de produto ou um desenvolvedor, você precisa perceber que o computador no futuro se tornará uma ferramenta mais adequada para escritórios e profissionais, e o celular é a escolha final do público em geral.
Da indústria de jogos, League of Legends -> Glory of Kings , PlayerUnknown's Battlegrounds -> emocionante campo de batalha, até a indústria de comércio eletrônico. Pode-se ver que o desenvolvimento de terminais móveis dominará no futuro.
O design de software de terminal móvel para usuários comuns precisa considerar vários fatores, como desempenho, embelezamento da interface do usuário e eficiência de desenvolvimento. Portanto, vários tipos e tecnologias de desenvolvimento nasceram desde o desenvolvimento de terminais móveis.
A importância do desenvolvimento de terminais móveis na era 5G
Três tipos de desenvolvimento
APP nativo
Também conhecido como APP nativo , por exemplo, o Ios é desenvolvido diretamente nas linguagens Object-C e Swift. Android é desenvolvido usando Java e kotlin .
aplicativo web
É uma página da web desenvolvida por html, que se diz ser um APP, mas na verdade se refere a uma página em um navegador
Aplicativo híbrido
Também conhecido como APP híbrido , Html5 shell , ele usa a tecnologia web para desenvolver páginas, e depois as empacota em um APP.O que abre é um APP, na verdade, um navegador está aninhado dentro dele.
Padrões arquitetônicos correspondentes aos três tipos de desenvolvimento
Escolha dos tipos de desenvolvimento de aplicativos
Para desenvolvedores ou gerentes , a seleção de tecnologia pode ser feita de acordo com os requisitos do produto , requisitos de desempenho e tempo de projeto ,
desenvolvimento multiplataforma
O desenvolvimento na área móvel enfrenta problemas como diferentes sistemas operacionais que exigem diferentes linguagens de desenvolvimento, diferentes versões do mesmo sistema operacional e diferentes modelos da mesma versão, o que adiciona grande dificuldade ao desenvolvimento móvel. No campo do desenvolvimento móvel, a tecnologia de desenvolvimento multiplataforma tornou-se a primeira escolha de muitas empresas e desenvolvedores, o que pode efetivamente resolver os problemas de desenvolvimento de diferentes sistemas operacionais e diferentes modelos de terminais e economizar tempo e custos de pessoal para as empresas.
Recomendação de estrutura de desenvolvimento multiplataforma
Híbrido: uni-aplicativo doméstico
O uni-app é desenvolvido usando Vue como interface. A estrutura interna fornece um conjunto de pacotes para chamadas de recursos de diferentes plataformas. Você só precisa chamar as funções correspondentes em js para chamar as funções das plataformas correspondentes, como aplicativos nativos: leia e escreva o armazenamento do telefone móvel, principais notificações, etc.
Os desenvolvedores escrevem um conjunto de códigos, que podem ser publicados em várias plataformas, como iOS, Android, Web (responsivo) e vários pequenos programas (WeChat/Alipay/Baidu/Toutiao/QQ/DingTalk/Taobao), aplicativos rápidos, etc.
Conforme mostrado na figura abaixo, um conjunto de códigos é executado simultaneamente no simulador iOS, simulador Android, H5, WeChat Developer Tools, Alipay Mini Program Studio, Baidu Developer Tools, ByteDance Developer Tools, QQ Developer Tools (as 8 guias de terminal inferiores representam 8 terminais emuladores):
Híbrido: Reagir nativo
O front-end é escrito usando o framework React, e o React Native fornece um conjunto de pacotes para Android e Ios, permitindo que você chame as funções nativas do celular diretamente chamando funções em JS
Hybrid, também conhecido como APP híbrido, basicamente tem esse design, a interface usa Html e a estrutura encapsula as funções subjacentes como JS para chamadas.
O React Native é muito adequado para engenheiros com experiência em desenvolvimento React.
Nativo: Flutter
Introdução
Lançado pelo Google, o conceito é: construir belos aplicativos móveis de forma fácil e rápida; construir com C, C ++, Dart e Skia (mecanismo de renderização 2D); visar ajudar os desenvolvedores a atingir facilmente 60fps constantes A história do Flutter pode ser rastreada até para Em outubro de 2014, seu antecessor foi o projeto Sky incubado no Google
vantagem de desempenho
O Flutter usa o mecanismo de desenho Skia para desenhar diretamente pela CPU e GPU sem depender de nenhum controle nativo.
No sistema operacional Andriod, os controles nativos escritos realmente dependem do Skia para desenho, então o Flutter é ainda maior do que o nativo em alguns sistemas operacionais Andriod - porque o Skia no Andriod nativo deve ser atualizado com o sistema operacional e Sempre atualizado no Flutter SDK
Comparação de vantagens e desvantagens de frameworks multiplataforma
quadro | uniAPP | Reagir nativo | vibrar |
---|---|---|---|
custo do estudo | Baixo | Baixo | alto |
desempenho | Baixo | meio | alto |
vantagem | Existem muitas plataformas cruzadas, incluindo vários pequenos programas, e um conjunto de códigos pode ser executado em qualquer lugar | A forma de usar o React+JS não só garante um certo desempenho, mas também facilita o aprendizado dos desenvolvedores web | Android=nativo ios<nativo de alto desempenho |
deficiência | Ampla, mas não refinada, muitas plataformas não podem garantir a robustez de cada conjunto de API, você mesmo precisa desenvolvê-la se não houver plug-in | Há um certo custo de aprendizado e você precisa aprender a linguagem Dart | |
Cena aplicável | Vários conjuntos de pequenos programas precisam ser executados em diferentes plataformas ou os requisitos de desempenho do APP não são altos | Apenas plataformas Android e Ios são necessárias para rodar, e alguma experiência React é necessária | Aplicativos com requisitos de alto desempenho, como grandes shoppings ou jogos |
plataforma de suporte | iOS, Android, Web (responsivo) e vários pequenos programas (WeChat/Alipay/Baidu/Toutiao/Feishu/QQ/Kuaishou/DingTalk/Taobao), aplicativos rápidos, etc. | Ios、Android | Ios、Android |
Embora React e Flutter também suportem Windows e Mac um após o outro. Mas, afinal, não é mainstream e não há necessidade de tornar os aplicativos móveis multiplataforma para PC. Mesmo que o tamanho do design e o layout sejam responsivos, será muito estranho.
Recomendação de estrutura de plataforma cruzada do lado do PC
Elétron | Crie aplicativos de desktop multiplataforma com JavaScript, HTML e CSS.
Comparação de eficiência de desenvolvimento de estrutura de plataforma cruzada
Referências
Quais são as vantagens do Flutter sobre o desenvolvimento de APP nativo
Weex——Thinking, Realization and Future of Mobile Dynamics
Estrutura de plataforma cruzada móvel Introdução ao Flutter e linha de aprendizado