Criando app iOS
Como mencionado anteriormente, é requisito ter o XCode para criar uma nova aplicação para dispositivos da Apple. Falaremos sobre Hotwire Native para Android em um outro livro.
A versão do XCode utilizada neste livro é a 16.1 e versão 1.1.0 do Hotwire Native.
Novo projeto XCode
Abra o XCode para visualizar uma tela semelhante a esta:
Clique em Create New Project
.
Na sessão Application
deixe selecionado a opção App
clique em Next
.
Na nova tela, observe os pontos específicos destacados.
- Nome do projeto.
- Team (pode deixar None).
- Organization Identifier pode manter:
com.example
. - Interface: Storyboard
- Language: Swift
- Testing Library: None.
- Storage: None.
Por fim, indique o local para a criação da pasta do projeto e clique em Create
.
Esta é a tela inicial exibida após a criação do projeto. Embora inicialmente pareça complexa, a plataforma XCode oferece inúmeras soluções úteis para desenvolvedores.
Emulador
Configure ao menos um emulador para testar o aplicativo e garantir seu funcionamento adequado.
- Na parte superior podemos clicar para ver os emuladores disponíveis.
- Selecione o emulador que você utilizará para executar o projeto, no meu caso escolhi o iPhone 16.
- Clique no botão
Play
para ver a aplicação sendo executada.
No início, o emulador não exibirá nada, mas isso será resolvido em breve.
Principais arquivos e primeiras alterações
Na árvore do projeto, os principais arquivos iniciais são AppDelegate
e SceneDelegate
. O arquivo ViewController
pode ser ignorado por enquanto.
LEMBRE-SE DE INICIAR SUA APLICACAO RAILS!
Execute na pasta do seu projeto Rails.
bin/dev
Primeira alteração no SceneDelegate
No arquivo SceneDelegate
, faça os ajustes para que ele tenha o seguinte formato:
// Diferente do Rails, é preciso importar as libs.
import HotwireNative
import UIKit
// Rota padrão da nossa aplicação Ruby on Rails
let rootURL = URL(string: "http://localhost:3000")!
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?
// Precisamos instanciar um novo Navigator
private let navigator = Navigator()
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
// Sobrescreve o rootViewController da window pelo da navigator
window?.rootViewController = navigator.rootViewController
// A aplicação está configurada para usar a rota padrão do Rails.
navigator.route(rootURL)
}
}
Ao salvar o arquivo, o erro No such module HotwireNative
será exibido na linha 1. Isso ocorre porque o Hotwire Native
ainda não foi importado. Realize a importação agora seguindo estes passos...
Adicionando o Hotwire Native ao projeto
Siga a sequência abaixo para adicionar uma nova dependência ao projeto:
Menu: File >> Add Package Dependencies...
Uma tela semelhante a esta será exibida:
Copie o endereço do repositório Hotwire Native iOS no GitHub:
https://github.com/hotwired/hotwire-native-ios
Cole o endereço no campo de busca da tela de dependências, selecione o Hotwire Native iOS, clique em Add Package
e aguarde a conclusão da adição.
Concluído o processo, o erro no arquivo SceneDelegate
deverá desaparecer. Execute o projeto clicando em play ou utilizando o atalho Command + R
.
Resultado final do capítulo
A aplicação Rails está agora funcionando como um app iOS com Hotwire Native. Navegue para observar seu comportamento.