APIs e Microsserviços

3 mai, 2017

Construindo o futuro com a plataforma de desenvolvimento da Uber

Publicidade

Recentemente, nós destacamos algumas apresentações realizadas durante nosso primeiro dia da tecnologia da Uber. Neste artigo, a apresentadora do dia da tecnologia e defensora dos desenvolvedores, Charlyn Gonda, discute como a plataforma de desenvolvimento da Uber empodera os engenheiros para construir experiências dinâmicas in-app.

Vamos começar com um fato – nossos sonhos mais loucos estão se tornando realidade. Tecnologia em tempo real e ficção científica estão convergindo rapidamente em realidade, e esse é um tempo maravilhoso para ser um desenvolvedor. Coisas que costumávamos ver somente nos filmes estão se tornando parte de nossas experiências diárias. Casas inteligentes que preveem suas necessidades, veículos que são autoconduzidos que te levam do ponto A ao ponto B, e aparelhos que podem monitorar sua saúde, preparo físico e mais. Logo, podemos até começar a ver carros voadores. De muitas maneiras, apertar o botão “Solicitar” no aplicativo do passageiro do Uber, iniciar sua corrida e ser levado ao seu destino é a experiência mais próxima que temos do teletransporte hoje. Enquanto carros voadores ainda estão a alguns anos de distância, a Uber está possibilitando inovações futuristas hoje com a Plataforma de Desenvolvimento da Uber.

Construindo o futuro

Nossa missão é empoderar os desenvolvedores ao redor do mundo para construírem experiências emocionantes para clientes e motoristas. Nós já estamos bem em nosso caminho com algumas integrações emocionantes que trazem o futuro mais próximo do que nunca. Peça para que qualquer um dos agentes conversacionais de hoje, como Google Home, Alexa ou Hound, solicite um Uber para você, e eles vão ativar a API de Solicitação de Corridas – nenhum toque é necessário.

 

E enquanto você está em sua corrida, pode se envolver com aplicativos inteligentes que podem entregar experiências customizadas durante a viagem. For exemplo, Otto Radio, um aplicativo que providencia áudios de notícias, artigos narrados e podcasts, normalmente pede aos usuários um período de tempo, e então prepara uma lista de conteúdos personalizados para preencher esse tempo. Mas, quando você está em um Uber, ele utiliza a API Trip Experience para automaticamente detectar o tempo da sua viagem e preparar uma playlist perfeita para você ouvir durante sua viagem.

A mesma API possibilita notificar seus aparelhos domésticos que você está a caminho de casa para que eles possam personalizar sua chegada, por exemplo, acendendo a luz do hall de entrada, ligando o aquecimento da sala de estar e tocando algum jazz . Com o apertar de um botão, você pode até ter seu jantar, toalhas de papel, comida para seu cão, ou quase qualquer outra coisa, entregues diretamente em sua porta por empresas que utilizem a UberRUSH API. A comida do cachorro pode ainda não ser teletransportada diretamente para tigela, mas isso nos deixa bem mais perto.

Organizações como Stride e Jobcase melhoram as experiências dos motoristas-parceiros através da API Driver. A Stride lançou o Uber 1099 Tax Calculator para ajudar os motoristas a navegarem melhor pela temporada fiscal. A Jobcase criou um aplicativo de gerenciamento de trabalho e descoberta de empregos sob medida para os motoristas parceiros da Uber.

É claro, são desenvolvedores criativos como você que trazem esse futuro à vida. Neste artigo, vamos dar uma olhada na API Trip Experience da Uber como um exemplo do que nossa plataforma de desenvolvimento é capaz, mostrando como funciona o ciclo de vida de uma viagem e conhecendo como criaríamos um aplicativo na API.

Dissecando o ciclo de vida da viagem

O ciclo de vida de uma viagem de Uber consiste em vários estados: você solicita uma viagem, um motorista aceita, o carro chega, você entra no carro, e então você chega ao seu destino. Simples e fácil. Agora, se você tem um aplicativo que utiliza a API Trip Experience e seu usuário opta por conectar sua conta do Uber ao seu aplicativo, seu aplicativo pode ser notificado sempre que um usuário solicitar uma viagem e todas as mudanças no ciclo de vida. Essas notificações vêm em forma de webhooks, e te dão mais informações a respeito do estado da viagem.

Por exemplo, quando o cliente conectado pega uma viagem com Uber, a API do Uber pode te dar mais informações sobre sua jornada: se estão indo para casa ou para o trabalho, a duração da viagem, a localização do seu destino, para nomear alguns. Quando combinados com o conhecimento existente sobre as preferências pessoais de um usuário, essas peças de dados do Uber podem fornecer uma experiência mais consciente do contexto capaz de ser acessada pelo usuário em qualquer ponto durante a viagem.

Criando uma experiência de viagem in-app

Existem quatro passos principais para a criação de uma experiência de viagem em seu aplicativo utilizando a API da Uber:

  1. Encorajar seus usuários a conectar suas contas do Uber;
  2. Detectar quando um usuário começa uma viagem;
  3. Obter mais informações sobre o contexto do usuário;
  4. Utilizar esses dados como contexto para uma experiência melhor para o usuário.

Antes de começar, você precisa criar um aplicativo no painel de comando do desenvolvedor e adicionar a URL de um webhook na aba de Configurações (Settings), onde seu aplicativo poderá receber as notificações do webhook. Abaixo, vamos discutir cada passo em detalhadamente.

Conecte seu usuário

Primeiro, você terá que permitir que seus usuários saibam que eles podem conectar suas contas do Uber em algum lugar do seu aplicativo. Você poderá então utilizar um fluxo de cadastro simples ou um Oauth 2.0 para facilitar essa conexão.

Quando o usuário optar por conectar sua conta do Uber, uma tela de permissão será exibida para que ele saiba quais dados serão compartilhados entre a API do Uber e seu aplicativo. Quando o usuário clicar em “permitir”, seu aplicativo poderá acessar duas peças de informação que são utilizadas para identificar um usuário: sua Uber ID (identificação de usuário do Uber) e seu Uber Access Token. Esses são os dados que o aplicativo utiliza para detectar se um usuário está atualmente em uma viagem com o Uber.

Detecte quando um usuário inicia uma viagem com o Uber

Se o usuário deu permissão para você acessar e utilizar seus dados do Uber, você receberá uma notificação do webhook sempre que esse usuário solicitar uma viagem de Uber (e sempre que houver mudança de estado no ciclo de vida de sua viagem):

{
   “event_id”: “3a3f3da4-14ac-4056-bbf2-d0b9cdcb0777”,
   “event_time”: 1427343990,
   “event_type”: “all_trips.status_changed”,
   “meta”: {
       “user_id”: “d13dff8b”,
       “resource_id”: “2a2f3da4”,
       “status”: “accepted”
   },
   “resource_href”: “https://api.uber.com/v1.2/requests/2a2f3da4”
}

 

Note que existe um campo user_id e um resource_id. Desde que você tenha a lista de usuários e suas identificações do Uber, você pode utilizar o campo user_id para descobrir qual dos seus usuários está atualmente solicitando uma corrida. Então, você poderá utilizar o campo source_id junto com o token de acesso que você associou a esse usuário para coletar dados do usuário para utilizar como contexto para a experiência em seu aplicativo.

Colete mais informações sobre o contexto de um usuário

Seu aplicativo pode detectar as informações do usuário em tempo real às quais você tenha recebido acesso sobre sua viagem de Uber em andamento para que você possa providenciar uma experiência dinâmica para o usuário, incluindo:

  1. Para onde ele está indo;
  2. De onde ele está vindo;
  3. Se está indo para um local que ele frequente (trabalho ou casa);
  4. Detalhes sobre sua viagem (motorista e veículo);
  5. Tipo de Uber que ele está utilizando (UberX, UberPOOL etc.).

Existem vários parâmetros que podem ser utilizados para coletar essas informações. Por exemplo, você pode utilizar o endpoint Ride Details (GET/ requests/ {request_id}) para determinar o estado atual de uma solicitação de viagem que esteja em andamento. Nesse cenário, o resource_id da carga útil do webhook corresponde ao parâmetro de URL request_id do Ride Detail. Como um lembrete, seu acesso e utilização dessa informação é sujeito a restrições nos Termos de Uso da Plataforma de Desenvolvimento da Uber.

Use os dados do Uber como contexto para otimizar a experiência do usuário

Agora que você sabe como coletar os dados do Uber para utilizá-los como contexto para seu aplicativo, você pode decidir quais partes das informações são relevantes para criar um contexto para uma experiência de viagem para seu usuário. Você também pode utilizar esses dados para descobrir quando disparar funções úteis baseadas no estado de sua viagem.

Aqui estão alguns exemplos de como os dados estão sendo utilizados como contexto para melhorar a experiência da viagem com o Uber:

O Hoodline é um aplicativo que fornece notícias locais, tendo como base a sua localização. Quando você conecta o Hoodline à sua conta do Uber e faz uma viagem, ele vai criar um feed de artigos que sejam relacionados ao seu destino, mantendo você informado sobre as notícias e eventos locais.

O Cupper é um aplicativo que torna fácil colocar sua cafeína em dia detectando o destino da sua viagem de Uber e sugerindo cafeterias populares próximas. Os usuários podem até mesmo compartilhar status e previsão de chegada de sua viagem utilizando a extensão in-app de Mensagem do Cupper.

O Otto Radio, apresentado mais cedo, fornece uma playlist de notícias, artigos narrados e podcasts ajustados à duração da sua viagem. Você também pode sintonizar estações de rádio sobre qualquer tópico que você escolha e pode se manter informado sobre o que você mais se importa.

O fornecedor de benefícios Stride, também mencionado mais cedo, recentemente lançou o Uber 1099 Tax Calculator, que ajuda os motoristas parceiros a calcular seus impostos e solicitar deduções que a maioria, do contrário, deixaria passar. Além de tornar a temporada de impostos mais fácil, o Uber 1099 Tax Calculator ajuda os motoristas parceiros a guardar mais dos seus ganhos.

Esses casos de uso são apenas alguns exemplos de como os aplicativos podem estar mais ligados em tempo real aos contextos de seus usuários utilizando a plataforma de desenvolvimento da Uber. É difícil imaginar um mundo sem aplicativos, e em breve será difícil imaginar aplicativos sem a capacidade de otimizar as experiências dos usuários baseados em preferências pessoais.

A plataforma de desenvolvimento da Uber está permitindo que os tecnólogos construam todos os tipos de interfaces futuristas que foram um dia somente frutos de nossa imaginação. Ela permite que agentes conversacionais solicitem viagens para você; aumenta os aplicativos inteligentes que podem entregar experiências de viagens personalizadas; coloca o seu telefone para trabalhar durante a temporada de impostos; e até mesmo permite que você solicite a comida do cachorro. Para simplificar, a plataforma torna as coisas inteligentes mais inteligentes – e a engenharia da Uber somente rabiscou a aparência do que vem por aí.

Que futuro você vai construir? Continue aprendendo ou comece, em https://developer.uber.com . Se esse tipo de trabalho te empolga, pense em se inscrever para uma vaga em nosso time de desenvolvimento.

***

Este artigo é do Uber Engineering. Ele foi escrito por Charlyn Gonda. A tradução foi feita pela Redação iMasters com autorização. Você pode conferir o original em: https://eng.uber.com/uber-developer-platform/.