[Remoto] Desenvolvedor iOS Sênior (R$100/hora) | Binnovation
Não Informado
Descrição da Vaga
A binnovation é uma empresa com sede em Brasília mas com toda a operação remota, desenvolvemos soluções para diversas empresas públicas e privadas, mais informações em:
http://binnovation.co/
ValorPara esta vaga estamos pagando R$100/hora, e trabalhamos com o prazo inicial de 14 dias para finalizar o desenvolvimento para testes.
Obrigatórios- Conhecimento sênior em desenvolvimento na plataforma iOS (Objetive-C/Swift).
- Conhecimento prévio em Capacitor, para facilitar a criação do plugin.
- Boa comunicação assíncrona.
Hoje possuímos a versão Android do plugin para Ionic escrito utilizando o framework Capacitor de comunicação com uma smartband (pulseira inteligente), esta vaga é para criar também a versão iOS do mesmo plugin.
*Sobre o plugin*
- A comunicação com as pulseiras é feita através de uma biblioteca, desenvolvido por uma empresa Chinesa, portanto um complicador para o desenvolvimento é que a documentação fornecida está em chinês, mas a tradução pelo Google Translate até o momento foi satisfatória.
- SDKs de exemplo (Android/iOS) podem ser baixado em: https://drive.google.com/drive/u/0/folders/1oWgwGVDjTf6sMkKrC4ekPl989Pe0dY2O
*Fluxo básico*
1. Capacitor registra um callback para receber informações de um dispositivo bluetooth sempre que um novo for encontrado pelo plugin.
2. Capacitor solicita conexão via bluetooth passando um endereço para o plugin.
3. Plugin realiza a conexão bluetooth e informa para o Capacitor que a conexão foi feita com sucesso.
4. Capacitor solicita informações sobre a pulseira.
*Sobre o Capacitor*
O Capacitor é um runtime nativo cross-platform que facilita a construção de aplicativos da web que são executados nativamente no iOS, Android e na web.
A documentação completa do Capacitor pode ser encontrada aqui.
*Recursos do Capacitor*
Todas as callbacks abaixo devem ser suportadas pelo plugin, são exatamente as mesmas que já estão funcionando para o Android.
- _Retorna uma callback?_ identifica se o método deve marcar o método como callback. No Android é feito com a annotation `@PluginMethod(returnType = PluginMethod.RETURN_CALLBACK)` antes da declaração do método.
- _É uma callback persistente?_ define se a callback será chamado mais de uma vez (para informar dispositivos bluetooth, por exemplo). No Android é utilizado o método `call.setKeepAlive(true);`.
| Método | Descrição | Retorna uma callback? | É uma callback persistente? |
| :---: | :---: | :---: | :---: |
| iniciarScan | Informa para a lib bluetooth iniciar o scan de dispositivos | sim | sim |
| pararScan | Informa para a lib bluetooth parar o scan de dispositivos | não | não |
| conectar | Solicita a lib bluetooth para conectar a um determinado dispositivo | não | não |
| quandoDispositivoConectar | Registra uma callback que será chamada quando um novo dispositivo for conectado via bluetooth | sim | sim |
| registrarMedicaoBpmSubscriber | Registra um callback que será chamado sempre que a pulseira informar uma leitura de BPM | sim | sim |
| registrarMedicaoTemperaturaSubscriber | Registra um callback que será chamado sempre que a pulseira informar uma leitura de Temperatura | sim | sim |
| registrarMedicaoOxigenacaoSubscriber | Registra um callback que será chamado sempre que a pulseira informar uma leitura de Oxigenação | sim | sim |
| registrarMedicaoPressaoArterialSubscriber | Registra um callback que será chamado sempre que a pulseira informar uma leitura de Pressão Arterial | sim | sim |
| registrarStepSubscriber | Registra um callback que será chamado sempre que um novo registro de passos diários for recuperado | sim | sim |
| registrarSleepSubscriber | Registra um callback que será chamado sempre que um novo registro de sono for recuperado | sim | sim |
| iniciarMedicaoBpm | Solicita para a lib da pulseira a medição de BPM (A callback deve morrer após responder a medição) | sim | não |
| iniciarMedicaoTemperatura | Solicita para a lib da pulseira a medição de Temperatura (A callback deve morrer após responder a medição) | sim | não |
| iniciarMedicaoOxigenacao | Solicita para a lib da pulseira a medição de Oxigenação (A callback deve morrer após responder a medição) | sim | não |
| iniciarMedicaoPressaoArterial | Solicita para a lib da pulseira a medição de Pressão Arterial (A callback deve morrer após responder a medição) | sim | não |
| pararMedicaoTemperatura | Solicita para a lib parar a leitura de Temperatura | não | não |
| pararMedicaoBpm | Solicita para a lib parar a leitura de BPM | não | não |
| pararMedicaoPressaoArterial | Solicita para a lib parar a leitura de Pressão Arterial | não | não |
| pararMedicaoOxigenacao | Solicita para a lib parar a leitura deOxigenação | não | não |
| sincronizarTesteAutomaticoTemperatura | Informa para a pulseira qual deve ser o período de teste automático da leitura de temperatura | não | não |
| nivelBateria | Solicita para a pulseira o nível da bateria | sim | não |
| sincronizarDadosPulseira | Solicita a pulseira todo o histórico de medições que está gravado no banco de dados da pulseira | não | não |
PosiçãoSênior
Como aplicarIremos buscar os contatos pelo perfil do Github que manifestar interesse na vaga.
Contatopedro.papadopolis@binnovation.co
Outras buscas que podem te interessar:
- Vagas de emprego de Programador
- Vagas de emprego de Desenvolvedor
- Vagas de emprego de Engenheiro de Software
- Vagas de emprego de Frontend
- Vagas de emprego de Backend
- Vagas de emprego de Full Stack
- Vagas de emprego de PHP
- Vagas de emprego de Java
- Vagas de emprego de Python
- Vagas de emprego de DevOps Engineer
- Vagas de emprego de Desenvolvedor Mobile
- Vagas de emprego de Desenvolvedor Android
- Vagas de emprego de Desenvolvedor iOS
- Vagas de emprego de Engenheiro de Dados
- Vagas de emprego de Cientista de Dados
- Vagas de emprego de Arquiteto de Software
- Vagas de emprego de Tester
- Vagas de emprego de QA Engineer
- Vagas de emprego de Desenvolvedor .NET
- Vagas de emprego de Tech Lead