# data[].attributes.body
O que são?

De acordo com Tanenbaum (2003 apud Barbosa, 2018), o sistema operacional apresenta-se como a parte essencial de qualquer sistema computacional. Assim, sem a sua existência, os usuários precisariam saber detalhes bastante complexos de hardware para que conseguissem utilizar o computador.

Em complementação, afirmam Woodhull e Tanenbaum (2008) que o sistema operacional é o programa que oculta do usuário a realidade sobre o hardware e apresenta uma visão bela e simples de arquivos nomeados que podem ser lidos e escritos. E, nesse sentido, assim como o sistema operacional isola o usuário do hardware do disco e apresenta uma interface simples e orientada para arquivos, ele também oculta muitos detalhes desagradáveis relativos a interrupções, temporizadores, gerenciamento de memória e outros recursos de mais baixo nível.

Por isso, ainda de acordo com Woodhull e Tanenbaum (2008), a função do sistema operacional, sob esse ponto de vista, é apresentar ao usuário o equivalente a uma máquina virtual (estendida), mais fácil de programar do que o hardware que a compõe.

Dito isso, o sistema operacional também pode ser conceituado como gerenciador de todas as partes de um sistema complexo. Isto é, é o fornecedor de alocação ordenada e controlada dos processadores, memórias e dispositivos de entrada e saída entre os vários programas que concorrem por eles (WOODHULL; TANENBAUM, 2008).

Portanto, pode-se dizer que o sistema operacional é um software responsável por controlar o computador e tem por objetivo gerenciar seus recursos de hardware, tais como: processador, memória e periféricos - teclado, mouse, impressora, dados, dentre outros. Além disso, faz também a interação entre o hardware e o software, sendo responsável por conectar o hardware e o usuário do computador (BARBOSA, 2018).

Para finalizar, Machado (1997 apud Barbosa, 2018) destaca que quando o computador é ligado, o sistema operacional é o primeiro programa a ser executado e permanece gerenciando os recursos de hardware e software até que o computador seja desligado. Tem, então, o objetivo de gerenciar o computador de forma eficiente e produtiva facilitando o seu uso, além de garantir a integridade e a segurança dos dados durando o seu processamento e na memória.

Referência: BARBOSA, Cynthia da Silva. Sistemas Operacionais. Londrina: Editora e Distribuidora Educacional S.A., 2018.

WOODHULL, Albert S.; TANENBAUM, Andrew S. Sistemas Operacionais: projeto e implementação. Tradução: João Tortello. 3º ed. Porto Alegre: Bookman, 2008.

# data[].attributes.body
Sistemas Monoprogramáveis/MonotarefaOs sistemas operacionais monoprogramáveis/monotarefa referem-se aos primeiros computadores pessoais criados em 1960. Eles executam um único programa por vez e todos os recursos da máquina são alocados exclusivamente para o programa em execução, mesmo que não esteja utilizando o recurso. Sua implementação é simples porque não é necessário se preocupar com a concorrência de recurso. Um exemplo dele é o MS-DOS (MACHADO; MAIA, 2007 apud BARBOSA, 2018).Referência: BARBOSA, Cynthia da Silva. Sistemas Operacionais. Londrina: Editora e Distribuidora Educacional S.A., 2018.

# data[].attributes.body
Considerando que a interface que estou montando é para o oferecimento de cardápios digitais e que segundo o IBGE, em uma pesquisa realizada em 2018, cerca de 79,3% da população brasileira utiliza celulares, contrastando com os 42% que fazem uso de computadores, conforme notícia publicada no site oficial da CNN Brasil, em 2020, o sistema operacional que escolheria para desenvolver a interface é um sistema operacional mobile, uma vez que a maioria das pessoas fazem uso de smartphones, o que possibilitaria um maior alcance do público-alvo.

Tendo isso em mente, passa-se a escolha de qual sistema operacional mobile utilizar. Segundo uma comparação feita por Canguçu (2021), fazer um aplicativo para iOS é mais rápido e menos caro, uma vez que é mais fácil para desenvolver o código na linguagem padrão da Apple (Swift) que exige menos linhas de códigos que o Java, linguagem do Android. Além disso, o Android é uma plataforma de código aberto, o que significa que a falta de padronização implica em mais dispositivos, componentes e fragmentação de software que devem ser considerados na programação, o que não acontece com o iOS, já que é um ecossistema fechado e padronizado.

Em contrapartida, e ainda de acordo com Canguçu (2021), o Android permite uma maior flexibilidade de recursos, visto que, em razão do código-fonte aberto, há mais flexibilidade para personalizar seu aplicativo - criando recursos e funções que o público deseja.

Dito isso, considerando que objetiva-se criar um produto mínimo viável de forma rápida e barata, eu escolheria o sistema operacional iOS para desenvolver a interface, pois, como foi dito anteriormente, é mais barata e mais rápida, além de possuir menos variáveis a serem consideradas no desenvolvimento, em razão do sistema ser fechado e padronizado. Contudo, após o lançamento da primeira versão em iOS, quando o aplicativo estivesse estabelecido e bem-sucedido, lançaria a versão para Android.

Referência: BARBOSA, Cynthia da Silva. Sistemas Operacionais. Londrina: Editora e Distribuidora Educacional S.A., 2018.

CANGUÇU, Raphael. Como criar um aplicativo do zero: O Guia Completo. Codificar. 2021. Disponível em: <https://codificar.com.br/como-criar-um-aplicativo/#3_Escolha_da_plataforma_do_aplicativo>. Acesso em: agosto de 2022.

PAIVA, Fernando. 79,3% dos brasileiros têm celular, informa IBGE. Teletime. 2020. Disponível em: <https://teletime.com.br/29/04/2020/793-dos-brasileiros-tem-celular-informa-ibge/>. Acesso em: agosto de 2022.

# data[].attributes.body
Tendo definido o sistema operacional do aplicativo que será criado (o iOS), faz-se necessário definir as características do aplicativo. Nesse sentido, e segundo Moya (2017), depois de confirmar a escolha do tema do aplicativo (cardápios digitais) e o nicho a que ele vai atender (população de modo geral), o segundo passo é definir as principais características do aplicativo. Assim, é preciso analisar quem irá utilizá-lo e com qual finalidade, para então: criar um protótipo usando uma ferramenta wireframe; definir a estrutura de navegação; definir o comportamento em situações online e offline; levantar questões relacionadas a acessibilidade; criar layout focado no público-alvo; usar padrões de interação conhecidos pelos usuários; utilizar a regra dos 3 cliques (que toda ação do usuário deve acontecer em no máximo 3 cliques); e, decidir as integrações.

Além disso, e ainda de acordo Moya (2017), as características do aplicativo devem ser ditadas pelo core business e que ele deve ser rápido, dinâmico, oferecer uma experiência agradável ao usuário e, também, ter funções e atributos que garantam o bom uso.

Deve-se, ainda, considerar o Mínimo Produto Viável, isto é, o objetivo é focar no MVP, nas principais funcionalidades e nos requisitos e recursos essenciais. Isso porque uma boa experiência não é sinônimo de uma prática completa, mas sim amigável. Ou seja, o ideal é colocar o aplicativo no ar, tendo em vista o MVP, para testar a adesão e, então, modificá-lo continuamente até alcançar as necessidades reais do usuário (MOYA, 2017).

O aplicativo, entretanto, não é só interface. É preciso, também, estruturar todas as funcionalidades para que ele funcione perfeitamente. Assim, para definir a estrutura dos dados, é fundamental considerar todos os detalhes do negócio proposto. A estrutura mínima envolve a criação de tabelas e de diagramas de entidades e relacionamentos; fluxo de dados; armazenamento de arquivos binários; imagens; vídeos; entre outros. Além disso, é essencial decidir se a estrutura estará apenas no smartphone ou na nuvem (MOYA, 2017).

Outro ponto importante é o design da interface. Para Moya (2017), deve-se levar em consideração a perspectiva do usuário na hora de seu desenvolvimento. Isso porque o design do aplicativo é a principal informação para o usuário que irá percebê-lo e experimentá-lo. Essa é, então, a etapa que envolve a criação das telas, do layout, de como vai funcionar o fluxo da navegação e qual será a interação entre as telas.

Dito isso, passa-se a considerar a integração com as ferramentas necessárias, ou seja, é preciso verificar quais ferramentas serão essenciais para analisar resultados e controlar o uso do aplicativo. Nesse diapasão, ferramentas para análise de acesso, gestão de erros e banco de dados online são fundamentais para entender o comportamento do usuário e avaliar quais funcionalidades são realmente úteis. Assim, elas contribuem para a detecção de erros em tempo real e a produção de relatórios dos problemas, para que seja possível a sua correção (MOYA, 2017).

O desenvolvimento de códigos e funcionalidades é um ponto importante a ser observado. Para codificar os sistemas é preciso uma IDE (Integrated Development Environment), ou seja, um ambiente integrado para o desenvolvimento do software. O mais importante é decidir a melhor plataforma que atende ao público-alvo (MOYA, 2017).

Por fim, tem-se a atualização gradativa de novas funcionalidades. Nesse ponto, após o desenvolvimento dos códigos e funcionalidades e lançamento da versão inicial, é possível testar, analisar e modificar constantemente os recursos do aplicativo com base na análise de experiência do usuário. Assim, caso se perceba a necessidade, os recursos podem ser atualizados ou criados, bastando apenas incluí-los em um documento de especificação, a fim de fazer o acompanhamento da organização estrutural do aplicativo (MOYA, 2017).

Referência: MOYA, Fernanda. O que você deve considerar ao desenvolver um app?. iMasters. 2017. Disponível em: <https://imasters.com.br/desenvolvimento/o-que-voce-deve-considerar-ao-desenvolver-um-app>. Acesso em: agosto de 2022.

# data[].attributes.body
A parte da disciplina que mais me identifiquei foi a de Desenvolvimento de Aplicativo Mobile, uma vez que achei muito interessante o processo por trás do aplicativo em si. Ou seja, quando utilizamos um aplicativo, principalmente nos dias de hoje, é algo tão natural, tão intuitivo, que não paramos para pensar em como ele foi construído, em quais pontos foram levados em consideração para seu desenvolvimento, na razão de uma tela interagir com a outra de uma determinada maneira e, principalmente, quando não nos agrada a interface, qual o motivo desse desconforto.

Estudar sobre os sistemas operacionais mobile, sobre os passos fundamentais a serem considerados para o desenvolvimento de um aplicativo, sobre a importância do feedback, me fez compreender melhor e mudar o meu olhar para os aplicativos que utilizo no meu cotidiano.

# data[].attributes.attachment_link.title
image desenvolvimento de aplicativo mobile