Conferimos o Mobile SDK da Mercedes Benz
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?
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
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ópiaAutomó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?
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
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
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
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?
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á!
Comentários