<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mobile dApp developer</title>
    <description>The latest articles on DEV Community by Mobile dApp developer (@abkgami).</description>
    <link>https://dev.to/abkgami</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3502291%2F2f87fd22-cf02-48b7-bfc2-6417b547eace.jpg</url>
      <title>DEV Community: Mobile dApp developer</title>
      <link>https://dev.to/abkgami</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/abkgami"/>
    <language>en</language>
    <item>
      <title>Solana in Your Pocket: Create a Mobile dApp with Wallet Login &amp; Token Transfers using React Native Expo</title>
      <dc:creator>Mobile dApp developer</dc:creator>
      <pubDate>Mon, 15 Sep 2025 23:18:55 +0000</pubDate>
      <link>https://dev.to/abkgami/solana-in-your-pocket-create-a-mobile-dapp-with-wallet-login-token-transfers-using-react-native-348o</link>
      <guid>https://dev.to/abkgami/solana-in-your-pocket-create-a-mobile-dapp-with-wallet-login-token-transfers-using-react-native-348o</guid>
      <description>&lt;p&gt;&lt;em&gt;"If you’ve ever wanted to put Solana in the palm of your hand, this tutorial is for you".&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;We’ll be building a decentralized mobile app (dApp) using React Native + Expo CLI&lt;/strong&gt;, where users can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Log in with their Solana wallet&lt;/li&gt;
&lt;li&gt;Receive and send SOL&lt;/li&gt;
&lt;li&gt;Sign messages&lt;/li&gt;
&lt;li&gt;View their wallet balance in real time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is to keep things practical and beginner-friendly, so even if you’re new to Solana dApp development using React Native, you’ll be able to follow along. &lt;strong&gt;By the end, you’ll have a working mobile dApp that runs directly on your physical device or virtual device using a development build generated locally or using eas&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Let’s dive in and start building Web3 experiences that actually fit in your pocket.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Prerequisites&lt;/u&gt;&lt;/strong&gt;: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://nodejs.org/en/download" rel="noopener noreferrer"&gt;node.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.android.com/studio#downloads" rel="noopener noreferrer"&gt;Android Studio&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Code editor &lt;a href="https://code.visualstudio.com/download" rel="noopener noreferrer"&gt;vscode&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Basic knowledge of &lt;a href="https://docs.expo.dev/get-started/introduction/" rel="noopener noreferrer"&gt;expo&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;1️⃣ &lt;u&gt;Project Setup&lt;/u&gt;: To create a new project, run the following command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm create solana-dapp@latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Select the solana mobile template&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flqogb5hxs9a3q6bsvwyd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flqogb5hxs9a3q6bsvwyd.png" alt="Vscode terminal" width="800" height="413"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Select any one of your choice; I'll be going with the &lt;em&gt;web3js-expo&lt;/em&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft9m2uiorqm7gpp4eh1k7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft9m2uiorqm7gpp4eh1k7.png" alt="web3js-expo" width="800" height="417"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After the template is done cloning; in your terminal, type:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd [project-name]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;install all packages&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;yarn install
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;2️⃣ &lt;u&gt;Generate development Build:&lt;/u&gt;&lt;br&gt;
There are two ways of generating a development build:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Using &lt;a href="https://docs.expo.dev/develop/development-builds/create-a-build/" rel="noopener noreferrer"&gt;eas&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Local build on your machine&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Using &lt;a href="https://docs.expo.dev/develop/development-builds/create-a-build/" rel="noopener noreferrer"&gt;&lt;strong&gt;eas&lt;/strong&gt;&lt;/a&gt; to generate a development build is the easiest way, but when using free tier on eas, there's limit to the number of builds you can generate monthly, and with time, your build waits in queue for up to 3 hours before building starts. So with this I'll be showing you how to generate development build locally, which takes a bit longer process than eas, but faster! &lt;br&gt;
&lt;em&gt;Building locally on your laptop can work if you are using either a virtual device from &lt;strong&gt;android studio&lt;/strong&gt; or your &lt;strong&gt;physical device&lt;/strong&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;To get started, open your project on your terminal, and type:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx expo install expo-dev-client
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next is to generate your native android folder, but before doing this , make whatever changes you want to make to the app settings in the app.json file, then type&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx expo prebuild
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now your android folder has been generated!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4kvez78pcomoj3manwe8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4kvez78pcomoj3manwe8.png" alt="Android Folder" width="348" height="1082"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Open your android studio, click &lt;strong&gt;&lt;em&gt;more options&lt;/em&gt;&lt;/strong&gt;, click &lt;strong&gt;&lt;em&gt;sdk manager&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd753roeis2rhrct06683.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd753roeis2rhrct06683.png" alt="Android Studio Image" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
Ensure the ticked sdk tools below are installed &lt;strong&gt;&lt;em&gt;(latest version)&lt;/em&gt;&lt;/strong&gt; on your android studio&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frhbxufg50v4ya54ne2r9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frhbxufg50v4ya54ne2r9.png" alt="Sdk Tools" width="800" height="588"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Create a Virtual device under the virtual device manager &lt;em&gt;&lt;strong&gt;(if you want to use virtual device to simulate your development build)&lt;/strong&gt;&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzprrs4vzkfk0myf91jdm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzprrs4vzkfk0myf91jdm.png" alt="Virtual device manager" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
If you are using your &lt;em&gt;&lt;strong&gt;physical device&lt;/strong&gt;&lt;/em&gt; instead, connect your phone to your laptop using USB device, and make sure you have android debugging enabled.&lt;/p&gt;

&lt;p&gt;Head over to your code editor, and check if you have your device connected &lt;em&gt;&lt;strong&gt;(this works for both physical and virtual device)&lt;/strong&gt;&lt;/em&gt;, open the terminal and type:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;adb devices
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The output should be similar to this: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ftp6hw7xjy8tquw0vhm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ftp6hw7xjy8tquw0vhm.png" alt="Adb Devices" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;Ensure your physical device is connected through out the process&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
Finally, in your terminal, type:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx expo run:android
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And watch it run, install to your device and open the application.&lt;/p&gt;

&lt;p&gt;And that’s it, you’ve just built a fully functional Solana mobile dApp with React Native and Expo. &lt;/p&gt;

&lt;p&gt;With the development client, you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Connect and authenticate with a Solana wallet&lt;/li&gt;
&lt;li&gt;View balances in real time&lt;/li&gt;
&lt;li&gt;Send and receive SOL&lt;/li&gt;
&lt;li&gt;Sign messages securely&lt;/li&gt;
&lt;li&gt;Run everything directly on a &lt;strong&gt;&lt;em&gt;physical device&lt;/em&gt;&lt;/strong&gt; or &lt;em&gt;&lt;strong&gt;virtual device&lt;/strong&gt;&lt;/em&gt;, using &lt;em&gt;&lt;strong&gt;eas&lt;/strong&gt;&lt;/em&gt; or &lt;em&gt;&lt;strong&gt;locally&lt;/strong&gt;&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is just the beginning. From here, you could extend your dApp with NFTs, token swaps, DeFi integrations, or even a full-fledged Web3 game. The building blocks are all in your hands.&lt;/p&gt;

&lt;p&gt;If this tutorial helped you, drop a ❤️, share it with your fellow builders, and let me know what feature you’d like me to cover next. Let’s keep pushing the limits of what’s possible with Web3 + mobile.&lt;/p&gt;

</description>
      <category>solana</category>
      <category>reactnative</category>
      <category>web3</category>
      <category>blockchain</category>
    </item>
  </channel>
</rss>
