<?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: Manas Singh</title>
    <description>The latest articles on DEV Community by Manas Singh (@manas_singh19).</description>
    <link>https://dev.to/manas_singh19</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%2F468261%2Fdac44e04-16d4-4857-91aa-5f27f574876e.jpg</url>
      <title>DEV Community: Manas Singh</title>
      <link>https://dev.to/manas_singh19</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/manas_singh19"/>
    <language>en</language>
    <item>
      <title>Mobile Application Publishing Guide</title>
      <dc:creator>Manas Singh</dc:creator>
      <pubDate>Sun, 08 Mar 2026 15:07:05 +0000</pubDate>
      <link>https://dev.to/manas_singh19/mobile-application-publishing-guide-llj</link>
      <guid>https://dev.to/manas_singh19/mobile-application-publishing-guide-llj</guid>
      <description>&lt;p&gt;Google Play Store — Complete Step-by-Step Reference&lt;/p&gt;

&lt;p&gt;Part 1: Setup Your Application&lt;br&gt;
Before releasing your app, you must complete all required setup steps in the Google Play Console. Navigate to your app dashboard and click "Setup Your App" to begin.&lt;/p&gt;

&lt;p&gt;Step 1 — Privacy Policy&lt;br&gt;
You will need live website URLs for the following policy pages:&lt;br&gt;
Privacy Policy&lt;br&gt;
Refund Policy&lt;br&gt;
Terms of Service / About Terms&lt;/p&gt;

&lt;p&gt;💡 Tip: Make sure all URLs are publicly accessible and hosted on a live domain before proceeding.&lt;/p&gt;

&lt;p&gt;Step 2 — App Access&lt;br&gt;
Choose one of the two options below based on how your app handles user access:&lt;/p&gt;

&lt;p&gt;Option A — No Access Restrictions&lt;br&gt;
Select "All functionality in my app is available without any access restrictions" if your app is completely free to use and does not require users to log in.&lt;/p&gt;

&lt;p&gt;Option B — Restricted Access (Login Required)&lt;br&gt;
Select "All or some functionality in my app is restricted" if your app requires users to log in. Then follow these sub-steps:&lt;/p&gt;

&lt;p&gt;Click on "Instructions" and provide a username and password for the Google reviewer to use for testing.&lt;br&gt;
Enter a meaningful name for the test account.&lt;br&gt;
In the text area below, enter clear instructions explaining how to access and use the provided demo credentials.&lt;br&gt;
Check the box: "No other information is required to access my app."&lt;br&gt;
Click "Add" and then "Save."&lt;/p&gt;

&lt;p&gt;Step 3 — Ads&lt;br&gt;
If your app does not display any ads, select: "No, my app does not contain ads."&lt;br&gt;
If your app does display ads, select the appropriate option and carefully follow the additional steps presented.&lt;/p&gt;

&lt;p&gt;Step 4 — Content Rating&lt;br&gt;
Content rating is divided into three sub-sections:&lt;/p&gt;

&lt;p&gt;4A — Category&lt;br&gt;
Enter an email address that will be used to contact you regarding your content rating. Note that this email may be shared with rating authorities and IARC.&lt;br&gt;
Select your app category — if your app is not a game and not a social or communication application, choose: "All Other App Types."&lt;/p&gt;

&lt;p&gt;4B — Questionnaire&lt;br&gt;
Fill in the questionnaire with details specific to your application's content and functionality.&lt;/p&gt;

&lt;p&gt;4C — Summary&lt;br&gt;
Review all the details you have entered. This section displays a summary of your content rating selections.&lt;/p&gt;

&lt;p&gt;Step 5 — Target Audience&lt;br&gt;
This section contains multiple sub-sections. The required fields will vary depending on the target age groups you select.&lt;/p&gt;

&lt;p&gt;5A: Target Age Groups — Select all applicable age ranges.&lt;br&gt;
5B: App Details — Provide additional context about your application.&lt;br&gt;
5C: Ads — Specify ad details relevant to your target audience.&lt;br&gt;
5D: Store Presence — Define how your app appears in the store.&lt;br&gt;
5E: Summary — Review all selections before saving.&lt;/p&gt;

&lt;p&gt;Step 6 — Data Safety&lt;br&gt;
Data Safety is one of the most important sections. It contains multiple sub-sections that must be completed according to your specific application's requirements.&lt;/p&gt;

&lt;p&gt;💡 Tip: In the Data Collection section, read every option carefully before making a selection.&lt;/p&gt;

&lt;p&gt;💡 Tip: In the OAuth checkbox section, provide a URL where users can request account deletion — a Google Form URL is acceptable for this purpose.&lt;/p&gt;

&lt;p&gt;💡 Tip: In the Data Safety section, clearly specify every type of data you collect from users.&lt;/p&gt;

&lt;p&gt;⚠️ Important: After completing the data clarification fields, you will only see a "Discard" button — do NOT click it. Instead, click the three-dot menu (⋮) next to that button, and from the pop-up, select "Save." Once saved, navigate back using the dashboard's back button.&lt;/p&gt;

&lt;p&gt;Step 7 — Government Apps&lt;br&gt;
Select "No" if your application is not a government application.&lt;/p&gt;

&lt;p&gt;Step 8 — Financial Features&lt;br&gt;
If your app provides financial features, select the appropriate option. Otherwise, scroll down and select "My app doesn't provide any financial feature," then click the "Next" button.&lt;/p&gt;

&lt;p&gt;⚠️ Important: After completing this section, do NOT click "Discard." Click the three-dot menu (⋮) next to that button and choose "Save" from the pop-up. Then navigate back using the dashboard's back button. Once you return, a new section will open automatically requiring additional details such as Advertising ID and Health Apps settings. These options vary based on your previous selections.&lt;/p&gt;

&lt;p&gt;💡 Tip: In the Advertising ID section, ensure that every available option is checked.&lt;/p&gt;

&lt;p&gt;Step 9 — Health&lt;br&gt;
If your app provides any health-related features or activities, select the relevant options. Otherwise, scroll down and select "My app does not have any health features."&lt;/p&gt;

&lt;p&gt;Once all steps are completed, the back arrow button will be hidden. Click "All Apps" and re-select your application from the list.&lt;/p&gt;

&lt;p&gt;Final Setup — Store Configuration&lt;br&gt;
After completing all setup steps, the following sections will become available on your dashboard:&lt;/p&gt;

&lt;p&gt;App Organization&lt;br&gt;
Under "Manage How Your App Is Organized and Presented," select the appropriate category for your app. In the "Tags" section, choose relevant tags that best describe your application.&lt;/p&gt;

&lt;p&gt;Store Settings&lt;br&gt;
Enter your store listing contact details:&lt;br&gt;
Email Address (this will be publicly visible on your Play Store listing)&lt;br&gt;
Phone Number&lt;br&gt;
Website URL&lt;/p&gt;

&lt;p&gt;💡 Tip: Ensure the "External Marketing" checkbox is checked in your Store Settings.&lt;/p&gt;

&lt;p&gt;Store Listing&lt;br&gt;
Complete your full store listing with the following details:&lt;br&gt;
App Name&lt;br&gt;
Short Description&lt;br&gt;
Long Description&lt;br&gt;
App Icon — must be exactly 512 × 512 pixels&lt;br&gt;
Feature Graphic — must be exactly 1,024 × 500 pixels&lt;br&gt;
Promo Video — optionally add a YouTube video link&lt;br&gt;
Phone Screenshots — upload a minimum of 6 to 8 screenshots of your application&lt;/p&gt;

&lt;p&gt;Part 2: Release Your App&lt;/p&gt;

&lt;p&gt;💡 Tip: Do not click "Test Your App" unless you specifically need to conduct beta testing with a large group of users.&lt;/p&gt;

&lt;p&gt;Step 1 — Create and Publish a Release&lt;/p&gt;

&lt;p&gt;1A — Select Countries and Regions&lt;br&gt;
Click "Select Countries and Regions," add all desired countries and regions, then click the "Create New Release" button in the top-right corner.&lt;/p&gt;

&lt;p&gt;1B — Upload Your AAB File&lt;br&gt;
Upload your signed Android App Bundle (.aab) file.&lt;/p&gt;

&lt;p&gt;1C — Release Name&lt;br&gt;
The release name will be automatically populated once your AAB file has been successfully uploaded.&lt;/p&gt;

&lt;p&gt;1D — Release Notes&lt;br&gt;
Describe the new features and changes included in this release.&lt;/p&gt;

&lt;p&gt;Click "Save" — a pop-up will appear asking: "Go to Publishing Overview?" Click "Go to Overview." After the progress check completes, click the "Send [X] Changes for Review" button in the top-right corner.&lt;/p&gt;

&lt;p&gt;Part 3: Generating a Keystore File &amp;amp; Signed AAB&lt;/p&gt;

&lt;p&gt;⚠️ Important: The keystore file is mandatory for generating a signed APK or AAB. Store this file securely — once your app is published to Google Play using a specific keystore, you must use the same file for every future update. Using a different keystore will permanently prevent you from updating your application.&lt;/p&gt;

&lt;p&gt;Method 1 — Via Android Studio GUI (Recommended)&lt;/p&gt;

&lt;p&gt;Step 1: Open Your Project&lt;br&gt;
Open your React Native project's android folder in Android Studio.&lt;/p&gt;

&lt;p&gt;Step 2: Navigate to Generate Signed Bundle&lt;br&gt;
Go to: Build → Generate Signed Bundle / APK&lt;/p&gt;

&lt;p&gt;Step 3: Select AAB Format&lt;br&gt;
Select "Android App Bundle" and click "Next."&lt;/p&gt;

&lt;p&gt;Step 4: Create a New Keystore&lt;br&gt;
Click the "Create new..." button next to the "Key store path" field.&lt;/p&gt;

&lt;p&gt;Step 5: Fill in Keystore Details&lt;br&gt;
Complete all fields in the form as shown below:&lt;/p&gt;

&lt;p&gt;Key store path:        /your-project/android/app/my-upload-key.keystore&lt;br&gt;
Password:              your_strong_password&lt;br&gt;
Confirm Password:      your_strong_password&lt;/p&gt;

&lt;p&gt;── Key Section ──────────────────────────────────&lt;br&gt;
Alias:                 my-key-alias&lt;br&gt;
Password:              your_key_password&lt;br&gt;
Confirm Password:      your_key_password&lt;br&gt;
Validity (years):      25&lt;/p&gt;

&lt;p&gt;── Certificate Section ──────────────────────────&lt;br&gt;
First &amp;amp; Last Name:     John Doe&lt;br&gt;
Organizational Unit:   Engineering&lt;br&gt;
Organization:          Your Company Name&lt;br&gt;
City:                  New York&lt;br&gt;
State / Province:      NY&lt;br&gt;
Country Code (XX):     US&lt;/p&gt;

&lt;p&gt;Click OK → Next → Finish to generate your keystore and signed AAB file.&lt;/p&gt;

&lt;p&gt;Method 2 — Via Terminal&lt;/p&gt;

&lt;p&gt;Required File 1: Keystore File&lt;br&gt;
If you do not already have a keystore, generate one using the following command:&lt;/p&gt;

&lt;p&gt;keytool -genkey -v -keystore my-upload-key.keystore \&lt;br&gt;
  -alias my-key-alias \&lt;br&gt;
  -keyalg RSA \&lt;br&gt;
  -keysize 2048 \&lt;br&gt;
  -validity 10000&lt;/p&gt;

&lt;p&gt;Place the generated file at:  android/app/my-upload-key.keystore&lt;/p&gt;

&lt;p&gt;⚠️ Important: Never commit your keystore file to Git. Add it to your .gitignore file immediately.&lt;/p&gt;

&lt;p&gt;Required File 2: gradle.properties — Add Signing Config&lt;br&gt;
File location: android/gradle.properties&lt;/p&gt;

&lt;p&gt;MYAPP_UPLOAD_STORE_FILE=my-upload-key.keystore&lt;br&gt;
MYAPP_UPLOAD_KEY_ALIAS=my-key-alias&lt;br&gt;
MYAPP_UPLOAD_STORE_PASSWORD=your_store_password&lt;br&gt;
MYAPP_UPLOAD_KEY_PASSWORD=your_key_password&lt;/p&gt;

&lt;p&gt;Required File 3: build.gradle — Reference the Signing Config&lt;br&gt;
File location: android/app/build.gradle&lt;/p&gt;

&lt;p&gt;android {&lt;br&gt;
    ...&lt;br&gt;
    signingConfigs {&lt;br&gt;
        release {&lt;br&gt;
            if (project.hasProperty('MYAPP_UPLOAD_STORE_FILE')) {&lt;br&gt;
                storeFile file(MYAPP_UPLOAD_STORE_FILE)&lt;br&gt;
                storePassword MYAPP_UPLOAD_STORE_PASSWORD&lt;br&gt;
                keyAlias MYAPP_UPLOAD_KEY_ALIAS&lt;br&gt;
                keyPassword MYAPP_UPLOAD_KEY_PASSWORD&lt;br&gt;
            }&lt;br&gt;
        }&lt;br&gt;
    }&lt;br&gt;
    buildTypes {&lt;br&gt;
        release {&lt;br&gt;
            signingConfig signingConfigs.release&lt;br&gt;
            minifyEnabled enableProguardInReleaseBuilds&lt;br&gt;
            proguardFiles getDefaultProguardFile("proguard-android.txt"),&lt;br&gt;
                         "proguard-rules.pro"&lt;br&gt;
        }&lt;br&gt;
    }&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;Required File 4: google-services.json (Firebase only)&lt;br&gt;
If your app uses Firebase, place the configuration file at: android/app/google-services.json&lt;br&gt;
Download this file from your Firebase project console.&lt;/p&gt;

&lt;p&gt;Generate the AAB File&lt;/p&gt;

&lt;p&gt;cd android&lt;br&gt;
./gradlew bundleRelease&lt;/p&gt;

&lt;p&gt;Output location:&lt;br&gt;
android/app/build/outputs/bundle/release/app-release.aab&lt;/p&gt;

&lt;p&gt;Version Management&lt;br&gt;
In android/app/build.gradle, increment the following values before each new release:&lt;/p&gt;

&lt;p&gt;defaultConfig {&lt;br&gt;
    applicationId  "com.yourapp"&lt;br&gt;
    versionCode    2          // Increment by 1 for each release&lt;br&gt;
    versionName    "1.1.0"    // Semantic version shown to users&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;Pre-Upload Checklist&lt;br&gt;
Verify all items below before uploading your release to Google Play:&lt;/p&gt;

&lt;p&gt;✓&lt;br&gt;
Item&lt;br&gt;
File / Location&lt;br&gt;
☐&lt;br&gt;
Keystore file&lt;br&gt;
android/app/*.keystore&lt;br&gt;
☐&lt;br&gt;
Signing config&lt;br&gt;
android/gradle.properties&lt;br&gt;
☐&lt;br&gt;
App version updated (versionCode &amp;amp; versionName)&lt;br&gt;
android/app/build.gradle&lt;br&gt;
☐&lt;br&gt;
App icons (all required sizes)&lt;br&gt;
android/app/src/main/res/&lt;br&gt;
☐&lt;br&gt;
App name set&lt;br&gt;
android/app/src/main/res/values/strings.xml&lt;br&gt;
☐&lt;br&gt;
Permissions declared&lt;br&gt;
AndroidManifest.xml&lt;br&gt;
☐&lt;br&gt;
google-services.json (Firebase only)&lt;br&gt;
android/app/&lt;/p&gt;

&lt;p&gt;Common Errors &amp;amp; Fixes&lt;/p&gt;

&lt;p&gt;Error&lt;br&gt;
Fix&lt;br&gt;
Upload certificate mismatch&lt;br&gt;
Use the same keystore file as previous releases.&lt;br&gt;
versionCode already used&lt;br&gt;
Increment the versionCode in build.gradle before rebuilding.&lt;br&gt;
APK not signed&lt;br&gt;
Verify the signingConfigs block in build.gradle is correct.&lt;br&gt;
Missing permissions&lt;br&gt;
Check and update AndroidManifest.xml with the required permissions.&lt;/p&gt;

&lt;p&gt;Android Folder Structure&lt;/p&gt;

&lt;p&gt;android/&lt;br&gt;
├── app/&lt;br&gt;
│   ├── build.gradle            ← signing configuration&lt;br&gt;
│   ├── my-upload-key.keystore  ← your keystore file&lt;br&gt;
│   ├── google-services.json    ← Firebase config (if applicable)&lt;br&gt;
│   └── src/main/&lt;br&gt;
│       ├── AndroidManifest.xml&lt;br&gt;
│       └── res/                ← app icons &amp;amp; resources&lt;br&gt;
└── gradle.properties           ← keystore credentials&lt;/p&gt;

&lt;p&gt;⚠️ Important: The most common reason uploads fail is a missing or misconfigured keystore. Ensure that the credentials in gradle.properties exactly match what you used when generating the .keystore file, then rebuild your AAB using: ./gradlew bundleRelease&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>programming</category>
      <category>javascript</category>
    </item>
    <item>
      <title>More Devs, Faster Code</title>
      <dc:creator>Manas Singh</dc:creator>
      <pubDate>Sat, 15 Nov 2025 11:49:41 +0000</pubDate>
      <link>https://dev.to/manas_singh19/more-devs-faster-code-33lk</link>
      <guid>https://dev.to/manas_singh19/more-devs-faster-code-33lk</guid>
      <description>&lt;p&gt;The Myth of "&lt;strong&gt;More Devs, Faster Code&lt;/strong&gt;": Why Doubling Down Doesn't Always Halve the Timeline**&lt;/p&gt;

&lt;p&gt;Picture this: Your project's humming along at a steady two-week pace. Tempted to turbocharge it to one by rallying an army of extra developers? We've all been there—it's the tech world's equivalent of wishing on a shooting star for deadline miracles.&lt;/p&gt;

&lt;p&gt;But hold up: Software isn't a factory floor stamping out identical parts. It's a symphony of sparks—brainstorming wild ideas, crafting elegant code, ironing out tests that catch the curveballs, rolling out updates without a hitch, and circling back for those "aha" refinements.&lt;/p&gt;

&lt;p&gt;Extra devs? They can be game-changers, spreading the workload and sparking fresh perspectives. Yet, the plot twist: They rarely hit the fast-forward button. &lt;/p&gt;

&lt;p&gt;Instead, you might unlock a Pandora's box of endless stand-ups that drag on forever, code clashes that turn Git into a battlefield, and those frantic all-nighters chasing ghosts in the machine.&lt;/p&gt;

&lt;p&gt;Here's the raw deal—those two-week estimates? They're not etched-in-stone decrees. They're battle-tested ballparks, factoring in the chaos of evolving specs, hidden gotchas, and human quirks. Crank up the pressure, and boom: A cascade of sneaky bugs, teams running on fumes, and a tech stack groaning under layers of hasty shortcuts.&lt;/p&gt;

&lt;p&gt;True excellence? It blooms in deliberate space—the kind that lets creativity breathe, not gasp. Rush it, and you're trading polish for peril.&lt;/p&gt;

&lt;p&gt;Bottom line: More firepower fuels progress, but it's no shortcut serum. Push too far, and your victory lap becomes a comedy of errors.&lt;/p&gt;

&lt;p&gt;Ever chased that "quick win" only to trip over your own shoelaces? Spill the beans in the comments—what's your go-to fix for timeline temptations? Let's crowdsource some sanity.&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%2Fnxqzugc4vowa0jbu4zoh.jpg" 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%2Fnxqzugc4vowa0jbu4zoh.jpg" alt=" " width="784" height="1168"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>programming</category>
      <category>career</category>
    </item>
    <item>
      <title>Unleashing the Power of AI: My Journey of Development 🤖🚀</title>
      <dc:creator>Manas Singh</dc:creator>
      <pubDate>Sat, 03 Jun 2023 00:10:36 +0000</pubDate>
      <link>https://dev.to/manas_singh19/unleashing-the-power-of-ai-my-journey-of-development-1pk9</link>
      <guid>https://dev.to/manas_singh19/unleashing-the-power-of-ai-my-journey-of-development-1pk9</guid>
      <description>&lt;p&gt;🔮 Have you ever experienced a magical "aha" moment that changed your entire perspective? I had one, and it all began with a single click... 👀&lt;/p&gt;

&lt;p&gt;Last year, I stumbled upon an AI-powered development tool that promised to revolutionize my coding experience. Skeptical yet intrigued, I decided to give it a try. Little did I know that this would be the beginning of an exhilarating adventure! 🌟&lt;/p&gt;

&lt;p&gt;From the moment I dived into the world of AI-driven development, I felt like a wizard casting spells of innovation and efficiency. The tool's ability to generate code snippets, predict errors, and enhance my productivity left me in awe. It was as if my fingertips had been imbued with a magical touch. 🧙‍♂️&lt;/p&gt;

&lt;p&gt;But what truly amazed me was the empathetic touch it brought to my work. It adapted to my coding style, understood my preferences, and anticipated my needs like a trusted companion. It felt like I had an AI-powered co-pilot who not only accelerated my progress but also understood the essence of my creativity. 🎨&lt;/p&gt;

&lt;p&gt;Through this transformative experience, I realized that AI was not just a buzzword; it was an enabler of limitless possibilities. It pushed the boundaries of my own potential, helping me deliver exceptional solutions faster than ever before. 💡&lt;/p&gt;

&lt;p&gt;Today, I invite you to embark on this awe-inspiring journey with me. Let's unleash the power of AI in our development process and unlock a world of endless opportunities. Visit my profile to discover more about my exciting projects and how AI can shape the future of our industry. 🌐&lt;/p&gt;

&lt;p&gt;✨ Together, let's make magic happen. Like and share if you're ready to embrace AI and transform the way we create! Let's connect and discuss how we can collaborate to shape the future. Comment below if you've had your own magical AI experience! 👇✨&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>ai</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
