Hotwire

Pra ficar mais claro e pra que possamos ter uma visão mais abrangente do Hotwire Native, vamos começar falando do Hotwire, das bibliotecas que o compõem e do papel que cada uma delas desempenha na criação de aplicações modernas utilizando Ruby on Rails.

O que é o Hotwire?

O Hotwire (HTML Over The Wire) é uma proposta do time da Basecamp para simplificar a forma como criamos aplicações web. Ele permite construir interfaces modernas, rápidas e interativas sem a necessidade de escrever grandes quantidades de JavaScript ou usar frameworks como React, Vue ou Angular.

A ideia principal do Hotwire é enviar HTML diretamente do servidor para a interface do usuário, evitando processamento desnecessário no navegador. Isso é feito com suas duas principais bibliotecas:

1 Turbo:

O Turbo é o coração do Hotwire. Ele é responsável por otimizar a experiência do usuário, carregando páginas mais rapidamente e atualizando partes da interface de forma eficiente. O Turbo é dividido em três partes principais:

Turbo Drive: Facilita a navegação sem recarregar a página inteira. Funciona interceptando links e formulários e carregando o HTML no background, atualizando apenas o que é necessário.

Turbo Frames: Permite atualizar apenas partes específicas da página, sem precisar recarregar o layout inteiro. Funciona como “janelas” na interface, que recebem HTML fragmentado do servidor.

Turbo Streams: Atualiza a interface em tempo real, com WebSockets ou requisições HTTP. Turbo Streams são perfeitos para adicionar, remover ou atualizar elementos da página dinamicamente.Com o Turbo, a experiência é muito mais rápida e fluida, enquanto o backend continua sendo responsável por gerar o HTML.

2 Stimulus:

Um framework JavaScript leve que permite adicionar comportamentos interativos de forma simples e organizada. Ele não compete com Turbo, mas o complementa, permitindo que você adicione "camadas" de interatividade onde necessário.

Hotwire Native: levando o Hotwire para apps nativas

O Hotwire Native é a extensão do Hotwire para aplicativos móveis, permitindo que você integre uma aplicação Rails com aplicações nativas (iOS e Android).

Ao invés de reconstruir toda a lógica de uma aplicação nativa, o Hotwire Native aproveita o Turbo para entregar HTML diretamente ao app, utilizando WebViews (ou seja, um navegador embutido no app). Isso permite que o Rails continue sendo o coração da aplicação, enquanto o app móvel apenas renderiza e complementa com funcionalidades nativas.

Como funciona o Hotwire Native?

O fluxo é simples:

Por que usar o Hotwire Native?

Resumindo