SlideShare uma empresa Scribd logo
1 de 34
Baixar para ler offline
Vapor 3: Reutilizando o model de backend
para o seu app.
http://micheltlutz.me
Michel A Lutz Teixeira
Lead iOS Developer @cinguloapp
Criando o Projeto
Criando o Projeto
Puxando dependências
SQL e NoSQL
MySQL, MongoDB, Postgre…
Fluent ORM
Mão na massa
Mão na massa
Após instalado e com o Xcode aberto, vamos instalar o Fluent
para o PostreSQL,
que será o responsável por toda a comunicação de model / vapor
com nosso banco de dados.
Package.swift
Terminal
Ou
configure.swift
Providers
IP e Porta
Fluent PostgreSQL DataBase:
Migrations:
O arquivo final deve ficar assim
Configurando Model
Vamos alterar o model Todo para o seguinte formato.
Removendo o import do FluentSQLite também o protocolo
SQLiteModel substituindo por Codable,
vamos adicionar um atributo / campo do tipo Bool
Sources > App > Models > Todo.Swift
Todo.Swift
Configurando Model
Vamos recortar agora as seguintes linhas que
estão abaixo da class Todo:
TodoController.Swift
Agora abra o arquivo:
Sources > App > Controllers > TodoController.Swift
TodoController.Swift
Logo abaixo do import Vapor, cole o código que recortamos do arquivo Todo.swift
Vamos aproveitar e importar também a Lib FluentPostgreSQL e adicionar a
Extension para o mesmo
TodoController.Swift
O arquivo deve ficar assim ao final
Fizemos estes ajustes para isolar o arquivo de model Todo
para usá-lo tanto no Vapor quanto em um projeto de app
sem se preocupar com dependências (imports).
Neste momento já podemos rodar o projeto e ver o banco criado. 
Com o Terget Run selecionado  aperte Command + R para rodar o projeto
Se tudo deu certo você deve ter a seguinte saída no console do Xcode.
Build API
Build API
PgAdmin
E se você abrir seu gerenciador de banco, terá o banco criado também. (Eu uso o pgAdmin)
Testando API com Postman:
Se fizermos um GET no mesmo endereço já teremos a listagem com as todos criadas,
se acessarmos no navegador o endereço http://localhost:8080/todos também teremos
acesso as todos criadas.
Criando um App de Todo
e Reaproveitando o Model
Selecione o Projeto e clique no icone + conforme imagem abaixo:
1
2
Criando um App de Todo
e Reaproveitando o Model
Vamos adicionar um Target Single View App
Escolha o nome do projeto (TodoApp).
E Clique em Finish
The Magic
Selecione o Todo.swift
Em Target Membership marque TodoApp
Exiba o painel Inpectors
Command + B
The Magic
Demo
Obrigado
http://micheltlutz.me/post/vapor-3-reutilizando-o-model-de-backend-para-o-seu-app
http://micheltlutz.me
Michel A Lutz Teixeira
michel_lutz@icloud.com

Mais conteúdo relacionado

Mais procurados

Desenvolvimento Cross Mobile com Xamarin, por onde começar?
Desenvolvimento Cross Mobile com Xamarin, por onde começar?Desenvolvimento Cross Mobile com Xamarin, por onde começar?
Desenvolvimento Cross Mobile com Xamarin, por onde começar?Letticia Nicoli
 
API com SpringBoot
API com SpringBootAPI com SpringBoot
API com SpringBootceife
 
Entrega contínua com arquitetura distribuida
Entrega contínua com arquitetura distribuidaEntrega contínua com arquitetura distribuida
Entrega contínua com arquitetura distribuidaLeonardo Kobus
 
ASP.Net MVC 3 - o que há de novo (TechEd)
ASP.Net MVC 3 - o que há de novo (TechEd)ASP.Net MVC 3 - o que há de novo (TechEd)
ASP.Net MVC 3 - o que há de novo (TechEd)Giovanni Bassi
 
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...Renato Groff
 
Testando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a pontaTestando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a pontatdc-globalcode
 
Sebastian Ferrari - Why React is good for business
Sebastian Ferrari - Why React is good for businessSebastian Ferrari - Why React is good for business
Sebastian Ferrari - Why React is good for businessReact Conf Brasil
 
Aplicando patches de correção no Magento 2 com composer
Aplicando patches de correção no Magento 2 com composerAplicando patches de correção no Magento 2 com composer
Aplicando patches de correção no Magento 2 com composerBruno Roeder
 
SpringSource Tool Suite, tc Server e dm Server
SpringSource Tool Suite, tc Server e dm ServerSpringSource Tool Suite, tc Server e dm Server
SpringSource Tool Suite, tc Server e dm ServerDr. Spock
 
Projetos reativos com Angular, RxJS e Redux (ngRx)
Projetos reativos com Angular, RxJS e Redux (ngRx)Projetos reativos com Angular, RxJS e Redux (ngRx)
Projetos reativos com Angular, RxJS e Redux (ngRx)Loiane Groner
 

Mais procurados (13)

Desenvolvimento Cross Mobile com Xamarin, por onde começar?
Desenvolvimento Cross Mobile com Xamarin, por onde começar?Desenvolvimento Cross Mobile com Xamarin, por onde começar?
Desenvolvimento Cross Mobile com Xamarin, por onde começar?
 
API com SpringBoot
API com SpringBootAPI com SpringBoot
API com SpringBoot
 
Entrega contínua com arquitetura distribuida
Entrega contínua com arquitetura distribuidaEntrega contínua com arquitetura distribuida
Entrega contínua com arquitetura distribuida
 
ASP.Net MVC 3 - o que há de novo (TechEd)
ASP.Net MVC 3 - o que há de novo (TechEd)ASP.Net MVC 3 - o que há de novo (TechEd)
ASP.Net MVC 3 - o que há de novo (TechEd)
 
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
 
Serverless do Básico ao Básico
Serverless do Básico ao BásicoServerless do Básico ao Básico
Serverless do Básico ao Básico
 
Testando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a pontaTestando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
 
Sebastian Ferrari - Why React is good for business
Sebastian Ferrari - Why React is good for businessSebastian Ferrari - Why React is good for business
Sebastian Ferrari - Why React is good for business
 
Aplicando patches de correção no Magento 2 com composer
Aplicando patches de correção no Magento 2 com composerAplicando patches de correção no Magento 2 com composer
Aplicando patches de correção no Magento 2 com composer
 
SpringSource Tool Suite, tc Server e dm Server
SpringSource Tool Suite, tc Server e dm ServerSpringSource Tool Suite, tc Server e dm Server
SpringSource Tool Suite, tc Server e dm Server
 
Novidades do ASP .NET MVC 3
Novidades do ASP .NET MVC 3Novidades do ASP .NET MVC 3
Novidades do ASP .NET MVC 3
 
ASP.NET AJAX
ASP.NET AJAXASP.NET AJAX
ASP.NET AJAX
 
Projetos reativos com Angular, RxJS e Redux (ngRx)
Projetos reativos com Angular, RxJS e Redux (ngRx)Projetos reativos com Angular, RxJS e Redux (ngRx)
Projetos reativos com Angular, RxJS e Redux (ngRx)
 

Semelhante a Vapor 3: Reuse backend model

Introdução a programação para plataforma iOS
Introdução a programação para plataforma iOSIntrodução a programação para plataforma iOS
Introdução a programação para plataforma iOSDevmedia
 
Android Core Aula 6 - Desenvolvimento de aplicações Android
Android Core Aula 6 -  Desenvolvimento de aplicações AndroidAndroid Core Aula 6 -  Desenvolvimento de aplicações Android
Android Core Aula 6 - Desenvolvimento de aplicações AndroidFelipe Silveira
 
Ionic Framework - Parte 1 - Iniciando um Projeto mais Robusto
Ionic Framework - Parte 1 - Iniciando um Projeto mais RobustoIonic Framework - Parte 1 - Iniciando um Projeto mais Robusto
Ionic Framework - Parte 1 - Iniciando um Projeto mais RobustoAlamo Saravali
 
Desenvolvimento Ágil de Aplicações Java na Nuvem com o AWS Elastic Beanstalk
Desenvolvimento Ágil de Aplicações Java na Nuvem com o AWS Elastic BeanstalkDesenvolvimento Ágil de Aplicações Java na Nuvem com o AWS Elastic Beanstalk
Desenvolvimento Ágil de Aplicações Java na Nuvem com o AWS Elastic BeanstalkAmazon Web Services LATAM
 
Configurando aplicações em ambiente RedHat OpenShift através do Eclipse
Configurando aplicações em ambiente RedHat OpenShift através do EclipseConfigurando aplicações em ambiente RedHat OpenShift através do Eclipse
Configurando aplicações em ambiente RedHat OpenShift através do EclipseAlberlan Barros
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Daniel Makiyama
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com AngularElmano Cavalcanti
 
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...Dextra Sistemas / Etec Itu
 
Apresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno CottaApresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno CottaGPrimola
 
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu DevelopersDesenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu DevelopersDextra Sistemas / Etec Itu
 
APIs gerenciadas de ponta a ponta - construção
APIs gerenciadas de ponta a ponta - construçãoAPIs gerenciadas de ponta a ponta - construção
APIs gerenciadas de ponta a ponta - construçãoFábio Rosato
 
Testes Distribuídos com TestComplete v7
Testes Distribuídos com TestComplete v7Testes Distribuídos com TestComplete v7
Testes Distribuídos com TestComplete v7Miquéias Morezet
 

Semelhante a Vapor 3: Reuse backend model (20)

Introdução a programação para plataforma iOS
Introdução a programação para plataforma iOSIntrodução a programação para plataforma iOS
Introdução a programação para plataforma iOS
 
Aula maps 23_2
Aula maps 23_2Aula maps 23_2
Aula maps 23_2
 
Android Core Aula 6 - Desenvolvimento de aplicações Android
Android Core Aula 6 -  Desenvolvimento de aplicações AndroidAndroid Core Aula 6 -  Desenvolvimento de aplicações Android
Android Core Aula 6 - Desenvolvimento de aplicações Android
 
Ionic Framework - Parte 1 - Iniciando um Projeto mais Robusto
Ionic Framework - Parte 1 - Iniciando um Projeto mais RobustoIonic Framework - Parte 1 - Iniciando um Projeto mais Robusto
Ionic Framework - Parte 1 - Iniciando um Projeto mais Robusto
 
Desenvolvimento Ágil de Aplicações Java na Nuvem com o AWS Elastic Beanstalk
Desenvolvimento Ágil de Aplicações Java na Nuvem com o AWS Elastic BeanstalkDesenvolvimento Ágil de Aplicações Java na Nuvem com o AWS Elastic Beanstalk
Desenvolvimento Ágil de Aplicações Java na Nuvem com o AWS Elastic Beanstalk
 
Configurando aplicações em ambiente RedHat OpenShift através do Eclipse
Configurando aplicações em ambiente RedHat OpenShift através do EclipseConfigurando aplicações em ambiente RedHat OpenShift através do Eclipse
Configurando aplicações em ambiente RedHat OpenShift através do Eclipse
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
 
Carthage ou cocoapods
Carthage ou cocoapodsCarthage ou cocoapods
Carthage ou cocoapods
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com Angular
 
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...
 
Iniciando com django
Iniciando com djangoIniciando com django
Iniciando com django
 
Apostila android
Apostila androidApostila android
Apostila android
 
Apostila android
Apostila androidApostila android
Apostila android
 
Apostila android
Apostila androidApostila android
Apostila android
 
Cake Php
Cake PhpCake Php
Cake Php
 
Usando Docker no desenvolvimento .NET
Usando Docker no desenvolvimento .NETUsando Docker no desenvolvimento .NET
Usando Docker no desenvolvimento .NET
 
Apresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno CottaApresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno Cotta
 
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu DevelopersDesenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
 
APIs gerenciadas de ponta a ponta - construção
APIs gerenciadas de ponta a ponta - construçãoAPIs gerenciadas de ponta a ponta - construção
APIs gerenciadas de ponta a ponta - construção
 
Testes Distribuídos com TestComplete v7
Testes Distribuídos com TestComplete v7Testes Distribuídos com TestComplete v7
Testes Distribuídos com TestComplete v7
 

Mais de Michel Anderson Lütz Teixeira (7)

Exemplo de Fluxograma de Arquitetura aplicativo
Exemplo de Fluxograma de Arquitetura aplicativoExemplo de Fluxograma de Arquitetura aplicativo
Exemplo de Fluxograma de Arquitetura aplicativo
 
What's new in ar kit 2
What's new in ar kit 2What's new in ar kit 2
What's new in ar kit 2
 
Desenvolvendo com IONIC
Desenvolvendo com IONICDesenvolvendo com IONIC
Desenvolvendo com IONIC
 
Curso Conhecendo o Scrum - Ulbra Torres
Curso Conhecendo o Scrum - Ulbra TorresCurso Conhecendo o Scrum - Ulbra Torres
Curso Conhecendo o Scrum - Ulbra Torres
 
Quebrando a mística da metodologia ágil Scrum
Quebrando a mística da metodologia ágil ScrumQuebrando a mística da metodologia ágil Scrum
Quebrando a mística da metodologia ágil Scrum
 
Apresentacao internet segura no trabalho
Apresentacao internet segura no trabalhoApresentacao internet segura no trabalho
Apresentacao internet segura no trabalho
 
Dicas para internet segura no trabalho
Dicas para internet segura no trabalhoDicas para internet segura no trabalho
Dicas para internet segura no trabalho
 

Vapor 3: Reuse backend model