<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: noveflixapp</title>
    <description>The latest articles on DEV Community by noveflixapp (@noveflixapp).</description>
    <link>https://dev.to/noveflixapp</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4237234%2F0f302d68-fc3f-4ab5-850e-5e519494ca63.png</url>
      <title>DEV Community: noveflixapp</title>
      <link>https://dev.to/noveflixapp</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/noveflixapp"/>
    <language>en</language>
    <item>
      <title>Como manter um aplicativo Android WebView com apenas 21 KB (HTML5 Fullscreen e Smart TV)</title>
      <dc:creator>noveflixapp</dc:creator>
      <pubDate>Tue, 10 Nov 2026 13:57:36 +0000</pubDate>
      <link>https://dev.to/noveflixapp/como-manter-um-aplicativo-android-webview-com-apenas-21-kb-html5-fullscreen-e-smart-tv-4oel</link>
      <guid>https://dev.to/noveflixapp/como-manter-um-aplicativo-android-webview-com-apenas-21-kb-html5-fullscreen-e-smart-tv-4oel</guid>
      <description>&lt;p&gt;Quando pensamos em criar um ponto de acesso dedicado no Android para um catálogo web responsivo, a tentação inicial quase sempre é recorrer a frameworks híbridos robustos que facilmente geram pacotes APK de 40 MB a 80 MB. Em aparelhos topo de linha isso passa despercebido, mas em smartphones intermediários com armazenamento cheio — ou em receptores TV Box e Android TV de entrada com apenas 8 GB de memória — cada megabyte conta.&lt;/p&gt;

&lt;p&gt;Ao estruturar a versão 1.0.0 do &lt;a href="https://noveflixappapk.com/android/" rel="noopener noreferrer"&gt;projeto NoveFlix para Android&lt;/a&gt;, nosso objetivo técnico foi o oposto: usar exclusivamente as APIs nativas do sistema (android.webkit.WebView a partir do Android 8.0 / API 26) sem bibliotecas externas desnecessárias, chegando a um instalador final enxuto de 20,95 KB.&lt;/p&gt;

&lt;p&gt;Abaixo compartilho quatro aprendizados práticos de engenharia mobile que fazem toda a diferença na experiência real do usuário em um WebView minimalista.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Suporte real a Tela Cheia em Players de Vídeo HTML5&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Por padrão, o WebView do Android ignora o botão de fullscreen dos players de vídeo HTML5 a menos que você implemente os métodos onShowCustomView e onHideCustomView dentro do WebChromeClient:&lt;/p&gt;

&lt;p&gt;Kotlin&lt;/p&gt;

&lt;p&gt;webView.webChromeClient = object : WebChromeClient() {&lt;br&gt;
    private var customView: View? = null&lt;br&gt;
    private var customCallback: CustomViewCallback? = null&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;override fun onShowCustomView(view: View?, callback: CustomViewCallback?) {
    if (customView != null) {
        callback?.onCustomViewHidden()
        return
    }
    customView = view
    customCallback = callback
    fullscreenContainer.addView(view)
    fullscreenContainer.visibility = View.VISIBLE
    webView.visibility = View.GONE
}

override fun onHideCustomView() {
    fullscreenContainer.removeView(customView)
    fullscreenContainer.visibility = View.GONE
    webView.visibility = View.VISIBLE
    customCallback?.onCustomViewHidden()
    customView = null
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;br&gt;
Sem esse bloco simples, o usuário toca no ícone de expandir o episódio e absolutamente nada acontece na tela.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Separar links externos da sessão interna do aplicativo&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Um cuidado importante de segurança e usabilidade é garantir que o WebViewClient mantenha apenas o domínio principal dentro da janela do app, delegando qualquer link externo para o navegador padrão do Android via Intent(Intent.ACTION_VIEW):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;O histórico e os cookies da sessão do app permanecem isolados do navegador pessoal do usuário.&lt;/li&gt;
&lt;li&gt;Fica imediatamente claro para quem está assistindo quando um clique aponta para fora do catálogo.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Diferenciar carregamento de página vs. buffering de vídeo&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Em redes móveis 4G instáveis, telas brancas causam a impressão de que o aplicativo travou. Adicionar uma barra de progresso fina ligada ao onProgressChanged — junto a uma tela local amigável com botão "Tentar novamente" no onReceivedError — permite que o usuário saiba se a página HTML já terminou de carregar ou se é apenas o player de vídeo aguardando conexão.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Desafios em Android TV, TV Box e Fire OS&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Testar o mesmo pacote fora do touch screen revela detalhes curiosos de hardware:&lt;/p&gt;

&lt;p&gt;Android TV certificada: A navegação depende 100% do foco direcional (D-Pad) do controle remoto; elementos clicáveis precisam de estados :focus-visible nítidos no CSS.&lt;/p&gt;

&lt;p&gt;TV Box (Android AOSP): Como muitas caixas rodam versões adaptadas de celular, orientar o usuário a ativar o modo cursor/mouse do controle resolve cliques em controles internos do player.&lt;/p&gt;

&lt;p&gt;Play Protect e instalação limpa: Manter zero permissões invasivas no AndroidManifest.xml (apenas android.permission.INTERNET) garante que o pacote passe tranquilamente pela verificação ativa do Google Play Protect, como documentamos no &lt;a href="https://noveflixappapk.com/como-instalar/" rel="noopener noreferrer"&gt;guia de instalação segura no Android&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Conclusão&lt;/p&gt;

&lt;p&gt;Nem todo projeto web precisa de dezenas de megabytes de dependências nativas no mobile. Quando o conteúdo já é entregue online, um WebView bem configurado entrega velocidade de abertura instantânea, consumo mínimo de memória e compatibilidade ampla do celular à TV da sala.&lt;/p&gt;

&lt;p&gt;Se quiser conferir as especificações completas do pacote e os testes por dispositivo, a documentação completa está disponível em &lt;a href="https://noveflixappapk.com/" rel="noopener noreferrer"&gt;noveflixappapk.com&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>android</category>
      <category>portuguese</category>
      <category>braziliandevs</category>
      <category>mobile</category>
    </item>
  </channel>
</rss>
