Prévia do material em texto
Questão 01) Considerando os conteúdos abordados ao longo da disciplina sobre desenvolvimento de aplicações móveis, em uma criação mobile, um dos requisitos que o desenvolvedor tem que considerar é o sistema operacional. Atualmente, existem dois sistemas, o iOS e Android, como as duas principais plataformas mobile. Com relação ao sistema Android, descreva um ambiente de desenvolvimento para iniciar a construção de uma aplicação para plataforma Android e compare-a com a plataforma iOS. Sugestão: faça uma separação entre softwares necessários e estruturas do projeto Android. Resposta: O sistema operacional Android foi criado pela empresa iniciante homônima Android Inc. Em outubro de 2003. Em agosto de 2005, foi comprada pelo Google, que lançou o OHA (Open Handset Alliance) em novembro de 2007, juntamente com o sistema de código aberto Android. No núcleo do Linux. Uma semana depois, a primeira versão do Android SDK foi lançada. O sistema foi originalmente projetado para câmeras fotográficas, mas seus criadores viram um mercado de telefonia mais amplo e o foco mudou para smartphones, que competem diretamente com Symbian e Windows Mobile. A arquitetura do Android é baseada em camadas: A camada superior é o Application Framework, onde são instalados os aplicativos criados pelos desenvolvedores. A camada abaixo da estrutura do aplicativo são os proxies Binder IPC, onde IPC significa comunicação entre processos. É uma camada que forma uma ponte entre os aplicativos instalados na camada superior e a camada seguinte, os serviços do sistema. É uma interface que permite que APIs de alto nível se comuniquem com serviços do sistema na camada subjacente. Os proxies Binder IPC são serviços do sistema que permitem acesso a hardware específico por meio de módulos. Cada serviço dessa camada é desenvolvido para gerenciar um componente específico, como busca e notificações. Os serviços foram divididos em duas categorias: mídia e sistema: Servidor do sistema: são serviços responsáveis por gerenciar outros tipos de serviços do sistema, como notificações, janelas, gravação e reprodução de áudio. Abaixo da camada de serviços do sistema está a camada de abstração de hardware (HAL), que permite que os fabricantes de dispositivos criem interfaces e controles para o hardware que fornecem. Com isso, é possível criar novas funções e programá-las sem afetar outras camadas do sistema. A camada mais baixa é o kernel do Linux, uma versão do kernel do Linux que inclui algumas mudanças, como gerenciamento de memória aprimorado adequado para dispositivos móveis e recursos para dispositivos embarcados. O desenvolvimento de aplicativos Android tem tudo a ver com a linguagem de programação Java. Nenhum sistema operacional especial é necessário e o IDE anunciado pelo Google é o Android Studio, o desenvolvimento oficial do aplicativo Android. Há uma taxa única de US$ 25 para publicar na Google Play Store. Antes de serem lançados, os aplicativos passam por uma revisão para garantir que não violem as políticas da loja. O SO (Sistema Operacional) iOS foi lançado em janeiro de 2007 com o primeiro iPhone e serve como uma interface de usuário entre aplicativos (apps) desenvolvidos por desenvolvedores e dispositivos (iPhone, iPad, iPod). Dessa forma, a comunicação com o hardware do dispositivo ocorre por meio de um conjunto bem definido de interfaces do sistema, o que facilita o desenvolvimento de aplicativos que funcionem com os diferentes tipos de hardware de dispositivos Apple. A arquitetura do iOS é baseada em camadas e, como recomendação, a Apple explica que as camadas superiores devem ser preferidas porque as camadas contêm abstrações de objetos de funções implementadas nas camadas inferiores. Isso facilita o desenvolvimento, reduzindo a quantidade de código gerado e mantendo funções complexas de nível inferior encapsuladas por interfaces. No entanto, é permitido usar funções em camadas inferiores se elas não estiverem disponíveis por meio de abstrações de camadas superiores. A maioria das interfaces disponíveis estão disponíveis no Xcode por meio de frameworks adicionados ao projeto, que contém DSLs (Dynamic Shared Libraries) e recursos necessários como imagens, helpers e arquivos de cabeçalho para o bom funcionamento do framework. Conforme declarado anteriormente, a arquitetura do iOS é baseada nas camadas listadas: A camada Cocoa Touch é a camada superior que fornece serviços básicos de interação do usuário, como entrada por toque, notificações push e outras tecnologias para melhorar a experiência do usuário, como multitarefa, handoff e AirDrop. Além de estruturas avançadas que fornecem acesso a funções do sistema, como Catálogo de endereços para contatos, EventKit para eventos de calendário e MapKit para mapas. A camada abaixo do Cocoa Touch é a camada de mídia, que contém as tecnologias e estruturas necessárias para implementar experiências multimídia com áudio, vídeo e gráficos. A próxima camada, logo abaixo da camada de mídia, é a camada de serviço central. Essa camada está mais próxima do hardware e, portanto, tem acesso a funções de nível inferior, como localização, chamadas, threads e SQLite. Existem duas estruturas principais do iOS que são Foundation e Core Foundation. Ambos estão relacionados ao gerenciamento de dados e alguns serviços, e definem todos os dados básicos usados por todas as aplicações, como coleções, strings, data e hora, sockets e threads. . A última camada é a camada do Core OS, onde a funcionalidade de nível mais baixo é criada e provavelmente usada por outras estruturas em outras camadas. Caso a aplicação possua requisitos de segurança ou comunicação mais complexos com periféricos externos, é possível utilizar as funções desta camada. Desenvolvimento iOS O iOS SDK permite que os desenvolvedores criem seus próprios aplicativos e os testem com emuladores. No entanto, usar e distribuir recursos avançados da App Store da Apple requer uma licença do Apple Developer Program, que custa US$ 99 por ano. Para distribuir aplicativos iOS, além da licença mencionada acima, um aplicativo deve ser enviado à Apple para avaliação e aprovação antes de passar para a App Store. Para agilizar o processo de aprovação, seu aplicativo deve seguir as diretrizes estabelecidas pela Apple, como diretrizes de GUI e diretrizes de revisão da App Store. Para desenvolver aplicativos para a plataforma iOS, você precisa de um computador com Mac OS e o ambiente de desenvolvimento Xcode. O desenvolvimento está interligado a duas linguagens de programação, Objective-C e Swift. A Apple lançou o Swift como o sucessor do Objective-C. É uma linguagem de código aberto e pode ser integrada ao código Objective-C. Logo após seu lançamento, tornou-se uma das linguagens de programação mais utilizadas no mundo. Questão 02) Leia o excerto a seguir: Em qualquer sistema, o controle de versões é fundamental para o planejamento de atualizações e manutenibilidade da aplicação. A importância está associada ao versionamento da aplicação instalada no dispositivo, pois os usuários precisam saber qual versão é a atual e qual versão está disponível para atualização; o controle de versão precisa sinalizar para outros aplicativos, mesmo os publicados como pacote, qual a versão atual da aplicação corrente no dispositivo, a fim de determinar a compatibilidade e identificar dependências; os serviços usados para publicar seu app também podem precisar consultar a versão para exibi-la aos usuários; esses mesmos serviços de publicação também podem ter de conferir a versão do app para determinar a compatibilidade e estabelecer relações de upgrade/downgrade (CONTROLAR VERSÕES…, 2020, on-line). Fonte: CONTROLAR versões do app. Android Studio, [2020]. Disponível em: https://developer.android.com/studio/publish/versioning?hl=pt-BR.Acesso em: 28 nov. 2019. Considerando o trecho anterior e os conteúdos abordados ao longo da disciplina Desenvolvimento de Aplicações Móveis, descreva a importância de ferramentas de automação de processos em frameworks de desenvolvimento de produtos mobile como Gradle. Resposta: O sistema de compilação do Android Studio é baseado no Gradle, e o plug- in Gradle para Android adiciona vários recursos relacionados à criação de aplicativos Android. Embora um plug-in do Android geralmente seja atualizado durante a fase principal do Android Studio, o plug-in (e o restante do sistema Gradle) pode ser executado independentemente do Android Studio e atualizado separadamente. O Gradle é executado no sistema operacional Android. Sua missão é a automação avançada do processamento da construção. Ele combina a flexibilidade do Ant e executa a manipulação de dependência do Maven. O Android ANT SDK permite que os desenvolvedores conectem aplicativos Android a dispositivos ANT. Ele permite que você se conecte aos seus dispositivos e crie topologias complexas com recursos ANT avançados, como varredura em segundo plano e aplicativos móveis. Portanto, permite que os aplicativos cubram todos os fabricantes de celulares sem fragmentação entre as versões do Android. https://developer.android.com/studio/publish/versioning?hl=pt-BR O plug-in Android Maven é usado para criar aplicativos para o sistema operacional Android e pode usar o Apache Maven para criar bibliotecas para uso no formato legado APKLIB. Enquanto as compilações do Maven usam arquivos XML para definir a compilação, as compilações do Gradle são escritas em Groovy. Como os arquivos Gradle são baseados em script, eles permitem que tarefas de programação sejam executadas em arquivos de configuração. Além disso, o Gradle possui um plug- in que adiciona novos recursos. A Integração Contínua (CI) força os desenvolvedores a integrar o código em um repositório para compartilhamento contínuo. Este é o processo de execução automática de testes em uma máquina não desenvolvedora quando um novo código é enviado para o repositório de origem. A imagem a seguir mostra a integração contínua com o sistema operacional Android. Use ferramentas de automação para desenvolver aplicativos mais poderosos usando as ferramentas Gradle e Jenkins.