Prévia do material em texto
<p>FUNDAMENTOS DO</p><p>DESENVOLVIMENTO MOBILE</p><p>AULA 2</p><p>Prof. Leonel da Rocha</p><p>2</p><p>CONVERSA INICIAL</p><p>Nesta etapa, vamos tratar das áreas de atuação do profissional de</p><p>desenvolvimento mobile. Vamos ver desenvolvimento de aplicativos,</p><p>desenvolvimento de softwares, ferramentas e recursos app, testes e</p><p>configurações de aplicativos. Veremos ainda quais são as linguagens e</p><p>ferramentas que fazem parte do cotidiano do profissional que desenvolve</p><p>aplicativos mobile. Mostraremos o que é preciso aprender para se tornar um</p><p>desenvolvedor mobile. Vamos considerar ainda a importância da área de mobile</p><p>para as organizações, avaliando o empreendedorismo e o mercado mobile no</p><p>Brasil e no mundo. Para finalizar, vamos estudar as tendências em</p><p>código/desenvolvimento: low-code, no-code, code e IA. Bons estudos!</p><p>TEMA 1 – ÁREAS DE ATUAÇÃO DO PROFISSIONAL MOBILE</p><p>Os profissionais de desenvolvimento mobile são responsáveis pela</p><p>criação de softwares e recursos para dispositivos móveis. É necessário ter</p><p>conhecimento técnico e lógico para desenvolver soluções com responsividade,</p><p>considerando as adaptações necessárias para que os aplicativos funcionem na</p><p>maioria das vezes em smartphones.</p><p>Crédito: antoniodiaz/Shutterstock.</p><p>3</p><p>Os desenvolvedores precisam conhecer as linguagens para o SO de</p><p>desenvolvimento. Para Android, podemos citar as seguintes linguagens:</p><p>• Java</p><p>• C#</p><p>• /.NET</p><p>• ASP.NET</p><p>• Unity 3D</p><p>• Volley</p><p>• Material Design</p><p>Para iOS, temos as seguintes linguagens:</p><p>• Objective-C</p><p>• Swift</p><p>• Material Design</p><p>Para os dois SOs, é preciso conhecer Push Notifications, metodologias</p><p>ágeis, certificados e integração de APIs. É importante ainda dominar a</p><p>publicação de aplicativos, como Google Play e Apple Store.</p><p>Para o desenvolvimento mobile, além de linguagens de programação, é</p><p>preciso conhecer banco de dados, Web Services, como o da Amazon AWS, e</p><p>frameworks de desenvolvimento, como os citados anteriormente neste estudo.</p><p>As linguagens HTML, CSS, Javascript, PHP orientado a objetos, além de</p><p>frameworks como CodeIgniter, Laravel, AngularJS, Node.js, Ionic e Cordova</p><p>também são importantes para quem pretende seguir essa carreira.</p><p>A seguir, vejamos uma lista de atributos importantes também para a área</p><p>de desenvolvimento de softwares:</p><p>• raciocínio lógico e capacidade analítica;</p><p>• código organizado e responsivo;</p><p>• ser multitarefa e proativo;</p><p>• cumprir prazos e metas;</p><p>• ser um aprendiz constante;</p><p>• ser organizado.</p><p>A Kantar Worldpanel divulgou, em 2022, uma pesquisa que traz a</p><p>estimativa de que, a cada dez brasileiros, nove têm celular. Conforme a Pesquisa</p><p>Nacional por Amostra de Domicílios, Pnad, de 2015, os brasileiros já usavam</p><p>4</p><p>mais o celular do que computadores para acessar a Internet, o que já sinalizava</p><p>um campo muito grande para o desenvolvimento de soluções mobile.</p><p>As principais razões que impulsionaram um maior uso de smartphones</p><p>em relação aos computadores no Brasil são a portabilidade e o custo dos</p><p>dispositivos. Outra pesquisa, realizada pelo Cheetah Mobile, apontou que os</p><p>brasileiros são os maiores usuários de aplicativos móveis do mundo!</p><p>Em virtude dessa utilização massiva dos dispositivos móveis no Brasil, as</p><p>oportunidades de empregos também estão em alta. A tendência, portanto, é que</p><p>programadores mobile sejam cada vez mais requisitados, sendo chamados a</p><p>explorar um mercado que necessita cada vez mais de aplicativos para</p><p>dispositivos móveis.</p><p>Para entender um pouco mais sobre o desenvolvimento de aplicativos,</p><p>vamos citar um exemplo de criação de um app e tentar responder as seguintes</p><p>perguntas: Quais são os profissionais envolvidos no processo? Qual a</p><p>plataforma visada, iOs ou Android, ou será melhor optar por multiplataforma?</p><p>Como existem inúmeros tipos de negócio, também existem inúmeros tipos</p><p>de aplicativos. O desenvolvimento de um aplicativo envolve criar uma ferramenta</p><p>que atenderá às necessidades de um negócio. Isso significa que precisamos ter</p><p>vários conhecimentos para o desenvolvimento de um aplicativo. É preciso contar</p><p>com uma equipe que tenha os seguintes profissionais: webdesigner, analista de</p><p>sistemas, arquiteto de software, desenvolvedor mobile, analista de banco de</p><p>dados, analista de testes e gerente de projetos. Lembramos ainda que podemos</p><p>encontrar variações, em virtude do orçamento disponível, de profissionais</p><p>contratados e de outros fatores envolvidos no gerenciamento de recursos</p><p>humanos, considerando ainda o conhecimento técnico dos profissionais.</p><p>Veremos agora o papel dos profissionais envolvidos no desenvolvimento</p><p>de um aplicativo:</p><p>• Analista de sistemas: responsável por levantar os requisitos de negócio e</p><p>especificar por escrito o que precisa ser realizado no projeto.</p><p>• Arquiteto de software: a sua função é analisar as necessidades do projeto</p><p>e definir a arquitetura que melhor se encaixa no projeto. Geralmente,</p><p>participa da etapa de programação do aplicativo, sendo responsável pelas</p><p>partes mais complexas do projeto.</p><p>5</p><p>• Desenvolvedor / programador: codifica as especificações de negócio do</p><p>aplicativo, seguindo os parâmetros técnicos do arquiteto e a análise</p><p>funcional do analista de sistemas.</p><p>• Administrador de banco de dados (DBA): responsável por definir a</p><p>arquitetura do banco de dados e apoiar os desenvolvedores nas rotinas</p><p>de manipulação de dados.</p><p>• Analista de qualidade: tem como função validar o aplicativo, verificando</p><p>se a codificação cumpre as especificações do analista de sistemas e se</p><p>não há erros no app.</p><p>• Gerente de projetos ou coordenador: cria e acompanha o cronograma do</p><p>projeto, gerenciando a distribuição de tarefas para os demais membros da</p><p>equipe de desenvolvimento.</p><p>O mercado de aplicativos móveis é um dos mais promissores na área de</p><p>desenvolvimento de aplicativos. O mercado ainda está em crescimento,</p><p>amadurecendo, sendo altamente escalável. Por isso, aqueles que chegam</p><p>primeiro e têm conhecimento técnico conseguem se estabelecer de maneira</p><p>mais fácil.</p><p>TEMA 2 – LINGUAGENS E FERRAMENTAS PARA DESENVOLVIMENTO</p><p>MOBILE NATIVO</p><p>Vamos ver as linguagens e as ferramentas que fazem parte do cotidiano</p><p>de um desenvolvedor mobile.</p><p>2.1 Desenvolvimento Android</p><p>A seguir, vamos descrever um roteiro para o desenvolvimento mobile</p><p>nativo para o sistema operacional Android:</p><p>• Escolhendo uma linguagem (Kotlin ou Java): embora seja possível utilizar</p><p>Kotlin ou Java para desenvolver aplicativos Android nativos, o Google</p><p>anunciou em 2019 que o Kotlin deve ser a linguagem preferencial para</p><p>desenvolver aplicativos Android. Se você começar a aprender o</p><p>desenvolvimento nativo para o Android hoje, Kotlin deve ser a linguagem</p><p>escolhida.</p><p>6</p><p>• Fundamentos do Kotlin: para aprender os fundamentos do Kotlin é</p><p>recomendável instalar o Android Studio. Além de estudar e aprender o</p><p>básico sobre Kotlin, estude Orientação a Objetos, estrutura de dados e</p><p>algoritmos, além de estrutura de dados Kotlin, verificando o que é e como</p><p>usar o Gradle.</p><p>• Sistemas de controle de versão: os sistemas de controle de versão</p><p>registram as alterações no código de desenvolvimento e permitem</p><p>recuperar versões específicas posteriormente. Existem vários sistemas de</p><p>controle de versão disponíveis, mas o Git é o mais comum atualmente.</p><p>• Desenvolvendo um aplicativo: vejamos uma lista dos itens necessários</p><p>para dominar o desenvolvimento de aplicativos Android. É uma lista longa,</p><p>não sendo necessário saber todos os itens desde o início. É importante</p><p>ter em mente os itens listados e iniciar a criação de alguns aplicativos</p><p>aplicando os itens pouco a pouco:</p><p>o usar atividades e ciclos de vida de atividades;</p><p>o construir interfaces flexíveis usando fragmentos;</p><p>o depurar com o Android Studio Debugger;</p><p>o manipular as configurações de app;</p><p>o usar intenções e filtros de intenção;</p><p>o entender o contexto;</p><p>o saber mais sobre multithreading;</p><p>o</p><p>dados privados;</p><p>o proteger dados de rede;</p><p>o injeção de dependência;</p><p>o provedores de conteúdo;</p><p>o Glide, Retrofit, Crashlytics, GSON;</p><p>o Sala, Navegação, Gerenciador de Trabalho, LiveData, Vinculação de</p><p>Dados;</p><p>o RxJava RxKotlin;</p><p>o visão geral do gerenciamento de memória;</p><p>o estudar a fundo programação orientada ao contexto em Kotlin.</p><p>• Jetpack Compose: kit de ferramentas do Android para criação de uma</p><p>interface nativa do usuário. Ele simplifica e acelera o desenvolvimento da</p><p>7</p><p>interface do usuário no Android. Dê vida ao seu aplicativo rapidamente,</p><p>com menos código, ferramentas poderosas e APIs Kotlin intuitivas.</p><p>Figura 1 – Roadmap do Android Developer</p><p>Fonte: Android Developer, 2023.</p><p>2.2 Desenvolvimento Swift</p><p>Swift é uma linguagem de programação consistente e intuitiva,</p><p>desenvolvida pela Apple para a criação de apps para iOS, Mac, Apple TV e Apple</p><p>Watch.</p><p>• Moderna e com flexibilidade: é uma linguagem de programação que</p><p>oferece muitos conceitos modernos, como o type safe e o conceito de</p><p>optionals, que consegue tratar valores nulos. Assim, diferentemente de</p><p>muitos outros mecanismos, a Swift não precisa do uso do ponto e vírgula</p><p>ao final de cada linha. A linguagem agrega um melhor gerenciamento da</p><p>8</p><p>memória. Ela se envolve com closures, subscripts e muitos outros, de</p><p>modo que é bastante flexível.</p><p>• Excelente na programação funcional: é um paradigma da computação,</p><p>tratando esse meio como um conjunto de funções matemáticas. Por isso,</p><p>ela é capaz de evitar estados e dados mutáveis, com flexibilidade, poder</p><p>e clareza na abstração do conteúdo. A Apple se aproveitou disso e aplicou</p><p>essa noção ao Swift, possibilitando a mescla de orientação a objetos com</p><p>programação funcional.</p><p>• Swift é mais veloz: comparado ao Objective-C, o Swift leva grande</p><p>vantagem quando o assunto é performance, chamando bastante atenção</p><p>por esse fator. No seu lançamento, a Appel destacou esse ponto como o</p><p>principal atrativo da linguagem.</p><p>• Quantidades de arquivos no projeto é menor: outro comparativo ao</p><p>Objetive-C é que o Swift utilizas apenas arquivos próprios, enquanto a</p><p>outra linguagem criava arquivos de header e outros para onde os métodos</p><p>eram implantados. Assim, com a redução da quantidade de arquivos</p><p>gerados no código, é possível melhorar o desempenho.</p><p>Figura 2 – Roadmap do desenvolvedor Swift</p><p>Principais pontos a serem estudados:</p><p>• Ulkit + SwiftUI: o SwiftUI funciona perfeitamente com as estruturas de</p><p>interface do usuário existentes em todas as plataformas da Apple. Por</p><p>9</p><p>exemplo, você pode colocar visualizações UIKit e controladores de</p><p>visualização dentro de visualizações SwiftUI e vice-versa.</p><p>• Grand Central Dispatch: tecnologia desenvolvida pela Apple Inc. para</p><p>otimizar o suporte de aplicativos para sistemas com processadores multi-</p><p>core e outros sistemas de multiprocessamento simétricos. É uma</p><p>implementação do paralelismo de tarefas com base no padrão do pool de</p><p>threads (linha de execução), que é uma sequência de instruções.</p><p>• Gerenciadores de dependências: CocoaPods, Carthage é gerenciador de</p><p>dependências descentralizado. O Swift Package Manager (SwiftPM) é</p><p>uma ferramenta para gerenciar a distribuição de código Swift. Ele é</p><p>integrado ao Xcode e ao sistema de compilação Swift, para automatizar</p><p>os processos de download, compilação e vinculação de dependências.</p><p>TEMA 3 – LINGUAGENS E FERRAMENTAS PARA O DESENVOLVIMENTO</p><p>MOBILE HÍBRIDO</p><p>Com o crescente número de apps, o mercado de desenvolvimento de</p><p>aplicativos está aquecido e o número de vagas para desenvolvedor só cresce.</p><p>Muitas vezes, as vagas não são preenchidas por falta de conhecimento técnico.</p><p>Nesse quesito, uma das opções na área de desenvolvimento para aprendizado</p><p>é o Flutter. Ao invés de aprender as linguagens de suas respectivas plataformas,</p><p>podemos aprender uma única linguagem que consegue dar suporte para todas</p><p>elas.</p><p>Flutter é um framework (ferramenta) de desenvolvimento com foco</p><p>multiplataforma em dispositivos móveis. Foi criado pela Google, sendo muito</p><p>utilizado, sendo que agora permite a criação de aplicações para desktop (Linux,</p><p>Windows e macOS).</p><p>O Flutter é uma ferramenta para desenvolver aplicativos em diferentes</p><p>plataformas Android e iOS, de forma simultânea com apenas um código. Ele tem</p><p>entre seus principais benefícios à versatilidade, menor curva de aprendizado e</p><p>agilidade. Permite que somente um desenvolvedor (dev) crie aplicativos para</p><p>sistemas operacionais diferentes, ao contrário do modelo nativo, em que são</p><p>necessários devs com conhecimento específico para cada plataforma. Permite,</p><p>dessa maneira, economia com mão de obra.</p><p>10</p><p>O Flutter não é uma linguagem de programação como Dart, Java e .net;</p><p>mas sim um framework. Ele utiliza o Dart, que também foi criada pela Google,</p><p>como linguagem de desenvolvimento para dispositivos clientes (ou client-side)</p><p>multiplataforma. O objetivo da linguagem Dart é ser a mais produtiva e flexível</p><p>possível, para servir como base para diversos frameworks de desenvolvimento.</p><p>Ela oferece algumas facilidades de desenvolvimento, como:</p><p>• Hot reload: para ver instantaneamente as alterações feitas no código;</p><p>• Rodar templates no navegador;</p><p>• Null safety: permite maior adaptabilidade do código.</p><p>Embora Dart seja a linguagem base do Flutter, não é necessário que você</p><p>aprenda primeiro Dart e depois Flutter. Você pode ir aprendendo Dart enquanto</p><p>aprende Flutter. Quanto mais você se aprofunda em Flutter, mais vai se</p><p>aprofundar em Dart.</p><p>Como dica, é importante aprender pelo menos o básico de Dart:</p><p>• Variáveis e tipos;</p><p>• Funções;</p><p>• Repetições;</p><p>• Classes/objetos.</p><p>O Flutter funciona com a linguagem Dart. A sua estrutura funciona por</p><p>meio de componentes/widgets. Os widgets são os “blocos” de construção,</p><p>encaixados para montar as telas de um aplicativo. O Dart é uma linguagem de</p><p>programação orientada a objetos. Com o Dart, a criação de aplicações pode ser</p><p>otimizada para diversos dispositivos, levando vantagem em comparação com</p><p>outras ferramentas híbridas, como o React Native.</p><p>Assim como todo framework, o Flutter apresenta vantagens e</p><p>desvantagens. Entre vantagens, podemos citar que o Flutter utiliza Dart como</p><p>base, uma linguagem com estrutura muito semelhante a linguagens focadas em</p><p>orientação a objetos, como o Java.</p><p>O Dart é uma linguagem que não é presa 100% ao tipo. Ela tem a</p><p>capacidade de adaptar o tipo de uma variável sem que ela seja declarada</p><p>explicitamente. Também apresenta a capacidade de trabalhar com valores nulos</p><p>através do null safety.</p><p>O Flutter combina as vantagens de linguagens mais robustas como Java</p><p>e a adaptabilidade do JavaScript. O Flutter tem uma documentação de alta</p><p>11</p><p>qualidade, bem detalhada e estruturada. Mostra como instalar, configurar e</p><p>utilizar em um projeto. Conta com exemplos de códigos, tutoriais e uma</p><p>descrição bem detalhada do que cada componente faz.</p><p>É uma linguagem boa para iniciantes, porque o suporte inicial é bem</p><p>estruturado e completo, permitindo a criação de pequenas aplicações com</p><p>facilidade.</p><p>As desvantagens do Flutter são as seguintes:</p><p>• Configuração do ambiente de desenvolvimento: para codar (programar)</p><p>em Flutter, precisamos de duas ferramentas, uma IDE (VSCode,</p><p>VisualStudio, AndroidStudio etc.) ou um editor de texto (bloco de notas,</p><p>notepad++, Atom etc.).</p><p>• Problemas na hora de testar a aplicação: é necessário ter um dispositivo</p><p>virtual ou físico que emule um celular funcionando em tempo real. Para</p><p>Android, é um pouco mais tranquilo, porque o emulador roda em várias</p><p>máquinas, porém o hardware precisa rodar o código e o emulador. Já para</p><p>o iOS, é necessário um Mac com xCode.</p><p>Como o Flutter é um framework novo no mercado, ainda existem poucos</p><p>recursos criados pela comunidade, como respostas a dúvidas e posts/vídeos</p><p>com ideias e tutoriais.</p><p>No site temos um guia passo a</p><p>passo com</p><p>explicações sobre itens relacionados ao Flutter e a várias tecnologias na área de</p><p>desenvolvimento mobile, vale a pena uma visita. A imagem a seguir mostra a</p><p>estrutura do site.</p><p>12</p><p>Figura 3 – Roadmap do desenvolvedor Swift</p><p>Fonte: https://roadmap.sh/flutter.</p><p>13</p><p>TEMA 4 – MERCADO DE MOBILE NO BRASIL E NO MUNDO</p><p>O relatório produzido anualmente pela State of Mobile mostrou em 2022</p><p>uma análise de dados e tendências de dispositivos móveis do mercado mundial,</p><p>proporcionando aos desenvolvedores mobile e às organizações uma importante</p><p>fonte de informações no que diz respeito ao comportamento dos usuários e às</p><p>tecnologias emergentes do setor mobile.</p><p>Um levantamento realizado pela empresa Statista mostra que a receita</p><p>para o mercado de aplicativos está estimada em US$ 614 bilhões até 2026,</p><p>apresentando uma taxa de crescimento anual segundo o CAGR 2022-2026 de</p><p>incríveis 7,77%, conforme podemos ver no gráfico a seguir.</p><p>Figura 4 – Gráfico de crescimento anual</p><p>Fonte: Statista.</p><p>Esse crescimento vertiginoso tem como principal impulso o aumento da</p><p>utilização de dispositivos móveis, além da incorporação de recursos que</p><p>contribuem com várias tarefas diárias, abarcando jogos, aplicações de</p><p>entretenimento, além de ferramentas de gerenciamento de agendas e</p><p>produtividade.</p><p>14</p><p>Temos ainda a inteligência artificial em conjunto com o aprendizado de</p><p>máquina, permitindo que essa indústria atinja os clientes de forma direta e</p><p>individualizada, com coleta de dados, como informações demográficas e o</p><p>comportamento do consumidor, o que contribui nas estratégias de marketing e</p><p>vendas.</p><p>É preciso observar como essas situações acontecem e como o customer</p><p>experience é mais assertivo nesse segmento de desenvolvimento mobile. Essas</p><p>observações são importantes para as empresas, seus executivos e líderes, para</p><p>que possam planejar as suas estratégias de negócio, levando em consideração</p><p>que o Brasil é um dos principais players do mundo mobile.</p><p>O site produz anualmente uma pesquisa</p><p>salarial através do canal Código Fonte TV, com o objetivo de levantar os valores</p><p>de remuneração sobre o mercado de trabalho para os desenvolvedores que</p><p>trabalham no Brasil e no exterior. A pesquisa de 2023 é a terceira edição</p><p>realizada, realizada entre os dias 30 de janeiro e 24 de abril. Participaram da</p><p>pesquisa 17.818 profissionais. A média salarial depende de cada empresa, e</p><p>depois a pesquisa leva em consideração a média por nível de experiência para</p><p>entender o comportamento do mercado em relação à oferta e à demanda dos</p><p>desenvolvedores. Podemos ver a seguir a média salarial por nível publicada pelo</p><p>canal Código Fonte TV. A seta após os valores significa crescimento ou não em</p><p>relação ao ano de 2022.</p><p>Figura 5 – Média salarial</p><p>Fonte: Código Fonte, 2023.</p><p>15</p><p>Essa pesquisa mostra ainda as características dos profissionais</p><p>envolvidos na pesquisa, demostrando as particularidades da profissão, como o</p><p>nível de experiência. A maioria é formada por Pleno (31,8%), a plataforma mais</p><p>comum ainda é a Web (44,25%), e mobile apresenta participação de 6,11%. A</p><p>pesquisa ainda mostra que, como a maior plataforma é Web, os maiores ganhos</p><p>também se concentram nesse segmento. Esse mercado, segundo a pesquisa, é</p><p>estável, com baixos índices de demissão, o que pode ser um bom indicador para</p><p>muitas pessoas decidirem se tornar um desenvolvedor. O gênero masculino</p><p>ainda tem uma participação maciça nesse mercado (90,7%). O nível educacional</p><p>é proporcional ao salário, não sendo prerrogativa ter um curso superior. No</p><p>entanto, considerando os maiores ganhos, a maior parte dos profissionais</p><p>apresenta curso superior. Um fator curioso em relação às fontes de</p><p>conhecimento que os profissionais buscam para estudo e atualização: a internet</p><p>é a grande fonte, com mais de 83% de participação. Isso mostra que a</p><p>informação e o conhecimento estão disponíveis para todos os interessados, é só</p><p>correr atrás.</p><p>Um assunto importante que precisa ser bem avaliado por profissionais da</p><p>área de tecnologia é o modelo de contratação oferecido pelo mercado: CLT</p><p>(registrado como funcionário) ou PJ (Pessoa Jurídica). CLT apresenta um salário</p><p>médio de R$ 7.540,05 e PJ um rendimento de R$ 12.062,54. Lembrando que a</p><p>CLT garante rendimentos extras, como 13° salário, férias, FGTS e outros</p><p>benefícios ausentes no modelo de PJ. Esse assunto é importante,</p><p>principalmente para quem está entrando no mercado de trabalho, devendo ser</p><p>analisado com muita atenção, se possível com orientação profissional.</p><p>A modalidade de trabalho nas formas remoto, presencial ou híbrido</p><p>também foi abordada pela pesquisa. Há uma preferência esmagadora pelo</p><p>modelo remoto, com 78,16% da preferência dos entrevistados. Essa modalidade</p><p>é apontada como ideal, seguida pelo modo híbrido, com 20,7%, e presencial com</p><p>1,14 das opiniões. A modalidade de trabalho remoto ganhou força com a</p><p>pandemia em 2020, caindo no gosto dos profissionais da área de tecnologia. Por</p><p>sua alta aceitação a tendência é que continue a ser empregada pelos</p><p>desenvolvedores de software.</p><p>Como o mercado de desenvolvimento é global, é importante saber como</p><p>é o mercado em outros países. Outro fator a que o profissional precisa estar</p><p>atento é a fluência em inglês, língua universal de comunicação na área de</p><p>16</p><p>tecnologia. Os profissionais, em sua maioria (42,49%), não pretendem se mudar</p><p>para outros países. O nível de Inglês intermediário é o preponderante, com 39%,</p><p>além de ótimos 29,58% com nível avançado. O problema é que 61,1% dos</p><p>profissionais não conseguem conversar de forma fluente em inglês. Isso mostra</p><p>que o nível intermediário só serve para leitura do inglês, e não conversação.</p><p>Outra abordagem interessante da pesquisa é que 58,97% dos profissionais que</p><p>trabalham no exterior não voltariam para o Brasil – apenas 11,54% voltariam.</p><p>Isso mostra um descrédito com o país. A média salarial dos profissionais da área</p><p>de desenvolvimento que atuam fora do Brasil é de R$ 22.450,46. Portugal lidera</p><p>o ranking da pesquisa, com 172 participantes e uma média de R$ 16.137,11,</p><p>muito próxima à média apresentada pelos profissionais que atuam no Brasil.</p><p>Para finalizar, a seguir podemos observar a relação das principais</p><p>linguagens de programação ou ferramentas, com média salarial respectiva e</p><p>número de participantes que utilizam a linguagem.</p><p>Figura 6 – Média salarial por linguagens</p><p>Fonte: Código Fonte, 2023.</p><p>7823,97</p><p>9064,12 8987,88</p><p>8599,68 8457,13</p><p>7279,82</p><p>10887,14</p><p>7257,94</p><p>6888,74</p><p>3688</p><p>2711 2656</p><p>1739 1695 1457 397 369 349</p><p>0</p><p>2000</p><p>4000</p><p>6000</p><p>8000</p><p>10000</p><p>12000</p><p>JavaScript Java c# Python TypeScript PHP Kotlin Dart SQL</p><p>Média salarial por Linguagens/Tecnologias</p><p>Média R$ Participantes</p><p>17</p><p>TEMA 5 – TENDÊNCIAS MOBILE</p><p>Existem algumas tendências importantes em código o para</p><p>desenvolvimento de aplicativos: low-code, no-code e code. O low-code e o no-</p><p>code são modelos de plataformas que otimizam a execução de projetos, ditando</p><p>o futuro da criação de apps, softwares e sites.</p><p>Com o crescimento do mercado de tecnologia, empresas e prestadores</p><p>de serviços passaram a focar seus esforços em aumentar o desempenho de</p><p>produção sem comprometer a qualidade do serviço realizado, procurando</p><p>ganhar escala. As áreas de desenvolvimento de sites, sistemas ou aplicativos</p><p>requerem hoje agilidade e ferramentas inovadoras capazes de acelerar o</p><p>processo de produção dos projetos.</p><p>Diante dessas características, surgiram as plataformas no-code e low-</p><p>code, para maximizar a produtividade da equipe sem exigir conhecimento mais</p><p>profundo de programação, reduzindo ainda as horas de trabalho da equipe de</p><p>desenvolvimento.</p><p>A diminuição da carga de trabalho, assim como a menor necessidade de</p><p>conhecimento de programação, ajuda o mercado a encontrar mais</p><p>programadores, possibilitando que as equipes de desenvolvimento</p><p>se dediquem</p><p>a outros pontos mais estratégicos, de modo que podem finalizar projetos em</p><p>menos tempo e com menor volume de retrabalho. Para entender como</p><p>funcionam as plataformas no-code e low-code, vamos conhecer os conceitos e</p><p>entender as vantagens para os desenvolvedores de aplicativos e para as</p><p>empresas.</p><p>Low-code e no-code são termos que definem formas mais práticas de</p><p>desenvolver sistemas, aplicativos e sites, sem demandar tanto tempo e energia</p><p>do desenvolvedor para codificar e construir os projetos. Ambas as modalidades</p><p>têm crescido exponencialmente, pois elas agregam mais valor aos produtos</p><p>desenvolvidos.</p><p>Com o objetivo de agilizar o trabalho nos projetos de desenvolvimento, o</p><p>low-code é caracterizado por plataformas de desenvolvimento que apresentam</p><p>interfaces gráficas. Assim, é possível que o desenvolvedor construa seu projeto</p><p>com pouco código escrito.</p><p>18</p><p>5.1 Low-code</p><p>O low-code permite que desenvolvedores com conhecimento médio de</p><p>programação possam desenvolver um projeto com qualidade. Isso porque o</p><p>profissional não se ocupa tanto com programação e codificação, porque alguns</p><p>elementos estão disponíveis na plataforma para customização e uso.</p><p>Crédito: Net Vector/Shutterstock.</p><p>As soluções do low-code são passíveis de customização, o que significa</p><p>que é possível criar projetos exclusivos, com diferentes níveis de personalização,</p><p>trazendo flexibilidade aos projetos. Com boa parte dos itens já codificados, a</p><p>equipe de desenvolvimento gasta menos tempo para desenvolver e entregar o</p><p>projeto, sem a necessidade de testes e minimizando a necessidade de correção</p><p>de erros. Como isso, os processos de desenvolvimento se tornam mais ágeis, o</p><p>que possibilita mais projetos, com consequente aumento de faturamento.</p><p>5.2 No-code</p><p>O desenvolvimento de aplicativos está crescendo em virtude do</p><p>crescimento de usuários conectados, remotamente, a muitos dispositivos</p><p>móveis, principalmente os smartphones. Com isso, surgem novas tecnologias e</p><p>plataformas de desenvolvimento. Um dos problemas, porém, é a falta de mão de</p><p>obra especializada na área, o que cria dificuldades para quem tenta contratar</p><p>desenvolvedores para os seus produtos. Para suprir essa dificuldade, surgiram</p><p>produtos que permitem o desenvolvimento de aplicativos sem código. Assim,</p><p>19</p><p>não são necessários conhecimento vasto ou experiência na área de</p><p>desenvolvimento. Essas plataformas são conhecidas como no-code.</p><p>Crédito: Kolonko/Shutterstock.</p><p>A plataforma no-code proporciona formas de desenvolvimento e</p><p>alterações de templates muito simples. Esses templates são exemplos que a</p><p>plataforma disponibiliza. Podem ser utilizados como ponto de partida para o</p><p>desenvolvimento de um aplicativo, sem a necessidade de criação de código e</p><p>aproveitamento a maioria das telas já desenvolvidas. A criação desses</p><p>aplicativos permite atrair novos clientes e fidelizar os que já estão na carteira,</p><p>potencializando dessa forma o crescimento dos negócios.</p><p>Umas das dificuldades no desenvolvimento de sistemas é a codificação,</p><p>pois ela exige um conhecimento técnico específico e apurado. Assim, ela muitas</p><p>vezes é um elemento que dificulta a contratação de desenvolvedores para novos</p><p>projetos. Com a utilização de plataformas que não necessitam de codificação,</p><p>profissionais com pouco experiência em programação conseguem atender os</p><p>requisitos mínimos para o desenvolvimento de aplicativos e ainda atender os</p><p>prazos dos projetos, aplicando outras experiências profissionais em melhorias</p><p>para o produto em pauta. Outro benefício que podemos citar é a redução da</p><p>equipe de desenvolvedores, pelos motivos que já citados. Com isso, é possível</p><p>reduzir o custo de desenvolvimento e dos projetos, ou ainda finalizá-los antes do</p><p>prazo, liberando a equipe para novos trabalhos. Portanto, há mais agilidade na</p><p>produção da área de desenvolvimento.</p><p>20</p><p>As plataformas de desenvolvimento que não utilizam código escrito pelo</p><p>desenvolvedor permitem que os modelos sejam customizados, o que significa</p><p>que os modelos disponibilizados poderão ser usados da forma original ou</p><p>alterados conforme as necessidades do projeto. Tudo isso de forma visual, sem</p><p>modificações em linha de código.</p><p>É essencial contar com a experiência dos gestores da área de TI, mas as</p><p>empresas também precisam conhecer as características da empresa e da</p><p>equipe de desenvolvimento. Além disso, é importante conhecer os produtos que</p><p>serão disponibilizados e os clientes que serão atendidos, para definir as</p><p>plataformas que poderão ser utilizadas, considerando as mais adequadas para</p><p>atender o amplo universo da área de desenvolvimento de sistemas, agora com</p><p>essa ferramenta que não necessita de linha de código.</p><p>Em caso da necessidade de prazos mais dilatados e de mais membros na</p><p>equipe para o desenvolvimento de soluções mais complicadas, é importante</p><p>optar por ferramentas que permitem que desenvolvedores com menos</p><p>experiência tenham tempo para se dedicar ao aprendizado da nova tecnologia.</p><p>Eles podem ainda receber auxílio de membros da equipe com mais experiência</p><p>e conhecimento em linguagens codificadas.</p><p>Outros fatores, claro, devem ser avaliados, como os objetivos gerais da</p><p>empresa e se as plataformas de desenvolvimento no-code e low-code se</p><p>adequam ao caso, considerando ainda o custo-benefício que oferecem. Para a</p><p>área de desenvolvimento, devemos levar em consideração outros pontos, como</p><p>responsividade, possibilidades de customização, otimização dos prazos,</p><p>documentação e equipamentos adequados e de boa qualidade.</p><p>As plataformas que dispensam a utilização de códigos podem ser</p><p>utilizadas em projetos de qualquer porte, tanto quanto para equipes</p><p>multidisciplinares como para desenvolvedores individuais. Tais plataformas</p><p>estão alterando o ambiente de desenvolvimento como tendência de mercado,</p><p>como ferramentas que vieram para agregar poder de crescimento, seja para as</p><p>empresas responsáveis pela criação dos aplicativos, para os desenvolvedores</p><p>que trabalham com código, ou ainda para novos desenvolvedores, que não</p><p>dominam as linguagens de programação, mas estão se especializando nas</p><p>plataformas que dispensam código.</p><p>21</p><p>5.3 Inteligência Artificial</p><p>Vamos ver agora que a Inteligência Artificial (IA) é uma tendência de</p><p>mercado, avaliando o papel do desenvolvedor como essa tecnologia. Para</p><p>entender isso, podemos acompanhar o lançamento de uma ferramenta de</p><p>desenvolvimento cooperativo, que foi apresentada pela Microsoft: o Microsoft</p><p>365 Copilot. Trata-se de um recurso de IA que será incorporado às principais</p><p>ferramentas de produtividade do Microsoft 365, como o editor de texto Word, a</p><p>planilha de cálculo Excel, o software de apresentação Power Point e o</p><p>gerenciamento de informações pessoais Outlook, com o objetivo de proporcionar</p><p>fontes de informações e criatividade, além de aumentar a produtividade para os</p><p>usuários, com melhoria de suas habilidades.</p><p>Com o lançamento dessa ferramenta, a Microsoft explora a IA para</p><p>proporcionar um aumento da produtividade. Ela pretende oportunizar ao usuário</p><p>melhores condições de uso dos aplicativos, melhorando também a autonomia e</p><p>oferecendo acessibilidade através de linguagem natural aplicada nas</p><p>ferramentas.</p><p>Crédito: Tada Images/Shutterstock.</p><p>A Microsoft disponibilizou essa ferramenta para os usuários do Microsoft</p><p>365, a plataforma de produtividade da fabricante. O Copilot está integrado aos</p><p>22</p><p>aplicativos para melhorar a produtividade dos usuários, além de aprimorar a</p><p>criatividade e outras habilidades através do Business Chat. Essa ferramenta, em</p><p>conjunto com os aplicativos do Microsoft 365, usa os dados atrelados ao usuário,</p><p>como datas, e-mails, chats, documentos, contatos e compromissos, para</p><p>notificá-lo de possíveis compromissos e atividades com base em atividades</p><p>realizadas em sua rotina.</p><p>Esse tipo de ferramenta tem a capacidade de melhorar</p><p>a produtividade de</p><p>todos os usuários. Desde usuários comuns, que apresentam poucas habilidades</p><p>com as ferramentas de produção até usuários especialistas, que afirmam que o</p><p>Copilot aumenta a produtividade na área de desenvolvimento, permitindo que se</p><p>dediquem a outras tarefas, em virtude da economia de tempo que esse tipo de</p><p>tecnologia proporciona.</p><p>Outra ferramenta de inteligência artificial é o GitHub Copilot, desenvolvida</p><p>pelo GitHub em conjunto com a OpenAI. Ela auxilia usuários de ambientes de</p><p>desenvolvimento integrados (IDEs ou Integrated Development Environments),</p><p>como Visual Studio Code, Visual Studio, Neovim e JetBrains por meio de</p><p>sugestões de código para preenchimento automático. Oferece suporte para</p><p>usuários que desenvolvem em linguagens como Python, JavaScript, TypeScript,</p><p>Ruby e Go.</p><p>O GitHub Copilot é mantido pelo OpenAI Codex, um modelo de</p><p>inteligência artificial criado pela OpenAI, um laboratório de pesquisa de</p><p>inteligência artificial. O OpenAI Codex é uma versão de produção modificada do</p><p>GPT-3, um modelo de linguagem que usa deep-learning para produzir texto</p><p>semelhante ao desenvolvido pelo ser humano. Ao fornecer um problema de</p><p>programação em linguagem natural, por exemplo, o Codex é capaz de gerar o</p><p>código da solução. O GPT-3 do Codex é licenciado exclusivamente para a</p><p>Microsoft, empresa detentora do GitHub.</p><p>Muitas pessoas, especialmente fotógrafos, estão animados com os</p><p>geradores de imagens com Inteligência Artificial. É possível criar imagens</p><p>através de uma descrição textual, ao invés de utilizar uma câmera fotográfica. A</p><p>tecnologia de geração de imagens explodiu em popularidade em 2022, e deve</p><p>crescer muito mais nos próximos anos. Os 5 melhores geradores de imagens</p><p>com IA são: DALL-E, Stable Diffusion, Midjourney, Craiyon e Nightcafe AI.</p><p>Essas ferramentas permitem que a relação entre usuários e a IA seja</p><p>transformada, pois a partir de soluções personalizadas será possível melhorar o</p><p>23</p><p>ambiente do usuário e proporcionar um atendimento individualizado, conforme</p><p>as características de produção e a meta de aproveitamento do tempo,</p><p>considerando tarefas e trocas interativas anteriores. A aposta é uma</p><p>transformação completa no relacionamento entre usuários e IA.</p><p>Crédito: JLStock/Shutterstock.</p><p>5.4 Realidade Aumentada</p><p>A Realidade Aumentada (RA) é uma tecnologia que permite sobrepor</p><p>elementos virtuais à nossa visão da realidade. O termo foi criado em 1992, pelo</p><p>cientista e pesquisador Thomas P. Caudell, durante o desenvolvimento do</p><p>Boeing 747. Caudell observou que os operários que faziam a montagem da</p><p>aeronave perdiam muito tempo interpretando as instruções. Ele imaginou o que</p><p>poderia acontecer se eles tivessem acesso a um monitor que os orientasse</p><p>durante a instalação. Como muitos projetos inovadores, a invenção não foi bem-</p><p>sucedida, mas foi nesse momento que nasceu o conceito de Realidade</p><p>Aumentada.</p><p>Como vimos, foi com essa experiência, de 1992, que surgiu o conceito de</p><p>RA, e não no verão de 2016, como muitos acreditam, quando fomos acometidos</p><p>pela febre do Pokémon GO, um videogame em que o jogador deve capturar</p><p>24</p><p>diferentes personagens da saga japonesa. No seu ápice, o game atingiu a marca</p><p>astronômica de 45 milhões de usuários diários ativos.</p><p>O Pokémon GO popularizou a RA, aproximando essa tecnologia do</p><p>grande público, embora nessa época muitas empresas dos setores de saúde,</p><p>educação, arquitetura, serviços e vendas já tinham começado a utilizá-la com o</p><p>objetivo de criar experiências de valor para seus clientes.</p><p>Para experimentar a RA, vou disponibilizar uma lista de games, além do</p><p>Pokémon GO, que podem ser encontrados na Internet: Sky Whale, The Creeps!</p><p>2, Safari Friends – AR Animal, WrldCraft, Shin Megami Tensei Liberation D×2,</p><p>Wildeverse, Knightfall AR, Ingress Prime, Kings of Pool, Zombies, Run!, Jurassic</p><p>World Alive, The Walking Dead: Our World e Harry Potter: Wizards Unite.</p><p>FINALIZANDO</p><p>Nesta etapa, vimos quais são as áreas de atuação do profissional de</p><p>desenvolvimento mobile. Estudamos que elas podem abarcar o desenvolvimento</p><p>de aplicativos, o desenvolvimento softwares, além de determinar quais</p><p>ferramentas e recursos um app terá, realizando testes e configurações dos</p><p>aplicativos. Vimos ainda as linguagens e ferramentas que fazem parte do</p><p>cotidiano do profissional que desenvolve aplicativos mobile. Tratamos do que é</p><p>preciso aprender para se tornar um desenvolvedor mobile, com destaque para a</p><p>importância da área de mobile nas organizações. Vimos também a importância</p><p>do empreendedorismo e o mercado mobile no Brasil e no mundo. Para finalizar,</p><p>tratamos de tendências em código e desenvolvimento: low-code, no-code, code</p><p>e IA.</p><p>25</p><p>REFERÊNCIAS</p><p>ANDROID DEVELOPER. Roadmap.sh, 2023. Disponível em:</p><p>. Acesso em: 28 ago.</p><p>2023.</p><p>CÓDIGO FONTE. Pesquisa Salarial de Programadores Brasileiros. 2023.</p><p>Disponível em: . Acesso em: 28 ago.</p><p>2023.</p><p>Conversa inicial</p><p>5.4 realidade aumentada</p><p>FINALIZANDO</p><p>REFERÊNCIAS</p>