Conferimos o Mobile SDK da Mercedes Benz

Celso Celso Fernandes / Vídeo de: Mercedes Benz
4 de agosto de 2020
0

Imagem: Thanish Ahmed no Unsplash

A Mercedes Benz entrou para o Hall das fabricantes de automóveis que concedem aos desenvolvedores de software de todo o mundo acesso a um kit de desenvolvimento de software móvel (Mobile SDK). Inicialmente revelado na IAA 2019, o Mercedes-Benz Mobile SDK oferece uma gama de interfaces que possibilitam a comunicação direta com o veículo através de dispositivos iOS e Android. O kit é distribuído gratuitamente à comunidade de desenvolvedores por meio da plataforma de desenvolvedores da Mercedes-Benz e do Github.

Nós resolvemos dar uma olhada mais de perto neste novo devkit e listar tudo que é possível fazer com ele. O desafio foi escrever uma matéria detalhada o suficiente para agradar aos engenheiros entre nós, mas ao mesmo tempo numa linguagem simples o suficiente para que todos possam identificar as oportunidades que estão se abrindo no mercado automobilístico.

Observação:  Se você curte este tipo de conteúdo, deixe seu comentário abaixo ou compartilhe nas suas redes sociais. Desta forma, saberemos se vale ou não a pena trazer mais no futuro.

O que é um SDK?

mobile-sdk-da-mercedes-benz
Créditos: Mercedes-Benz

A sigla SDK vem do termo inglês “Software Development Kit” e significa Kit de Desenvolvimento de Software. Um SDK  pode ser entendido como um conjunto de ferramentas que possibilita aos programadores a criação de novas aplicações, assim como a adição de funcionalidades a produtos digitais já existentes. 

Através do Mobile SDK a Mercedes oferece um conjunto de funções e ferramentas prontas que permitem a terceiros criarem aplicativos capazes de se comunicarem com os carro da montadora. Tudo isso sem precisar desenvolver uma ferramenta ou função a partir do zero — o que, muitas vezes, demandaria não apenas tempo e dinheiro, mas também know how interno. 

Detalhes do Mercedes Mobile SDK

mobile-sdk-da-mercedes-benz
Créditos: Mercedes-Benz

O MMSDK foi pensado para desenvolvedores de apps profissionais ou amadores, com interesse em desenvolver novos produtos para o mundo automotivo. Não é necessário ter conhecimento específico sobre carros, porém é 100% necessário ter conhecimento prévio de desenvolvimento de apps para iOS ou Android em linguagem SWIFT e Kotlin respectivamente.

Procurando aprender mais sobre segurança e conectividade no mundo automobilístico? O Car Hacker's Handbook (em inglês) traz uma introdução completa às redes de bordo, eletrônica e ferramentas para você montar a sua própria bancada de testes de penetração em sistemas automotivos.

Clique aqui para encomendar a sua cópia


Automóveis compatíveis

O SDK foi desenvolvido para funcionar com o novo Mercedes Me Connect, um novo conceito desenvolvido pela montadora para permitir uma maior conectividade entre o carro e dispositivos móveis.  Todos os modelos de Mercedes compatíveis com Mercedes Me Connect poderão tirar vantagem dos aplicativos desenvolvidos com o novo SDK. Modelos mais antigos, poderão ser equipados com o Módulo Me através de um adaptador externo, conectado à porta de OBD (On Board Diagnose). Visite esta página para verificar quais modelos são compatíveis com o adaptador.

Como funciona a comunicação entre o carro e o dispositivo móvel?

conferimos-o-mobile-sdk-da-mercedes-benz

A vantagem de ter um SDK disponível, é que o desenvolvedor não necessariamente precisa entender como as camadas mais baixas da comunicação funcionam. Com o SDK, basta executar uma função pré-definida e tudo funciona como um passe de mágica. Em geral, a comunicação entre o dispositivo móvel e o automóvel é feito através de 3 vias principais: BlueTooth, NFC ou rede celular. O Bluetooth é usado principalmente para ler dados diagnósticos (que poderão ou não ser remetidos remotamente via rede celular). A tecnologia NFC é usada para transformar o telefone em chave, ou seja, permite ao motorista deixar as chaves em casa e utilizar apenas o celular como chave. Finalmente, a rede celular é usada como Gateway (ponto de acesso) para o mundo exterior. Através da rede celular, é possível verificar o status do seu carro remotamente, acionar e travar o motor, solicitar ajuda em caso de pane, WiFi Hotspot e muito mais. 

Módulos do Mercedes Mobile SDK

mobile-sdk-da-mercedes-benz
Créditos: Mercedes-Benz

As funções do SDK são divididas numa série de módulos principais que abordam diferentes aspectos da integração entre o carro e o aplicativo. 

MobileSDK Module

O módulo MBMobileSDK engloba todos os outros módulos e fornece recursos comuns, como visualização de login, visualização de registro de usuário, uma tela para manipular o perfil do usuário e um menu lateral. Este módulo também contém as funcionalidades de segurança para, por exemplo, verificar o PIN, validar dados biométricos, tokens e chaveiros.

CarKit Module

O módulo MBCarKit funciona como a via de transferência de dados entre o aplicativo e o automóvel.  O módulo gira em torno do socketService,  uma conexão de socket que fornece dados do veículo em tempo real.  Os dados são armazenados no cache automaticamente.

CommonKit Module

O módulo MBCommonKit é um fornecedor de funcionalidades gerais, como configuração de back-end, gerenciador de rastreamento (TrackingManager) e lógicas de log. 

IngressKit module

A parte principal deste módulo é o IngressKit, uma interface para se comunicar com todos os serviços fornecidos pelo SDK. Ele fornece a funcionalidade para efetuar login e logout do usuário e manipular os dados pessoais do usuário logado. Quando o usuário efetua login, os dados pessoais são armazenados em cache e removidos durante o logout.

NetworkKit module

O módulo MBNetworkKit é responsável pela comunicação entre os módulos e os endpoints. Ele gerencia a comunicação de socket do MBCarkit, fazendo requisições (Requests) e encaminhando as respostas (Responses).

RealmKit module   

O módulo MBRealmKit gerencia o armazenamento de dados dos módulos. Ele armazena em cache os dados necessários e os retorna quando requisitado. É possível, também, observar os dados no cache e responder às alterações. Resumindo, este kit funciona como o banco de dados usado pelo SDK.

Módulo UIKit

O módulo MBUIKit contém componentes de interface gráfica. Ele fornece componentes básicos, como botões, telas, campos de texto, controles segmentados, menus e muito mais. A tela inicial também faz parte deste módulo.

O veículo virtual

mobile-sdk-da-mercedes-benz
Créditos: Mercedes-Benz

A Mercedes Benz também oferece, como parte do SDK,  um simulador via Browser que permite testar o aplicativo sem a presença de um automóvel Mercedes Benz. Para ganhar acesso ao simulador, é necessário ter cadastrado no portal de desenvolvedores

No simulador é possível escolher o modelo de veículo através do número VIN (Vehicle Identification Number). O carro virtual aparece no meio da tela. Os comandos enviados por meio do aplicativo sendo testado refletem  automaticamente no carro virtual . É possível, também, girar a perspectiva do carro com o controle deslizante no meio da tela e usar o botão à esquerda para alternar entre a vista externa (360) e a vista interna.

Funções de automóvel

mobile-sdk-da-mercedes-benz
Créditos: Mercedes-Benz

Neste primeiro lançamento, a Mercedes Benz liberou apenas uma série limitada de funções que poderão ser acessadas por aplicativos de terceiros. Segundo a empresa, esta lista de funções deverá aumentar no futuro à medida que o projeto vá amadurecendo. 

  • AuxHeat - permite ligar, desligar e configurar o aquecimento auxiliar do carro.
  • Collision - permite colher informações sobre a hora e posição do último estacionamento do carro.
  • Door - fornece informações sobre o status de todas as portas do carro, incluindo porta-malas e tampa de combustível.
  • EcoScore - permite ler o pontuação do motorista em relação ao seu modo de dirigir e preservação do meio ambiente. A pontuação é dada em por cento e mede a consciência ecológica do motorista.
  • Engine - fornece informações sobre o atual status do motor: temperatura e estado de ignição.
  • HeadUnit - fornece informações sobre as configuração de idioma, unidade de temperatura e formato de data/hora selecionados pelo motorista.
  • Location - fornece a direção e atual posição do automóvel (longitude e latitude).
  • Statistic - exibe estatísticas do carro: total de horas de funcionamento, velocidade média, consumo médio, distância média, consumo de energia, etc.
  • Sunroof - fornece informação sobre o atual status do teto solar. Comando de abrir e fechar teto solar.
  • Tank - fornece informações sobre o atual status do combustível ( ou baterias) e a autonomia remanescente do automóvel.
  • Theft - fornece informações sobre o atual status do alarme anti-roubo e dados sobre o último aviso de tentativa de roubo.
  • Tires - fornece informações sobre o valor da pressão nos 4 pneus, status da luz de aviso de pressão baixa e data/hora da última medição de pressão.
  • Vehicle - fornece informações sobre a quilometragem, status de conectividade do automóvel,  posição do teto solar, posição do freio de mão, status do capô (aberto ou fechado), carregamento das baterias e unidade de velocidade configurada pelo motorista.
  • Warning - permite ler o status das luzes de aviso no painel: óleo baixo, combustível baixo, pressão baixa nos pneus, baixo nível de água, etc.
  • Windows - permite ler o status de todas as janelas do automóvel. Fornece o comando de abrir e fechar janelas.
  • ZeV - fornece informações sobre o status de carregamento das baterias de veículos elétricos. Permite também executar um comando para configurar a hora em que o carro costuma sair da garagem para que ele possa ser pré-condicionado antes da viagem.

Como começar a desenvolver com o Mercedes Mobile SDK?

mobile-sdk-da-mercedes-benz
Créditos: Oskar Yildz

Apenas usuários cadastrados poderão ter acesso ao kit de desenvolvimento e simulador. O cadastro pode ser feito gratuitamente seguindo os seguintes passos:

Passo 1: Cadastro

  • Acesse o Mercedes-Benz Developers Portal, clique no link do seu sistema de escolha (iOS ou Android) e depois clique em “GET ACCESS”.
  • Preencha o formulário de cadastro com seu nome e e-mail.
  • Confirme o seu endereço de email
  • Selecione o pacote que deseja assinar. Recomendamos escolher o “Sandbox Package” que permite testar o SDK gratuitamente no simulador. O pacote comercial custa 49 EUR/mês e foi pensado para quem deseja testar o aplicativo direto no carro e publicar o app para venda.
  • Crie um novo aplicativo. Um novo App ID e API Key serão gerados para o seu projeto.


Passo 2: Comece usando o aplicativo teste

  • Instale o git no seu computador e clone o repositório teste no github via  via git clone github.com
  • Compile e execute o projeto usando o XCode ou Android Studio.
  • Faça login com os credenciais fornecidos durante o cadastro.
  • Comece a brincar usando o simulador. Lembre-se que para testar num carro real, você precisará de um API Key de produção (não disponível no Sandbox Package).

Passo 3: Familiarize-se mais com a API

Leia a documentação completa disponível no Getting Started Guide.

Minha opinião pessoal sobre o devkit

A ideia de criar um SDK no mundo automobilístico não é nova. Outras montadoras como Tesla, GM e BMW já abriram esta porta há anos. O lançamento do devkit da Mercedes, no entanto, reforça ainda mais a ideia de que até as montadoras mais conservadoras estão tendo que se reinventar para continuar sobrevivendo no futuro. Até as indústrias mais tradicionais e elitistas já aprenderam que há uma imensa oportunidade na criatividade da massa. Em muitos aspectos, a indústria automobilística continua com um  pé no passado, mas desta vez com o olho no futuro. Ao trilhar o mesmo caminho que as empresas de smartphone trilharam no meio da década passada, a indústria automobilística dará a chance às pessoas mais ordinárias de pavimentarem a estrada para o futuro extraordinário do automóvel de amanhã. O grande desafio será aumentar a oferta de funções disponíveis para a comunidade e ao mesmo tempo garantir a segurança.

Sobre o kit em si, posso dizer que é, obviamente,  um imenso passo na direção certa. A oferta de interfaces e funções ainda é muito limitada, porém acredito que a Mercedes ainda avançará muito à medida que for descobrindo como “abrir mais portas” sem colocar em risco a segurança do motorista. A documentação também possui muito espaço para melhora, mas  com a ajuda da comunidade, um dia eles chegam lá!

As melhores lojas artesanais de Munique
A etiqueta da gorjeta na Alemanha
Celso Fernandes
Celso Fernandes
Autor
Engenheiro, empreendedor e programador de fim de semana.  Natural de Petrópolis, RJ. Trinta e poucos anos de idade e há dez anos vivendo na Alemanha. Escreveu o primeiro post no Batatolandia em 2008 e desde então não parou mais.

Comentários