Uma das dores que tive ao migrar do expo para o react native cli, foi o fato de precisar estar com o cabo USB conectado em meu computador para desenvolver, ao contrario do expo com expo go que basta escanear um código qr e voilà tudo pronto de forma mágica.
Mas o fato é que a experiência com react native cli pode ser ainda mais satisfatória e mais simples do que utilizando expo e já vou te mostrar. Calma jovem gafanhoto, não estou apontando que você deveria usar react native cli ou que react native cli é melhor do que o expo. Ambos tem suas vantagens e desvantagens, inclusive a própria documentação do react native recomenda iniciar seus projetos utilizando expo. O intuito aqui é apenas ajudar a resolver uma dor de quem trabalha ou é forçado a trabalhar utilizando react native cli.
Vamos direto ao ponto, há várias formas de se resolver esse problema. Aqui eu vou citar as mais simples e mais práticas, já que o intuito é deixar a experiência tão boa quanto utilizando expo.
Usando debug server host
- Descubra o IP do seu computador:
ipconfig
Procure algo como:
IPv4 Address. . . . . . : 192.168.0.15
- Inicie o metro normalmente: Na raiz do projeto execute
npx react-native start
- Rode o app no Android Primeira vez ainda pode precisar do USB:
npx react-native run-android
Depois disso, o APK já estará instalado.
- Configure o Debug Server Host Abra o menu de configurações no aplicativo instalado, geralmente é a tecla M ou D Vá em
Dev Settings → Debug server host & port for device
- Coloque:
Substitua o ip pelo seu pc.
192.168.0.15:8081
- Recarregue o App. Agora ele j́á usa o Metro via wifi.
Para esse método funcionar, assim como todos os demais o celular deve estar conectado na mesma rede que o computador.
Alternativa melhor: ADB over Wi-Fi
A partir do android 11 é possível ativar a depuração USB pelo wifi, o que facilita muito as coisas.
- Ative as opções do desenvolvedor:
Configurações → Sobre o telefone → Número da versão
Toque 7 vezes.
- Ative a depuração por WI-FI
Opções do desenvolvedor →
- Depuração USB
- Depuração sem fio (Wireless debugging)
- Conecte o dispositivo No celular procure a opção parear dispositivo com código de pareamento, geralmente fica em:
Wireless debugging → Pair device with pairing code
Você verá algo assim:
IP: 192.168.0.20
Porta pareamento: 37099
Código: 123456
- Faça o pair no pc
adb pair 192.168.0.20:37099
Depois digite o código mostrado no celular.
- Conecte no ADB Ainda na tela do Wireless debugging terá outro endereço:
IP address & Port
192.168.0.20:39343
Agora:
adb connect 192.168.0.20:39343
Pronto agora seu celular está conectado e você pode usar normalmente. Depois que é feito o pareamento você irá precisar rodar apenas o comando adb connect, a não ser que você remova o dispositivo dos dispositivos autorizados. Essa é definitivamente a minha forma favorita, requer um setup inicial, mas depois disso é só alegria. E a vantagem aqui é que não perdemos nenhuma informação, por exemplo os logs do dispositivo.
Android antigo (ADB TCP/IP)
Se você não possui um aparelho android com pelo menos android 11 há ainda outra alternativa. Com o USB conectado uma unica vez:
- Execute:
adb tcpip 5555
- Pegue o IP do celular:
adb shell ip route
- Conecte:
adb connect 192.168.0.20:5555
Agora pode remover do USB.
Essas são algumas das formas que encontrei para deixar a experiência de desenvolver usando react native cli mais amigável. Espero ter te ajudado de alguma forma. Obrigado!