SoftX SolutionPlan  •  Build  •  Launch  •  Grow

App Development SOP Checklist ✓

Follow these steps for every app project
Use this checklist for AI or Manual development
Build
Better
Apps
Together
🚀
</>
▶
A
!These processes and rules are mandatory. Every step below must be followed for every app project, without exception.
1

Check Package Name

✓

Must check package name before use to avoid conflicts or duplication.

🤖
Application ID
com.yourapp.app ✓
2

Organize Project Assets

Keep all assets such as code, credentials, store details and other important files organized in a separate folder for each app.

MyApp
  • </>Source Code
  • 🔒Credentials
  • ▤Store Details
  • ▣Assets (Images, Icons)
  • ▤Documents
3

Confirm Firebase Requirement

Before starting, confirm whether Firebase is required or not.
If required, ask for the Firebase account.

🔥
❓ Firebase Required?
✓Yes
✕No
4

Add Ad SDKs (Always)

Always add Google AdMob SDK and Facebook Ads SDK both in the app while setting up.

◔Google AdMob
SDK
+
∞Facebook Ads
SDK
5

Use Test Ad IDs

Must use test ad IDs while developing the app.

Test Ad
This is a test ad.
Test Ad
6

Add Website URL

Always add website URL while deploying the app on stores.

● ● ●
🌐https://yourwebsite.com✓
7

Add Privacy Policy

Always add privacy policy while deploying the app on stores.

🛡️
Privacy Policy
8

App Specific Screenshots

Screenshots must be app specific rather than creating fancy or generic screenshots.

✓
● Your App

Your app screen
✕
Generic / Fancy Template
9

Ask for Git Access

Always ask for git access once the app is ready to deploy.

⑂Git Access Required✓
10

Share APK via URL

Whenever sharing APK for testing, always give a URL to download rather than sending the APK file directly.

11

APK Naming with Date

APK file must be named with date so we can version it easily.

APK
Suggested Format:
appname_2025-10-08.apk ✓
emagify_2025-10-08.apk
app_v1_2025-10-08.apk
myapp_2025-10-08.apk
12

Follow Store Guidelines

While creating assets for Apple or Android store, must follow the official guidelines of respective stores.

▶Google Play
Guidelines
ⒶApp Store
Guidelines
13

Prepare Permission Justification

Whenever adding any permission to the app, must prepare its justification for Play Store using AI.

☑ ▬
☑ ▬
→
AI
→
▶Permission Justification ✓
14

Complete Every Play Store Publishing Step

In the Play Store publishing process, every step must be completed properly with each new release or update. Whenever any permission or feature is added or removed, the store listing must be updated too, without forgetting. Keep notes while developing so you can recheck these things while publishing the release.

✅ Complete all publishing steps🔐 Permission added/removed → update listing✨ Feature added/removed → update listing📝 Keep dev notes for release recheck

ATest Ad IDs Reference (Google Sheet / Excel)

Maintain a Google Sheet or Excel file with all test ad IDs, their format and placement so we can easily update or create live ad IDs.
Ad NetworkPlatformAd TypeTest Ad IDFormatPlacement Example
Google AdMobAndroidApp Openca-app-pub-3940256099942544/3419835294App OpenApp launch
Google AdMobAndroidBannerca-app-pub-3940256099942544/6300978111BannerHome screen (Top/Bottom)
Google AdMobAndroidInterstitialca-app-pub-3940256099942544/1033173712InterstitialBetween screens
Google AdMobAndroidRewardedca-app-pub-3940256099942544/5224354917RewardedAfter action
Google AdMobAndroidNativeca-app-pub-3940256099942544/2247696110NativeFeed / List
Facebook AdsAndroidBannerIMG_16_9_APP_INSTALL#YOUR_PLACEMENT_IDBannerHome screen (Top/Bottom)
Facebook AdsAndroidInterstitialIMG_16_9_APP_INSTALL#YOUR_PLACEMENT_IDInterstitialBetween screens
Facebook AdsAndroidRewardedIMG_16_9_APP_INSTALL#YOUR_PLACEMENT_IDRewardedAfter action

BUse Single Config File for Ad IDs

Keep all ad IDs in one config file rather than using them in multiple screens so it's easy to update.
ad_config.dart (Example)dart
class AdConfig {
  // Google AdMob Test IDs
  static const String admobAppOpenId =
    'ca-app-pub-3940256099942544/3419835294';
  static const String admobBannerId =
    'ca-app-pub-3940256099942544/6300978111';
  static const String admobInterstitialId =
    'ca-app-pub-3940256099942544/1033173712';
  static const String admobRewardedId =
    'ca-app-pub-3940256099942544/5224354917';
  // Facebook Test IDs
  static const String fbBannerId =
    'IMG_16_9_APP_INSTALL#YOUR_PLACEMENT_ID';
  static const String fbInterstitialId =
    'IMG_16_9_APP_INSTALL#YOUR_PLACEMENT_ID';
  static const String fbRewardedId =
    'IMG_16_9_APP_INSTALL#YOUR_PLACEMENT_ID';
}