✝️ Minha Jornada Criando Webapps Cristãos (Parte 4)

 Estamos na parte 4 já, e implementei muitas inovações como a leitura das missões, a mensagem de boas-vindas e a resposta gerada pelo Oráculo no site — agora em voz de IA da Azure, que tem um limite grátis muito generoso, graças a Deus! 🙌🔊

Também comecei a criar o aplicativo para celular com Capacitor + Ionic, que segundo as IAs são ótimas opções para publicar nas lojas da Apple e Google. Porém, transformar Blade (PHP do Laravel) para Ionic não foi tão fácil. As IAs não conseguem entregar uma reprodução perfeita apenas pedindo:

“Ok, me dê a versão Ionic disso.”

📌 Explicação rápida: O que é Blade (Laravel)?

  • Blade é o sistema de templates do Laravel.

  • Ele permite criar páginas HTML usando comandos como @if, @foreach, @include.

  • É renderizado no servidor, antes de chegar ao navegador.

📌 Por que não dá para converter Blade → Ionic automaticamente?

  • Ionic usa componentes próprios (ion-button, ion-card, etc.).

  • A lógica visual é diferente.

  • A IA não entende toda a lógica interna do Blade.

  • Por isso a conversão nunca fica perfeita.


📱 WebView: a solução mais prática

Depois de pesquisar melhor, entendi que criar o app em WebView seria o mais prático. O .apk é criado em minutos, e o app fica como se fosse o website, mas:

  • sem barra de endereços

  • sem abrir em navegadores

  • com aparência de aplicativo mesmo

📌 O que é um WebView?

É basicamente um “mini navegador” dentro do app, mas sem interface de navegador. Ele carrega o seu site diretamente como se fosse um aplicativo nativo.

🔄 Vantagem gigante do WebView

As mudanças que eu fizer no webapp (creio.eu) vão automaticamente aparecer no app WebView. Isso é diferente de aplicativos Ionic ou nativos, que precisam ser recompilados.

📌 Diferença explicada:

Ionic ou Nativo

  • precisa recompilar o app

  • precisa gerar novo .apk ou .aab

  • precisa reenviar para a loja

  • o usuário precisa atualizar

WebView

  • atualizou o site → atualizou o app

  • sem recompilar

  • sem reenviar

  • sem atualizar no celular

Grandes aplicativos fazem isso (ou fizeram no começo), e não é tão mal aceito nas lojas — pelo menos no Google Play.

Sim, muitos grandes aplicativos já usaram (ou ainda usam) WebView, especialmente no começo.

E sim, o Google Play aceita tranquilamente apps WebView, desde que sigam as políticas.

Exemplos reais de apps que já usaram WebView:

  • Facebook (versões antigas usavam WebView para abrir páginas internas)

  • Instagram (muito conteúdo interno era WebView)

  • Twitter/X (várias telas eram WebView)

  • Amazon (muitas partes são WebView até hoje)

  • AliExpress, Shopee, Mercado Livre — usam WebView em partes do app

  • Aplicativos de bancos — vários usam WebView para áreas específicas

Ou seja: não é gambiarra, é uma prática comum na indústria.

🏪 E sobre aceitação nas lojas?

Google Play

  • É a loja mais flexível.

  • Aceita WebView sem problema.

  • O que importa é:

    • não ser só um “atalho para o site”,

    • ter alguma funcionalidade real,

    • seguir as políticas de privacidade.

Se o seu app tem funções reais (como login, leitura de missões, oráculo, áudio, etc.), está totalmente dentro do permitido.

Apple App Store

  • É mais rígida.

  • Apps que são apenas WebView podem ser rejeitados.

  • Mas apps WebView com funcionalidades extras (push, login, integração com hardware, etc.) são aceitos.

📱 Como usar o creio.eu como um aplicativo no iPhone (via Safari)

Você pode transformar o creio.eu em um “app” no seu iPhone usando o Safari. O processo é simples e não precisa instalar nada da App Store. Veja como fazer:

1️⃣ Abra o Safari e acesse o site

  • No iPhone, abra o navegador Safari

  • Digite: https://creio.eu

  • Aguarde o site carregar completamente 📌 É importante ser no Safari, pois só ele permite adicionar à tela inicial.

2️⃣ Toque no botão de Compartilhar

  • Na parte inferior da tela, toque no ícone Compartilhar (o quadrado com uma seta apontando para cima)

  • Isso abrirá um menu com várias opções

3️⃣ Escolha “Adicionar à Tela de Início”

  • Role o menu para baixo

  • Toque em Adicionar à Tela de Início 📌 Essa é a função que transforma o site em um atalho com aparência de aplicativo.

4️⃣ Confirme o nome do atalho

  • Você pode manter o nome sugerido (creio.eu)

  • Ou personalizar, como: Cosmos Scriptura, Creio App, etc.

  • Toque em Adicionar no canto superior direito

5️⃣ Pronto! O “app” aparece na tela inicial

  • Volte para a tela inicial do iPhone

  • O ícone do creio.eu estará lá, igual a um aplicativo

  • Toque nele para abrir o site em tela cheia, sem barra de endereços ✨ Agora você pode usar como se fosse um app oficial!

🏪 Publicação nas lojas

Atualmente estou esperando criar meu número D-U-N-S para publicar na loja da Samsung. Mas, se eu não conseguir, em todo o caso vou juntar dinheiro (25 dólares) para publicar na Play Store também.

📥 AppView pronto para download

O app WebView já está pronto! Vou deixar o link para ser baixado e instalado em qualquer celular.

📌 Mas é preciso dar permissão, pois como a assinatura é feita por mim e não por uma loja do Google, aparelhos Android pedem essa autorização extra.

☁️ Migração da Azure para Oracle Cloud

Outra novidade é que estou começando a migração da Azure para a Oracle Cloud, e os detalhes vocês podem ler aqui também.

🐳 Docker, Atualizações e Paz de Espírito no Servidor

Ok, e se precisarmos atualizar PHP, Laravel, etc...? É tudo mais fácil no Docker. Podemos ter certeza que não vai quebrar a aplicação?

A resposta é: sim — e essa é a maior “paz de espírito” que o Docker traz. Com ele, você tem quase 100% de certeza. Aqui está o porquê:

1️⃣ Teste Idêntico (Local vs Produção)

Sabe aquele erro clássico:

“No meu computador funciona, mas no servidor não.”

Com Docker isso simplesmente morre.

Se você quiser atualizar o PHP do 8.2 para o 8.3, basta mudar uma linha no seu Dockerfile local.

  • Se o site rodou liso no seu PC

  • Ele vai rodar liso na Oracle

Porque o container que você testou é exatamente o mesmo que vai para produção.

2️⃣ Rollback Instantâneo (Voltar Atrás)

Imagine que você atualizou o Laravel, fez o deploy, e 10 minutos depois descobriu um bug crítico.

❌ Sem Docker:

  • Você teria que tentar desfazer mudanças de código

  • Reinstalar pacotes

  • Torcer para o ambiente não ter ficado “sujo”

✅ Com Docker:

Você simplesmente diz ao servidor:

“Pare essa versão nova e volte a rodar a imagem da versão anterior.”

Em segundos, o site volta a ser exatamente o que era antes do erro.

3️⃣ Atualizações sem Medo 😌

No ambiente tradicional, atualizar o PHP do servidor afeta todos os sites que rodam nele.

No Docker, você pode atualizar o PHP de um site por vez.

  • Se um quebrar, os outros continuam funcionando normalmente.

  • Cada app tem seu próprio ambiente isolado.

🔧 Como faremos as atualizações

  1. Mudamos a versão no arquivo de configuração (Dockerfile ou docker-compose.yml)

  2. Testamos localmente

  3. Fazemos o push para o GitHub

  4. O servidor baixa a nova imagem e substitui a antiga


Plano de Migração: Azure para Oracle Cloud (OCI)

Este documento descreve o passo a passo para utilizar a Oracle Cloud como ambiente de Staging (Testes) e, posteriormente, realizar a migração definitiva da plataforma Cosmos Scriptura.

Estratégia de Coexistência

Manteremos a Azure como ambiente de Produção principal enquanto configuramos a Oracle como Staging. Isso permite testar a performance e a estabilidade sem afetar os usuários atuais.

1. Mapeamento de Recursos

RecursoAzure (Produção Atual)Oracle Cloud (Staging / Futura Produção)
ComputeApp Service (Linux)VM Instance (Ubuntu/Oracle Linux)
Banco de DadosPostgreSQL Flexible ServerPostgreSQL (Docker na VM)
CI/CDGitHub Actions (Produção)GitHub Actions (Novo Workflow para Staging)
Domíniocreio.eu / *.azurewebsites.netstaging.creio.eu (ou IP direto)

2. Passo a Passo da Migração

Fase 1: Configuração da Infraestrutura OCI

  1. Rede (VCN): Criar uma Virtual Cloud Network com sub-redes públicas.
  2. Segurança: Configurar Security Lists para permitir tráfego nas portas 80 (HTTP), 443 (HTTPS) e 22 (SSH).
  3. Instância Compute: Criar uma instância (recomendado: Ampere A1.Flex com 4 OCPUs e 24GB RAM, se disponível, ou E2.1.Micro).

Fase 2: Preparação do Servidor (VM)

  1. Instalação do Docker e Docker Compose.
  2. Configuração do Nginx como Proxy Reverso.
  3. Instalação de Certificados SSL (Certbot/Let's Encrypt).

Fase 3: Migração do Banco de Dados

  1. Exportar o banco de dados PostgreSQL da Azure (pg_dump).
  2. Importar os dados para a nova instância PostgreSQL na Oracle Cloud.
  3. Validar a integridade dos dados.

Fase 4: Deploy em Staging (Oracle)

  1. Criar novo workflow .github/workflows/oci-staging.yml.
  2. Configurar Secrets específicos para a Oracle (OCI_IP, OCI_SSH_KEY).
  3. Realizar o primeiro deploy no ambiente de testes.

Fase 5: Testes e Validação

  1. Validar conexão com o banco de dados.
  2. Testar performance das instâncias ARM (Ampere).
  3. Verificar se o "Oráculo" e os serviços de IA funcionam corretamente no novo ambiente.

Fase 6: Switch Final (Azure -> Oracle)

  1. Colocar o site da Azure em modo manutenção.
  2. Sincronizar o banco de dados final.
  3. Alterar os registros DNS definitivos.


Comentários