chesterbr / minitruco-android

A popular Brazilian card game (Truco) running on Android.

Home Page:https://play.google.com/store/apps/details?id=me.chester.minitruco&pli=1&hl=pt

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Suporte a dispositivos WearOS

felpafel1337 opened this issue · comments

commented

INTRODUÇÃO:

Olá Chester, notei que você está lançando atualizações para app nesses últimos meses e resolvi testar o desempenho dessa obra prima no WearOS 3.0 e para minha surpresa o aplicativo se mostrou estável em todos os meus testes, 0 crashes , no lag e apenas algumas limitações devido ao formato da tela (Rounded screen).


RESULTADOS e CONSIDERAÇÕES:
Através do video é possível perceber que o jogo roda sem nenhum problema no dispositivo, funcionando os 3 modos de jogo (local, bluetooth e online), não é possível perceber pelo vídeo, mas o layout atual não prejudica a jogabilidade em uma tela pequena (zero miss clicks). No entanto o jogo não apresenta um método para checar se a tela do dispositivo é redonda resultando na "vira" não sendo mostrada.
jogo

Bom, não sei se existe motivação ou se é o escopo desse projeto realizar esse port. Caso não seja possível/desejado, seria legal realizar a checagem do formato da tela e assim mostrar um layout mais simplificado para telas redondas.


SETUP:

Hardware:

  • Galaxy Watch 4 SM-R875F (Processador Cortex-A55 dual-core 1.2Mhz, 1.4GB de RAM, 16GB de storage);
  • Motorola Z3 Play rodando Android 9;

Software:

  • MiniTruco v3.0.2
  • OBS (Para gravar o streaming da tela do celular e do relógio)
  • scrcpy (Para realizar o streaming da tela do celular e do relógio)
  • Tasker/AutoWear (Para alterar a Screen Density do relógio)

PASSO A PASSO:
Primeiro é necessário realizar o sideload do apk para o relógio (para isso pode ser utilizado o ADB ou algum wrapper que facilite o processo). Após isso é necessário alterar a densidade da tela (default: 340) para 300 ou algum valor menor assim sendo possível clicar no botão de jogar (Durante o video eu usei o Tasker só para que fosse visível a alteração da screen density mas pode ser utilizado o comando adb wm density <value>)


Obrigado a todos os devs por esse app ♥

@felpafel1337 Wow! Em primeiro lugar, obrigado pelo issue super completo!

Interessante ver que rola tão legal no WearOS; acho que realmente com alguns pequenos ajustes para considerar o formato redondo ele deve ficar legal - inclusive vou passar isso na frente do suporte a TV (#21), já que não é preciso mexer no input (que é a parte mais chata geralmente).

Eu queria sim que ele rodasse em qualquer dispostivo; nem pensei em relógio simplesmente porque não tenho um 😆; mas com as suas infos eu consigo fazer uma adaptação em breve, e aí eu agradeço se você puder ir me dando feedback.

Eu vou dar uma olhada na documentação do WearOS, mas aparentemente se eu fizer a checagem correta e declarar em algum ponto do manifest o suporte, vai ser possível instalar direto pela Play Store, sem precisar dar sideload, né?

commented

Opa, obrigado pela resposta!

Eu queria sim que ele rodasse em qualquer dispostivo; nem pensei em relógio simplesmente porque não tenho um 😆; mas com as suas infos eu consigo fazer uma adaptação em breve, e aí eu agradeço se você puder ir me dando feedback.

Concerteza, fico a disposição. "Manda o apk que nóis testa e fala c ta bom".

Eu vou dar uma olhada na documentação do WearOS, mas aparentemente se eu fizer a checagem correta e declarar em algum ponto do manifest o suporte, vai ser possível instalar direto pela Play Store, sem precisar dar sideload, né?

Bom, eu nunca desenvolvi um app pra android, mas sua linha de pensamento essa correta. Nesse video entre os 1:40 até os 5:00 da pra ver que a estrutura do projeto é a mesma de um app pra android.
Para distribuir ambos os apks a play store tem Multiple APK support, e seguem mais alguns links que achei útil:
Packing and distribute Wear app
Distribute to Wear OS


Offtopic
Através do seu blog eu vi que tu curte automação e biohacking. Maybe, você irá gostar de ter um wearable contigo. Basicamente o sistema é um "android limitado" com sensores de bio-impedância e inferência de pressão arterial, ainda sendo um dispositivo que ta no seu braço 24/7 com GPS e podendo fazer requisição HTTP. O ecosistema só cresce, google e samsung lançando o health connect e existe uma comunidade ativa no XDA.

Fiz um experimento rápido, no qual o manifest do aplicativo foi atualizado para permitir a instalação no Wear OS. O que eu constatei rodando no emulador:

  • A tela principal do jogo (TrucoActivity / MesaView) se adapta muito bem (exceto pelos pontos notados no realtório detalhado do @felpafel1337, como o baralho e placares que ficam fora do círculo no formato redondo, que podem ser facilmente modificados porque essas telas são desenhadas 100% via código)
  • O menu principal sofre bastante. No experimento eu acrescentei um rolamento (scroll) vertical que permite acessar boa parte dos botões, mas é sofrido. Provavelmente o melhor seria ter um layout XML específico para o formato redondo (idealmente que também contemple o tamanho quadrado com resoluções do Wear OS), possivelmente fazendo um menu com WearableListView
  • Perguntas em caixas de diálogo precisam de adaptação (os textos são cortados e as respostas precisam de rolamento para exibição); isso eu achei estranho porque imaginei que AlertDialog seria reimplementado num formato mais adaptado ao relógio, mas devo explorar mais a fundo.

A conclusão foi que ainda é bastante viável acrescentar suporte a Wear OS; mas é algo que precisa e merece um pouco mais de carinho; dessa forma acho coerente que seja implementado junto com #21 (que é um caso semelhante, um pouco mais simples), e devo olhar isso depois da iniciativa que começa agora (revisão dos bots e sinais); vou manter esse issue aberto até então.

@felpafel1337 re: Offtopic

Através do seu blog eu vi que tu curte automação e biohacking. Maybe, você irá gostar de ter um wearable contigo.

Parece realmente interessante! Eu uso um Pebble até hoje (gosto da bateria durar dias e dias, acho elegante ele dar offload do processamento para o telefone e por conta disso ter sido muito barato quando era um produto ativo e agora ser praticamente grátis), mas se um dia eu animar a trocar, rodar Android é sempre uma vantagem pra mim; obrigado pela dica! 🙇

commented

Tmj!
Realmente a bateria é um limitante, usando bem pouco eu chego em 48hrs mas normalme a bateria dura umas 36hrs com workload normal. Pra mim é mais que suficiente pq todo dia eu arranjo 30min de carga quando vou tomar banho.
Nunca tive a oportunidade de ter um pebble, mas usando wearables desde a mi band 2. O offload mental de deixar o celular 24/7 no silencioso e dar pipe das notificações que acho importante pro relógio/pulseira é impagável.