Com os consumidores a gastar mais de 180 bilhões de horas dentro de aplicativos do smartphone a cada mês, a atratividade do desenvolvimento de aplicativos móveis continua a crescer, e muitos desenvolvedores estão aprendendo como para código de aplicativos móveis a partir do zero.
neste artigo, vamos primeiro passar pelos diferentes tipos de aplicativos, antes de dar uma olhada mais de perto na codificação de aplicativos móveis na prática.
desenvolvimento de aplicações
desenvolvimento de aplicações em aplicações, a distinção mais fundamental é que entre aplicações web e aplicações móveis. Os aplicativos Web requerem uma conexão ativa à internet para ser executado, enquanto os aplicativos móveis funcionam offline. Aplicativos Web em smartphones são simplesmente páginas web otimizadas por celular, enquanto aplicativos móveis precisam ser baixados da app store de um telefone.os aplicativos móveis são superiores em termos de eficiência e velocidade, mas exigem que os usuários façam o download manual ou automático de atualizações em vez de atualizarem-se, como fazem os aplicativos web. O desenvolvimento de aplicativos móveis tende a ser mais intensivo em recursos do que a criação de aplicativos web, mas aplicativos móveis são mais rápidos e geralmente superam funcionalmente seus homólogos web. Por exemplo, aplicativos móveis muitas vezes usam recursos de telefone como câmeras às quais os aplicativos da web geralmente não têm acesso.
Você pode se surpreender ao saber que existem vários tipos de aplicativos móveis, então vamos prosseguir distinguindo entre os dois tipos principais: aplicativos nativos e aplicativos multi-plataforma.
apps nativas vs. Aplicações multi-plataforma
aplicações nativas são aquelas construídas com um determinado sistema operacional (OS) em mente, usando linguagens de programação específicas e ambientes de desenvolvimento integrados (IDEs). Por exemplo, um aplicativo nativo para iOS deve ser escrito na língua que o iOS espera, usando as APIs que o iOS expõe. Se os desenvolvedores usam Objective-C e Swift para um aplicativo iOS, ou Java para um aplicativo Android, juntamente com as APIs apropriadas, tais aplicações são “nativas”, na medida em que as capacidades do sistema subjacente são usadas como esperado pelo sistema. Aplicativos nativos também usam memória de hardware, câmera, sensores e outros programas instalados em um dispositivo através das APIs expostas pelo sistema subjacente.
Em contrapartida, os frameworks multi-plataforma pretendem fornecer soluções universais apoiadas por vários OSs móveis de uma só vez. Eles usam um núcleo comum com personalizações por plataforma para encaixar uma aplicação em várias plataformas, então não há necessidade de criar elementos únicos para cada so.quais são as vantagens e os desafios de cada aplicação móvel? os aplicativos nativos oferecem maior desempenho, maior eficiência energética, menos limitações na arquitetura e funcionalidade, e uma interface totalmente conforme com as diretrizes da plataforma. No entanto, mantê-los vem a um preço alto: aplicativos móveis às vezes obter várias atualizações a cada mês, e mantê-los atualizados pode consumir tempo de desenvolvedor que poderia de outra forma ser gasto em novas funcionalidades. Além disso, o público de um aplicativo nativo é limitado aos usuários de um SO particular, a menos que seus criadores exercem um esforço considerável no desenvolvimento do mesmo aplicativo para vários sistemas.
Por outro lado, aplicativos multi-plataforma facilitam o compartilhamento de código, já que os desenvolvedores não precisam criar um aplicativo para iOS e um aplicativo separado para Android, mas são muitas vezes capazes de compartilhar 80% ou mais de seu código através de plataformas. Menos esforço de codificação necessária permite que o aplicativo seja mantido em várias plataformas, mesmo com uma pequena equipe.no entanto, é difícil adaptar uma única solução a vários sistemas operacionais. Uma solução multi-plataforma é designada como tal precisamente porque a sua estrutura permite o uso de funcionalidade multi-plataforma. A interface de uma aplicação multi-plataforma é geralmente universal, levando a desfasamentos e complexidades ao implementar elementos específicos de cada so, uma vez que características únicas de uma determinada plataforma normalmente não serão suportadas. Enquanto um framework pode fazer um aplicativo olhar e sentir-se como sua plataforma pretendida, sem qualquer trabalho adicional do desenvolvedor, as escolhas de design são geralmente limitadas.
Agora vamos dar uma olhada mais de perto nas áreas de ferramentas necessárias para ambos os tipos de aplicativos, e ainda distinguir entre ainda mais variações de aplicativos móveis dentro do ecossistema multi-plataforma.
aplicações nativas
no desenvolvimento de aplicações nativas, a familiaridade com a IDE do seu sistema operacional escolhido e a estrutura do projecto é imperativa. Felizmente, os sistemas operacionais iOS e Android estão bem documentados e fornecem suas próprias ferramentas de desenvolvimento, elementos de interface e kits de desenvolvimento de software (SDKs), que os desenvolvedores podem usar para construir aplicativos móveis nativos.
dispositivos Apple rodam no sistema operacional nativo do iOS e são construídos usando Objective-C ou Swift, juntamente com o código IDE. Apesar de serem duas plataformas separadas, iOS e macOS compartilham semelhanças, então se você quiser executar seu aplicativo móvel em um desktop Apple, você pode incorporar recursos iOS modernos em seu app. Isto simplificará a transição para macOS (uma vez que as funcionalidades atualizadas mapeiam automaticamente para comportamentos macOS apropriados).
Em contraste, a ferramenta de Desenvolvimento Android geralmente envolve o Android Studio ou o Eclipse IDE, embora você também pode usar outros IDEs. Android Studio é o IDE oficial para o desenvolvimento de aplicativos Android, e o programa principal para escrever código e montar aplicativos de vários pacotes e bibliotecas. Tanto o Android Studio quanto o Android SDK são livres para baixar e vir com bibliotecas de software e código de exemplo. Enquanto aplicativos Android são construídos com Java, você pode construir um aplicativo Android em outras linguagens que funcionam na máquina virtual Java, como o Kotlin.
aplicativos híbridos entre plataformas
Existem dois tipos diferentes de aplicativos entre plataformas: aplicativos híbridos e aplicativos nativos entre plataformas. Aplicativos híbridos usam apenas HTML5, CSS, e JavaScript para criar partes da interface gráfica de usuário de um aplicativo (GUI). Parece uma aplicação web? Enquanto que tanto aplicativos móveis híbridos quanto aplicativos web rendem HTML, aplicativos híbridos usam navegadores embutidos em aplicativos como WebView para fazê-lo.alguns aplicativos híbridos ainda interagem com o hardware de um smartphone, embora a funcionalidade possa ser limitada. Apache Cordova, Ionic e Flutter estão entre os mais promissores quadros de desenvolvimento de aplicativos híbridos atualmente no mercado.
as aplicações de plataforma cruzada nativas
as aplicações de plataforma cruzada nativas, por outro lado, não são construídas com frameworks HTML/CSS/JS — um desenvolvedor em vez disso criaria uma API unificada rodando em cima de um SDK nativo. Ao fazer uso de um IDE nativo acoplado com esta API, um desenvolvedor pode construir iOS e aplicativos Android que compartilham a mesma base de código, proporcionando uma experiência quase nativa. As aplicações nativas multi-plataforma são construídas principalmente com Xamarin, Reat Native e Kotlin Multiplatform.
isto pode parecer confuso, por isso vamos ver como funciona um desses framework UI móveis. Ficamos com o caso de Xamarin.
construído com C# e. Net, Xamarin permite aos desenvolvedores criar aplicações multi-plataforma com interfaces compartilhadas usando Xamarin.Formulario. Xamarin.iOS e Xamarin.O Android é particularmente útil para criar interfaces iOS e Android. Além de fornecer bibliotecas que concedem acesso a API nativo e de terceiros, o Xamarin dá aos aplicativos multi-plataforma acesso a hardware e funcionalidade de smartphone anteriormente encontrados apenas em aplicativos nativos. Ao combinar desempenho quase nativo com a reutilização de código, os frameworks nativos multi-plataforma estreitam a diferença de desempenho entre aplicativos nativos e híbridos com o potencial para um desenvolvimento mais rentável.por onde deve começar?
Se você quiser aproveitar tudo o que uma dada plataforma móvel tem para oferecer, tente construir um aplicativo móvel nativo. O seu aplicativo provavelmente terá maior desempenho, funcionalidade mais robusta, e uma melhor experiência do usuário em comparação com uma contraparte multi-plataforma. Desenvolver com um SDK particular é um ótimo ponto de partida, pois você vai enfrentar uma curva de aprendizagem mais gerenciável em relação ao código de plataforma cruzada.
escolher uma opção independente de plataforma pode ser a melhor escolha para aqueles que procuram por fácil manutenção e alcance mais amplo, e com menos tempo para se desenvolver. Desde que você escolha a pilha de tecnologia certa, você pode ser capaz de reutilizar a maioria da infra-estrutura original e o código UI para várias plataformas.
Se optar pela rota multi-plataforma, como sabe se deve optar por um híbrido (JS/HTML/CSS) ou por uma aplicação de plataforma cruzada nativa? Se você está procurando um começo fácil e não sabe o celular, tente a abordagem JS/HTML/CSS. Se você está procurando uma experiência quase nativa, mas gostaria de estar em várias plataformas (e não pode investir em um aplicativo para cada plataforma), go native cross-platform.
Saiba mais
neste artigo, nós analisamos as diferenças entre aplicativos móveis e aplicativos web, antes de dar uma olhada mais de perto em vários tipos de aplicativos móveis. Nós cobrimos aplicativos nativos, aplicativos híbridos multi-plataforma, e aplicativos nativos multi-plataforma. se você visualizar uma carreira no desenvolvimento de aplicativos móveis, a nossa introdução ao curso on-line de programação irá fornecer uma base sólida para trabalhar com aplicativos tanto multi-plataforma quanto nativos.
iniciar a aprendizagem