Coder Social home page Coder Social logo

jeffrey's Introduction

Jeffrey

SobreRequisitos do ProjetoPreview do ProjetoTecnologias utilizadasArquiteturaMetodologia de trabalhoExecutar o ProjetoAutoresLicença


💻 Sobre

O projeto integrador faz parte do ciclo de finalização do curso iOS mobile developer desenvolvido pela Digital House Brasil em parceria com o Santander Universidades pelo projeto Becas Santander.

O aplicativo desenvolvido se chama Jeffrey e tem por finalidade sortear filmes dentro da plataforma utilizando como parâmetro gêneros e streamings setados pelo usuário. O aplicativo ainda apresenta diversos títulos na sua home principal, o usuário tem a opção de guardar listas de favoritos e já vistos para que não seja carregadas como opções no botão de sorteio, e uma tela de de busca de informações onde se pode realizar busca de títulos específicos.

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

O Santander Coders Mobile é uma experiência de 6 meses de imersão para aprender a desenvolver aplicativos na plataforma iOS, tem como objetivo dar oportunidades reais para pessoas que querem transformar suas vidas por meio da educação de qualidade.


🔧 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 código precisa estar comentado;
  • Testes Unitários;
  • 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 inicial que deve conter um resumo das funcionalidades do app;
    • Tela de descrição do item;
    • Tela de listagem de características;
    • Opções para compartilhamento em redes sociais;
  • 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.

🎬 Preview do Projeto

Jeffrey.mov

LoginFlow HomeFlow RaffleFlow RedirectFlow ListsFlow SearchFlow

jeffreyLogado


Tecnologias utilizadas

  • Miro
  • Trello
  • Xcode 12.4
  • Atom
  • Postman
  • JSon Export
  • Git - GitFlow
  • Cocoapods
  • Figma
  • Canva Pro
  • Ninja Mock
  • Firebase - Realtime e Storage
  • CoreData
  • SQLite
  • Fastlane
  • Bitrise

📐 Padrão de projeto

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-Pattern


📆 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 culmimam 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. Para de controle de versão, abordamos o fluxo de trabalho utilizando branches - GitFlow, implementando dois ambientes de código em teste e testado (develop e main), sempre que necessário novas implementações são realizadas nas branches através de features, e quando surgem problemas/bugs são solucionados através de hotfix. Também foi implementado método de integração contínua, utilizando a ferramenta Bitrise, através da lib Fastlane, que nos permite ter um controle maior sobre os possíveis problemas ocorridos no código.

Scrum

Métodos - Git Flow


📀 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/miziaalmeida/projeto-integrador-iOS.git>

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

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

# Abra o projeto no XCode
$ open Jeffrey.xcworkspace

👐 Autores

Foto de Perfil Michel Santos

Michel Santos

Linkedin Badge Github Badge Gmail Badge

Foto de Mízia Lima

Mízia Lima

Linkedin Badge Github Badge Gmail Badge

Foto de Taize Carminatti

Taize Carminatti

Linkedin Badge Github Badge Gmail Badge


📄 Licença

Copyright © 2021 Jeffrey.
Este projeto é licenciado pelo MIT.

jeffrey's People

Contributors

miziaalmeida avatar michelldossantos avatar taizecarminatti avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.