Meu primeiro plugin Expo 🎉
Sempre tive como meta aprender a criar plugins no React Native. Já tinha estudado sobre como funcionavam os native modules, mas ainda faltava aquele mergulho pra entender como o Expo lida com plugins por baixo do capô.
E esse dia chegou! Criei meu primeiro plugin: expo-gradle-jvmargs
O que esse plugin faz?
Ele basicamente ajusta os JVM args no Gradle, permitindo otimizar a forma como o Android compila projetos React Native/Expo. Pode parecer simples, mas já abre portas para personalizar o comportamento nativo sem precisar ejetar o app.
O aprendizado no caminho
O processo foi um baita "mind opener". Algumas coisas que aprendi:
- Plugins do Expo são config-plugins, que permitem modificar arquivos nativos (Gradle, Info.plist, AndroidManifest, etc) de forma declarativa.
- A mágica acontece no
app.json/app.config.js, onde você pode incluir o plugin e deixar o Expo cuidar de gerar a parte nativa. - Existe todo um ecossistema em volta disso: config-plugins, Continuous Native Generation, e até debugging de plugins.
Por que isso é importante?
- Você evita ejetar o projeto só por pequenas customizações nativas.
- Dá pra compartilhar soluções como pacotes open source, ajudando outros devs que enfrentam os mesmos problemas.
- E, claro, entender esse fluxo te dá mais controle sobre o mundo hÃbrido (JS + nativo).
Links úteis pra quem quiser explorar:
- Introdução a Config Plugins: docs.expo.dev/config-plugins/introduction
- Tutorial com Native Modules + Plugins: docs.expo.dev/modules/config-plugin-and-native-module-tutorial
- Debugging: docs.expo.dev/config-plugins/development-and-debugging
Foi massa alcançar essa meta de estudo e finalmente entender o "por trás das cortinas" do Expo.
Se você também quer criar o seu, recomendo demais dar uma olhada nos links e brincar com plugins simples primeiro.
E aÃ, quem já mexeu com plugins do Expo? Bora trocar ideia nos comentários!