Servidor Couchbase

Trazendo seu armazenamento de perfil de usuário para dispositivos móveis com NativeScript e Angular

Continuando no caminho dos armazenamentos de perfis de usuários, vimos anteriormente como criar um com Node.js e Couchbase NoSQL bem como um front-end de cliente web para ele usando o Angular. E se quisermos levar isso para um aplicativo móvel, que é a norma para todos os aplicativos atualmente.

Há muitas estruturas móveis diferentes por aí, e temos a sorte de que algumas até suportam o Angular, que foi o que usamos no exemplo anterior. Veremos como converter o front-end do nosso cliente para dispositivos móveis usando NativeScript e Angular.

Antes de prosseguir, presume-se que você tenha concluído completamente os dois tutoriais anteriores, um sobre Criação do back-end do armazenamento de perfis e o outro em Criação do front-end da Web do Profile Store. Também assumiremos que seu ambiente de desenvolvimento está configurado para desenvolvimento móvel, seja Android, iOS ou ambos.

NativeScript with Couchbase Profile Store

O fluxo de eventos nesse aplicativo corresponderá ao que vimos na versão da Web.

Criar um novo projeto NativeScript com Angular

Supondo que você tenha instalado e configurado a CLI do NativeScript, execute o seguinte para criar um novo projeto:

O --ng no comando acima é importante porque significa que estamos criando um projeto Angular em vez de um projeto NativeScript Core.

Até o momento, a CLI do NativeScript não compartilha os recursos de geração de componentes da CLI do Angular. Por esse motivo, teremos que criar cada um dos arquivos HTML e TypeScript manualmente.

Se você estiver no Mac ou no Linux, execute o seguinte no projeto NativeScript:

Se você estiver no Windows, basta criar esses diretórios e arquivos manualmente. Se realmente quiser, você pode copiar esses diretórios e arquivos do seu projeto da Web a partir do diretório tutorial anterior.

Definição dos componentes para representar cada tela

Começando na mesma direção que a versão Web, vamos nos concentrar no login do usuário. Abra a seção app/login/login.component.ts e inclua o seguinte código:

O código acima é exatamente o que vimos na versão da Web, com duas exceções. Removi a referência CSS, pois não criamos um arquivo CSS com base em um componente. Também adicionei um moduleId para que os caminhos relativos pudessem funcionar com nosso componente. Esses dois itens estão relacionados ao Angular e não têm nada a ver com o NativeScript.

É no HTML que as coisas são diferentes. Abra o arquivo app/login/login.component.html e inclua a seguinte marcação XML:

O NativeScript tem sua própria marcação para a interface do usuário. As mesmas regras se aplicam em termos de Angular, mas a criação de componentes de IU é um pouco diferente.

Por exemplo, ainda estamos usando o [(ngModel)] mas em vez de atributos div tags, temos Layout de pilha tags.

Agora vamos dar uma olhada no componente de registro. Abra a seção app/register/register.component.ts e inclua o seguinte TypeScript:

Novamente, as únicas alterações que fizemos no código acima, em comparação com o exemplo anterior, foram a remoção do CSS e o moduleId Além disso.

Nada mal quando se trata de criar aplicativos móveis e da Web entre plataformas, certo?

O HTML da interface do usuário que alimenta a lógica do TypeScript é encontrado no app/register/register.component.html e ele tem a seguinte aparência:

Os dois últimos componentes não serão diferentes do que já estamos experimentando.

Abra o arquivo app/blogs/blogs.component.ts e inclua o seguinte código TypeScript:

Não há outras alterações a serem vistas nas informações acima além das duas mencionadas anteriormente, portanto, podemos passar para o HTML da página.

Abra o arquivo app/blogs/blogs.component.html e inclua a seguinte marcação HTML:

Vamos encerrar este aplicativo com o componente final que a API do armazenamento de perfis e o front-end da Web têm a oferecer.

Abra o arquivo app/blog/blog.component.ts e inclua isso:

Se você não copiou seu arquivo CSS, não se esqueça de removê-lo da pasta @Componente como visto nos componentes anteriores.

A interface do usuário em HTML para acompanhar esse TypeScript é encontrada na seção app/blog/blog.component.html e ele se parece com o seguinte:

A partir de agora, você pode estar se perguntando sobre toda essa marcação XML do NativeScript. A forma como o Angular trabalha com a interface do usuário não mudou, mas se você estiver interessado em aprender sobre a marcação do NativeScript, dê uma olhada no site documentação oficial. Familiarize-se com o Layout de pilha, GridLayout e tags individuais de componentes da IU.

Reunindo tudo

Criamos todos esses componentes do Angular para o NativeScript, mas não os reunimos por meio do Angular Router.

Na versão web deste guia, as informações sobre a rota estavam na seção app.module.ts arquivo. Embora pudéssemos fazer isso, o NativeScript o dividiu em um arquivo separado.

Abra o arquivo app/app.routing.ts e inclua o seguinte:

Grande parte do código acima veio com nosso novo modelo de projeto. Importamos cada um de nossos componentes e criamos uma rota para eles.

Da mesma forma, os componentes precisam ser importados na pasta app/app.module.ts arquivo. Abra esse arquivo e inclua o seguinte:

Além de importar cada componente e adicioná-los ao declarações também importamos alguns módulos, como o NativeScriptHttpModule e NativeScriptFormsModule. No Angular puro, eles são chamados de HttpModule e FormsModule.

Em teoria, o aplicativo está pronto para ser usado.

Resolução de problemas de segurança de transporte de aplicativos (ATS) para iOS

Como o Node.js e a API do Couchbase estão sendo executados localmente, estamos usando HTTP em vez de HTTPS. O iOS emitirá erros se tentarmos acessar recursos HTTP.

Isso pode ser facilmente corrigido com a inclusão de uma política de ATS.

Abra o arquivo app/App_Resources/iOS/Info.plist e adicione o seguinte ao lado do outro XML:

Basicamente, o procedimento acima coloca todos os endpoints HTTP em uma lista branca. Não é seguro para produção, mas é seguro para testes.

Mais informações sobre o ATS em aplicativos NativeScript podem ser lidas em um artigo anterior que escrevi intitulado, Corrigir problemas de segurança de transporte de aplicativos do iOS 9 no NativeScript.

Conclusão

Você acabou de ver como foi fácil pegar o front-end do seu cliente Web e convertê-lo para dispositivos móveis usando NativeScript e Angular. O exemplo do armazenamento de perfil de usuário rapidamente se tornou um exemplo de pilha completa usando a pilha JavaScript. Tínhamos um Node.js com Servidor Couchbase back-end, front-end web Angular e front-end móvel NativeScript.

A próxima etapa, ou opção, seria usar os componentes do Couchbase Mobile em vez de chamadas HTTP para a API.

Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Autor

Postado por Nic Raboy, defensor dos desenvolvedores, Couchbase

Nic Raboy é um defensor das modernas tecnologias de desenvolvimento móvel e da Web. Ele tem experiência em Java, JavaScript, Golang e uma variedade de estruturas, como Angular, NativeScript e Apache Cordova. Nic escreve sobre suas experiências de desenvolvimento relacionadas a tornar o desenvolvimento móvel e da Web mais fácil de entender.

Um comentário

  1. Olá,

    Tentei executar esse código, mas o POST não está funcionando. Quando tento me registrar, recebo o erro abaixo. Na Internet, observei que http://localhost não está funcionando no sdk do Android. Eu uso o endereço IP 10.0.2.2 e 127.0.0.1, mas ainda recebo o mesmo erro.
    JS: ERRO Resposta com status: 200 para URL: null

Deixe um comentário

Pronto para começar a usar o Couchbase Capella?

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Deseja saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.