<?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: Sathya7032</title>
    <description>The latest articles on DEV Community by Sathya7032 (@sathya7032).</description>
    <link>https://dev.to/sathya7032</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%2F1306641%2Fc6df8ba6-01f9-4b7d-81d3-eaa0d16c2a00.jpeg</url>
      <title>DEV Community: Sathya7032</title>
      <link>https://dev.to/sathya7032</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sathya7032"/>
    <language>en</language>
    <item>
      <title>Why Some Packages Like Google Sign-In or Razorpay Don’t Work in Expo — And How to Fix It</title>
      <dc:creator>Sathya7032</dc:creator>
      <pubDate>Wed, 13 Aug 2025 06:17:06 +0000</pubDate>
      <link>https://dev.to/sathya7032/why-some-packages-like-google-sign-in-or-razorpay-dont-work-in-expo-and-how-to-fix-it-45bm</link>
      <guid>https://dev.to/sathya7032/why-some-packages-like-google-sign-in-or-razorpay-dont-work-in-expo-and-how-to-fix-it-45bm</guid>
      <description>&lt;p&gt;If you’re building an app with React Native using Expo, you may notice some packages — like &lt;strong&gt;Google Sign-In&lt;/strong&gt; or &lt;strong&gt;Razorpay&lt;/strong&gt; — don’t work in the default setup.&lt;/p&gt;

&lt;p&gt;This is normal. Let’s see why and how to fix it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Why They Don’t Work&lt;/strong&gt;&lt;br&gt;
Expo has two workflows:&lt;/p&gt;

&lt;p&gt;1.Managed Workflow (default)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Easy to start.&lt;/li&gt;
&lt;li&gt;No access to Android/iOS native code.&lt;/li&gt;
&lt;li&gt;You can only use features Expo already supports.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;2.Bare Workflow&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You get full native code access.&lt;/li&gt;
&lt;li&gt;You can install any React Native library.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Google Sign-In **and **Razorpay&lt;/strong&gt; require changes to native files like Android Gradle and iOS plist — which the Managed Workflow hides from you.&lt;/p&gt;



&lt;p&gt;*&lt;em&gt;2. How to Make Them Work *&lt;/em&gt;&lt;br&gt;
You have two main options.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Option 1: Use Expo EAS Build with Config Plugins&lt;/strong&gt;&lt;br&gt;
Step 1 — Install the package&lt;br&gt;
Example: Google Sign-In&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install @react-native-google-signin/google-signin
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Step 2 — Add its Config Plugin&lt;br&gt;
If the library has a config plugin, add it to app.json or app.config.js:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "expo": {
    "plugins": [
      "@react-native-google-signin/google-signin"
    ]
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Step 3 — Prebuild (generate native code)&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;Step 4 — Build with EAS&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx eas build -p android   # for Android
npx eas build -p ios       # for iOS
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;&lt;strong&gt;Option 2: Eject to Bare Workflow&lt;/strong&gt;&lt;br&gt;
Step 1 — Eject your Expo app&lt;/p&gt;

&lt;p&gt;npx expo eject&lt;br&gt;
This creates android/ and ios/ folders.&lt;/p&gt;

&lt;p&gt;Step 2 — Install the package&lt;br&gt;
Example: Razorpay&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install react-native-razorpay
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Step 3 — Install iOS pods (if on Mac)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd ios
pod install
cd ..
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Step 4 — Follow native setup instructions&lt;br&gt;
Open:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;android/ in Android Studio → add the Razorpay SDK settings in build.gradle.&lt;/li&gt;
&lt;li&gt;ios/ in Xcode → configure plist or frameworks as per library docs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Step 5 — Run the app&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx react-native run-android
npx react-native run-ios
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>reactnative</category>
      <category>android</category>
      <category>react</category>
      <category>development</category>
    </item>
    <item>
      <title>Understanding Variables in Java – The Basics Made Simple</title>
      <dc:creator>Sathya7032</dc:creator>
      <pubDate>Mon, 11 Aug 2025 07:21:11 +0000</pubDate>
      <link>https://dev.to/sathya7032/understanding-variables-in-java-the-basics-made-simple-4eae</link>
      <guid>https://dev.to/sathya7032/understanding-variables-in-java-the-basics-made-simple-4eae</guid>
      <description>&lt;p&gt;In Java, variables are like containers where you can store data. Think of them as labeled boxes — you give them a name, put something inside, and later you can take it out or even replace it with something new.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What can you do with variables?&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Store Data&lt;/strong&gt;&lt;br&gt;
You can keep values like numbers, text, or true/false in a variable.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int age = 25; // storing a number
String name = "John"; // storing text
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Change Data&lt;/strong&gt;&lt;br&gt;
Variables can hold different values during the program’s execution.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;age = 26; // changing the value of 'age'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Reuse Data&lt;/strong&gt;&lt;br&gt;
Instead of typing the same value again, you can use the variable.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;System.out.println("My age is " + age);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Perform Calculations&lt;/strong&gt;&lt;br&gt;
You can use variables in math operations.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int sum = age + 4;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Improve Readability&lt;/strong&gt;&lt;br&gt;
Using variables makes your code easier to understand.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;double pi = 3.14159; // easier to read than typing the number everywhere
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public class VariablesExample {
    public static void main(String[] args) {
        // Storing data
        int age = 25;
        String name = "John";
        double height = 5.9;
        boolean isStudent = true;

        // Using variables
        System.out.println("Name: " + name);
        System.out.println("Age: " + age);
        System.out.println("Height: " + height);
        System.out.println("Student: " + isStudent);

        // Changing data
        age = 26; // updating value
        System.out.println("Updated Age: " + age);

        // Calculations
        int yearsToRetire = 60 - age;
        System.out.println("Years to retire: " + yearsToRetire);
    }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>java</category>
      <category>corejava</category>
      <category>programming</category>
      <category>developers</category>
    </item>
    <item>
      <title>Why http://10.0.2.2 Works Instead of localhost in Android Emulator (React Native + Spring Boot)</title>
      <dc:creator>Sathya7032</dc:creator>
      <pubDate>Mon, 11 Aug 2025 06:59:47 +0000</pubDate>
      <link>https://dev.to/sathya7032/why-http10022-works-instead-of-localhost-in-android-emulator-react-native-spring-boot-519o</link>
      <guid>https://dev.to/sathya7032/why-http10022-works-instead-of-localhost-in-android-emulator-react-native-spring-boot-519o</guid>
      <description>&lt;p&gt;When I was connecting my React Native app (running in the Android emulator) to my Spring Boot backend on my computer, using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fetch("http://localhost:8080/api")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;…didn’t work. ❌&lt;br&gt;
But when I changed it to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fetch("http://10.0.2.2:8080/api")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;…it worked perfectly. ✅&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;localhost inside the emulator points to the emulator itself — not your computer.&lt;/li&gt;
&lt;li&gt;Your Spring Boot server is running on your computer, not inside the emulator.&lt;/li&gt;
&lt;li&gt;10.0.2.2 is a special IP address in the Android emulator that acts like “localhost of your computer”.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Think of it like this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;localhost → talks to the emulator&lt;br&gt;
10.0.2.2 → talks to your computer&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;When to Use It&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use 10.0.2.2 only for Android emulator.&lt;/li&gt;
&lt;li&gt;For iOS simulator, you can still use localhost.&lt;/li&gt;
&lt;li&gt;For real devices, use your computer’s local IP (e.g., 192.168.x.x).&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>reactnative</category>
      <category>react</category>
      <category>springboot</category>
      <category>mobile</category>
    </item>
    <item>
      <title>what is a POJO?</title>
      <dc:creator>Sathya7032</dc:creator>
      <pubDate>Mon, 11 Aug 2025 06:38:48 +0000</pubDate>
      <link>https://dev.to/sathya7032/what-is-a-pojo-4cj3</link>
      <guid>https://dev.to/sathya7032/what-is-a-pojo-4cj3</guid>
      <description>&lt;p&gt;POJO stands for Plain Old Java Object.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It’s just a normal Java class that:&lt;/li&gt;
&lt;li&gt;Stores data using fields (variables)&lt;/li&gt;
&lt;li&gt;Lets you get and set those values using methods (getters and setters)&lt;/li&gt;
&lt;li&gt;Does not depend on any special library, framework, or Java rules&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;`public class Employee {&lt;br&gt;
    private String name;&lt;br&gt;
    private int age;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Getter for name
public String getName() {
    return name;
}

// Setter for name
public void setName(String name) {
    this.name = name;
}

// Getter for age
public int getAge() {
    return age;
}

// Setter for age
public void setAge(int age) {
    this.age = age;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;br&gt;
`&lt;/p&gt;

&lt;p&gt;This Employee class is a POJO because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It’s just plain Java code.&lt;/li&gt;
&lt;li&gt;It’s not extending any special class.&lt;/li&gt;
&lt;li&gt;It’s not implementing any special interface.&lt;/li&gt;
&lt;li&gt;It’s not using any framework annotations or dependencies.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>java</category>
      <category>springboot</category>
      <category>whoishiring</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
