SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
Vapor 3: crie o backend do seu app em Swift e reutilize o model
Multiplataforma
Deploy
heroku-buildpack 

by Vapor Community
SQL e NoSQL
MySQL, MongoDB, Postgre…
Fluent / ORM
Migrations
configure.swift
IP e Porta
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 Fluent 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 bibliotecas (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
Michel Lutz
michel_lutz@icloud.com
Luciano Sclovsky
luciano.sky@gmail.com
https://github.com/micheltlutz/TodoTDC-19

Mais conteúdo relacionado

Mais procurados

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
 
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
 
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
 
Gitlab flow solo (pt-BR)
Gitlab flow solo (pt-BR)Gitlab flow solo (pt-BR)
Gitlab flow solo (pt-BR)viniciusban
 
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
 
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
 

Mais procurados (8)

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
 
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
 
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)
 
Gitlab flow solo (pt-BR)
Gitlab flow solo (pt-BR)Gitlab flow solo (pt-BR)
Gitlab flow solo (pt-BR)
 
Gitlab flow
Gitlab flowGitlab flow
Gitlab flow
 
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
 
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
 

Semelhante a Vapor 3 backend Swift reutilizar 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
 
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
 
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
 
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
 
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
 
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
 
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
 
Aula02 android hands_on
Aula02 android hands_onAula02 android hands_on
Aula02 android hands_onRoberson Alves
 
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
 
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
 
Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para AndroidJorge Cardoso
 
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
 

Semelhante a Vapor 3 backend Swift reutilizar model (20)

Aula maps 23_2
Aula maps 23_2Aula maps 23_2
Aula maps 23_2
 
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
 
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 ...
 
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
 
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
 
Apostila android
Apostila androidApostila android
Apostila android
 
Apostila android
Apostila androidApostila android
Apostila android
 
Apostila android
Apostila androidApostila android
Apostila android
 
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
 
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
 
Bada
BadaBada
Bada
 
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
 
Aula02 android hands_on
Aula02 android hands_onAula02 android hands_on
Aula02 android hands_on
 
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...
 
Setup.docx
Setup.docxSetup.docx
Setup.docx
 
Carthage ou cocoapods
Carthage ou cocoapodsCarthage ou cocoapods
Carthage ou cocoapods
 
Git flow na prática
Git flow na práticaGit flow na prática
Git flow na prática
 
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
 
Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para Android
 
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
 

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 backend Swift reutilizar model