Rest API usado no projeto
REST APIs é frequentemente usado em aplicações móveis, sites de redes sociais, ferramentas mashup e processos de negócios automatizados. O estilo REST enfatiza que as interações entre clientes e serviços são aprimoradas por ter um número limitado de operações. Usando este link mencionado abaixo, estamos tentando pegar os dados json.
Screen 1- Aviso-Módulo: Ao abrir o aplicativo, você obterá o resultado da lista de avisos contendo notice-title, notice-brief, notice-filesource, que é obtido usando o Alamofire usando este notice-api.
Notice-Module-API: https://api.myjson.com/bins/1bsqcn/
Screen 2- Módulo-módulo de filme: Se você clicar em qualquer um dos itens da lista da tabela, você empurrará para outro controlador de visualização de filme que contém imagem, título e resumo que é obtido usando Alamofire usando este filme-api.
Movie-Module-API: https://api.myjson.com/bins/1h87n6
Podfile:
No podfile incluímos o Alamofire para chamar apis de descanso, AlamofireImage para carregar imagens na tabela View e AlamofireObjectMapper para mapear o modelo ou entidade.
AppConstants.swift
NoticeModel.swift
NotticeModel.swift
Nottity layer provides a model which interactor use to create objects from the fetched data. A Entidade é provavelmente o elemento mais simples dentro de uma estrutura VIPER. Uma coisa importante a notar é que a Entidade é diferente da Camada de Acesso aos Dados, que deve ser tratada pelo Interactor. Aqui, usamos o object mapper para mapear o objeto JSON de resposta e o objeto MODEL.
NoticeProtocol.swift
Usamos protocolos para definir os métodos que um componente de módulo pode chamar de outros componentes no mesmo módulo. Podemos simplesmente dizer que os protocolos são usados para comunicar entre as diferentes camadas .
NoticePresenter.swift
NoticeInteractor.swift
Interactor é a principal seção integral onde reside todo o login de negócios. Criamos uma instância do InteractorToPresenterProtocolo para enviar a resposta de sucesso ou erro que veio através das APIs para o Presenter.
NoticeViewController.swift
NoticeViewController mostra apenas os dados na tabelaView que vieram através da resposta das APIs. Aqui nós implementamos o PresenterToViewProtocol como extensão para receber os dados que vieram através do apresentador. E criamos a instância do apresentador:ViewToPresenterProtocol para chamadas das APIs de rede.
NoticeRouter.Swift
Router layer é responsável pelo wireframing da aplicação como a mudança entre as diferentes telas. Neste projeto o roteamento acontece quando a aplicação é lançada pela primeira vez. Então dentro da função ‘didFinishLaunchingWithOptions router’s createModule() do AppDelegate é chamada a função que retorna um módulo. A classe UIWindow então mostra a visão desse módulo.
AppDelegate.swift
No AppDelegate, nós apenas criamos a instância do UINavigationViewController passando a instância NoticeViewController e definimos esse UINavigationView Controller como o controlador de visão raiz.
Por favor clone ou baixe o projeto inteiro do GITHUB. E finalmente, parabéns por ter aprendido o básico do VIPER. Codificação Feliz. Se você achar este artigo útil, não se esqueça de compartilhar, recomendar e aplaudir.