Construindo um dApp Mobile
Integração React Native e Expo com @solana/kit e MWA.
Busque em todas as páginas da documentação
Integração React Native e Expo com @solana/kit e MWA.
npx create-solana-dapp@latest my-mobile-dapp
cd my-mobile-dapp && npx expo start --dev-clientQuando usar isso:
import { useCallback, useState } from "react";
import { Button, Text, View } from "react-native";
import { createSolanaRpc, address } from "@solana/kit";
import { transact } from "@solana-mobile/mobile-wallet-adapter-protocol-web3js";
const rpc = createSolanaRpc("https://api.devnet.solana.com");
export function App() {
const [addr, setAddr] = useState<string | null>(null);
const connect = useCallback(async () => {
await transact(async (wallet) => {
const auth = await wallet.authorize({
cluster: "devnet",
identity: { name: "Demo", uri: "https://example.com", icon: "icon.png" },
});
setAddr(auth.accounts[0].address);
});
}, []);
return (
<View>
<Button title="Connect" onPress={connect} />
{addr && <Text>{addr}</Text>}
</View>
);
}O que isso demonstra:
| Alternativa | Use Quando | Não Use Quando |
|---|---|---|
| PWA mobile web | Zero instalação | UX nativa MWA |
| SDK SMS Flutter | Time Dart | Shop React |
Providers em client layout.tsx; páginas misturam componentes server + client.
Env server somente para keypairs; NEXT_PUBLIC_ para URLs RPC.
Todos os exemplos usam @solana/kit, não web3.js v1.
Assinatura somente em componentes client.
Revalide leituras on-chain com cuidado - chain é fonte da verdade.
Endpoints HTTPS retornando JSON Solana Actions.
App React Native separado com MWA.
Surfpool para integração; mock RPC em testes unitários.
Arquivos env separados e IDs de programa.
Decodifique logs de simulação para mensagens voltadas ao usuário.
Versões da stack: Esta página foi escrita para Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0 e LiteSVM 0.6.x.
Revisado por Chris St. John·Última atualização: 19 de jul. de 2026