eu criei um aplicativo que conecta com o dispositivo Bluetooth para medir os seus batimentos cardí colos calcular o seu gasto calórico e enviar pro aplicativo da Apple e esse projeto foi tão legal que eu quero compartilhar com vocês Tudo que eu aprendi coisas bem interessantes mesmo e principalmente alguns insites para você programador que não consegue tirar os seus projetos do papel ou que tá procurando projetos legais para colocar no seu portfólio Bora pro [Música] vídeo Olá pessoal eu sou Carol aequita você está no aequita Dev o meu canal de tecnologia Pois é eu quero compartilhar
tudo que aconteceu na execução desse projeto que foi muito legal mas primeiro eu preciso explicar por que eu resolvi criar esse tal de aplicativo né bom tudo começou com essa cinta cardíaca que eu comprei aqui para poder medir os batimentos cardíacos ao longo ali do meu treino porque eu faço Box tem 4 anos eu queria medir a minha performance durante os treinos eu já tive até o relógio que mede mesmo as atividades e tudo mais porém o problema é que com o box quando você coloca ali a mão na luva tende a pausar o treino
a medida com que você tá fazendo os exercícios então eu pensei Poxa vou comprar uma cinta cardíaca porque eu posso medir os meus treinos ali pode servir para vários tipos de exercício Box ciclismo outras coisas que eu faço então resumindo fiz esse investimento O problema foi quando eu fui utilizar a cinta perfeito ela mediu o batimento cardíaco só que o aplicativo do fabricante tinha um bug maldito pug que acontece se você tentava utilizar ele sem deslocamento ali de GPS Ele simplesmente entendia que você pausou ali a atividade e não mediu o seu gasto calórico ou
seja para mim que não tinha deslocamento eu tava ali lutando ali mais no mesmo lugar eu não conseguia medir o meu gás calórico e eu tentei galera eu tentei conectar no strava e outros aplicativos mas mesmo assim não consegui medir o gasto calórico foi o que eu pensei poxa por que que eu não desenvolvo um aplicativo eu mesma para poder me medir essas calorias e enviar para aplicativo da Apple para eu ter a performance ali no meu treino pois é tá aí um projeto legal para experimentar diversas coisas que eu ainda não trabalhei seja a
integração com o aplicativo de saúde da Apple ou também a conexão com o dispositivo Bluetooth que eu nunca tinha trabalhado Na minha vida e eu resolvi fazer esse projeto em tempo recorde porque era o tempo que eu tinha O legal é que eu compartilhei essa minha jornada lá no Instagram e o pessoal Tava acompanhando enquanto estava desenvolvendo aplicativos os bugs que surgiam foi bem legal se vocêa não me segue lá já me siga mas o primeiro primo ponto foi definir o escopo do projeto e quebrar né entender ali o que precisava ser feito para eu
resolver o meu problema a gente sabe que programadores são resolvedores de problemas e nesse momento eu estava resolvendo um problema meu precisava criar esse aplicativo primeiro ponto que eu tinha que entender era o escopo qual que é o escopo do aplicativo bom eu preciso me conectar né com o dispositivo Bluetooth com a cinta ali cardíaca eu preciso pegar as informações do batimento eu preciso calcular caloria eu preciso enviar isso para aplicativo da Apple porque eu não queria ia ter que criar toda ali a parte visual para poder analisar os meus treinos é muito mais fácil
registrar essa informação no iOS para eu ter acesso ali no aplicativo de atividade ou no aplicativo de saúde nesse ponto o fato de eu ter um tempo reduzido e eu saber exatamente quanto tempo eu tinha para poder me dedicar pro projeto fez com que eu enxugar bastante tudo que tinha que ser feito eu acho que se fosse em outras circunstâncias provavelmente esse projeto não tinha saído do papel e eu acho que esse é o erro de muitas pessoas quando a gente pensa em fazer um projeto a gente começa com uma ideia sim simples daí a
gente começa a pensar em fazer o melhor projeto possível para tentar vender esse projeto depois ou ganhar dinheiro com esse projeto é aí que o negócio começa a crescer e crescer e crescer e aí que a gente não sai do lugar então esse aprendizado de fazer um projeto super simples de enxugar o escopo ao máximo ridiculamente mas eu consegui começar e terminar a quantidade de aprendizado que eu tirei desse projeto foi sensacional e é o motivo para você pensar no seus projetos Como que eu posso enxugar o máximo para eu conseguir começar e terminar aí
depois se eu quiser eu vou comp aumentando funcionalidades eu ia basicamente fazer um MVP que é o mínimo viável do produto ou seja enxuga o máximo escopo mas não tira a funcionalidade principal para você conseguir ali resolver o problema na minha tela o que que eu precisava ver os batimentos cardíacos para ter certeza de que eu tô monitorando de fato eu precisava ver o gasto calórico e o botão para poder começar a gravar o treino ou parar de gravar o treino basicamente era essa a minha interface e eu comecei ali a escrever codar a minha
interface foi super rápido galera acho que eu gastei ali sei lá no máximo meia hora para poder criar essa tela era uma tela só bem enxuto mesmo só com as informações que eu precisava ainda Fiz uma firulinha que eu coloquei uma animação na hora que Ele começava a monitorar os batimentos cardíacos ele mostrava ali uma animação mas foi coisa bem simples né então com isso eu já tinha a minha interface eu fiz a interface em Swift Ui que é um Framework de interface declarativa para IOS e eu só consegui fazer tão rápido porque eu usei
o Swift ui porque se eu fosse fazer ui kit B code etc eu ia gastar muito mais porque é muito mais verboso Então olha só Essas tecnologias novas elas chegam justamente para poder otimizar o seu processo e é legal ver o ganho de produtividade disso na prática né o quanto foi rápido eu consegui fazer esse protótipo depois disso é claro que eu tinha alguns desafios para poder atingir o meu objetivo Primeira coisa eu precisava entender como que eu conectava via Bluetooth com a minha cinta para poder pegar a informação e eu nunca tinha feito um
projeto com conexão de dispositivo Bluetooth na minha vida eu achei legal porque eu ia aprender uma coisa nova e esse é o ponto desse projeto é um projeto muito simples uma tela só mas que explora coisas que eu nunca tinha trabalhado antes o Bluetooth é uma tecnologia de comunicação para que dispositivos consigam trocar informação sem a necessidade ali da internet então através das tecnologia eu consigo comunicar mandar informação do meu batimento cardíaco pro meu celular utilizando os protocolos de comunicação né E quando a gente fala protocolos são as regras de comunicação então o Bluetooth tem
esses protocolos universais Esse é um ponto interessante inicialmente eu fiquei me questionando Mas como que eu vou conectar com essa cinta Será que eu tenho que saber informações do fabricante para eu poder me conectar e receber essas informações daí eu entendi que não na verdade são padrões universais ali se você entrar e tem um site a documentação oficial do bluetooth você vai olhar lá tem ali todas as informações de todos os serviços todos os identificadores que são universais isso quer dizer que independentemente qual plataforma você esteja fazendo essa integração seja iOS Android desktop você vai
ter como base esses serviços E esses identificadores E como que funciona para eu conectar com essa cinta aqui para eu me conectar com a cinta o meu aplicativo ele vai escanear né dispositivos periféricos ali ao redor né a um grau de distância do meu do meu celular ali e como que eu faço para escanear esses dispositivos Na verdade eu busco pela implementação do serviço então eu falo o seguinte eu tô buscando aqui dispositivos que me forneçam a informação de batimento cardíaco é exatamente assim sim aí ele vai listar todos os dispositivos que ele encontrou com
esse Scan ali que implementam aquele serviço Então na verdade eu não preciso saber nada do fabricante eu só vou buscar por dispositivos que implementem aquele serviço batimento cardíaco e tem vários outros né tem som tem uma série de coisas que você pode utilizar através da conexão bluetooth Então já comecei a criar a minha classe de serviço queria conectar com o meu dispositivo queria escanear esses dispositivos né E para poder fazer esse mapeamento existe já um Framework nativo IOS que é o Core Bluetooth aonde você consegue fazer esse Scan de dispositivos e gerenciar essa conexão ali
via Bluetooth recebendo e enviando informações Então a primeira função dessa classe que eu tava criando era poder buscar os dispositivos ao redor que implementavam o serviço de batimento cardíaco à medida que ele encontrasse esses periféricos ali eu ia ter que solicitar mais informações por qu Além do serviço cada serviço tem características diferentes entenda as características como se se fossem propriedades né então dentro do serviço de batimentos cardíacos eu posso ter duas informações o posicionamento do dispositivo ali na pessoa ou seja se tá no peito se tá no pulso assim eu sei se é uma cinta
ou se é um relógio que também pode implementar esse serviço de medir os batimentos cardíacos né e a segunda informação seria justamente os batimentos cardíacos por minuto e um ponto importante você vai obter ali os batimentos cardíacos por minuto e você vai ter que tratar essa informação porque que ela vem num formato específico ali inclusive você pode ver na documentação do bluetooth para que você consiga entender as informações é por isso que segue um protocolo digamos assim as regras né Para que um lado Saiba como enviar e o outro lado Saiba como ler essa informação
depois que você interpretar essas informações que são enviadas ali em byes e extrair o batimento por minuto aí você consegue fazer o cálculo ali de gasto calórico para fazer o cálculo de gasto calórico eu tive que pesquisar um pouquinho como que funciona porque eu realmente não sabia não entendo nada da área e eu entendi que tem várias formas de você medir o gasto calórico algumas fórmulas nem consideram o batimento cardíaco elas vão pegar outros fatores ali por exemplo o fator se você é uma pessoa ativa ou não se o exercício ele é qual que é
o grau de dificuldade do exercício né mas eu quis buscar especificamente essa fórmula que considera o batimento cardíaco por quê Porque basicamente ela te passa a caloria baseado na quantidade de oxigênio Que você queimou então Fi atrás dessa fórmula encontrei a fórmula na internet tudo que eu tinha que fazer é pegar essa fórmula e colocar no meu código para eu conseguir transformar ali o batimento cardíaco por minuto na quantidade de calorias aí tem alguns parâmetros pra gente considerar nessa fórmula essa fórmula ela vai precisar do tempo da atividade então precisava calcular Quando o exercício começava
E terminava para isso justamente que eu utilizei o botão então quando eu tocava o botão para gravar o exercício eu estava registrando o momento que o exercício começou para eu poder de fato calcular a duração do exercício e também o gasto calor ó Outro ponto importante que a gente precisa nessa fórmula é justamente o batimento cardíaco Mas aí você pode perguntar Poxa mas o batimento ele não tá variando o tempo inteiro Sim aí você tem que fazer uma média desses batimentos para que você entenda quanto que você gastou Então você tem que ir calculando essa
média de batimentos cardíacos para poder aplicar na forma outros fatores que devem ser considerados a sua idade o seu peso e o seu gênero sim porque a fórmula é diferente para homens e mulheres então tendo todos esses parâmetros ali eu consegui calcular o gasto calor eu criei então uma espécie de rotina um timer que ficava calculando ali para eu conseguir ver isso no aplicativo porque aqui também tem informação de caloria então a medida com que eu ia realizando o exercício também ia atualizando essa informação de caloria aqui bom já tenho as duas coisas aqui nesse
ponto eu tenho tantos batimentos cardíacos por minuto mas eu também tenho o gasto calórico o ponto engraçado foi como que eu testei isso afinal eu tava implementando eu tinha que testar então eu coloquei a cinta e comecei a fazer pol chinelo para ver se o número ia aumentando se realmente estava contando as calorias depois é claro eu ia ter que testar em campo então depois eu ia fazer exercício com a cinta para ver o quanto que ela media ao longo do treino se fazia sentido em relação à média de gasto calórico que normalmente eu tinha
naquele exercício a back front Plus tá com super novidades isso mesmo eu te conto tudo aqui a back front Plus é uma plataforma de ensino focada em desenvolvimento mobile então lá você vai encontrar diversos cursos ali para desenvolvimento de aplicativos Tanto para quem tá começando do zero e não sabe nada de programação quanto para quem já atua na área e quer continuar evol indo ali sobre as novas tendências a plataforma em si ela já era incrível e intuitiva Mas agora eles querem melhorar ainda mais essa experiência do aluno Eles criaram uma nova área de membros
que é muito legal é uma área totalmente gamificada onde você vai ganhando pontos à medida que vai concluindo os cursos e desafios você tem o seu perfil você pode ter acesso ali a todos os certificados que você ganhou fazendo os cursos cara tá muito bacana e a segunda novidade é que eles estão para lançar o curso de desenvolvimento para Apple víde um pro isso mesmo os caras não estão PR brincadeira não Eles não perdem tempo você vai aprender a como criar aplicações para o óculos de realidade mxa da Apple que realmente balançou o mercado e
promete muito pro Futuro O legal é que quem já assina a plataforma já vai ter acesso ao curso quando ele for lançado e é por isso que eu gosto desse modelo com a única assinatura você consegue ter acesso a todos os cursos que já foram lançados e os cursos que ainda serão lançados e se você quer saber um pouquinho mais sobre essa plataforma e ainda garantir um super desconto na sua assinatura dá uma olhadinha na descrição do vídeo eu vou deixar o link da plataforma e também meu cupom de desconto mas antes de eu testar
isso em campo eu precisava resolver outro problema que é justamente a integração com o sistema iOS para registrar essas informações no sistema para que eu tenha acesso no aplicativo de saúde no aplicativo de atividade ali aonde você mede quantas calorias você gastou no seu dia então precisava fazer essa integração para fazer essa Integração eu utilizei um Framework chamado Health kit através desse Framework que você consegue ali enviar dados pro sistema em relação à sua saúde então Então você consegue registrar exercícios gasto calórico e várias outras coisas então eu fui olhar a documentação do framer como
que eu podia fazer essa integração para enviar as informações basicamente você vai criar uma Instância de um workout né E com essa Instância você vai passar as informações ali quando começou quando terminou e também o gasto calórico agora um ponto bem legal que eu vi estorando essa documentação é que você consegue também enviar eventos ao longo do treino ou seja tem como explorar muita coisa aqui a nível de performance você pode ali pegar um momento específico aonde o batimento abaixou muito onde aumentou muito mandar essas informações do aplicativo de saúde para você ter esse gráfico
de performance bem detalhado e de verdade fora o aplicativo de atividade ali do próprio iPhone que você utiliza com o hos eu não conheço outro aplicativo que envia essas informações nesse nível de detalhe Então eu vi um mundo bem interessante para poder explorar é claro que nesse momento específico estava focada no MVP Então é só enviei as informações de começar a terminar e o gasto calórico e quando eu comecei a criar o aplicativo até a primeira versão para teste foram 4 horas olha só que legal como a gente conseguiu enxugar a coisa e sair de
um ponto a para um ponto b e aprender um punhado de coisas e um curto espaço de tempo foi muito legal e eu registrei isso tudo lá no Instagram ao final do dia eu ia fazer o meu treino utilizando a cinta para eu poder testar se realmente estava funcionando bom vocês não estão esperando que o primeiro teste ia ser 100% perfeito Então teve problema sim né nesse primeiro exercício que eu fiz a cinta desconectou em um certo momento e eu não vi então ficou um tempão sem gravar a informação dos batimentos cardíacos e isso prejudicou
o cálculo aí eu entendi um ponto importante poxa se eu tô longe do dispositivo eu tenho que ter algum aviso sonoro quando ele desconectar aí eu pensei Nossa é por isso que a gente tem aquele sonzinho de conectada desconectada ali nos dispositivos né porque você precisa ser avisado quando isso acontecer e foi isso que eu fiz eu implementei busquei ali uma voz sintética criei ali os estados né conectado desconectado e e buscando ali dispositivo e implementei esse aviso sonoro para saber o status por exemplo tô fazendo exercício desconectou eu iria ouvir um desconectado para eu
poder ir lá e arrumar e voltar a gravar o exercício eu acredito que tenha desconectado pela distância né então acho que a distância que eu deixei o meu celular da cinta né E com essa questão do próprio exercício fez com que perdesse o sinal mas mesmo assim eu precisava ser avisada disso então eu fiz essas novas implementações tanto mostrar o tempo ali no aplicativo quanto também o aviso sonoro de quando ele tava desconectado e coloquei também uma pop-up de confirmação para mostrar que o treino foi salvo ou não porque não tinha feedback nenhum nesse momento
né E foi bem legal tá galera pegar o aplicativo de saúde de atividade e ver que as atividades estavam sendo registradas até Criei um ícone com inteligência artificial ali utilizei o mid Journey ali para poder criar o ícone de coração e ficou bem bonitinho fiquei super feliz porque Cara consegui resolver um problema através da tecnologia e eu realmente tive aquele sentimento de poxa vida é por isso que eu sou programadora é por isso que é tão legal você ter o poder da tecnologia nas mãos você de fato consegue resolver os seus problemas com a tecnologia
e um inside que eu tenho para tirar aqui para você galera é que muitas vezes você tem problemas no seu dia a dia que você pode resolver com a tecnologia e você simplesmente não pensa nisso e podem ser problemas muito legais para você explorar diversas coisas para colocar no seu portfólio para poder continuar aprendendo em um projeto muito simples de um dia eu aprendi duas coisas que eu não tinha aprendido antes eu consegui começar terminar e compartilhar essa jornada com vocês isso com certeza mudou a minha visão sobre como pensar escopos para projetos pessoais porque
eu tenho um que tá na gaveta há do anos simplesmente um aplicativo de mais de 40 telas né então acho que a gente tem que começar do simples entendendo disponibilidade força de trabalho e principalmente um projeto ele não precisa ser complexo para que você tenha aprendizados nesse projeto o aplicativo tinha uma tela só mas trabalhava com coisas muito interessantes que eu consegui retirar esse aprendizado e o principal aqui é que eu registrei essa minha jornada e eu escrevi um artigo sobre como foi desenvolver esse aplicativo falando Tecnicamente ali da implementação né como que foi fazer
essa conexão bluetooth no iOS como que foi integrar com o aplicativo de saúde né Eu já lancei a parte um nesse momento que eu tô gravando o vídeo aqui se você tiver vendo esse vídeo do Futuro Pode ser que até tenha a parte dois ali completa com essas informações técnicas de como foi desenvolver esse aplicativo compartilhando tudo que eu aprendi eu acho que isso pode inspirar vocês a tirar algumas ideias de aonde vocês não esperavam criar projetos e principalmente compartilhar conhecimento Foi um aprendizado tremendo para mim e agora eu quero saber a sua opinião o
que que você achou dessa jornada muito louca Foi muito divertido e mais divertido ainda poder compartilhar ise tudo com vocês comenta aqui embaixo se você gostou desse tipo de conteúdo quem sabe eu posso fazer mais projetos e trazer esse aprendizado aí para vocês agora como é de costume vou responder no comentário que deixaram em outro vídeo do canal e o comentário é do undefined bom nome eu trabalho com angler Mas pensa em voltar atrás e estudar fundamentos para ter uma base mais sólida importante só que muitos cursos focam em Java ou algo similar então teria
problema em aprender um pouco de Java ou estaria perdendo tempo muito boa a sua pergunta e a resposta não você não tá perdendo tempo você nunca tá perdendo tempo quando você tá buscando o conhecimento entenda isso um ponto importante tá não importa a linguagem ela é meio que um detalhe tá os fundamentos eles são compartilhados então se você aprender ali voltar para aprender a base em Java que é uma ótima linguagem para aprender isso pela própria característica da linguagem orientar objeto de pagem forte e estática né se você aprender a base ali com certeza esse
conhecimento ele vai ser compartilhado entre todas as linguagens então a base ela independe da linguagem se você voltar para aprender em Java você não tá perdendo seu tempo não vai é um ótimo investimento acho que todo programador Hoje ele tem que ter essa preocupação em reforçar a base para conseguir sempre est evoluindo bom muito obrigado pelo seu comentários espero que eu tenha conseguido responder a sua dúvida antes eu me despedir já sabe que eu vou indicar outros dois conteúdos para você maratonar aqui no canal já que a gente tá falando em estudar um desses conteúdos
vai ser um vídeo que eu gravei com várias dicas de cursos gratuitos atualizado 2024 para vocês e o outro conteúdo vai ser uma recomendação do YouTube agora eu vou voltar aqui para corrigir os bugs do meu projeto não se esquece de se inscrever porque tem muito conteúdo legal para você