O Path Configuration
O Path Configuration é um recurso essencial para dar uma aparência nativa à aplicação Rails em plataformas como iOS e Android, com amplas possibilidades de uso.
Ele atua como a fonte central que define o comportamento da aplicação nativa para cada URL. A seguir, veremos casos práticos para ilustrar seu funcionamento.
Cenário: Navegação via modal
A navegação por modal é um recurso característico da plataforma iOS. Um exemplo está no aplicativo de contatos: ao clicar no botão adicionar (+), um modal aparece sobre a tela anterior, e ao fechá-lo, o usuário retorna à tela anterior.
Em aplicações Ruby on Rails em plataformas nativas, é comum que as actions new e edit utilizem a navegação no contexto modal.
Com o Path Configuration, a aplicação nativa é configurada para tratar URLs contendo /new ou /edit como navegações no contexto modal.
App nativa, caso você esteja acessando alguma URL que possui /new ou /edit, vamos utilizar a navegação no contexto modal.
Vamos implementar isso.
Adicionando o arquivo path-configuration.json
Agora, vamos implementar as primeiras alterações no PathConfiguration
. Na árvore de arquivos do projeto, clique com o botão direito, selecione New Empty File e nomeie o arquivo como path-configuration.json
. Em seguida, insira o seguinte conteúdo:
{
"settings": {},
"rules": [
{
"patterns": [ ".*" ],
"properties": {
"context": "default",
"pull_to_refresh_enabled": true
}
},
{
"patterns": [ "/new$", "/edit$" ],
"properties": {
"context": "modal",
"pull_to_refresh_enabled": false
}
}
]
}
Configurando o AppDelegate com o PathConfiguration
Na versão 1.1.0 do Hotwire Native
, é necessário ajustar o AppDelegate
para especificar a localização do arquivo path-configuration.json
. Insira a configuração a seguir na função application
:
import HotwireNative
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// A aplicação é configurada para localizar o arquivo JSON.
Hotwire.loadPathConfiguration(from: [
.file(Bundle.main.url(forResource: "path-configuration", withExtension: "json")!)
])
return true
}
Execute a aplicação com Command + R
. Após o carregamento, navegue até URLs e clique em New URL. As telas a seguir serão exibidas:
Ao clicar em New URL, um modal é exibido, criando uma experiência mais nativa e aprimorando a usabilidade. O Path Configuration
oferece diversas possibilidades, como ocultar a Navbar ou StatusBar, ajustar Modais conforme necessário, ou desativar a navegação em stack, padrão no iOS.