/MovieRoll

Projeto integrador Digital House

Primary LanguageSwift

movieroll

Sobre o appRequisitos do ProjetoDemonstraçãoTecnologias utilizadasArquitetura e LayoutMetodologia de trabalhoExecução do ProjetoAutores


Sobre o app

O projeto integrador faz parte do ciclo de finalização do curso iOS mobile developer desenvolvido pela Digital House Brasil.

Sabe aquele momento que você deseja assistir um bom filme mas não sabe como decidir? É pra suprir essa necessidade que criamos o aplicativo Movieroll. O objetivo do app é roletar filmes utilizando como filtro gêneros, nivel de exigência, data de lançamento e plataformas de streaming. Basta escolher um ou mais filtros que nós sugerimos um filme pra você. O aplicativo ainda apresenta uma tela com os principais lançamentos dividos em gêneros e uma tela de perfil de usuário onde existe a função histórico que guarda os filmes que ele ja roletou, favoritos e filmes assistidos. Enquanto o filme estiver nestas listas ele não aparece mais na roleta, e só volta a aparecer se o usuário ir em configurações e resetar cada uma. Para o usuário ter acesso ao histórico é necessário efetuar login, mas para usufruir das outras funcionalidades do app não é necessário logar.

Para este projeto está sendo consumida a API do The Movie DataBase, conforme uma das exigências de entrega do projeto: consumo de API.


Requisitos do Projeto

O projeto integrador deve estar em conformida com os seguintes tópicos;

  • Deve possuir um design em todas as telas utilizando auto layout;
  • Aplicação do POO.
  • Deve possuir navegação entre telas (Navigation e Modal);
  • Tratativas de erros;
  • Deve consumir uma API;
  • Deve funcionar em modo offline;
  • A arquitetura deve ser MVVM;
  • O app deve conter, pelo menos, os seguintes componentes do UIKit: (UITextField, UIButton, UILabel, UICollectionView e UITableView).
  • O app deve possuir as seguintes features:
    • Tela de carregamento;
    • Tela de login (Facebook e Google são obrigatórios);
    • Tela de descrição do item;
    • Tela de listagem de características;
  • Todo o trabalho deve ser feito utilizando o GitFlow;
  • Ao final, o ReadMe deve estar atualizado com screenshots das telas do app e descrição detalhada das funcionalidades.

Demonstração

Telas Principais: Fluxo

Lancamentos.mp4
Roleta.mp4
Perfil.mp4

Login: Fluxo

Cadastrar.mov
Login.Email.Senha.mov
Login.Google.mov
Login.Facebook.mov

Tecnologias utilizadas

  • WhatsApp
  • Zoom
  • Xcode 13.4
  • Git - GitFlow
  • Cocoapods
  • Marvel
  • Creative Cloud (Photoshop e Illustrator)
  • Firebase - Realtime e Storage
  • CoreData

Arquitetura e Layout

Este projeto foi desenvolvido dentro do padrão de projeto Model-View-ViewModel (MVVM), composto pelos seguintes elementos:

  • Model: Camada de logística de negócios que impulsiona a aplicação e quaisquer regras de negócios, é responsável pelos dados;
  • View: Camada de interface de usuário, responsável pela aparência da aplicação
  • ViewModel: Responsável por ser a ligação principal dentro do MVVM, a ViewModel coordena as operações entre a view e as camadas model, ela será responsável por expor métodos, comandos e propriedades que mantém o estado da View, bem como manipular a Model com resultados de ações da View.

mvvm

  • Layout: O app foi construído em grande parte por meio de Storyboard. Para fins de estudo, desenvolvemos as telas abaixo em ViewCode.

movieroll movieroll movieroll


Metodologia de trabalho

Este projeto utilizou como metodologia principal de trabalho o padrão ágil implementado com o Scrum. Este é uma estrutura voltada para o trabalho em equipe, estimulando as equipes a aprenderem com suas experiências, se organizarem enquanto resolvem um problema e refletirem sobre os êxitos e fracassos para melhorarem continuamente, tudo isso realizado em cerimônias de acompanhamento com o time (Planning, Dailys, Retrospective) que juntas culminam na entrega do resultado e fechamento da Sprint - período curto de trabalho pré-fixado onde uma equipe se dedica a entrega das tarefas definidas.


Execução do Projeto

Este projeto deverá ser executado:

  1. No sistema operacional MacOS
  2. No simulador do Xcode ou IPhone

💡É preciso efetuar a simulação no ambiente de desenvolvimento Xcode ou integrá-lo com Iphone para funcionar.

Pré-requisitos

Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas: Git, CocoaPods

# Clone este repositório
$ git clone <https://github.com/vhenriquebm/MovieRoll.git>

# Acesse a pasta do projeto no terminal/cmd
$ cd MovieRoll

# Execute o comando *pod install* para iniciar o projeto com as libs necessárias
$ pod install

# Abra o projeto no XCode
$ open MovieRoll.xcworkspace

Autores

Foto de Perfil Vitor Henrique

Vitor Henrique

Linkedin Badge Github Badge

Foto de Perfil Ygor Silva

Ygor Silva

Linkedin Badge Github Badge

Foto de Perfil Bruno Bezerra

Bruno Bezerra

Linkedin Badge Github Badge

Foto de Perfil Renato Yoshinari

Renato Yoshinari

Linkedin Badge Github Badge

Foto de Perfil Artur Araujo

Artur Araujo

Linkedin Badge Github Badge

Foto de Perfil Raul Andrade

Raul Andrade

Linkedin Badge Github Badge

Aceitamos sugestões para melhorar o nosso projeto :)

Qualquer dificuldade na instalação do Xcode ou na execução do projeto, estamos a disposição no email: vybrar@gmail.com