Desde que a Apple familiarizou originalmente o Swift como o sucessor do Objective-C, ela mudou a forma como a rede codifica os aplicativos iOS, macOS, watchOS e tvOS.
No ponto em que o Swift se transformou em um estágio de código aberto, ele abriu novos resultados concebíveis para a linguagem, além da aplicação móvel e do lado do cliente. O Swift também se tornou uma linguagem do lado do servidor. Neste exercício instrutivo, você perceberá o que é o Swift do lado do servidor e por que você precisaria ter o Swift em seu back-end.
A atividade do Swift no lado do servidor está sendo impulsionada por três projetos proeminentes que são o Vapor by Qutheory, o Kitura da IBM e o Perfect, com o objetivo de dar aos desenvolvedores do Swift a chance de fazer administrações de back-end totalmente desenvolvidas. Isso, fundamentalmente, transformará esses engenheiros em desenvolvedores full-stack, invalidando o requisito de dependência de Node ou PHP ou oferecendo controle para um estágio BaaS, por exemplo, o Firebase do Google.
Metas deste artigo
Neste artigo, você aprenderá sobre o Swift do lado do servidor. Em primeiro lugar, esclarecerei como o Swift do lado do servidor funciona e, depois, demonstrarei as melhores práticas para começar com os sistemas Kitura, Vapor e Perfect.
Introdução do Server Side Swift
O Swift foi anunciado pela Apple em 2014 e rapidamente tornou-se uma das linguagens de programação de desenvolvimento mais rápido. O Swift extrai um grande número das melhores linguagens contemporâneas, por exemplo, Python, permitindo elegância e facilidade de uso. Libera os engenheiros das amarras especializadas do Objective-C, permitindo um trabalho cada vez mais líquido e instintivo.
Em dezembro de 2015, a Apple fez outra declaração fantástica e tornou a linguagem Swift junto com suas bibliotecas de suporte, depurador e gerenciador de pacotes um projeto de código aberto sob a licença Apache 2.0, abrindo a plataforma para que as pessoas em geral façam pull request e contribuam. A mudança para longe do Objective-C não apenas tentou os inúmeros desenvolvedores Objective-C que contribuem para a App Store, mas também tornou mais simples para os desenvolvedores de todas as habilidades e fundamentos entrar no ecossistema da Apple com o Swift.
Em qualquer caso, embora os dispositivos avançados da Apple tenham comprovadamente facilitado para os desenvolvedores o desenvolvimento de aplicativos aparentemente convincentes e envolventes para a App Store, um gargalo proeminente é que os projetos ainda exigem desenvolvedores back-end especializados para desenvolver aplicativos complexos orientados por informações. Portanto, os desenvolvedores de iOS e macOS precisariam recorrer à ajuda de desenvolvedores de Python, PHP ou Node para fazer seu banco de dados de back-end ou obter a habilidade eles mesmos, trazendo uma tarefa restante totalmente mais pesada em mãos para concluir seus objetivos de empreendimento.
Embora o back-end-as-a-service (BaaS) tenha agido como o herói dos desenvolvedores iOS, com soluções de back-end sem código, por exemplo, o Firebase do Google e o CloudKit especial da Apple que atenuam as complexidades do back-end, numerosos grupos e empreendimentos pedem mais. Este é o lugar onde o Swift do lado do servidor entra, permitindo que você faça um servidor back-end multiencadeado totalmente desenvolvido que seja de código aberto e configurável de forma interminável.
O Swift do lado do servidor lhe dá a chance de escolher como você tem seu servidor de back-end, independentemente de ser com AWS, RackSpace ou seus próprios servidores físicos. Você também pode escolher como balancear a carga de seus servidores (por exemplo, por meio de soluções de servidor proeminentes, por exemplo, NGINX) e como continuar suas informações em um banco de dados (seja arranjos NoSQL, por exemplo, MongoDB, ou bancos de dados tradicionais, por exemplo , Postgres, MySQL ou Oracle). Isso, assim como você nunca fica preso a um arranjo de parte, pode alternar sem influenciar toda a base de código do aplicativo.
O fato é que, ao decidir sobre um arranjo Swift do lado do servidor de código aberto, por exemplo, Vapor by Qutheory, IBM's Kitura ou Perfect, você explora uma grande quantidade de módulos que permitem projetar seu back-end apenas da maneira que você precisa, fazendo uso da gama de habilidades do seu grupo atual em Swift para fazer como tal.
O Swift do lado do servidor parece absolutamente convincente, mas qual estrutura é ideal para você? Em seguida, investigamos cada um dessa forma, começando com Kitura.
Começando com Kitura
Começando com Kitura, você tem um estágio que foi inicialmente descarregado em fevereiro de 2016 e adquiriu qualidade inconfundível logo depois no WWDC da Apple, falando sobre a invasão da IBM no suporte à web do lado do servidor com o Swift, que foi então definido para passar das mãos da Apple para Código aberto.
Como regra, o Kitura é centrado na tradição e não na configuração. Ele constrói seu projeto subjacente com stubs, antes de você selecionar as estruturas e bibliotecas explícitas que deseja construir. O processo de autenticação do Kitura é mantido por sua estrutura de middleware excepcionalmente própria Kitura-Credentials, permitindo que você examine um buffet de sistemas de validação, desde o nome de usuário / senha convencional até o login de rede online e verificação unificada, utilizando OpenID que lida com JSON Web Tokens (JWT) .
O arranjo ORM do banco de dados da Kitura é controlado por Kuery para confundir as complexidades do gerenciamento de SQL especificamente, suportando bancos de dados racionais básicos, por exemplo, MySQL, SQLite e PostgreSQL localmente, e além de outros arranjos de banco de dados, incluindo bancos de dados NoSQL, por meio de diferentes outros plug-ins.
Além disso, o Kitura fornece outros plug-ins valiosos para coisas, por exemplo, modelos de HTML, utilizando plug-ins bem conhecidos, por exemplo, Stencil e Markdown. Originário da IBM, o sistema do lado do servidor também lucra com a conectividade com APIs do IBM Watson e oferece suporte para macOS para coordenação direta em sua plataforma de nuvem Bluemix. Isso oferece uma escolha extra disponível para você, junto com suas outras alternativas convencionais de implantação em servidores Linux / Unix e macOS.
Embora a plataforma forneça absolutamente um conjunto extraordinário de recursos, desde Kuery até a capacidade de se incorporar às diferentes bibliotecas de APIs da IBM. Ele não tem a influência de rede que o Vapor tem. Receber o Kitura requer o reconhecimento e a compreensão de seus próprios métodos não regulares para fazer as coisas, desde como Kuery funciona até seu mecanismo de autenticação. Em qualquer caso, visto que é patrocinado por uma organização expansiva com atenção ao empreendimento, existem algumas afirmações que selam o futuro.
Instalando e executando o Kitura
O método mais rápido para começar é utilizando a interface de linha de direção (CLI) do Kitura, compatível com macOS e Linux. Utilizando o conhecido utilitário de gerenciamento de pacotes Homebrew, instale o Kitura e o Kitura CLI digitando o seguinte:
$ brew tap ibm-swift / kitura $ brew installkitura |
Dentro de um organizador vazio que você usará como seu empreendimento, execute o acompanhamento para instalar seu empreendimento:
$ kitura init
No ponto em que terminar de produzir seu aplicativo de esqueleto, você verá outro projeto chamado HelloKitura.xcodeproject. Você pode aprender mais sobre a geração de projetos revisando a documentação do Kitura. Você pode abrir o projeto recém-criado no Xcode e alterar a classe de aplicativo essencial, Application.swift , para lidar com todas as chamadas para a raiz do seu servidor https: // localhost: 8080 / URL :
// Lidar com solicitações HTTP GET para "/"
router.get ("/") {solicitação, resposta, próximo em
response.send ("Olá, mundo!")
Next()
}
O trecho de código acima reage restaurando o exemplar Hello, World! . Antes de finalmente executar o projeto, altere seu esquema Xcode para apontar para HelloKitura (seu projeto ativo) e comece sua tarefa pressionando Command-R . Enquanto seu servidor estiver em execução, em um navegador de sua escolha, acesse https: // localhost: 8080 e você verá o hello world em seu navegador.
Começando com Vapor
Lançado alguns meses após o Kitura, em setembro de 2016, Vapor by Qutheory é geralmente considerado o mais proeminente em relação ao tamanho da comunidade e ao número de módulos. É construído em cima da estrutura Swift-nio da Apple, tornando-se uma verdadeira potência de execução. Nem um pouco como Kitura e diferentes estágios, que não são fabricados simplesmente em Swift, mas em Node.js ou outros analisadores de pessoa intermediária, o Vapor se separa de qualquer uma dessas dependências para fornecer um analisador Swift e fornecer APIs claras e coerentes.
O Vapor oferece ajuda completa de bancos de dados para fornecedores de SQL, por exemplo, MySQL e PostgreSQL, e fornecedores de NoSQL, por exemplo, Redis e MongoDB, como Kitura. Embora a Kitura tenha suas próprias soluções Kuery ORM, o Vapor utiliza o Fluent ORM para dar suporte aos bancos de dados que acabei de citar, tornando moderadamente simples estender o ORM a outros provedores de banco de dados de terceiros. O Vapor se isola de estruturas alternativas ao oferecer suporte nativo ao Push Notification Service da Apple e também ao SMTP para enviar notificações por e-mail.
Enquanto o Kitura atualiza sua própria estrutura de autenticação, o Vapor tem a biblioteca de autenticação Turnstile do Stormpath criada nativamente. Como o Kitura, a plataforma também oferece suporte aos tentadores Mustache e Markdown e, além de sua própria linguagem de modelagem expressiva nativa do Swift, o Vapor também acompanha seu próprio motor CLI como a outra estrutura Swift do lado do servidor, com a capacidade de ampliar o comando do aplicativo -line argumentos com sinalizadores personalizados.
Instalando e executando
Para começar com o Vapor, você começa instalando o kit de ferramentas do Vapor, que compreende todas as dependências da biblioteca e a caixa de ferramentas CLI. Instale-o com o Homebrew digitando o seguinte no terminal:
$ brew installvapor / tap / vapor
No momento em que a instalação for concluída, você pode confirmar que o Vapor foi instalado com sucesso digitando vapor —help. Para criar um projeto, digite o seguinte, substituindo pelo nome do seu próprio projeto:
$ vapor new
O motor Vapor irá construir uma estrutura de pastas semelhante à seguinte:
├── Público
├── Fontes
│ ├── App
│ │ ├── Controladores
│ │ ├── Modelos
│ │ ├── boot.swift
│ │ ├── configure.swift
│ │ └── routes.swift
│ └── Executar
│ └── main.swift
├── Testes
│ └── AppTests
└── Package.swift
Para realmente criar um projeto Xcode, você também precisará inserir explicitamente o seguinte comando, de dentro da pasta do projeto:
$ vapor xcode
Finalmente, para construir e executar seu projeto, no Xcode, selecione o esquema Executar e também o dispositivo de destino de desenvolvimento de Meu Mac e, em seguida, pressione o botão Executar como faria para qualquer outro projeto Xcode. Dado que o seu projeto Xcode não apresenta nenhum erro, você deve ver a seguinte mensagem de confirmação no terminal:
Servidor iniciando em https: // localhost: 8080
Vá em frente e insira esse URL em qualquer navegador, e você verá seu aplicativo em execução.
Começando com perfeito
Finalmente, damos uma olhada no Perfect by PerfectlySoft, uma plataforma do lado do servidor rica em recursos como Vapor e Kitura. O Perfect incorpora sinos e assobios padrão semelhantes que você descobriria nos fornecedores anteriores, desde modelos com Mustache ou Markdown até redes com soquetes de web e, além disso, Apple Push Notification e SMTP.
Como a outra plataforma do lado do servidor, o Perfect tem sua própria implementação ORM, a plataforma StORM (Perfect StORM), que oferece suporte nativo para MySQL, PostgreSQL e outros bancos de dados relacionais proeminentes e, além disso, MongoDB, Redis e outras soluções NoSQL. Uma exclusão proeminente do Perfect é a CLI, mas a estrutura compensa isso com um aplicativo macOS nativo.
Como o Vapor, o Perfect adicionalmente tem Turnstile integrado para alimentar seu mecanismo de autenticação, estendido para interagir com o StORM mais intimamente. Outra qualificação que esse arranjo tem sobre os outros está em uma grande quantidade de bibliotecas de utilitários nativos que ele suporta, incluindo seu próprio invólucro cURL exclusivo e ferramentas adicionais para trabalhar com arquivos e pastas. A base de desenvolvedores do Perfect é a segunda maior, quase acompanhando o ritmo do Vapor, o que significa que você tem uma forte comunidade para apoiar esta plataforma, ao lado de um rico conjunto de recursos educacionais que lhe dão a certeza na chance de você escolhê-la.
Instalando e executando
Colocar o Perfect em funcionamento é extremamente simples. Inicialmente, clone o repositório PerfectlySoft, inserindo o seguinte:
$ git clone https://github.com/PerfectlySoft/PerfectTemplate.git
De dentro da pasta clonada, crie o projeto:
construção $ swift
Por fim, execute o projeto, que executará um servidor local no endereço 0.0.0.0:8181
.build / debug / PerfectTemplate
Você também pode executar seu projeto no Xcode criando primeiro um novo projeto, da seguinte maneira:
pacote $ swift generate-xcodeproj
No Xcode, certifique-se de que seu destino executável esteja apontado para Meu Mac , antes de construir e executar o projeto.
Conclusão
A chegada do Swift à rede de código aberto impulsionou a busca por soluções Swift além dos aplicativos clientes, com estruturas de servidor back-end se transformando nas seguintes periferias. Impulsionado por três projetos importantes - Vapor by Qutheory, IBM's Kitura e Perfect. O Swift do lado do servidor capacitou os desenvolvedores de iOS (e macOS) a se tornarem desenvolvedores full-stack. Isso pode negar a dependência de desenvolvedores de back-end Node.js, PHP ou .NET. O Swift do lado do servidor também permite que os grupos controlem seu back-end sem ter que depender de uma solução de back-end móvel como servidor, como Firebase ou CloudKit.
O Swift do lado do servidor não é para todos, você precisa definir quanto controle é necessário para o seu back-end e se faz sentido para você implementar o seu próprio. Além disso, não tentei dizer a você qual solução Swift do lado do servidor é ideal. Os desenvolvedores estão inquestionavelmente arruinados para a decisão, e cada um dos três dá uma visão única e madura e vale a pena experimentar. Recomendo que você experimente cada um dos códigos de exemplo, avalie a estrutura da linguagem e conecte-se com suas comunidades específicas para ver qual solução se encaixa melhor em você.