Prévia do material em texto
1 UNIVERSIDADE PAULISTA – UNIP EaD Projeto Integrado Multidisciplinar VIII Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas STELLA VIEIRA LINS DA SILVA - 2313583 STELS – WEB API EM C# E ENTITY FRAMEWORK COM CRUD E JAVA ANDROID Brasília 2 2024 STELLA VIEIRA LINS DA SILVA - 2313583 STELS - WEB API EM C# E ENTITY FRAMEWORK COM CRUD E JAVA ANDROID Projeto Integrado Multidisciplinar em Análise e Desenvolvimento de Sistemas Projeto Integrado Multidisciplinar para obtenção do título de tecnólogo em Análise e Desenvolvimento de Sistemas, apresentado à Universidade Paulista – UNIP EaD. Brasília 2024 3 RESUMO Este documento foi criado para compartilhar e divulgar o conhecimento adquirido em diversas disciplinas, incluindo Programação Orientada a Objetos II, Desenvolvimento de Software para Internet e Tópicos Especiais de Programação Orientada a Objetos. A interseção desses temas é crucial para formar uma base sólida que permita a criação e implementação de um programa eficaz. O principal objetivo deste projeto é garantir uma estruturação e organização adequadas do programa Stels, com foco na eficiência e segurança para os usuários. Para alcançar esse objetivo, serão aplicados conceitos essenciais de programação orientada a objetos, permitindo uma abordagem modular e reutilizável no desenvolvimento do software. Além disso, essas práticas serão integradas às diretrizes do sistema desenvolvido em Web e Java Android, fundamentais para garantir que o projeto não apenas atenda, mas supere as expectativas dos diferentes interessados. O aplicativo será apresentado como um produto robusto e cuidadosamente desenvolvido, que não só atende às necessidades dos clientes, mas também se destaca na entrega de um serviço de streaming de qualidade. A adoção de melhores práticas de codificação e os princípios fundamentais de um desenvolvimento focado na experiência do usuário será essencial para garantir a máxima satisfação do cliente. O programa será desenvolvido em C#, com acesso a um banco de dados via uma API Web. Protótipos de interface gráfica foram desenvolvidos com .NET MAUI e Android/Java. Também será utilizado o Entity Framework, que não só manipulará operações CRUD, mas também incorporará medidas de segurança, como autenticação e autorização. A proposta é que o programa Stels não apenas ofereça uma plataforma segura e eficiente, mas também contribua para o avanço tecnológico no mercado de streaming, trazendo inovações que podem impactar positivamente a forma como os usuários consomem conteúdo digital. Palavras-chave: Stels, API Web, CRUD, Android. 4 ABSTRACT This document was created to share and disseminate the knowledge acquired in various disciplines, including Object-Oriented Programming II, Internet Software Development, and Special Topics in Object-Oriented Programming. The intersection of these subjects is crucial for forming a solid foundation that allows for the creation and implementation of an effective program. The main objective of this project is to ensure proper structuring and organization of the Stels program, focusing on efficiency and security for users. To achieve this goal, essential concepts of object-oriented programming will be applied, allowing for a modular and reusable approach in software development. Additionally, these practices will be integrated with the guidelines of the system developed in Web and Java Android, which are fundamental to ensure that the project not only meets but exceeds the expectations of various stakeholders. The application will be presented as a robust and carefully developed product that not only meets the needs of customers but also stands out in delivering a quality streaming service. The adoption of best coding practices and the fundamental principles of user experience-focused development will be essential to ensure maximum customer satisfaction. The program will be developed in C#, with access to a database via a Web API. Graphical interface prototypes were developed with .NET MAUI and Android/Java. Entity Framework will also be used, which will not only handle CRUD operations but also incorporate security measures such as authentication and authorization. The proposal is that the Stels program not only offers a secure and efficient platform but also contributes to technological advancement in the streaming market, bringing innovations that can positively impact the way users consume digital content. Keywords: Stels, API Web, CRUD, Android. 5 SUMÁRIO Conteúdo 1. INTRODUÇÃO ...................................................................................................... 6 2. .NET MAUI ............................................................................................................ 8 3. PROTÓTIPOS DE INTERFACE DE .NET MAUI DO SISTEMA STELS ............... 9 4. PLAYLISTREPOSITORY .................................................................................... 12 5. INTERFACES GRÁFICAS DO SISTEMA STELS DO .NET MAUI ..................... 14 6. ENTITY FRAMEWORK ...................................................................................... 16 7. C# ....................................................................................................................... 18 8. ASP.NET ............................................................................................................ 19 9. SWAGGER ......................................................................................................... 20 10. CÓDIGOS DA INTERFACE NO ASP.NET COM O CRUD ............................. 26 11. INTERFACES GRÁFICAS DO SISTEMA STELS NO ASP.NET COM O CRUD 39 12. PROTÓTIPOS DE INTERFACE NO ANDROID STUDIO ............................... 45 13. CÓDIGOS FONTE DO XML ............................................................................ 48 14. CÓDIGOS FONTE DO JAVA ANDROID ......................................................... 53 CONCLUSÃO ............................................................................................................ 69 REFERÊNCIAS ......................................................................................................... 70 6 1. INTRODUÇÃO O propósito principal deste documento é apresentar detalhadamente o programa denominado Stels. Este programa é fruto da aplicação prática dos conhecimentos adquiridos em diversas disciplinas, como Programação Orientada a Objetos II, Desenvolvimento de Software para a Internet e Tópicos Especiais de Programação Orientada a Objetos. A combinação dessas áreas de estudo possibilita o desenvolvimento de uma solução robusta e inovadora que atende às necessidades atuais do mercado. O objetivo central deste projeto é assegurar uma estruturação e organização adequadas do programa Stels, com ênfase na eficiência e segurança para os usuários. Para atingir esse objetivo, serão aplicados conceitos fundamentais de programação orientada a objetos, permitindo uma abordagem modular e reutilizável no desenvolvimento do software. Será apresentada a codificação em C# do mecanismo de acesso a um trecho de banco de dados como uma Web API, juntamente com protótipos de interface gráfica desenvolvidos com .NET MAUI e Android/Java. A utilização da classe PlaylistRepository com métodos de instância é essencial para manter a conexão e o estado do banco de dados. Atualmente, as inovações tecnológicas no campo do streaming estão em rápida expansão, com uma demandacrescente por plataformas que integrem vídeos, filmes e músicas de maneira eficiente. Nesse contexto, a proposta é que o aplicativo atenda o mais próximo possível às expectativas e requisitos dos usuários, garantindo uma experiência satisfatória. O foco principal deste trabalho é assegurar que o programa seja estruturado e organizado de forma meticulosa. Isso é crucial para que os usuários possam explorar suas funcionalidades de maneira eficiente e, acima de tudo, segura. O objetivo principal deste projeto é desenvolver um sistema de streaming que permita uma interação direta e conveniente entre criadores de conteúdo e seus consumidores. Diferente do modelo tradicional de canais de televisão ou rádio, onde um único provedor é responsável pela transmissão dos programas, o sistema de streaming proposto funcionará como um intermediário, conectando uma diversidade de criadores a uma ampla audiência. Dessa forma, o acesso ao entretenimento e à informação torna-se mais ágil e democrático. 7 Além disso, o desenvolvimento do Stels envolve a implementação de práticas de segurança avançadas para proteger os dados dos usuários e garantir a integridade do sistema. A integração do Entity Framework permitirá a manipulação eficiente de operações CRUD (Create, Read, Update, Delete), além de incorporar medidas de segurança como autenticação e autorização. Essas funcionalidades são essenciais para criar um ambiente confiável e seguro para todos os usuários. Outro aspecto importante do projeto é a experiência do usuário (UX). O desenvolvimento de protótipos de interface gráfica com .NET MAUI e Android/Java visa proporcionar uma navegação intuitiva e agradável. A interface será projetada para ser responsiva e acessível, garantindo que os usuários possam acessar o conteúdo de maneira fácil e rápida, independentemente do dispositivo que estejam utilizando. O resultado esperado é a entrega de um programa bem desenvolvido, seguro e eficiente, que realmente atenda às necessidades dos usuários. Com essa proposta, buscamos não apenas inovar no cenário atual, mas também proporcionar uma plataforma que potencialize a interação entre criadores e seus públicos, transformando a maneira como o conteúdo é consumido e distribuído. Acreditamos que o Stels tem o potencial de se destacar no mercado de streaming, oferecendo uma solução diferenciada e de alta qualidade. Para assegurar a clareza e a facilidade de uso da API desenvolvida, foi essencial documentá-la de forma abrangente. A documentação da API abrange descrições detalhadas de todos os endpoints, métodos, parâmetros e respostas possíveis. Além disso, é recomendável incluir capturas de tela da interface de documentação gerada pelo Swagger. O Swagger facilita a visualização e a interação com a API, permitindo que os desenvolvedores compreendam rapidamente como utilizar os diversos recursos oferecidos. Essas capturas de tela ajudam a ilustrar a funcionalidade da API e demonstram como ela pode ser integrada em diferentes aplicações. 8 2. .NET MAUI O .NET Multi-platform App UI, conhecido como .NET MAUI, é uma estrutura de desenvolvimento da Microsoft que permite criar aplicativos nativos para várias plataformas, como Android, iOS, macOS e Windows, utilizando uma única base de código em C# e XAML. Com .NET MAUI, os desenvolvedores podem escrever um único código que será executado em diferentes plataformas, simplificando o desenvolvimento e a manutenção dos aplicativos. Ele oferece desempenho nativo, utilizando os controles e APIs específicos de cada plataforma, garantindo que os aplicativos tenham a aparência e o comportamento esperados pelos usuários. A integração com o Visual Studio e outras ferramentas da Microsoft facilita o desenvolvimento, depuração e teste dos aplicativos, com recursos como a recarga dinâmica que permite ver as mudanças no código em tempo real. O .NET MAUI é uma evolução do Xamarin.Forms, oferecendo maior extensibilidade e controles de interface do usuário recriados do zero para melhor desempenho. Além disso, ele fornece APIs para acessar recursos nativos dos dispositivos, como GPS, acelerômetro, estado da bateria e rede. Os benefícios para os desenvolvedores incluem economia de tempo e recursos, flexibilidade para adicionar código específico para cada plataforma quando necessário, e uma comunidade ativa com vastos recursos de aprendizado. Em resumo, o .NET MAUI é uma poderosa ferramenta para criar aplicativos multiplataforma eficientes e de alto desempenho, utilizando uma abordagem unificada e produtiva. 9 3. PROTÓTIPOS DE INTERFACE DE .NET MAUI DO SISTEMA STELS A seguir, apresento a tela inicial, onde são exibidas as opções que podem ser adicionadas ao sistema Stels: Figura 1: Tela Inicial 1 1 Fonte: Elaborado pelo autor (2024) 10 Abaixo, apresento a tela Playlists, onde são inseridas as informações de Plays no sistema: Figura 2: Tela de Playlists 2 2 Fonte: Elaborado pelo autor (2024) 11 Já na tela abaixo, apresento o Upload de Conteúdo, onde pode ser inseridos arquivos dentro do sistemas Stels: Figura 3: Tela de Upload de Conteúdo 3 3 Fonte: Elaborado pelo autor (2024) 12 4. PLAYLISTREPOSITORY O PlaylistRepository é um repositório no GitHub criado por SaikrishnakumarV. Ele serve como um local para armazenar e gerenciar listas de reprodução (playlists) de canais de IPTV (Internet Protocol Television). Essas playlists são arquivos no formato M3U, que contêm links para transmissões de TV ao vivo disponíveis publicamente na internet. O objetivo do PlaylistRepository é facilitar o acesso e a organização dessas listas de reprodução, permitindo que os usuários encontrem e utilizem facilmente os links para assistir a canais de TV ao vivo de diversas partes do mundo. Além de facilitar o acesso a canais de TV ao vivo, o PlaylistRepository também promove a colaboração entre usuários. Qualquer pessoa pode contribuir com novas listas de reprodução ou atualizar as existentes, garantindo que o repositório permaneça atualizado e relevante. Isso cria uma comunidade ativa de entusiastas de IPTV que compartilham recursos e conhecimentos, melhorando a experiência de todos os usuários. A estrutura do repositório é organizada de forma a permitir fácil navegação e busca, tornando simples encontrar playlists específicas ou explorar novas opções de canais de TV ao vivo. O PlaylistRepository também se destaca pela sua flexibilidade e adaptabilidade. Ele permite que os usuários personalizem suas próprias listas de reprodução, adicionando ou removendo canais conforme suas preferências. Além disso, o repositório pode ser integrado com diversos players de mídia que suportam o formato M3U, proporcionando uma experiência de visualização contínua e sem interrupções. Essa capacidade de personalização e integração torna o PlaylistRepository uma ferramenta valiosa para qualquer pessoa interessada em IPTV, oferecendo uma maneira conveniente e eficiente de acessar uma ampla variedade de conteúdos de TV ao vivo. Esses benefícios tornam o PlaylistRepository uma ferramenta valiosa para qualquer desenvolvedor que esteja trabalhando em projetos de streaming, proporcionando uma base sólida e flexível para a construção de aplicativos robustos e eficientes. 13 Segue abaixo código do PlaylistRepository no .NET MAUI do sistema Stels: Figura 4: PlaylistRepository 44 Fonte: Elaborado pelo autor (2024) 14 5. INTERFACES GRÁFICAS DO SISTEMA STELS DO .NET MAUI Segue abaixo a classe Main.Page.xaml onde é um arquivo XAML usado para definir a interface do usuário de uma página principal em um aplicativo. .NET MAUI permite criar aplicativos que funcionam em várias plataformas (iOS, Android, Windows, macOS) usando uma única base de código. Figura 5: MainPage.xaml 5 5 Fonte: Elaborado pelo autor (2024) 15 Segue abaixo a classe Main.Page.xaml.cs onde é o arquivo de code-behind associado ao arquivo XAML Main.Page.xaml. Ele contém a lógica de programação que complementa a definição da interface do usuário feita em XAML. Figura 6: MainPage.xaml.cs 6 6 Fonte: Elaborado pelo autor (2024) 16 6. ENTITY FRAMEWORK Entity Framework (EF) é um mapeador objeto-relacional (ORM) desenvolvido pela Microsoft para a plataforma .NET. Ele permite que desenvolvedores trabalhem com dados relacionais usando objetos de domínio específicos, eliminando a necessidade de escrever a maior parte do código de acesso a dados. Com o EF, é possível criar uma camada de acesso a dados limpa e de alto nível, que pode ser usada com vários bancos de dados, incluindo SQL Server, SQLite, MySQL, PostgreSQL e Azure Cosmos DB. EF suporta Language Integrated Query (LINQ), permitindo que os desenvolvedores escrevam consultas de banco de dados usando sintaxe C#. Isso torna as consultas mais legíveis e integradas ao código da aplicação. Além disso, EF rastreia automaticamente as mudanças feitas nos objetos durante a execução do programa e aplica essas mudanças ao banco de dados quando solicitado, simplificando o gerenciamento do estado dos dados. Com EF, é possível gerenciar mudanças no esquema do banco de dados de forma incremental, aplicando migrações que mantêm o banco de dados sincronizado com o modelo de dados da aplicação. EF é compatível com uma ampla gama de bancos de dados, permitindo que os desenvolvedores escolham o banco de dados que melhor atende às suas necessidades sem alterar o código da aplicação. Ao eliminar a necessidade de escrever código de acesso a dados manualmente, EF aumenta a produtividade dos desenvolvedores. A capacidade de gerenciar mudanças no esquema do banco de dados e rastrear alterações nos objetos facilita a manutenção e evolução das aplicações. EF se integra perfeitamente com outras tecnologias da plataforma .NET, como ASP.NET, tornando-o uma escolha natural para desenvolvedores .NET. Em resumo, o Entity Framework é uma ferramenta poderosa e versátil para o desenvolvimento de aplicações que interagem com bancos de dados relacionais. Sua capacidade de simplificar o acesso a dados, juntamente com suas funcionalidades avançadas, faz dele uma escolha popular entre desenvolvedores que buscam eficiência e produtividade. 17 Segue abaixo a classe DbContext.cs é um arquivo que define uma classe derivada de DbContext, a qual faz parte do Entity Framework Core. O DbContext é responsável por gerenciar a conexão com o banco de dados e realizar operações de CRUD (Create, Read, Update, Delete) sobre as entidades do aplicativo Stels Streaming. Figura 7: DbContext.cs 7 7 Fonte: Elaborado pelo autor (2024) 18 7. C# C# é uma linguagem de programação moderna, orientada a objetos e de código aberto, desenvolvida pela Microsoft. Ela é amplamente utilizada para o desenvolvimento de uma variedade de aplicativos, incluindo aplicativos web, móveis, de desktop e jogos. C# faz parte da plataforma .NET, o que permite que os desenvolvedores criem aplicativos que podem ser executados em diferentes sistemas operacionais, como Windows, macOS e Linux. Uma das principais características do C# é sua sintaxe clara e concisa, que facilita a leitura e a escrita de código. A linguagem suporta recursos avançados como genéricos, LINQ (Language Integrated Query), correspondência de padrões e programação assíncrona, que ajudam a criar aplicativos eficientes e de alto desempenho. Além disso, C# oferece segurança de tipo, o que reduz a probabilidade de erros comuns de programação. C# é altamente integrado com o Visual Studio, um ambiente de desenvolvimento integrado (IDE) poderoso que fornece ferramentas para depuração, testes e gerenciamento de código. Isso aumenta a produtividade dos desenvolvedores, permitindo que eles escrevam, testem e mantenham código de maneira mais eficiente. A comunidade de C# é vibrante e ativa, com milhões de desenvolvedores ao redor do mundo contribuindo para o seu crescimento. A linguagem é constantemente atualizada com novos recursos e melhorias, garantindo que ela permaneça relevante e competitiva. Além disso, C# é uma das linguagens mais populares no GitHub e é consistentemente bem avaliada em pesquisas de desenvolvedores, como a do Stack Overflow12. Em resumo, C# é uma linguagem versátil e poderosa, ideal para desenvolvedores que desejam criar aplicativos robustos e escaláveis em uma variedade de plataformas. Sua combinação de recursos avançados, integração com ferramentas de desenvolvimento de alta qualidade e uma comunidade ativa fazem dela uma escolha excelente para muitos tipos de projetos de software. 19 8. ASP.NET ASP.NET é uma estrutura de desenvolvimento web de código aberto criada pela Microsoft, que permite a construção de aplicativos e serviços web dinâmicos e robustos. Ele faz parte da plataforma .NET e é amplamente utilizado para desenvolver sites, APIs RESTful, e aplicativos em tempo real. ASP.NET oferece suporte a várias linguagens de programação, incluindo C# e Visual Basic, e é conhecido por sua alta performance, segurança e escalabilidade. Uma das principais vantagens do ASP.NET é sua capacidade de criar aplicativos web de alto desempenho. Ele utiliza um modelo de programação baseado em eventos, que facilita a criação de interfaces de usuário interativas e responsivas. Além disso, o ASP.NET inclui um conjunto abrangente de bibliotecas e ferramentas que simplificam tarefas comuns de desenvolvimento web, como autenticação de usuários, acesso a dados e manipulação de formulários. ASP.NET Core é a versão mais recente e moderna do ASP.NET. Ele é multiplataforma, o que significa que os aplicativos podem ser executados em Windows, macOS e Linux. ASP.NET Core foi projetado para ser leve e modular, permitindo que os desenvolvedores escolham apenas os componentes necessários para seus projetos. Isso resulta em aplicativos mais rápidos e eficientes. Além disso, ASP.NET Core suporta a construção de microserviços e a utilização de contêineres, facilitando a criação de arquiteturas modernas e escaláveis12. A integração com o Visual Studio e outras ferramentas de desenvolvimento da Microsoft torna o ASP.NET uma escolha popular entre os desenvolvedores. O Visual Studio oferece um ambiente de desenvolvimento integrado (IDE) poderoso, com recursos avançados de depuração, testes e gerenciamento de código. Isso aumenta a produtividade e facilita a manutenção dos aplicativos. Em resumo, ASP.NET é uma estrutura poderosa e versátil para o desenvolvimento de aplicativos web. Sua combinação de alto desempenho, segurança, escalabilidade e suporte a múltiplas plataformas faz dele uma escolha excelente para desenvolvedores que buscam criar soluções web modernas e eficientes. 20 9. SWAGGER Swagger é um conjunto de ferramentas de código aberto que simplifica o design, adocumentação e o consumo de APIs RESTful. Desenvolvido pela SmartBear Software, Swagger utiliza a especificação OpenAPI para padronizar a descrição das APIs, permitindo uma comunicação clara e eficiente entre diferentes sistemas e equipes de desenvolvimento. Ele gera automaticamente a documentação das APIs a partir do código-fonte, garantindo que esteja sempre atualizada. A interface interativa do Swagger UI permite testar endpoints diretamente no navegador, enquanto o Swagger Editor ajuda a definir e modelar APIs. Além disso, o Swagger Codegen gera código cliente e servidor em várias linguagens, acelerando o desenvolvimento e garantindo conformidade com a documentação. Além de suas funcionalidades principais, Swagger também promove a colaboração e a consistência no desenvolvimento de APIs. Ele permite que diferentes equipes trabalhem juntas de forma mais eficiente, compartilhando especificações e documentação de maneira padronizada. Isso é especialmente útil em grandes projetos onde múltiplas equipes podem estar desenvolvendo diferentes partes de um sistema. A padronização proporcionada pelo Swagger ajuda a garantir que todas as partes do sistema se integrem perfeitamente, reduzindo a probabilidade de erros e inconsistências. Com uma comunidade ativa e uma ampla gama de ferramentas e plugins disponíveis, Swagger continua a evoluir e a oferecer soluções inovadoras para os desafios do desenvolvimento de APIs. Swagger é altamente extensível, permitindo que desenvolvedores personalizem e ampliem suas funcionalidades conforme necessário. Existem diversos plugins e extensões disponíveis que podem ser integrados ao Swagger para adicionar funcionalidades específicas, como autenticação, autorização e monitoramento de desempenho. Essa extensibilidade torna o Swagger uma ferramenta flexível que pode ser adaptada para atender às necessidades específicas de qualquer projeto. A capacidade de gerar documentação e código automaticamente também facilita a manutenção e atualização das APIs, garantindo que elas permaneçam consistentes e bem documentadas ao longo do tempo. Com essas vantagens, Swagger se estabelece como uma solução robusta e versátil para o desenvolvimento e gerenciamento de APIs RESTful. 21 Segue abaixo telas do Swagger no sistema Stels Streaming: Figura 8: Swagger 1 8 8 Fonte: Elaborado pelo autor (2024) 22 Figura 9: Swagger 2 9 9 Fonte: Elaborado pelo autor (2024) 23 Figura 10: Swagger 3 10 10 Fonte: Elaborado pelo autor (2024) 24 Figura 11: Swagger 4 11 11 Fonte: Elaborado pelo autor (2024) 25 Para realizar a configuração entre os sistemas Swagger e Stels Streaming foi criado o código: Figura 12: Código Swagger 12 12 Fonte: Elaborado pelo autor (2024) 26 10. CÓDIGOS DA INTERFACE NO ASP.NET COM O CRUD Apresento inicialmente toda estrutura dentro do sistema dentro do Visual Studio que foi utilizado para configurar e organizar o código: Figura 13: Estrutura do Sistema no Visual Studio 13 13 Fonte: Elaborado pelo autor (2024) 27 Abaixo está a tela que exibe o código do índice, refletindo a estrutura da página inicial: Figura 14: Index 14 14 Fonte: Elaborado pelo autor (2024) 28 A seguir, apresento a imagem que ilustra todos os aspectos visuais do sistema, onde utilizo a linguagem CSS (Cascading Style Sheets, ou Folhas de Estilo em Cascata). Nesta área, tenho a capacidade de definir e ajustar a tipografia, configurando estilos de fonte, tamanhos e espaçamentos, além de estruturar layouts nas telas, por meio de regras de posicionamento e dimensões. Também é possível personalizar as paletas de cores, assegurando que cada elemento da interface esteja em harmonia com a identidade visual do projeto. Essa flexibilidade permite criar uma experiência visual coesa e atraente para os usuários: Figura 15: Site.css 15 15 Fonte: Elaborado pelo autor (2024) 29 A seguir, apresento uma das partes mais fundamentais do código do sistema, responsável pela implementação das operações CRUD (Create, Read, Update, Delete) relacionadas à inserção de vídeos na plataforma Stels. Este trecho de código é essencial para a interação dos usuários com o sistema, permitindo a adição de novos vídeos: Figura 16: Inserção de Videos Front-End 16 16 Fonte: Elaborado pelo autor (2024) 30 Figura 17: Inserção de Videos Back-End 17 17 Fonte: Elaborado pelo autor (2024) 31 Abaixo, trago uma das seções-chave do código do sistema, que gerencia as operações CRUD (Criar, Ler, Atualizar, Deletar) relacionadas à modificação das informações dos vídeos na plataforma Stels. Este segmento de código é crucial para a experiência do usuário, pois possibilita a edição dos dados dos vídeos, garantindo que as informações sejam precisas e atualizadas conforme necessário. Figura 18: Editar Dados dos Videos Front-End 18 18 Fonte: Elaborado pelo autor (2024) 32 Figura 19: Editar Dados dos Videos Back-End 19 19 Fonte: Elaborado pelo autor (2024) 33 Abaixo, trago uma das seções cruciais do código do sistema, encarregada de realizar as operações CRUD (Criar, Ler, Atualizar, Deletar) associadas à remoção de vídeos na plataforma Stels. Este segmento de código desempenha um papel vital na interação dos usuários com o sistema, possibilitando a exclusão de vídeos de forma eficiente: Figura 20: Remoção dos Videos Front-End 20 20 Fonte: Elaborado pelo autor (2024) 34 Figura 21: Remoção dos Videos Back-End 21 21 Fonte: Elaborado pelo autor (2024) 35 A seguir, apresento uma das partes essenciais do código do sistema, responsável por executar as operações CRUD (Criar, Ler, Atualizar, Deletar) relacionadas ao gerenciamento de vídeos na plataforma Stels. Este trecho de código é fundamental para a interação dos usuários com o sistema, permitindo um gerenciamento eficiente dos vídeos: Figura 22: Gerenciamento dos Videos Front-End 22 22 Fonte: Elaborado pelo autor (2024) 36 Figura 23 Gerenciamento dos Videos Back-End 23 23 Fonte: Elaborado pelo autor (2024) 37 A seguir, apresento uma das seções do código do sistema, que desempenha um papel crucial ao exibir as diretrizes de privacidade da plataforma. Esta parte do código é responsável por garantir que os usuários estejam cientes de como suas informações pessoais são coletadas, utilizadas e protegidas. Figura 24: Código de Política de Privacidade Front-End 24 24 Fonte: Elaborado pelo autor (2024) 38 Figura 25: Código de Política de Privacidade Back-End 25 25 Fonte: Elaborado pelo autor (2024) 3911. INTERFACES GRÁFICAS DO SISTEMA STELS NO ASP.NET COM O CRUD Apresento abaixo as telas do sistema Stels Streaming, desenvolvidas utilizando ASP.NET Core com funcionalidades CRUD (Create, Read, Update, Delete). As telas são exibidas através do localhost, proporcionando uma visão clara e organizadas das operações disponíveis no sistema: Figura 26: Tela Inicial 26 26 Fonte: Elaborado pelo autor (2024) 40 Figura 27: Tela de adicionar Vídeo 27 27 Fonte: Elaborado pelo autor (2024) 41 Figura 28: Tela de Visualização de Vídeos 28 28 Fonte: Elaborado pelo autor (2024) 42 Figura 29: Tela de Editar Vídeos 29 29 Fonte: Elaborado pelo autor (2024) 43 Figura 30: Tela de Excluir Vídeo 30 30 Fonte: Elaborado pelo autor (2024) 44 Figura 31: Tela de Política de Privacidade 31 31 Fonte: Elaborado pelo autor (2024) 45 12. PROTÓTIPOS DE INTERFACE NO ANDROID STUDIO Utilizando a ferramenta Android Studio, foi desenvolvido um protótipo detalhado da interface gráfica do sistema Stels. Este protótipo inclui várias telas essenciais para a funcionalidade do sistema. Primeiramente, foi criada uma tela de cadastro, onde novos usuários podem se registrar fornecendo suas informações pessoais. Em seguida, desenvolvemos uma tela de login, permitindo que os usuários registrados acessem suas contas de maneira segura. Além dessas, a interface também inclui a ferramenta principal do sistema, que oferece aos usuários acesso às funcionalidades centrais do Stels. Cada uma dessas telas foi projetada com foco na usabilidade e na experiência do usuário, garantindo uma navegação intuitiva e eficiente. Abaixo, serão apresentadas as telas: Figura 32: Tela de login 32 32 Fonte: Elaborado pelo autor (2024) 46 Figura 33: Tela de cadastro 33 33 Fonte: Elaborado pelo autor (2024) 47 Figura 34: Tela de navegar no sistema 34 34 Fonte: Elaborado pelo autor (2024) 48 13. CÓDIGOS FONTE DO XML Durante o desenvolvimento da aplicação, foram elaborados os códigos em Java e XML para a criação da tela de layout do login. Este processo envolveu a definição detalhada de cada elemento da interface, garantindo que a tela fosse funcional e esteticamente agradável. O código em Java foi responsável pela lógica de funcionamento, incluindo a validação dos dados inseridos pelos usuários e a comunicação com o backend para autenticação. Já o código em XML foi utilizado para definir a estrutura visual da tela, especificando a posição e o estilo de cada componente, como campos de texto, botões e mensagens de erro. Abaixo, segue um exemplo do código desenvolvido: Figura 35: Tela XML de login 35 35 Fonte: Elaborado pelo autor (2024) 49 Diante do projeto também foi desenvolvido a tela de layout do cadastro abaixo: Figura 36: Tela XML de cadastro 36 36 Fonte: Elaborado pelo autor (2024) 50 Dentro do aplicativo foi desenvolvido a o código XML para buscas, segue abaixo: Figura 37: Tela XML de buscas 37 37 Fonte: Elaborado pelo autor (2024) 51 Também foi criada uma pasta chamada Colors.xml, onde foram definidas várias relações de cores para serem utilizadas no sistema Stels. Essas definições de cores são essenciais para manter a consistência visual e a estética do aplicativo. Abaixo,segue um exemplo das configurações de cores inseridas: Figura 38: Tela XML do Colors 38 38 Fonte: Elaborado pelo autor (2024) 52 Foi necessário também criar um arquivo XML chamado bottom_nav_menu.xml, que foi necessário para a interface ficar mais acessível ao usuário , segue abaixo: Figura 39: Tela XML do bottom_nav_menu.xml 39 39 Fonte: Elaborado pelo autor (2024) 53 14. CÓDIGOS FONTE DO JAVA ANDROID O desenvolvimento do sistema Stels foi realizado utilizando o Android Studio, aproveitando diversas classes já importadas para facilitar o processo. Durante o desenvolvimento, foram implementadas várias funcionalidades essenciais para garantir a eficiência e a usabilidade do sistema. Abaixo, apresento as telas das principais funções do sistema: Figura 40: Tela Java MainActivity 40 40 Fonte: Elaborado pelo autor (2024) 54 Figura 41: Tela Java MainActivity 2 41 41 Fonte: Elaborado pelo autor (2024) 55 O arquivo AndroidManifest.xml é um componente essencial em qualquer projeto Android desenvolvido no Android Studio. Ele serve como um mapa para o sistema operacional Android, descrevendo informações fundamentais sobre a aplicação. Aqui estão algumas das principais funções e características do AndroidManifest.xml: Declaração de Componentes: O Manifesto declara todos os componentes da aplicação, como atividades (activities), serviços (services), receptores de broadcast (broadcast receivers) e provedores de conteúdo (content providers). Cada componente deve ser registrado no Manifesto para que o sistema Android possa reconhecê-lo e gerenciá-lo. Permissões: O Manifesto especifica as permissões que a aplicação necessita para acessar recursos protegidos do dispositivo, como a internet, câmera, localização, entre outros. Por exemplo, permite que a aplicação acesse a internet. Configurações de Aplicação: Ele define configurações globais da aplicação, como o nome do pacote (package name), ícones, temas e a versão da aplicação. Essas informações são cruciais para a identificação e o gerenciamento da aplicação pelo sistema Android. Intents e Filtros de Intenção: O Manifesto pode declarar filtros de intenção (intent filters) que especificam como a aplicação pode responder a diferentes tipos de intents. Isso permite que a aplicação interaja com outras aplicações e componentes do sistema. Configurações de Hardware e Software: Ele pode especificar requisitos de hardware e software que a aplicação necessita, como a versão mínima do SDK (Software Development Kit) ou características específicas do dispositivo, como uma tela sensível ao toque. Configurações de Segurança: O Manifesto pode incluir configurações de segurança, como a definição de permissões personalizadas e a configuração de políticas de segurança para componentes específicos. 56 Aqui está um exemplo do arquivo AndroidManifest.xml no sistema Stels: Figura 42: Tela do AndroidManifest.xml 42 42 Fonte: Elaborado pelo autor (2024) 57 O Java Android é uma ferramenta excelente para desenvolvimento de aplicativos. Além de ser muito eficiente na criação, ela também proporciona uma organização notável. Abaixo, você pode ver um painel com todas as classes criadas no projeto, facilitando a visualização e o gerenciamento do código. Além disso, o Java Android oferece uma vasta biblioteca de APIs e suporterobusto da comunidade, tornando o desenvolvimento ainda mais ágil e eficaz. Figura 43: Tela Painel de Classes 43 43 Fonte: Elaborado pelo autor (2024) 58 Para o aplicativo Stels, foi desenvolvido um código simples e bem explícito em Java Android. Nele, criei a classe Activity_Register, responsável por toda a codificação da tela de cadastro. Esta classe gerencia a interface do usuário, valida os dados inseridos e interage com o banco de dados para armazenar as informações dos usuários. Além disso, o projeto inclui classes que facilitam a manutenção e a expansão do aplicativo, como classes de utilitários para manipulação de dados e classes de modelo que representam as entidades do sistema. Abaixo, segue a tela criada no projeto, proporcionando uma visão clara e organizada da estrutura do código. Figura 44: Tela do Activity_Register 44 44 Fonte: Elaborado pelo autor (2024) 59 Figura 45: Tela do Activity_Register 2 45 45 Fonte: Elaborado pelo autor (2024) 60 Figura 46: Tela do Activity_Register 3 46 46 Fonte: Elaborado pelo autor (2024) 61 Foi desenvolvido também a classe Activity_login, que é responsável por toda a codificação da tela de login. Esta classe autentica os usuários, verificando suas credenciais e permitindo o acesso ao aplicativo. Ela também gerencia a interface do usuário, garantindo uma experiência de login intuitiva e segura. A Activity_login que interage com o banco de dados para validar as informações de login e pode incluir funcionalidades adicionais, como recuperação de senha e autenticação multifator. A implementação desta classe é crucial para a segurança e a usabilidade do aplicativo, assegurando que apenas usuários autorizados possam acessar suas funcionalidades. Figura 47: Tela do Activity_login 47 47 Fonte: Elaborado pelo autor (2024) 62 Figura 48: Tela do Activity_login 2 48 48 Fonte: Elaborado pelo autor (2024) 63 Figura 49: Tela do Activity_login 3 49 49 Fonte: Elaborado pelo autor (2024) 64 Além disso, foi desenvolvida a classe ContentList, que é responsável por todas as funções apresentadas na tela de buscas. Esta classe foi implementada utilizando os tipos String e List, permitindo que, ao ser selecionada, as opções sejam exibidas em formato de listagem. A ContentList gerencia a exibição dos resultados de busca, garantindo que os dados sejam apresentados de forma clara e organizada. Ela também inclui métodos para filtrar e ordenar os resultados, melhorando a experiência do usuário ao procurar informações específicas. Abaixo, segue uma imagem com o código da classe, ilustrando sua estrutura e funcionalidades. Figura 50: Tela do ContentList 50 50 Fonte: Elaborado pelo autor (2024) 65 Foi desenvolvida a classe ProfileFragment, que é responsável por todas as funções apresentadas na tela do perfil. Esta classe foi implementada utilizando o tipo Fragment, permitindo que, ao ser selecionada, as opções de configuração do perfil sejam exibidas. A ProfileFragment gerencia a interface do usuário para a tela de perfil, incluindo a exibição e edição de informações pessoais, configurações de privacidade e preferências do usuário. Além disso, a classe pode integrar funcionalidades como upload de fotos de perfil, atualização de dados em tempo real e sincronização com o banco de dados. Abaixo, segue uma imagem com o código da classe, ilustrando sua estrutura e funcionalidades detalhadas. Figura 51: Tela do ProfileFragment 51 51 Fonte: Elaborado pelo autor (2024) 66 Figura 52: Tela do ProfileFragment 2 52 52 Fonte: Elaborado pelo autor (2024) 67 Além disso, foi desenvolvida a classe SearchFragment, que é responsável pelas funcionalidades que retornam as buscas no sistema Stels. Esta classe é pública e utiliza a RecyclerViewt, uma classe que facilita a exibição eficiente de grandes conjuntos de dados em uma lista rolável. A SearchFragment gerencia a interface de busca, permitindo que os usuários filtrem e visualizem os resultados de maneira organizada e intuitiva. Ela também inclui métodos para otimizar o desempenho da busca, como a implementação de carregamento sob demanda (lazy loading) e a reutilização de itens de lista para melhorar a eficiência. Abaixo, segue uma imagem com o código da classe, ilustrando sua estrutura e funcionalidades detalhadas. Figura 53: Tela do SearchFragment 53 53 Fonte: Elaborado pelo autor (2024) 68 Figura 54: Tela do SearchFragment 2 54 54 Fonte: Elaborado pelo autor (2024) 69 CONCLUSÃO A conclusão deste projeto evidencia não apenas a viabilidade, mas também a praticidade no desenvolvimento de um sistema de streaming de conteúdo multimídia online, destacando-se pela sua usabilidade e eficiência. A abordagem integrada das disciplinas de Programação Orientada a Objetos II, Desenvolvimento de Software para a Internet e Tópicos Especiais de Programação Orientada a Objetos foi fundamental para a elaboração deste trabalho. A aplicação da análise em sistemas orientados a objeto permitiu uma compreensão sólida dos princípios básicos e das melhores práticas no fornecimento de software de alta qualidade. A definição de requisitos funcionais e não funcionais, juntamente com as regras de negócio, formou a espinha dorsal do ciclo de desenvolvimento, assegurando que o produto final atendesse às expectativas dos usuários. Para atingir esse objetivo, foram aplicados conceitos fundamentais de programação orientada a objetos, permitindo uma abordagem modular e reutilizável no desenvolvimento do software. A codificação em C# do mecanismo de acesso a um trecho de banco de dados como uma Web API, juntamente com protótipos de interface gráfica desenvolvidos com .NET MAUI e Android/Java, demonstrou a eficácia dessas tecnologias. A utilização da classe PlaylistRepository com métodos de instância foi essencial para manter a conexão e o estado do banco de dados, garantindo a integridade e a consistência das informações. Além disso, o projeto incorporou práticas avançadas de segurança para proteger os dados dos usuários e garantir a integridade do sistema. A integração do Entity Framework permitiu a manipulação eficiente de operações CRUD (Create, Read, Update, Delete), além de incorporar medidas de segurança como autenticação e autorização. Essas funcionalidades são essenciais para criar um ambiente confiável e seguro para todos os usuários. Outro aspecto importante do projeto foi a experiência do usuário (UX). O desenvolvimento de protótipos de interface gráfica com .NET MAUI e Android/Java visou proporcionar uma navegação intuitiva e agradável. A interface foi projetada para ser responsiva e acessível, garantindo que os usuários possam acessar o conteúdo de maneira fácil e rápida, independentemente do dispositivo que estejam utilizando. 70 REFERÊNCIAS Requisitos funcionais e não funcionais: o que são, diferenças e exemplos. Site. Disponível emfuncionais >. Acesso em: 09 de setembro 2024. Como montar um plano de negócios e um Business Model Canvas. Site. Disponível em . Acesso em: 06 de setembro 2024. . Estratégia De Marketing: O Que É e Como Vender Mais Em 2023. Disponível em Estratégia De Marketing: O Que é e Como Fazer a Sua [2023] (neilpatel.com)> Acesso em: 04 de setembro 2024. Diagrama de caso de uso UML: O que é, como fazer e exemplos. Disponível em Acesso em: 04 de setembro 2024. Tudo o que você precisa saber para criar o seu plano de negócio. Disponível em Acesso em: 01 de setembro 2024. Análise de mercado: passo a passo para fazer a sua!. Disponível em Acesso em: 10 de setembro 2024. Diagramas de Seqüência. Disponível em Acesso em: 13 de setembro 2024. Você sabe quais são as diferenças entre DevOps e Agile?. Disponível em Acesso em: 15 de setembro 2024. https://www.infomoney.com.br/guias/o-que-e-plano-de-negocios-e-business-model-canvas/ https://www.infomoney.com.br/guias/o-que-e-plano-de-negocios-e-business-model-canvas/ https://neilpatel.com/br/blog/estrategia-de-marketing-o-que-e/#:~:text=Estrat%C3%A9gia%20de%20marketing%20%C3%A9%20um,no%20nicho%20em%20que%20atua. https://www.lucidchart.com/pages/pt/diagrama-de-caso-de-uso-uml https://sebrae.com.br/sites/PortalSebrae/artigos/como-elaborar-um-plano-de-negocio,37d2438af1c92410VgnVCM100000b272010aRCRD https://www.zendesk.com.br/blog/analise-de-mercado/ https://www.zendesk.com.br/blog/analise-de-mercado/ https://www.ibm.com/docs/pt-br/rsm/7.5.0?topic=uml-sequence-diagrams https://www.ibm.com/docs/pt-br/rsm/7.5.0?topic=uml-sequence-diagrams https://blog.cronapp.io/voce-sabe-quais-sao-as-diferencas-entre-devops-e-agile/ https://blog.cronapp.io/voce-sabe-quais-sao-as-diferencas-entre-devops-e-agile/ 71 O que é Product Backlog?. Disponível em Acesso em: 16 de setembro 2024. Os 10 principais modelos de cronograma de sprint com exemplos e amostras. Disponível em Acesso em: 17 de setembro 2024. Retrospectiva de sprint: tudo o que você precisa saber. Disponível em Acesso em: 19 de setembro 2024. https://www.oitchau.com.br/blog/product-backlog/ https://www.oitchau.com.br/blog/product-backlog/ https://www.slideteam.net/blog/os-10-principais-modelos-de-cronograma-de-sprint-com-exemplos-e-amostras?lang=Portuguese https://www.slideteam.net/blog/os-10-principais-modelos-de-cronograma-de-sprint-com-exemplos-e-amostras?lang=Portuguese https://monday.com/blog/pt/desenvolvimento/retrospectiva-de-sprint/