Antes de desenvolver aplicativos, é importante que você entenda onde eles serão executados, ou seja: celulares e tablets. Mas não só isso, você deve saber que, no cenário atual, temos dois grandes Sistemas Operacionais: o Android, desenvolvido pela Google, e o iOS, desenvolvido pela Apple, para o iPhone e iPad. Segundo Silva (2017), os sistemas operacionais, para dispositivos móveis, são também plataformas, pois disponibilizam função de sistema operacional (SO) e recursos, para integração e desenvolvimento aplicados a eles.
Você descobrirá também que, além das plataformas conhecidas como nativas (focadas em um único sistema operacional), existem as plataformas híbridas, que disponibilizam recursos para desenvolver aplicativos para vários Sistemas Operacionais de uma só vez. Portanto, o objetivo desta lição é apresentar os sistemas operacionais utilizados no mercado, junto às plataformas e aos recursos que você deverá conhecer para realizar tal desenvolvimento. Ao final desta lição, você estará apto(a) a analisar e escolher, dentro das plataformas e dos sistemas operacionais, qual caminho é o melhor para realização de sua uma carreira como desenvolvedor(a) mobile.
Você está em um momento importante de sua carreira como desenvolvedor(a) mobile. Mas por quê? Imagine que você se dedicará, nos próximos anos, ao estudo de determinada plataforma de desenvolvimento: o Android, por exemplo. Muitas são as opções, as linguagens e os recursos que você aplicará dentro de seu desenvolvimento e seus aplicativos, porém, ao se deparar com um cenário ou um produto, você poderá ver que será necessário que seu aplicativo esteja disponível também para o sistema iOS. O que fazer? Será que devemos pensar sempre no desenvolvimento híbrido? Devemos focar em uma plataforma específica? Entenderemos melhor como fazer essa escolha e verificar se, realmente, precisamos fazê-la. Você está preparado(a)?
Imagine que você foi contratado(a) para atuar como Desenvolvedor(a) Mobile na Empresa fictícia de desenvolvimento de aplicativos móveis, AllApp. Sabendo que toda a sua experiência é voltada para a plataforma Android, logo, em seu primeiro dia, é convidado(a) para uma reunião de kick-off de um projeto — como são chamadas as reuniões de abertura de projeto, que fazem referência àquele chute inicial nas partidas de futebol.
Na sala, você, que é uma pessoa superatenta e curiosa, verifica que a maioria dos diretores está utilizando iPhones e pensa: “e agora? Sou especialista em Android, o que estou fazendo aqui? Por que não optei por aprender uma plataforma híbrida?”. Passado esse susto inicial, a reunião começa, e o gerente do projeto começa apresentando a justificativa e as necessidades do projeto. Logo vem a sensação de alívio, quando ele apresenta que esse novo projeto faz parte de uma parceria com o governo estadual em que serão distribuídos aparelhos Android aos funcionários públicos, para que possam utilizar o novo aplicativo interno do governo, que é o motivo desse projeto. Sendo assim você, especialista em Android, junto ao restante da equipe de desenvolvimento, atuará neste projeto por cerca de um ano desenvolvendo este aplicativo, que tem o foco e a disponibilização somente para o Android da Google.
É falado também, na reunião, que, caso o projeto seja um sucesso, no futuro, a empresa AllApp também utilizará o aplicativo como um serviço da empresa, ou seja, irá disponibilizá-lo como licença de assinatura para que qualquer usuário interessado possa utilizá-lo. Além disso, falou-se que, quando chegar esse momento, a atual equipe de desenvolvimento participará do processo decisório para verificar como será replicado o aplicativo para outra plataforma, ou seja, ela terá um tempo para desenvolver e replicar o produto, de forma nativa, para o iPhone. A equipe especialista em iPhone, por sua vez, fará essa réplica ou aplicativo como serviço e fará essa criação em uma plataforma híbrida (que atenda aos dois sistemas operacionais), para que o produto não fique igual ao aplicativo inicial, fruto da parceria com o governo estadual.
Agora, pergunto-lhe, com este case, você viu como todas as plataformas de desenvolvimento são utilizadas e como existe lugar para todo o tipo de desenvolvimento móvel? Veremos, a seguir, como elas são e como usá-las.
A primeira coisa que você deve estar se perguntando sobre a lição é: o que são sistemas operacionais, afinal? Segundo Deitel et al. (2005), Sistema Operacional é um software que habilita as aplicações a interagir com o hardware de um computador, ou seja, o Sistema Operacional é o que permite que suas aplicações “conversem” com o processador de seu dispositivo, utilizando-se da memória de armazenamento, da memória de execução e de todos os demais componentes dele.
Sistemas operacionais não são uma exclusividade dos dispositivos móveis, eles podem ser encontrados em outros dispositivos, como telefones celulares, automóveis, computadores pessoais e computadores de grande porte (DEITEL et al., 2005). Especificamente, tratando-se de dispositivos móveis, Lee, Schneider e Schell (2005) definem sistema operacional móvel como o cérebro que controla o dispositivo, disponibilizando funcionalidades para o usuário que vão além de suas próprias. Em todo o período de crescimento dos dispositivos móveis, particularmente os smartphones, podemos destacar os principais até os dias de hoje:
Android: é utilizado em vários dispositivos de várias marcas, tendo suas versões em aparelhos básicos, intermediários e avançados, e desenvolvido pela empresa Google.
iOS: é utilizado, exclusivamente, nos iPhones e iPads, da marca Apple e, por consequência, desenvolvido pela própria empresa.
Symbian OS: utilizado nos smartphones da marca Nokia, mas por um breve
Windows Phone: alternativa para os dispositivos da marca Nokia, entre outros, chegando a ser muito utilizado, mas, como o mercado já estava muito adiantado com as já conhecidas divisões (Android e iOS), não resistiu. Como você já deve ter adivinhado, foi desenvolvido pela Microsoft.
O sistema operacional em questão foi desenvolvido pela Android Inc, a qual foi adquirida pelo Google, em 2005. Em 2007, foi formada a Open Handset Alliance, para desenvolver, manter e aprimorar o Android, trazendo inovação, melhorando a experiência do usuário e reduzindo custos (DEITEL et al., 2015).
Uma vantagem de desenvolver aplicativos Android é a franqueza (ou grau de abertura) da plataforma. Segundo Deitel et al. (2015), o sistema operacional é de código-fonte aberto e gratuito, o que permite ver o código-fonte do Android e como seus recursos são implementados. Com isso, algumas marcas também podem implementar personalizações para seus dispositivos. Fato curioso é a convenção de atribuição de nomes de versão do Android: cada nova versão do Android recebia o nome de sobremesa, em inglês, em ordem alfabética, conforme apresentado no Quadro 1. Essa convenção foi abandonada na versão 10, do sistema operacional.
No quesito plataforma de desenvolvimento para Android, temos o SDK (Software Development Kit, ou, em português, Kit de Desenvolvimento de Programas), que, segundo Deitel et al. (2015), fornece as ferramentas necessárias para construir aplicativos Android. Além do SKD, você deverá utilizar uma IDE (Integrated Development Environment ou, em português, Ambiente de Desenvolvimento Integrado). Você encontrará, nas IDEs, todas as funções necessárias para o desenvolvimento, a validação, os testes e a construção de aplicativos móveis.
A IDE indicada pela própria Google/Android, que é desenvolvida por esta, é o Android Studio. Este foi lançado em 2013, sendo possível desenvolver aplicativos em linguagem Java, e se estendeu, depois, para a linguagem Kotlin, que veremos nas próximas lições.
O iOS é desenvolvido pela Apple e, oficialmente, utilizado somente em seus produtos, sendo denominado um programa de desenvolvimento fechado, isso quer dizer que você não consegue fazer adaptações do sistema, somente aquelas que a própria Apple permite via configurações.
Por não permitir alterações e trabalhar para um conjunto de hardwares (componentes específicos, como os próprios iPhones), o iOS oferece uma experiência mais estável e segura ao usuário, pois é desenvolvido e projetado para atender, apenas, às necessidades de aparelhos bem específicos. Para desenvolver os aplicativos, de forma nativa, para os dispositivos da Apple, você terá à sua disposição, pelo menos, duas grandes linguagens: a linguagem Objective-C e a linguagem Swift, que funciona, praticamente, como o Kotlin para o Java nos dispositivos Android.
Embora o uso da linguagem seja algo essencial, temos os frameworks (conjunto de bibliotecas para deixar o desenvolvimento mais produtivo). Segundo Lecheta (2014), um deles é o Foundation, que contém um conjunto de classes escritas em Objective-C, para tornar o desenvolvimento de aplicações mais simples e rápido, e, basicamente, facilita o trabalho do dia a dia. Em cima desse conjunto de classes, foi criado o framework Cocoa Touch, que é bem integrado ao ambiente de desenvolvimento Xcode e facilita a utilização de recursos multimídia, networking, persistência, animações e muitos outros, escondendo a complexidade desses assuntos do desenvolvedor (LECHETA, 2014).
Xcode, citado no parágrafo anterior, é a IDE oficial da Apple, e sua instalação só é possível se você tiver um computador com o Mac OS, ou seja, um computador de mesa (desktop da Apple).
Com a variedade de Sistemas Operacionais em uso no mundo, você descobriu que a grande maioria dos dispositivos que você conhece, os quais o mercado utiliza, são de dispositivos que “rodam” os sistemas operacionais Android e iOS. Sendo assim, você deve estar imaginando a dificuldade de agilizar o processo de desenvolvimento dos aplicativos, para que eles possam estar disponíveis nessas duas plataformas, sem que seja necessário que você tenha conhecimento de linguagens de programação nativas de cada sistema.
Segundo Gois (2017), uma luz no fim do túnel veio com o surgimento do HTML5 (linguagem de marcação para web), em que se criou uma segunda camada, que seria o intermediário entre a linguagem de sistema nativo (iOS, Android, Windows Phone, etc.) e a aplicação, construída, basicamente, em HTML5, CSS3 (folha de estilos aplicada ao HTML5) e JavaScript (linguagem de programação que dá “ação” às outras duas e ao aplicativo). Estas três tecnologias formam uma camada, chamada View (visualização em português), que é a responsável por compilar o aplicativo (processo que se refere à transformação dos códigos escritos por você em um programa executável, o qual deve ser entendido pelo sistema operacional). Essa camada, ao ser criada, tem os recursos da plataforma nativa do dispositivo para o qual estão sendo compilados, podendo ser Android, iOS ou outros.
Nesse contexto, temos também a ferramenta PhoneGap, que disponibiliza acesso aos diversos componentes do dispositivo, como: câmera, GPS, acelerômetro etc., fazendo com que, agora, você consiga criar seus aplicativos utilizando somente a linguagem de programação JavaScript, em vez de conhecer as linguagens de programação nativas de cada sistema operacional. Ainda em relação às plataformas, denominadas camadas, temos o Ionic Framework, que é open source SDK que usa o conceito chamado native-feeling mobile apps, que significa a utilização das três já mencionadas tecnologias: HTML, CSS e JavaScript.
Finalizo a questão das plataformas híbridas com um breve conceito da biblioteca React Native, que, segundo Escudelario e Pinho (2021, p. 7), “é uma plataforma baseada no React que possibilita desenvolver aplicativos mobile híbridos, ou seja, que rodam tanto no iOS (Apple) quanto no Android (Google). A tecnologia é toda baseada no JavaScript, assim como sua base, o React”.
Agora que você conheceu os sistemas operacionais e as plataformas de desenvolvimento para eles, uma vez escolhida sua forma de trabalho, você já é capaz de identificar o caminho que deverá seguir. Primeiramente, sabendo que o mercado de desenvolvimento de aplicativos móveis está, hoje, restrito às duas grandes plataformas e/ou sistemas operacionais, que são: Android e iOS, sendo a primeira suportada pela Google e a segunda, pela Apple, sugiro que, antes de aplicar este conhecimento, na dúvida, releia o item case desta lição para entender a situação, ou seja: o seu desenvolvimento e/ou os seus aplicativos estão direcionados para um público específico? Qual a preferência deste público com relação aos sistemas operacionais? É para uma empresa específica ou é para o mercado?
Além dessas respostas que, agora, você sabe como obter, temos que verificar também a característica principal do aplicativo: ele consumirá muitos recursos básicos do sistema operacional? Se a resposta for sim, sugere-se que o desenvolvimento seja de forma nativa, ou seja, um aplicativo para Android e outro para iOS, mas, se for um aplicativo mais simples, podendo até relacioná-lo com um sistema web (usado pelo seu navegador no notebook), podemos entender que o desenvolvimento híbrido é mais produtivo, uma vez que, com um código, você consegue “envelopar” seu aplicativo para as duas plataformas.
Enfim, neste quesito, saiba que nunca existirá uma solução apenas, sempre será preciso ser feita uma análise prévia, principalmente, no início de sua carreira ou de seu produto. Reforço ainda a questão do desenvolvimento nativo para os dispositivos da Apple, que nos forçará sempre a ter, pelo menos, um iPhone e um Macbook ou iMac. Você já pode ver, então, que a parte financeira influencia neste caso. Já no desenvolvimento nativo para Android e no desenvolvimento híbrido, as linguagens, as bibliotecas e todo o ambiente são código aberto, ou seja, sem custos para você, desenvolvedor(a).
DEITEL, P.; DEITEL, H.; DEITEL, A. Sistemas operacionais. 3. ed. São Paulo: Pearson, 2005.
DEITEL, P.; DEITEL, H.; DEITEL, A. Android: como programar. 2. ed. Porto Alegre: Bookman, 2015.
ESCUDELARIO, B.; PINHO D. React Native Desenvolvimento de aplicativos mobile com React. São Paulo: Casa do Código, 2021.
GOIS, A. Ionic framework: construa aplicativos para todas as plataformas Mobile. São Paulo: Casa do Código, 2017.
LECHETA, R. R. Desenvolvendo para iPhone e iPad. 3. ed. São Paulo: Novatec, 2014.
LEE, V.; SCHNEIDER, H.; SCHELL, R. Aplicações móveis: arquitetura, projeto e desenvolvimento. São Paulo: Pearson, 2005.
SILVA, D. Desenvolvimento para dispositivos móveis. São Paulo: Pearson, 2017.