Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Desafio Técnico iOS - Lucio Bueno Vieira Junior #43

Open
wants to merge 57 commits into
base: master
Choose a base branch
from

Conversation

luciobvjr
Copy link

@luciobvjr luciobvjr commented Nov 20, 2024

Descrição

Tecnologias:

  • SwiftUI foi utilizado para a criação das telas
  • Firebase Functions foi utilizado como proxy para a API, lá a API key foi guardada seguramente como uma variável de ambiente. As funções utilizadas foram escritas em javascript
  • Firebase App Check garante que apenas dispositivos certificados consigam fazer requisições para as Firebase Functions, adicionando mais uma camada de segurança ao aplicativo
  • SwiftData garantiu que os dados de filmes e séries adicionados à "Minha lista" fossem persistidos localmente

Estrutura de projeto:

Foi utilizado como base o padrão MVVM, que possui grande afinidade com o SwiftUI

  • Models: Nesse diretório foram adicionados as estruturas e regras de negócio do aplicativo, majoritariamente oriundas das estruturas de resposta das requisições ao TMDB
  • Scenes: Nesse diretório foram separadas as:
    • Views: Código para lidar com as interfaces e interações com o usuário
    • ViewModels: Isolam a lógica das Views e funcionam como facilitadores da comunicação entre os modelos e as Views
  • Services: Onde foi adicionado o arquivo NetworkService, que através da SDK do Firebase faz chamadas remotas à API

Como testar

  • O projeto tem como target apenas iPhone 16 a partir do iOS 17.6
  • O projeto foi desenvolvido utilizando XCode 16, apesar do modo de compatibilidade com o Xcode 15 ter sido ativado ele pode não funcionar em versões anteriores
  • Certifique que todas as dependência estão devidamente instaladas

Firebase:

  • Para o projeto funcionar devidamente, o arquivo de configuração do Firebase (GoogleService-Info) deve ser adicionado. Esse arquivo possui informações delicadas que não devem ser versionadas

  • Na primeira vez que o aplicativo for executado, o console do XCode irá exibir um token de debug para o App Check.
    image

  • Por isso, solicito que as pessoas que forem testar me enviem um e-mail contendo o Token de debug para ser liberado no console do projeto no Firebase e eu responderei o mais rápido possível com o GoogleService-Info para ser adicionado ao diretório globoplay-iOS, na mesma hierarquia que o arquivo globoplay_iOSApp

email: [email protected]

Demo

ps: Os gifs estão acelerados em 2x para possuírem tamanho menor que o máximo de 10mb

Inicio Detalhes Minha lista
inicio detalhes minha lista

luciobvjr and others added 30 commits November 12, 2024 17:03
luciobvjr and others added 27 commits November 14, 2024 17:53
Separa seções da tela inicial por gênero
… e atualiza a lógica de exibição em MediaCellView e MediaDetailsView
…ção de opções no CustomSegmentedPickerView
…exibição do aplicativo do arquivo de configuração. Melhora a lógica de geração de texto de gêneros em MediaDetailsViewModel para evitar duplicatas.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant