Baixe o app para aproveitar ainda mais
Prévia do material em texto
WBA0177_v2.0 APRENDIZAGEM EM FOCO APLICATIVOS MOBILE MULTIPLATAFORMA 2 APRESENTAÇÃO DA DISCIPLINA Autoria: Ariel da Silva Dias Leitura crítica: Eduardo Eiji Ono Olá, estudante! Seja bem-vindo (a) à disciplina de Desenvolvimento mobile multiplataforma. Antes de falar sobre a disciplina, uma pergunta: quantas facilidades o smartphone ou um dispositivo móvel pode fornecer? Muitas, não é? Há alguns anos, poucos puderam pensar na ideia de solicitar um meio de transporte por meio do celular. Hoje, temos diversos aplicativos de mobilidade, como Uber e 99, que fazem este serviço. Outra grande facilidade é que é possível abrir um aplicativo, escolher sua refeição e, em pouco tempo, receber sua pizza ou almoço. Isso é muito bom! Sem contar também nos aplicativos que monitoram a saúde, que, muitas vezes, estão presentes em relógios inteligentes (smartwatches), indicando a hora para beber sua água e até mesmo para respirar! Enfim, são muitas as facilidades que a tecnologia pode oferecer e, se há alguns anos não era possível imaginar a existência de aplicativos como estes, imagine o que será possível desenvolver dentro dos próximos anos? Agora, imagine você sendo o idealizador de um destes aplicativos do futuro? Provavelmente, você será. Por isso, nesta disciplina, você conhecerá as principais tecnologias para desenvolver suas aplicações mobile, tendo como pano de fundo a funcionalidade de ferramentas, como Xamarin e Flutter, para desenvolver seus aplicativos para as plataformas mais utilizadas, que são o Android e o iOS. 3 Além disso, dialogaremos sobre estas e outras tecnologias envolvidas no desenvolvimento de aplicações mobile. Tenha certeza que o conteúdo foi preparado com toda a atenção para que você domine o assunto. Por fim, sempre que possível, execute os exemplos presentes no decorrer das aulas e também nas bibliografias recomendadas. Somente deste modo, será possível continuar a evoluir nos conhecimentos. Bons estudos! INTRODUÇÃO Olá, aluno (a)! A Aprendizagem em Foco visa destacar, de maneira direta e assertiva, os principais conceitos inerentes à temática abordada na disciplina. Além disso, também pretende provocar reflexões que estimulem a aplicação da teoria na prática profissional. Vem conosco! Introdução ao desenvolvimento mobile multiplataforma ______________________________________________________________ Autoria: Ariel da Silva Dias Leitura crítica: Eduardo Eiji Ono TEMA 1 5 DIRETO AO PONTO O desenvolvimento de uma aplicação mobile, seja multiplataforma ou nativa, é um processo caro, que demanda tempo e também mão de obra. Desse modo, não é uma boa prática começarmos desenvolvendo o aplicativo sem antes termos o protótipo, afinal, precisamos permitir que o cliente avalie o produto antes de começarmos a desenvolvê-lo. A prototipagem é um modo de desenvolvimento de software, onde um protótipo é desenvolvido, testado e retrabalhado /redefinido (quando necessário) até que uma versão aceitável deste protótipo esteja disponível. O resultado do processo de prototipagem é uma base para a produção do software final, sendo recomendado, principalmente, em cenários onde as necessidades de design não são claras; quando há mudanças constantes nos requisitos do software; no desenvolvimento de interfaces do usuário; e para demonstrar a viabilidade técnica do produto de software. A principal vantagem da prototipação é que o cliente pode ver o produto parcial já no início do ciclo de vida do desenvolvimento do projeto. Desse modo, se alguma funcionalidade estiver ausente (não foi devidamente definida ou não estava dentre os requisitos apresentados inicialmente), é possível descobrir e adicioná-la ao protótipo na próxima iteração. O processo de prototipagem é dividido em seis etapas, todas apresentadas na Figura 1 a seguir. 6 Figura 1 - Etapas do modelo de prototipagem Fonte: elaborada pelo autor. A Figura 1 apresenta as seis etapas no modelo de prototipagem, descritas a seguir: Etapa 1 - Coleta de requisitos: todo sistema começa com a coleta de requisitos. Neste momento, o cliente informa, em detalhes, quais as funções o sistema terá, como será a aparência e toda a expectativa que possui quanto ao sistema. Trata-se de uma etapa muito importante, pois qualquer requisito que não tenha sido falado aqui, impactará no desenvolvimento, uma vez que uma nova entrevista na etapa 5 deverá ser realizada para levantamento dos requisitos ausentes. Etapa 2 - Design rápido: é criado um design rápido, em outras palavras, um protótipo de baixa fidelidade, que não é o design completo do sistema, mas um protótipo para que o cliente/ usuário tenha uma breve ideia do sistema. Etapa 3 - Protótipo: ocorre o desenvolvimento do protótipo real com todos os requisitos levantados na etapa 1. 7 Etapa 4 - Avaliação do protótipo: o cliente tem seu primeiro contato com o protótipo e realizará uma avaliação. O objetivo é descobrir se a equipe de desenvolvimento conseguiu compreender as necessidades do cliente e se os requisitos estão todos presentes. Caso o cliente esteja satisfeito, o processo de prototipagem é encerrado e passaremos para o processo de desenvolvimento. Caso contrário, passaremos para a próxima etapa, que é o refinamento. Etapa 5 - Correção/ ajuste: pode não vir a ocorrer, caso o cliente tenha aprovado o protótipo na etapa 4. Nesta etapa, ocorre o refinamento do projeto com correções e ajustes apontados pelo cliente. Concluída esta etapa, retornaremos para a etapa 4, para uma nova avaliação. Etapa 6 - Design rápido: é finalizado o protótipo do software. Agora, inicia-se o processo de desenvolvimento da aplicação, tendo como base o protótipo. Após a aprovação do cliente, o software real começa a ser desenvolvido. Toda a experiência e o tempo dedicado no desenvolvimento do protótipo contribuem no desenvolvimento do software real. Isso ocorre porque, ao construí-lo e enviá-lo ao cliente, muitos requisitos são definidos corretamente e refinados, eliminando problemas de comunicação (por exemplo, a equipe de desenvolvimento pode não ter compreendido corretamente determinado requisito ou funcionalidade do software) e problemas técnicos (por exemplo, o cliente pode ter solicitado um botão pequeno demais para o usuário pressionar na tela do dispositivo móvel). Com isso, o uso da prototipagem minimiza solicitações posteriores, já no momento de produção do software e, consequentemente, diminui os custos de um reprojeto. 8 Referências bibliográficas LEE, V.; SCHNEIDER, H.; SCHELL R. Aplicações móveis: arquitetura, projeto e desenvolvimento. São Paulo: Pearson. 2005. PARA SABER MAIS No processo de desenvolvimento de uma aplicação para dispositivos móveis, antes de partirmos para a produção do aplicativo real, o primeiro passo é desenvolver o protótipo, o que permitirá que reconheçamos todas as necessidades do cliente e evite que, durante o desenvolvimento do aplicativo real, gastemos tempo corrigindo erros devido a requisitos não levantados ou não compreendidos no início do projeto. Apesar de serem utilizados como base no desenvolvimento do software real, um protótipo não se parece com o produto final. Isso ocorre porque o protótipo pode ter diferentes níveis de detalhes e realismo ao retratar o software. Desse modo, é possível afirmar que existem dois extremos dos tipos de protótipos: os de baixa fidelidade (Lo-Fi) e os de alta fidelidade (Hi-Fi). Um protótipo de baixa fidelidade é desenvolvido com o objetivo de demonstrar e testar as interações em um aplicativo. Trata-se de representar, geralmente em um papel, um conceito, um fluxo de uso ou uma estruturas de informações do aplicativo, sendo ideal para ser utilizado em reuniões e testes de usabilidade. O exemplo mais prático é a prototipagem em papel que, em meio a tanta tecnologia, continua sendo a principal ferramenta neste processo. Os papéis são utilizados para esboçar a tela, posicionamento de botões e camposde texto. 9 Um protótipo de alta fidelidade é, na maior parte das vezes, desenvolvido com o apoio de um software e são ideais para testar a experiência do usuário com o aplicativo (ao contrário do protótipo de baixa fidelidade, que testa as interações do usuário com o aplicativo). Por ser um protótipo mais familiar para os usuários, você, como desenvolvedor (a), pode mergulhar em componentes específicos, como fluxo, recursos visuais e navegação, algo que não é tão simples de ser feito na prototipagem de baixa fidelidade. O exemplo mais prático deste tipo de prototipagem é o storyboard, ideal para determinar os requisitos cliente e são exibidos de forma narrativa e cronológica, assim, o melhor momento para usar um storyboard é quando você tem uma ideia para se comunicar. Por fim, é possível afirmar que com os protótipos de baixa fidelidade, o desenvolvedor se concentra mais no design e nas interações do aplicativo, sendo utilizados no processo inicial do desenvolvimento, principalmente, no levantamento de requisitos. Por outro lado, os protótipos de alta fidelidade são altamente funcionais e, por isso, são usados, principalmente, no estágio final do desenvolvimento para testar a usabilidade e identificar problemas de navegação. TEORIA EM PRÁTICA A loja de varejo YLCA, reconhecida nacionalmente por vender produtos para o lar, entrou em contato com você, solicitando o desenvolvimento de uma loja virtual, no formato mobile, que deverá estar disponível para sistemas Android e iOS. 10 Reflita sobre as diferentes ferramentas para desenvolvimento de aplicativos mobile, as técnicas de prototipação de software, considerando a prototipagem de baixa fidelidade e alta fidelidade. Relacione essas ferramentas e técnicas com a solicitação realizada pela loja YLCA. Você no papel de desenvolvedor (a), utilizaria quais ferramentas de desenvolvimento de aplicativos no desenvolvimento da loja virtual? Apresente argumentos que sustentem sua escolha. Como a prototipação de baixa fidelidade e de alta fidelidade podem contribuir nesse processo de desenvolvimento do aplicativo? Para conhecer a resolução comentada proposta pelo professor, acesse a videoaula deste Teoria em Prática no ambiente de aprendizagem. LEITURA FUNDAMENTAL Prezado aluno, as indicações a seguir podem estar disponíveis em algum dos parceiros da nossa Biblioteca Virtual (faça o log in por meio do seu AVA), e outras podem estar disponíveis em sites acadêmicos (como o SciELO), repositórios de instituições públicas, órgãos públicos, anais de eventos científicos ou periódicos científicos, todos acessíveis pela internet. Isso não significa que o protagonismo da sua jornada de autodesenvolvimento deva mudar de foco. Reconhecemos que você é a autoridade máxima da sua própria vida e deve, portanto, assumir uma postura autônoma nos estudos e na construção da sua carreira profissional. Por isso, nós o convidamos a explorar todas as possibilidades da nossa Biblioteca Virtual e além! Sucesso! Indicações de leitura 11 Indicação 1 No livro indicado, o autor apresenta, no capítulo 1 (páginas de 1 a 14), as principais considerações e conceitos relacionados a prototipagem rápida. Apesar de ter este nome, a prototipagem rápida não se refere a um rascunho e o autor em uma linguagem simples descreve os princípios da prototipagem rápida, tecnologias utilizadas nesta técnica e também exemplos de aplicações. Para realizar a leitura, acesse nossa plataforma Biblioteca Virtual e busque pelo título da obra, no parceiro Biblioteca Virtual 3.0_Pearson. AHRENS, C.; FERREIRA, C.; PETRUSH, G. et al. Prototipagem rápida: tecnologias e aplicações. 1. ed., p.1-14. São Paulo: Edgard Blucher. 2006. Indicação 2 No processo de desenvolvimento de um protótipo de um aplicativo, a primeira etapa é o levantamento de requisitos. Para entender o conceito de requisitos e processo de gerenciamento de desenvolvimento de aplicações mobile, é recomendada a leitura do indicado. O autor, no capítulo 10, entre as páginas 161 e 177, apresenta a explicação sobre o processo de gerenciamento de projetos, bem como o conceito e tipos de requisitos existentes. Para realizar a leitura, acesse nossa plataforma Biblioteca Virtual e busque pelo título da obra, no parceiro Biblioteca Virtual 3.0_Pearson. LEE, V.; SCHNEIDER, H.; SCHELL, R. Aplicações móveis: arquitetura, projeto e desenvolvimento. p.161-177. São Paulo: Pearson. 2005. 12 QUIZ Prezado aluno, as questões do Quiz têm como propósito a verificação de leitura dos itens Direto ao Ponto, Para Saber Mais, Teoria em Prática e Leitura Fundamental, presentes neste Aprendizagem em Foco. Para as avaliações virtuais e presenciais, as questões serão elaboradas a partir de todos os itens do Aprendizagem em Foco e dos slides usados para a gravação das videoaulas, além de questões de interpretação com embasamento no cabeçalho da questão. 1. O protótipo é uma primeira fase do projeto que visa expor, seja no papel ou em uma ferramenta digital, as características e recursos de um aplicativo. Pode ser de alta ou baixa fidelidade. Desse modo, considerando o conceito de prototipagem rápida, é possível afirmar corretamente que: a. O protótipo desenvolvido na prototipagem rápida não precisa, necessariamente, fazer parte do protótipo final que será aceito. b. A prototipagem rápida, como a prototipagem em papel, deve ser feita rapidamente, sem muitos detalhes e aprofundamento das interações. c. A prototipagem rápida pode ser de baixa ou alta fidelidade, e deve ser incrementada até que seja aceita como produto final. d. A prototipagem rápida, se comparada a prototipagem de alta fidelidade, economiza tempo e esforço do time no início do desenvolvimento. e. A prototipagem rápida permite que os clientes possam testar o produto, parcialmente, no início do ciclo de vida do projeto. 13 2. A _________ do design de um protótipo refere-se ao nível de _________ e _________ incluídos em um protótipo. Pode variar em interatividade, recursos visuais, conteúdo entre outros. Como exemplo de prototipagem de _________, temos a prototipagem em papel. Assinale a alternativa que preenche corretamente as lacunas. a. Fidelidade; detalhes; funcionalidades; baixa fidelidade. b. Ilustração; detalhes; conteúdos; aplicativos móveis. c. Especificidade; fidelidade; detalhes; aplicativos multiplataformas. d. Fidelidade; funcionalidades; detalhes; alta fidelidade. e. Especificidade; fidelidade; detalhes; aplicativos nativos. GABARITO Questão 1 - Resposta A Resolução: Na prototipagem rápida é desenvolvido um protótipo para cada iteração. Desse modo, um protótipo criado no início do projeto não, necessariamente, terá sua continuidade até o protótipo final. Questão 2 - Resposta A Resolução: Temos dois extremos no desenvolvimento de protótipos: prototipagem de alta fidelidade, que é aquele protótipo que possui maior nível de detalhes e funcionalidades do aplicativo; e a prototipagem de baixa fidelidade, que apresenta um protótipo que possui um menor nível de detalhe e funcionalidade do aplicativo. Um protótipo de baixa fidelidade é a prototipagem de papel. Usabilidade no desenvolvimento de aplicativo multiplataforma ______________________________________________________________ Autoria: Ariel da Silva Dias Leitura crítica: Eduardo Eiji Ono TEMA 2 15 DIRETO AO PONTO O processo de desenvolvimento de aplicativos móveis se baseia, entre outras técnicas, em analogias e metáforas para chamar a atenção para os recursos e as possibilidades de tecnologia. Embora analogias e metáforas estejam intimamente relacionadas, é importante entendermos as diferenças. As distinções entre metáforas e analogias também ajudarão a destacar porque podemos querer usar uma e não a outra, em determinadas situações. Para que o usuário possa interagir com a interface e se comportar de acordo com o solicitado, é necessário que o aplicativo faça uso de metáforas.O uso de metáforas apropriadas atrai diretamente os sentidos dos ouvintes, leitores e dos usuários de sistemas interativos, afiando sua imaginação para compreender o que está sendo comunicado. Além disso, dá uma qualidade de vida às nossas interações, pois, afinal, as metáforas são formas de oferecer aos ouvintes, leitores e usuários, novas maneiras de examinar ideias e ver o mundo. As primeiras metáforas relacionadas aos sistemas computacionais foram o advento da Interfaces Gráficas do Usuário (GUI - Graphical User Interface), que popularmente chamamos de desktop, e o mouse, que permite interagir com os sistemas por meio de deslocamentos e cliques. Vejamos um pouco da história dessas duas interfaces. Vejamos como as palavras e metáforas, que usamos para nomear elementos de computadores e interfaces, são representadas visualmente como ícones. Para organizar tudo, colocaremos todos os itens em dois eixos: • Eixo X - nome: de menos representativo da realidade para mais representativo da realidade. As palavras que usamos 16 para nomear as coisas podem ser uma metáfora que relaciona diretamente o mundo real à interface ou ao conceito digital. Existem também algumas metáforas ou nomes muito desatualizados ou que acabam sendo uma palavra que não está exatamente relacionada ao que ela significa. • Eixo Y - visualização: da visualização menos direta de seu nome a mais representativa. Alguns ícones comumente usados não representam ou se relacionam muito com a palavra à qual estão associados. Outros representam o nome literalmente e de maneira direta. Cruzando esses dois eixos, temos os quadrantes da Figura 1 a seguir. Figura 1 - Quadrante da visualização nome versus visualização Fonte: elaborada pelo autor. Veja a descrição dos quadrantes e exemplos de metáforas empregadas: 17 Quadrante 1: o nome é de um item que pode ser entendido diretamente como uma metáfora, e a imagem representa diretamente a metáfora. Exemplo: as pastas, as ações de copiar, colar e recortar e o menu. Quadrante 2: o nome de um item é relacionado à realidade, e a imagem é relacionada ao nome. No entanto, a imagem não se relaciona com o conceito original que deveria representar. Exemplo: configurações, elementos de pesquisa e busca, ação de editar. Quadrante 3: o nome de um item é muito vagamente relacionado à realidade, e a imagem usada para representá-lo é muito vagamente relacionada ao nome. Exemplos: arquivo, botão de opção (radio button). Quadrante 4: o nome de um item não tem praticamente nenhuma relação com o que ele representa, e a imagem está representando um nome. Essa combinação, se mostrada a uma pessoa mais antiga, provavelmente, não faria sentido. Exemplo: computação em nuvem. Pense em outras metáforas, como: os botões; menus; o logotipo de web, que é um globo (representando a rede mundial de computadores); ícone de lixeira para representar a exclusão; ícone de disquete para representar que está salvando um dado; entre outras. PARA SABER MAIS Quando dizemos que o design da interface é centrado no usuário, estamos falando do design da experiência do usuário (UX – User eXperience). Este é um campo extremamente vasto e associado a diversas áreas do conhecimento. 18 Uma carreira no UX design é desafiadora, exigindo um conjunto de habilidades altamente diversificadas. A experiência do usuário (UX) refere-se a qualquer interação que um usuário tenha com um produto ou serviço. No UX design, são considerados todos os elementos que fazem parte dessa experiência, por exemplo, o que faz com que o usuário se sinta confortável utilizando a interface, bem como o quanto é fácil para ele realizar as tarefas desejadas. Pode ser qualquer coisa, desde a sensação de um produto físico na mão até a simplicidade e satisfação do processo de comprar algo on-line. Com o UX design, a experiência do usuário será mais agradável, fácil e eficiente. Os profissionais dedicados no UX design, com o objetivo de criar experiências agradáveis ao usuário, realizam a combinação de pesquisa de mercado, desenvolvimento de produtos, estratégia e design.São os responsáveis por construir o elo entre cliente e empresa, de modo que a empresa possa entender e atender melhor suas necessidades e expectativas, segundo Norman (2021). O design da experiência do usuário é a primeira maneira humana de projetar produtos. Don Norman, um cientista cognitivo e cofundador da Nielsen Norman Group Design Consultancy, é creditado por cunhar o termo experiência do usuário, no final dos anos 1990. Aqui está como Norman (2021, [n. p.]) descreve: “a experiência do usuário abrange todos os aspectos da interação do usuário final com a empresa, seus serviços e produtos”. A definição de Don Norman nos diz que, independentemente de seu meio, o UX abrange toda e qualquer interação entre um cliente potencial e uma empresa. Como um processo científico, poderia ser aplicado a qualquer coisa: lâmpadas de rua, carros, estantes e assim por diante. No entanto, apesar de ser um termo científico, seu uso, desde o início, tem sido quase inteiramente dentro dos campos 19 digitais, e uma razão para isso é que a indústria de tecnologia começou a explodir na época da invenção do termo. À medida que a indústria de tecnologia cresce, o campo do UX design está se tornando cada vez mais variado. Os designers de UX podem trabalhar em uma ampla variedade de projetos em vários contextos. Aqui, estão apenas algumas áreas para o UX design: sites, aplicativos, software, realidade virtual, realidade aumentada, design de serviços e muitas outras áreas. Referências bibliográficas NORMAN, D.; NIELSEN, J. The definition of User Experience (UX). Disponível em: https://www.nngroup.com/articles/definition-user-experience/. Acesso em: 20 maio 2021. TEORIA EM PRÁTICA A usabilidade pode ser definida como a capacidade de qualquer sistema envolver os usuários, e depende, em última análise, de quão bem a interface do usuário foi projetada. A interface é a única maneira do sistema (seja qual for) de se comunicar com o usuário. Alguns dos fatores de usabilidade são: a facilidade de aprendizagem, ou seja, a interface deve ser simples; memorizável, desse modo, por mais criativo que o desenvolvedor tenha sido, a interface deve ser familiar; a eficiência, que permite que o usuário possa repetir tarefas com o mínimo de erro; e, por fim, a satisfação, que é o ato de atingir o objetivo com sucesso. Reflita sobre estes fatores apresentados. Você, como desenvolvedor (a), como utilizaria cada um no desenvolvimento de um aplicativo móvel? Como esses fatores contribuem com a usabilidade? 20 Para conhecer a resolução comentada proposta pelo professor, acesse a videoaula deste Teoria em Prática no ambiente de aprendizagem. LEITURA FUNDAMENTAL Prezado aluno, as indicações a seguir podem estar disponíveis em algum dos parceiros da nossa Biblioteca Virtual (faça o log in por meio do seu AVA), e outras podem estar disponíveis em sites acadêmicos (como o SciELO), repositórios de instituições públicas, órgãos públicos, anais de eventos científicos ou periódicos científicos, todos acessíveis pela internet. Isso não significa que o protagonismo da sua jornada de autodesenvolvimento deva mudar de foco. Reconhecemos que você é a autoridade máxima da sua própria vida e deve, portanto, assumir uma postura autônoma nos estudos e na construção da sua carreira profissional. Por isso, nós o convidamos a explorar todas as possibilidades da nossa Biblioteca Virtual e além! Sucesso! Indicação 1 No livro indicado, unidade 1, o autor apresenta, entre as páginas 1 e 12, os principais conceitos de usabilidade e ergonomia. Um aplicativo que possui usabilidade torna-se fácil de navegar, interagir e agrada a percepção do usuário, mantendo sua fidelidade. Para realizar a leitura, acesse nossa plataforma Biblioteca Virtual e busque pelo título da obra no parceiro Biblioteca Virtual 3.0_Pearson. Indicações de leitura21 BELMIRO, J. Usabilidade interface homem-máquina. p. 1-12. São Paulo: Pearson Educacional, 2017. Indicação 2 No livro indicado, unidade 2, o autor apresenta, entre as páginas 35 e 49, dois conceitos fundamentais. O primeiro deles é o uso das metáforas, pois interagimos com metáforas o tempo todo dentro do sistema: lixeira, pasta, copiar, colar, entre outros. Outro assunto muito importante é o aspecto do design centrado no usuário, afinal, o usuário é o principal foco de nosso estudo, desenvolvemos para sua interação com nosso aplicativo, logo, há a necessidade de todo design ser centrado em suas necessidades. Para realizar a leitura, acesse nossa plataforma Biblioteca Virtual e busque pelo título da obra no parceiro Biblioteca Virtual 3.0_Pearson. BELMIRO, J. Usabilidade interface homem-máquina. p. 35-49. São Paulo: Pearson Educacional, 2017. QUIZ Prezado aluno, as questões do Quiz têm como propósito a verificação de leitura dos itens Direto ao Ponto, Para Saber Mais, Teoria em Prática e Leitura Fundamental, presentes neste Aprendizagem em Foco. Para as avaliações virtuais e presenciais, as questões serão elaboradas a partir de todos os itens do Aprendizagem em Foco e dos slides usados para a gravação das videoaulas, além de questões de interpretação com embasamento no cabeçalho da questão. 22 1. Quando os usuários estão familiarizados com o sistema e sabem como se comporta, a navegação se torna mais fácil. Com efeito, o usuário espera ver o que é familiar. É correto afirmar que familiaridade está relacionada a: a. Facilidade de memorização. b. Eficiência na interação. c. Eficácia e eficiência. d. Facilidade de aprendizagem. e. Satisfação do usuário. 2. _________ é a interseção entre _________, _________ e satisfação em um contexto de uso. Em outras palavras, trata-se de fazer as coisas e o quão satisfeito ficará o usuário ao tentar fazê-las. Se os usuários estão realizando suas tarefas, não estão demorando muito, não estão cometendo muitos erros e pensam muito no aplicativo depois de usá-lo, trata-se de um produto _________. Assinale a alternativa que preenche corretamente as lacunas. a. Usabilidade; eficácia; eficiência; utilizável. b. Utilidade; eficiência; usabilidade; eficiente. c. Utilidade; eficácia; eficiência; utilizável. d. Usabilidade; utilidade; eficácia; eficiente. e. Usabilidade; utilidade; eficiência; eficaz. 23 GABARITO Questão 1 - Resposta A Resolução: Quando o sistema se torna familiar para o usuário, mesmo depois de algum tempo sem realizar a interação, é capaz de recordar como utilizar suas funções. Logo, a familiaridade está relacionada à memorização. Questão 2 - Resposta A Resolução: A usabilidade é definida como a somatória dos conceitos de eficiência, eficácia e satisfação. Entregar ao usuário um sistema que atenda sua interação, em seu contexto, é uma característica de usabilidade. Logo, se um produto é eficiente, eficaz e traz satisfação ao usuário, este produto é utilizável. Desenvolvimento mobile com Flutter ______________________________________________________________ Autoria: Ariel da Silva Dias Leitura crítica: Eduardo Eiji Ono TEMA 3 25 DIRETO AO PONTO Frequentemente, você descobrirá que precisa salvar dados em seus aplicativos e isso é natural. Pense nos aplicativos com os quais você interage. A maioria destes que pensou, certamente utiliza um armazenamento de dados, seja local ou em nuvem. Esteja, então, desenvolvendo um aplicativo móvel do zero ou queira adicionar mais recursos em seu aplicativo já existente, a escolha do banco de dados correto pode ser uma tarefa um tanto quanto árdua, afinal, existem diversas opções de sistemas de banco de dados e, por isso, é essencial que ter uma previsão de quais tipos e dados deseja armazenar. Por exemplo, se o aplicativo será off-line ou se pretende armazenar os dados localmente, uma opção seria utilizar o SQLite, que se trata de um banco de dados leve e compacto. Por outro lado, alguns aplicativos, como lojas virtuais, são on-lines e, desse modo, precisam consultar e salvar dados em um banco na nuvem. Um terceiro tipo de aplicativo é o sincronizado, que armazena dados localmente quando o dispositivo está off-line. Entretato, ao ficar on- line, os dados são sincronizados com o servidor periodicamente. Após definir se seu aplicativo será on-line, off-line ou sincronizado, o próximo passo é entender o tamanho de seus dados. Talvez utilize uma pequena quantidade de dados. Considere, por exemplo, uma agenda e uma loja virtual. O primeiro exemplo possui menos dados se comparados a uma loja. Além disso, a loja possuirá diversos produtos e cada produto com suas fotos. Logo, isso fará com que o tamanho do banco seja maior se comparado ao aplicativo de agenda, que só possui armazenado textos (apesar de, eventualmente, poder ter a foto do contato, porém, nada comparado com a dimensão de dados de uma loja virtual). 26 Após entender o tamanho de seus dados, chega a vez de compreender a velocidade de crescimento desses dados. Considerando, ainda, o exemplo anterior, uma agenda terá dados cadastrados eventualmente, porém, uma loja virtual terá, diariamente, novos produtos e clientes cadastrados, diversas transações de venda, entre outras transações que precisam ser salvas. Logo, o volume de dados de uma loja virtual tende a crescer mais rapidamente, se comparado ao volume de dados de uma agenda. Ainda sobre a velocidade do crescimento de dados, outra preocupação relacionada a isso é a velocidade da recuperação desses dados. Alguns aplicativos necessitam de dados em tempo real. Por exemplo, um sistema médico necessita que os dados salvos pela recepção estejam disponíveis no sistema assim que a recepcionista clicar em salvar. Logo, os dados devem aparecer instantaneamente para o médico quando solicitar. Entretanto, se essa consulta for muito demorada, pode resultar em prejuízo tanto para a saúde do paciente, quanto para o profissional médico. Outro fator importante a ser considerado é a aparência ou estrutura de seus dados. Se forem estruturados (que apresentam uma estrutura rígida, bem definida) a melhor opção é escolher sistemas gerenciadores de bancos de dados SQL. Um banco de dados relacional SQL é uma ótima opção para aplicativos que são orientados a transações, como aplicativos de gerenciamento e também sistemas de comércio eletrônico. Cada linha em um banco SQL é uma entidade e cada coluna, um atributo que descreve essa entidade. Devido a essa estrutura e relacionamento entre as linhas e colunas, bem como entre tabelas, os bancos de dados SQL necessitam estar em conformidade com a sigla ACID (Figura 1): 27 Atomicidade: cada transação deve ser executada na integralidade, sendo totalmente bem-sucedida ou totalmente revertida. Consistência: cada transação de alteração dos dados deve manter a integridade dos dados ou será cancelada completamente. Figura 1 - Conceito ACID Fonte: elaborada pelo autor. Isolamento: cada transação de leitura ou gravação, realizada no banco de dados, não será afetada por outra transação de leitura ou gravação que esteja ocorrendo simultaneamente no mesmo banco de dados. Durabilidade: cada transação confirmada em seu banco de dados deve ser permanente, mesmo que o sistema possa sofrer alguma falha. A conformidade com ACID protege a integridade de seus dados, definindo exatamente o que é uma transação e como interage com seu banco de dados. 28 PARA SABER MAIS No desenvolvimento de aplicativos para Android no Android Studio, o desenvolvedor se sente confortável, muitas vezes, em utilizar o Layout Editor, criando layouts gráficos ou com XML. O mesmo ocorre com os desenvolvedores para iOS, que estão acostumados a criarem layouts graficamente no Interface Builder, arrastando e soltando um UIVIew para o storyboard. Quando você se depara com o Flutter e nota que tudo é composto por widgets e que precisa criar um layout completo, tudo de maneiraprogramática, certamente deve se assustar. Entretanto, apesar de parecer estranho no começo, o processo de desenvolver layouts com código de programação é apenas mais uma técnica e, se você se dedicar, verá que a mudança de pensamento ocorrerá naturalmente. Os widgets são os componentes que estão presentes na interface do usuário. Tudo no Flutter é composto de widgets: botões, imagens, textos, caixa de entrada de texto, o layout da interface e até o próprio aplicativo é um widget. Todo desenvolvedor que está familiarizado com o desenvolvimento Android, certamente está familiarizado com o conceito de Views, assim como os desenvolvedores para iOS já devem ter trabalhado com as UIViews. Tanto Views quanto UIViews são componentes muito próximos e parecidos com widgets. Entretanto, podemos ir um pouco além, pois widget pode ser entendido como um projeto e o Flutter, por outro lado, utiliza deste projeto para construir todos os elementos que compõem a interface e renderiza na tela. Agora que você sabe ou tem ao menos uma noção do que são as widgets e que estão presentes em tudo (lembre-se de que tudo no 29 Flutter é widget), cabe uma explicação do conceito de árvores de widget. Em uma aplicação Flutter, dificilmente teremos apenas uma ou três widgets, é esperado que tenhamos várias. A partir destes widgets, outros widgets filhos serão apresentados, e assim por diante. Desse modo, os widgets são organizados em uma árvore de widgets pai(s) e widgets filho(s). Uma árvore de widgets forma o layout da interface do usuário, onde cada folha é um widget, cada ramo da árvore é um widget, toda a interface do usuário em si também faz parte desta árvore, afinal, é um widget. Desse modo, você já sabe então que tudo no Flutter são widgets e que o layout nada mais é do que uma árvore de widgets, onde temos o conceito de pai e filho. TEORIA EM PRÁTICA Podemos dizer que o conjunto de funcionalidades do Flutter torna o processo de desenvolvimento de aplicativos mobile mais produtivo, afinal, é multiplataforma, então você pode utilizar o mesmo código base, tanto para Android quanto para iOS. Além disso, os programadores mais experientes, assim como os programadores menos experientes e os não programadores, podem fazer aplicativos com suporte a uma documentação farta. Reflita sobre o Flutter e considere outras ferramentas de desenvolvimento que você conheça. Caso não conheça, pesquise sobre algumas ferramentas para desenvolvimento Android e iOS. Agora, considere que você, após adquirir o conhecimento e a prática necessária com o Flutter, está em um novo projeto na empresa e 30 todos perguntam sobre os benefícios de se utilizar o Flutter, frente a outras ferramentas. Como você responderia a este questionamento? Para conhecer a resolução comentada proposta pelo professor, acesse a videoaula deste Teoria em Prática no ambiente de aprendizagem. LEITURA FUNDAMENTAL Prezado aluno, as indicações a seguir podem estar disponíveis em algum dos parceiros da nossa Biblioteca Virtual (faça o log in por meio do seu AVA), e outras podem estar disponíveis em sites acadêmicos (como o SciELO), repositórios de instituições públicas, órgãos públicos, anais de eventos científicos ou periódicos científicos, todos acessíveis pela internet. Isso não significa que o protagonismo da sua jornada de autodesenvolvimento deva mudar de foco. Reconhecemos que você é a autoridade máxima da sua própria vida e deve, portanto, assumir uma postura autônoma nos estudos e na construção da sua carreira profissional. Por isso, nós o convidamos a explorar todas as possibilidades da nossa Biblioteca Virtual e além! Sucesso! Indicação 1 No capítulo 1 (páginas 1 a 9), do livro indicado, Heuser (2017) apresenta a definição de sistema de gerenciamento de banco de dados, bem como os diferentes tipos de modelos de banco de Indicações de leitura 31 dados, como modelo conceitual, modelo lógico e modelo conceitual, como modelo de organização. Para realizar a leitura, acesse nossa plataforma Biblioteca Virtual e busque pelo título da obra no parceiro Pearson. HEUSER, C. A. Projeto de banco de dados. V. 4, UFRGS, 6.ed. São Paulo: Bookman, 2017. Indicação 2 No capítulo 3 (páginas 37 a 53) do livro Sistemas de Banco de Dados, Elmasri (2019) apresenta a definição de banco de dados relacional. Neste capítulo o autor ainda apresenta as restrições presentes em banco de dados relacional e as principais operações de transação em um banco de dados. Para realizar a leitura, acesse a nossa plataforma Biblioteca Virtual e busque pelo título da obra. ELMASRI, RAMEZ; NAVATHE, SHAMKANT B. Sistemas de Banco de Dados. 1. ed. São Paulo: Pearson Educacional, 2019. QUIZ Prezado aluno, as questões do Quiz têm como propósito a verificação de leitura dos itens Direto ao Ponto, Para Saber 32 Mais, Teoria em Prática e Leitura Fundamental, presentes neste Aprendizagem em Foco. Para as avaliações virtuais e presenciais, as questões serão elaboradas a partir de todos os itens do Aprendizagem em Foco e dos slides usados para a gravação das videoaulas, além de questões de interpretação com embasamento no cabeçalho da questão. 1. A primeira coisa que o desenvolvedor olha ao aprender uma nova tecnologia é a _________, pois representa um grande papel na produtividade. Pela _________ do Flutter, podemos estudar o conceito de widget e concluir que não representam apenas elementos estruturais, como _________ e _________. Eles podem ser também elementos de _________, como preenchimento e linhas. Assinale a alternativa que preenche corretamente as lacunas. a. Documentação; documentação; texto; botões; layout. b. Linguagem de programação; documentação; colunas; botões; interface. c. Baixa complexidade; linguagem de programação; texto; botões; tabela. d. Documentação; linguagem de programação; coluna; botões; tabela. e. Baixa complexidade; baixa complexidade; texto; botões; interface. 33 2. Dentro do contexto de banco de dados, o conceito de atomicidade significa: a. Comprometer-se com a totalidade da transação que está ocorrendo, garantindo que qualquer transação termine a operação inteira com êxito. b. Não violar as restrições de integridade colocadas nos dados pelas regras do sistema de gerenciamento de banco de dados. c. Cada transação deve ocorrer em uma ordem distinta sem nenhuma transação ocorrendo em conjunto (simultaneamente). d. Duas ou mais transações devem ser concluídas após ler ou gravar no mesmo lugar duas vezes, simultaneamente. e. Dar garantia de que as transações feitas no banco de dados e que foram confirmadas com sucesso, sobrevivam permanentemente. GABARITO Questão 1 - Resposta A Resolução: A leitura da documentação é a primeira ação que um desenvolvedor deve fazer quando deseja aprender algo sobre uma tecnologia ou linguagem de programação. A documentação do Flutter é muito completa, com diversos modelos que ajudam tantos novatos quanto experientes. O conceito de widget apresentado na documentação, indica que no layout do aplicativo é possível termos elementos estruturais, como botões, ícones, imagens, entre outros, bem como elementos de layout. 34 Questão 2 - Resposta A Resolução: Ao aplicar o conceito de atomicidade, você garante que toda a transação será concluída com êxito, ou que nenhuma delas deva ocorrer. Logo, se houver queda de energia ou perda de conexão, o banco de dados deve sempre ser revertido para seu estado anterior. Desenvolvimento Mobile com Xamarin ______________________________________________________________ Autoria: Ariel da Silva Dias Leitura crítica: Eduardo Eiji Ono TEMA 4 36 DIRETO AO PONTO O Xamarin é um framework desenvolvido por uma empresa de mesmo nome, que foi adquirida pela Microsoft. Além disso, possibilita o desenvolvimento de aplicativos mobile multiplataforma voltada para dispositivos Android, iOS e Windows. Em um projeto de desenvolvimento nativo, é possíveldesenvolver tanto para Android, utilizando a biblioteca Mono.Android, quanto para iOS, utilizando a biblioteca Xamarin.iOS. Nesse tipo de desenvolvimento, as aplicações de ambas as plataformas compartilham o mesmo código C#, que representa a lógica de negócio. Por outro lado, a interface do usuário (UI) deve ser implementada para cada particularidade, seja do iOS, do Android ou do Windows. Outro tipo de desenvolvimento é o nativo para ambas as plataformas, também chamado de Xamarin.Forms. Nesta abordagem, o Xamarin compartilha as semelhanças entre elementos de interface, tanto de iOS quanto de Android, para fornecer uma experiência de desenvolvimento de IU comum. Para que seja possível o compartilhamento do código em comum, tanto de interface quanto de lógica, são utilizados os métodos conforme ilustra o diagrama da Figura 1. 37 Figura 1 - Compartilhamento de código em comum Fonte: elaborada pelo autor. Observe, pela Figura 1, que, ao desenvolver uma aplicação utilizando Xamarin.Forms, a camada de aplicação e de interface de usuário (UI) é compartilhada, ou seja, são as mesmas para as três plataformas. O código compartilhado, ilustrado na Figura 1, pode ser consumido por qualquer aplicativo .NET, aumentando ainda mais o reuso de seu escopo. Desste modo, temos: • Projeto compartilhado: o código é copiado e incluído em cada assembly do aplicativo multiplataforma durante a compilação, portanto, apesar de haver três plataformas diferentes, não é criado nenhum assembly (código de máquina que vai gerar o executável) separado, apenas um único assembly com o código de todas as plataformas. • Biblioteca PCL (Biblioteca de Classes Portáveis): é um tipo de biblioteca de classes introduzida para resolver possíveis problemas no compartilhamento de código, de modo a garantir que a integração de códigos seja bem-sucedida. 38 • Biblioteca .NET: para que seja possível o compartilhamento de código, é necessário o uso da biblioteca padrão do .NET, que fornece um conjunto amplo de recursos com compatibilidade total com as versões mais recentes do .NET framework, .NET Core e Xamarin, diminuindo, assim, os conflitos por dependências. Desse modo, o desenvolvimento multiplataforma fica mais evidente quando trabalhamos com Xamarin.Forms, uma vez que compartilhamos o mesmo código de interface e de lógica de negócios. Em alguns aplicativos, pode haver limitações no desenvolvimento do mesmo componente para várias plataformas, o que exige uma renderização customizada e, consequentemente, traz maior complexidade para o aplicativo. Desse modo, apesar do desenvolvimento ser multiplataforma, o Xamarin.Forms possibilita que editemos o arquivo de layout nativo para cada plataforma. A possibilidade de trabalhar no mesmo projeto no desenvolvimento nativo e também multiplataforma caracteriza o poder computacional do desenvolvimento utilizando Xamarin. PARA SABER MAIS Durante o desenvolvimento de um aplicativo, é comum utilizarmos bancos de dados para realizarmos a persistência de dados. Em um aplicativo mobile, por exemplo, é muito comum a utilização do banco de dados SQLite, devido sua portabilidade e baixo consumo de memória. 39 Entretanto, existem outros bancos de dados, que se enquadram em dois tipos: bancos de dados relacionais e não relacionais. A principal diferença entre eles é como organizam os dados. Bancos de dados relacionais são estruturados. Nele, existem tabelas que podem depender uma da outra e relacionar entre elas. Por exemplo, um banco de dados para uma loja virtual terá uma tabela para clientes e outra para pedidos. Essas duas tabelas estão relacionadas, porque um pedido é feito por um cliente. Um banco de dados relacional usa SQL, abreviação de Structured Query Language. Essa é uma maneira muito rígida e padronizada de armazenar dados usando tabelas, colunas e linhas. Os dados são definidos em uma tabela, que, geralmente, é de natureza atômica, o que significa que a tabela deve armazenar apenas registros de dados em uma entidade ou objeto de cada vez, por exemplo: uma tabela de clientes somente deve armazenar registros de clientes. Quando detalhes adicionais são necessários ou dados precisam ser associados a um registro de uma tabela para outra, temos o que chamamos de relacionamentos. Por exemplo, temos a tabela cliente e a tabela pedidos. Para saber quais são os pedidos do cliente, precisamos relacionar o registro do cliente com os registros da tabela de pedidos que contenham o código do cliente pesquisado. Uma chave comum é estabelecida entre as duas (ou mais) tabelas e é usada para essa associação. Entre os bancos de dados relacionais, os principais são o SQLite, SQL Server e o MySQL. Bancos de dados não relacionais podem ser orientados a documentos, orientados a colunas, grafos ou do tipo chave-valor. O armazenamento do tipo de documento, por exemplo, permite que várias categorias de dados sejam armazenadas em uma 40 construção ou documento. Portanto, usando o exemplo anterior, um documento do cliente teria as informações do cliente, com uma subcategoria para todos os pedidos. Entre os bancos de dados não relacionais, os principais são o DynamoDB e o Redis. TEORIA EM PRÁTICA O Xamarin, assim como outras ferramentas de desenvolvimento multiplataforma, possibilita o desenvolvimento rápido de aplicativos, utilizando o reaproveitamento de código de interface. Além disso, é também possível o desenvolvimento de aplicações nativas, tanto para iOS quanto para Android, utilizando a linguagem C# e bibliotecas específicas. Considerando o Xamarin como um framework e um conjunto de ferramentas para dispositivos móveis, reflita sobre como criar aplicativos nativos com o Xamarin com compartilhamento de código, bem como o desenvolvimento de aplicativos com Xamarin. Forms. Como você responderia à solicitação de seu colega para que avaliasse a escolha entre Xamarin nativo com compartilhamento de código e o Xamarin.Forms, que compartilha a lógica de negócios e o desenvolvimento da interface do usuário? Qual alternativa é a melhor? Para conhecer a resolução comentada proposta pelo professor, acesse a videoaula deste Teoria em Prática no ambiente de aprendizagem. 41 LEITURA FUNDAMENTAL Prezado aluno, as indicações a seguir podem estar disponíveis em algum dos parceiros da nossa Biblioteca Virtual (faça o log in por meio do seu AVA), e outras podem estar disponíveis em sites acadêmicos (como o SciELO), repositórios de instituições públicas, órgãos públicos, anais de eventos científicos ou periódicos científicos, todos acessíveis pela internet. Isso não significa que o protagonismo da sua jornada de autodesenvolvimento deva mudar de foco. Reconhecemos que você é a autoridade máxima da sua própria vida e deve, portanto, assumir uma postura autônoma nos estudos e na construção da sua carreira profissional. Por isso, nós o convidamos a explorar todas as possibilidades da nossa Biblioteca Virtual e além! Sucesso! Indicação 1 O livro indicado, nas páginas de 137 a 152, apresenta o conceito de persistência de dados em dispositivos móveis, bem como técnicas e ferramentas para manipular os principais bancos de dados relacional SQL. Para realizar a leitura, acesse nossa plataforma Biblioteca Virtual e busque pelo título da obra no parceiro Biblioteca Virtual 3.0_Pearson. SIMAS, V.; BORGES, O.; COUTO, J. et al. Desenvolvimento para dispositivos móveis. V. 2., p. 137-152. Porto Alegre: SAGAH. 2019. Indicações de leitura 42 Indicação 2 Assim que você conclui o desenvolvimento do seu aplicativo, o próximo passo é publicá-lo nas lojas das plataformas Android e iOS. No livro indicado, nas páginas de 233 a 241, o autor apresenta as regras, políticas e formas de publicar sua aplicação nestas plataformas. Para realizar a leitura, acesse nossa plataforma Biblioteca Virtual e busque pelo título da obra no parceiro Biblioteca Virtual 3.0_Pearson. SIMAS, V.; BORGES, O.; COUTO,J. et al. Desenvolvimento para dispositivos móveis. V. 2, p. 233-241. Porto Alegre: SAGAH. 201. QUIZ Prezado aluno, as questões do Quiz têm como propósito a verificação de leitura dos itens Direto ao Ponto, Para Saber Mais, Teoria em Prática e Leitura Fundamental, presentes neste Aprendizagem em Foco. Para as avaliações virtuais e presenciais, as questões serão elaboradas a partir de todos os itens do Aprendizagem em Foco e dos slides usados para a gravação das videoaulas, além de questões de interpretação com embasamento no cabeçalho da questão. 43 1. O _________ é a linguagem padrão para banco de dados relacional, sendo conhecida, principalmente, por ser um banco de dados _________. Por outro lado, os bancos de dados _________ podem armazenar e gerenciar dados de maneira rápida e com _________. Assinale a alternativa que completa adequadamente as lacunas. a. SQL; estruturado; NoSQL; flexibilidade. b. SQL; não estruturado; NoSQL; estrutura. c. NoSQL; não estruturado; SQL; estrutura. d. NoSQL; estruturado; SQL; estrutura. e. SQL; não estruturado; NoSQL; flexibilidade. 2. Entre as características do Xamarin.Forms, pode-se destacar: a. Abordagem mais rápida de desenvolvimento de aplicativos multiplataforma. b. Precisa aprender todas as visualizações de IU nativas específicas da plataforma. c. Demora para desenvolver um aplicativo móvel multiplataforma devido às limitações de desenvolvimento. d. Melhor para aplicativos que usam muitas APIs específicas de plataforma. e. Necessidade de aprender todas as visualizações de IU nativas específicas da plataforma. 44 GABARITO Questão 1 - Resposta A Resolução: Um banco de dados relacional SQL é o padrão mais utilizado em diversas aplicações. Suas principais características são a estrutura fixa e a falta de flexibilidade, uma vez que possui uma estrutura definida no formato de tabelas, com linhas e colunas. Por outro lado, os bancos de dados NoSQL são mais flexíveis, uma vez que não possuem uma estrutura fixa como o SQL. Questão 2 - Resposta A Resolução: O Xamarin.Forms é a abordagem de desenvolvimento de aplicativos multiplataformas mais rápida, uma vez que é realizado o compartilhamento do código (lógica de negócios) e também o compartilhamento da interface do usuário. Como há o compartilhamento do código da interface do usuário, então, não há necessidade de conhecer as especificações de interface cada plataforma. BONS ESTUDOS! Apresentação da disciplina Introdução TEMA 1 Direto ao ponto Para saber mais Teoria em prática Leitura fundamental Quiz Gabarito TEMA 2 Direto ao ponto Para saber mais Teoria em prática Leitura fundamental Quiz Gabarito TEMA 3 Direto ao ponto Para saber mais Teoria em prática Leitura fundamental Quiz Gabarito TEMA 4 Direto ao ponto Para saber mais Teoria em prática Quiz Gabarito Inicio 2: Botão TEMA 4: Botão TEMA 1: Botão TEMA 2: Botão TEMA 3: Botão TEMA 9: Inicio :
Compartilhar