Background: بنیادی باتیں، iOS اور Android پر ایپ کا پس منظر میں کام کرنا

مصنف: IT Sectr اشاعت: 2026-03-03 مطالعے کا وقت: 10 منٹ

Background ایپ لائف سائیکل کی ایک حالت ہے جس میں یہ چلتا رہتا ہے لیکن اسکرین پر ظاہر نہیں ہوتا۔ ہم iOS اور Android پر پس منظر کے کام کی بنیادی باتیں بیان کرتے ہیں: حدود، ٹائم آؤٹ، beginBackgroundTask، WorkManager اور Service کے ذریعے پس منظر کے کام، نیز Background کی صحیح ہینڈلنگ کے لیے بہترین طریقے۔

اہم نکات

  • Background — ایپ صارف کو نظر نہیں آتی لیکن محدود وقت کے لیے کوڈ چلا سکتی ہے
  • iOS پس منظر کا کام — beginBackgroundTask(expirationHandler:) کام ختم کرنے کے لیے 30 سیکنڈ تک دیتا ہے
  • Android Service — لمبے پس منظر کے کاموں کے لیے اطلاع کے ساتھ Foreground Service
  • WorkManager — عملدرآمد کی ضمانت کے ساتھ Android پر پس منظر کے کاموں کے لیے تجویز کردہ API
  • حدود — بیٹری بچانے کے لیے دونوں پلیٹ فارم پس منظر کے کام کے قوانین سخت کر رہے ہیں

Background — پس منظر کی حالت کی بنیادی باتیں

Background ایپ کی وہ حالت ہے جس میں یہ آپریٹنگ سسٹم میں موجود رہتا ہے، کوڈ چلاتا ہے اور وسائل استعمال کرتا ہے، لیکن ڈیوائس اسکرین پر ظاہر نہیں ہوتا۔ صارف ہوم اسکرین پر، کسی دوسری ایپ میں ہے یا ڈیوائس کی اسکرین لاک ہے۔ iOS پر، Background Inactive کے بعد آتا ہے — منتقلی کا سلسلہ: Active → Inactive → Background۔ Android پر، onStop Activity کے Background میں منتقلی کا اشارہ دیتا ہے۔

دونوں پلیٹ فارم پس منظر کے کام پر سخت پابندیاں لگاتے ہیں۔ iOS Background میں داخل ہونے کے بعد کوڈ چلانے کے لیے ایک محدود ونڈو (عام طور پر 30 سیکنڈ) فراہم کرتا ہے، جس کے بعد ایپ Suspended میں منتقل ہو جاتی ہے۔ Android زیادہ لچکدار ہے: نظر آنے والی اطلاع کے ساتھ Foreground Service غیر معینہ مدت تک چل سکتی ہے، لیکن عام Background Service چند منٹوں تک محدود ہے۔ ڈویلپر کا بنیادی کام حالت کو صحیح طریقے سے محفوظ کرنا اور سسٹم کے پس منظر کے کام APIs کے ذریعے کام جاری رکھنے کا شیڈول بنانا ہے۔

سسٹم میموری کم ہونے پر کسی بھی وقت پس منظر کی ایپ کو ختم کر سکتا ہے۔ ختم ہونے پر، تمام غیر محفوظ کردہ ڈیٹا ضائع ہو جاتا ہے۔ لہذا applicationDidEnterBackground (iOS) یا onStop (Android) میں حالت محفوظ کرنا انتہائی اہم ہے۔ ختم ہونے کے بعد، اگلا لانچ Not Running سے کولڈ سٹارٹ کے ساتھ شروع ہوتا ہے اور محفوظ کردہ حالت بحال کرتا ہے۔

Background بمقابلہ Suspended

Background اور Suspended کے درمیان فرق کرنا ضروری ہے۔ Background — ایپ فعال طور پر کوڈ چلا رہی ہے۔ Suspended — ایپ میموری میں ہے لیکن کوڈ نہیں چلا رہی — یہ منجمد ہے۔ iOS پر، ایپ پس منظر کے کام مکمل کرنے کے بعد Background سے Suspended میں جاتی ہے۔ Android میں Suspended نہیں ہے — عمل یا تو موجود ہے (Background سمیت) یا ختم ہو چکا ہے (Not Running)۔ تاہم، Android LMK (Low Memory Killer) کے ذریعے تھریڈ کی عملدرآمد روک سکتا ہے۔

خصوصیتiOS BackgroundAndroid Background
کوڈ چلتا ہےہاں، 30 سیکنڈ تکہاں، API پر منحصر
UI نظر آتا ہےنہیںنہیں
ڈیفالٹ ٹائم آؤٹ~30 سیکنڈ (beginBackgroundTask)کئی منٹ (Service)
لا محدود کامصرف خصوصی زمرے (آڈیو، VoIP، نیویگیشن)اطلاع کے ساتھ Foreground Service
عملدرآمد کی ضمانتنہیں — سسٹم کسی بھی وقت ختم کر سکتا ہےWorkManager عملدرآمد کی ضمانت دیتا ہے
اجازت درکارہاں — Info.plist میں capabilitiesہاں — FOREGROUND_SERVICE اجازت
اگلی حالتSuspended → Not RunningNot Running (یا دوبارہ شروع)

iOS پر Background: Swift، beginBackgroundTask اور BGTaskScheduler

iOS پر، Background کو ڈیلیگیٹ طریقہ applicationDidEnterBackground کے ذریعے ہینڈل کیا جاتا ہے۔ اس طریقہ میں، ڈویلپر کو صارف کی حالت محفوظ کرنی چاہیے، وسائل خالی کرنے چاہیے اور پس منظر کے کام مکمل کرنے چاہیے۔ Background میں داخل ہونے کے بعد کوڈ چلانے کے لیے، beginBackgroundTask(expirationHandler:) استعمال کیا جاتا ہے — ایک API جو سسٹم سے اضافی وقت (عام طور پر 30 سیکنڈ) کی درخواست کرتی ہے۔ اگر کام اس وقت میں مکمل نہیں ہوتا، تو expirationHandler کال کیا جاتا ہے، اور ایپ کو زبردستی Suspended میں منتقل کر دیا جاتا ہے۔

iOS 13 کے ساتھ، Apple نے BGTaskScheduler متعارف کرایا — پس منظر کے کاموں کو شیڈول کرنے کے لیے ایک جدید API۔ beginBackgroundTask کے برعکس، جو پس منظر میں جانے کے بعد صرف ختم کرنے کا وقت دیتا ہے، BGTaskScheduler مستقبل میں کاموں کی عملدرآمد کو شیڈول کرنے کی اجازت دیتا ہے — مثال کے طور پر، گھنٹے میں ایک بار مواد اپ ڈیٹ کرنا یا رات کو تجزیہ اپ لوڈ کرنا۔ BGTaskScheduler نئے منصوبوں کے لیے تجویز کردہ طریقہ ہے، کیونکہ یہ بیٹری کے لحاظ سے زیادہ موثر ہے۔

swift
import UIKit
import BackgroundTasks

@main
class AppDelegate: UIResponder, UIApplicationDelegate {

    var backgroundTaskID: UIBackgroundTaskIdentifier = .invalid

    // ایپ پس منظر میں چلی گئی — پس منظر کا کام شروع کر رہے ہیں
    func applicationDidEnterBackground(_ application: UIApplication) {
        saveAppState()
        startBackgroundTask()
    }

    private func startBackgroundTask() {
        backgroundTaskID = UIApplication.shared.beginBackgroundTask { [weak self] in
            // وقت ختم — زبردستی ختم کر رہے ہیں
            self?.endBackgroundTask()
        }

        // پس منظر کے کام کی نقل (سرور پر ڈیٹا محفوظ کرنا)
        DispatchQueue.global().async { [weak self] in
            uploadAnalyticsData()
            self?.endBackgroundTask()
        }
    }

    private func endBackgroundTask() {
        guard backgroundTaskID != .invalid else { return }
        UIApplication.shared.endBackgroundTask(backgroundTaskID)
        backgroundTaskID = .invalid
    }

    // BGTaskScheduler رجسٹریشن
    func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
        BGTaskScheduler.shared.register(
            forTaskWithIdentifier: "com.example.refresh",
            using: nil
        ) { task in
            handleAppRefresh(task: task as! BGAppRefreshTask)
        }
        return true
    }

    func scheduleAppRefresh() {
        let request = BGAppRefreshTaskRequest(identifier: "com.example.refresh")
        request.earliestBeginDate = Date(timeIntervalSinceNow: 3600)
        try? BGTaskScheduler.shared.submit(request)
    }

    func handleAppRefresh(task: BGAppRefreshTask) {
        scheduleAppRefresh()
        task.expirationHandler = { task.setTaskCompleted(success: false) }
        fetchLatestData { result in
            task.setTaskCompleted(success: result)
        }
    }
}

کوڈ iOS پر مکمل Background پروسیسنگ دکھاتا ہے۔ applicationDidEnterBackground ٹائم آؤٹ اور expirationHandler کے ساتھ beginBackgroundTask کے ذریعے ایک پس منظر کا کام شروع کرتا ہے۔ اسی وقت، BGTaskScheduler کو متواتر مواد کی اپ ڈیٹ کے لیے رجسٹر کیا جاتا ہے۔ beginBackgroundTask فوری بندش کے کاموں کے لیے استعمال ہوتا ہے، BGTaskScheduler طویل مدتی منصوبہ بندی کے لیے استعمال ہوتا ہے۔ دونوں APIs کو کام کے شناخت کنندگان کے مناسب انتظام کی ضرورت ہوتی ہے۔

Android پر Background: Kotlin، Service، WorkManager

Android پر، Background کو کئی APIs کے ذریعے منظم کیا جاتا ہے۔ روایتی Service پس منظر میں کوڈ چلانے کی اجازت دیتی ہے، لیکن Android 8+ (API 26) سے، Background Service محدود ہے: سسٹم ایپ کے پس منظر میں جانے کے چند منٹ بعد اسے ختم کر دیتا ہے۔ مستقل اطلاع کے ساتھ Foreground Service غیر معینہ مدت تک چل سکتی ہے۔ WorkManager ڈیوائس ریبوٹ کے بعد بھی عملدرآمد کی ضمانت کے ساتھ پس منظر کے کاموں کے لیے تجویز کردہ حل ہے۔

Android، iOS کے برعکس، طویل عرصے تک چلنے والے پس منظر کے عمل کو سپورٹ کرتا ہے۔ Foreground Service ان کاموں کے لیے استعمال ہوتی ہے جو صارف کو دیکھنے چاہئیں — موسیقی چلانا، نیویگیشن، ورزش کی ٹریکنگ۔ JobScheduler اور WorkManager ان کاموں کے لیے استعمال ہوتے ہیں جو ملتوی کیے جا سکتے ہیں: ڈیٹا سنکرونائزیشن، لاگ اپ لوڈ، کیش اپ ڈیٹ۔ بنیادی فرق: Android شرائط (Wi-Fi، چارجنگ، ڈیوائس غیر فعال) کے ساتھ کام شیڈول کرنے کی اجازت دیتا ہے — جو بیٹری اور ٹریفک بچاتا ہے۔

kotlin
import android.app.Service
import android.content.Intent
import android.os.IBinder
import androidx.work.*

// 1. طویل پس منظر کے کام کے لیے Foreground Service
class SyncService : Service() {

    override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
        val notification = createNotification()
        startForeground(NOTIFICATION_ID, notification)
        performBackgroundWork()
        return START_STICKY
    }

    private fun performBackgroundWork() {
        Thread {
            // سرور کے ساتھ ڈیٹا سنکرونائزیشن
            syncDataToServer()
            stopForeground(STOP_FOREGROUND_REMOVE)
            stopSelf()
        }.start()
    }

    override fun onBind(intent: Intent?): IBinder? = null
}

// 2. ملتوی پس منظر کے کاموں کے لیے WorkManager
class DataSyncWorker(
    private val context: Context,
    private val params: WorkerParameters
) : CoroutineWorker(context, params) {

    override suspend fun doWork(): Result {
        return try {
            // سرور پر تجزیہ اپ لوڈ کرنا
            uploadAnalytics()
            Result.success()
        } catch (e: Exception) {
            if (runAttemptCount < 3) Result.retry() else Result.failure()
        }
    }
}

// WorkManager کام کی شیڈولنگ
fun scheduleBackgroundSync(context: Context) {
    val constraints = Constraints.Builder()
        .setRequiredNetworkType(NetworkType.CONNECTED)
        .setRequiresBatteryNotLow(true)
        .build()

    val request = OneTimeWorkRequestBuilder<DataSyncWorker>()
        .setConstraints(constraints)
        .setBackoffCriteria(BackoffPolicy.EXPONENTIAL, 30, TimeUnit.SECONDS)
        .build()

    WorkManager.getInstance(context).enqueue(request)
}

کوڈ Android پر پس منظر کے کام کے دو طریقے دکھاتا ہے۔ SyncService — فوری اور طویل پس منظر کے کام کے لیے اطلاع کے ساتھ Foreground Service۔ DataSyncWorker — شرائط (Wi-Fi، چارجنگ) کے ساتھ ملتوی کاموں کے لیے WorkManager۔ WorkManager ڈیوائس ریبوٹ کے بعد بھی عملدرآمد کی ضمانت دیتا ہے اور دوبارہ کوششوں کے لیے ایکسپونینشل بیک آف سپورٹ کرتا ہے۔ Foreground Service کو سٹیٹس بار میں مستقل اطلاع کی ضرورت ہوتی ہے۔

iOS اور Android پر پس منظر کے کام کی حدود

دونوں موبائل پلیٹ فارم مسلسل پس منظر کے کام کے قوانین سخت کر رہے ہیں۔ iOS پر، OS کی ہر نئی نسل پس منظر میں عملدرآمد کا وقت کم کرتی ہے اور نئی پابندیاں شامل کرتی ہے۔ Android پر، Google تیزی سے سخت پاور سیونگ موڈ (Doze، App Standby) متعارف کرا رہا ہے۔ ڈویلپرز کو موجودہ حدود سے آگاہ رہنا چاہیے تاکہ ایپ سسٹم کے ذریعے قبل از وقت ختم نہ ہو۔

iOS پر، iOS 13 سے شروع ہو کر، سسٹم ان ایپس کے لیے پس منظر کے کام غیر فعال کر دیتا ہے جو پس منظر کے وقت کا غلط استعمال کرتی ہیں۔ ہر ایپ صارف کے رویے کی بنیاد پر مخصوص حدود حاصل کرتی ہے۔ BGTaskScheduler بہترین وقت پر عملدرآمد کا شیڈول بناتا ہے — مثال کے طور پر، جب ڈیوائس Wi-Fi سے منسلک ہو اور چارج ہو رہی ہو۔ جو ایپس BGTaskScheduler کو صحیح طریقے سے استعمال کرتی ہیں انہیں زیادہ پس منظر کا وقت ملتا ہے۔

Android پر، Android 9 (API 28) سے شروع ہو کر، پس منظر کا کام Doze موڈ سے محدود ہے، جو ڈیوائس کے غیر فعال ہونے پر فعال ہوتا ہے۔ Doze میں ایپس پس منظر کے کام نہیں کر سکتیں، نیٹ ورک منقطع ہو جاتا ہے، JobScheduler اور WorkManager Doze سے باہر نکلنے تک کام ملتوی کر دیتے ہیں۔ Foreground Service Doze کو نظرانداز کرنے کا واحد طریقہ ہے، لیکن غلط استعمال صارف کے ذریعے ایپ کے بلاک ہونے اور اجازتوں کی منسوخی کا باعث بنتا ہے۔

حدودiOSAndroid
پس منظر کے کام کا ٹائم آؤٹ~30 سیکنڈ (beginBackgroundTask)کئی منٹ (JobScheduler)
لا محدود پس منظرآڈیو، VoIP، نیویگیشن، BluetoothForeground Service + اطلاع
پاور سیونگLow Power Mode — پس منظر کے کام غیر فعالDoze، App Standby، بیٹری آپٹیمائزیشن
شیڈولنگBGTaskScheduler (iOS 13+)WorkManager (Android Jetpack)
ریبوٹ کے بعدصرف push اطلاعWorkManager کام محفوظ رکھتا ہے
زیادہ سے زیادہ عملدرآمد کا وقت~30 منٹ (آڈیو)لا محدود (Foreground Service)

پس منظر کے کام کے لیے بہترین طریقے

پہلا اصول — پس منظر میں وسائل کی کھپت کم سے کم کریں۔ زیادہ تر پس منظر کے کام اس وقت ملتوی کیے جا سکتے ہیں جب ڈیوائس چارج ہو رہی ہو اور Wi-Fi سے منسلک ہو۔ شرائط کے ساتھ کام شیڈول کرنے کے لیے BGTaskScheduler (iOS) اور WorkManager (Android) استعمال کریں۔ پس منظر میں بھاری حساب کتاب نہ چلائیں — اس سے بیٹری ختم ہوتی ہے اور CPU سست ہو جاتا ہے۔

دوسرا اصول — beginBackgroundTask کے لیے ہمیشہ expirationHandler متعین کریں۔ اگر ایپ مقررہ وقت میں کام مکمل نہیں کرتی، تو سسٹم اسے زبردستی Suspended میں منتقل کرے گا یا ختم کر دے گا۔ ExpirationHandler ڈیٹا محفوظ کرنے اور کام صحیح طریقے سے ختم کرنے کا آخری موقع ہے۔ Android پر، WorkManager میں setForegroundAsync استعمال کریں اگر زیادہ وقت درکار ہو تو عام کام کو پیش منظر میں تبدیل کرنے کے لیے۔

تیسرا اصول — شروع کرنے سے پہلے پس منظر کے کام کی پابندیاں چیک کریں۔ iOS پر، باقی وقت چیک کرنے کے لیے UIApplication.shared.backgroundTimeRemaining استعمال کریں۔ Android پر، ActivityManager.isBackgroundRestricted() چیک کریں — اگر true ہے، تو ایپ پس منظر کے کام نہیں چلا سکتی، اور آپ کو صارف کو ترتیبات میں پابندیاں ہٹانے کا مشورہ دینا چاہیے۔ یہ خاص طور پر اہم پس منظر کے افعال والی ایپس کے لیے اہم ہے — الارم، کیلنڈر، سنکرونائزیشن۔

چوتھا اصول — پس منظر کے کاموں کو حقیقی ڈیوائس پر آزمائیں۔ سمیلیٹر اور ایمولیٹر حقیقی پس منظر کے کام کی پابندیوں کو دوبارہ پیش نہیں کرتے۔ iOS پر، Xcode میں Debug → Simulate Background Fetch استعمال کریں۔ Android پر، ریبوٹ کے بعد WorkManager کی جانچ کے لیے adb shell am broadcast -a android.intent.action.ACTION_BOOT_COMPLETED استعمال کریں۔ کم بیٹری والی ڈیوائس پر حقیقی ٹیسٹ زیادہ تر پس منظر کے کام کے مسائل ظاہر کرتے ہیں۔

swift
import UIKit

final class BackgroundTaskManager {
    static let shared = BackgroundTaskManager()
    private var tasks: [String: UIBackgroundTaskIdentifier] = [:]

    func startTask(name: String, expiration: @escaping () -> Void) {
        let remaining = UIApplication.shared.backgroundTimeRemaining
        print("پس منظر میں باقی وقت: \(remaining) سیکنڈ")

        let task = UIApplication.shared.beginBackgroundTask { [weak self] in
            print("کام کے لیے وقت ختم: \(name)")
            expiration()
            self?.endTask(name: name)
        }

        tasks[name] = task
    }

    func endTask(name: String) {
        guard let task = tasks.removeValue(forKey: name),
              task != .invalid
        else { return }
        UIApplication.shared.endBackgroundTask(task)
    }
}

کوڈ ایک پس منظر کے کام مینیجر دکھاتا ہے جو باقی وقت کو ٹریک کرتا ہے اور شناخت کنندگان کا انتظام کرتا ہے۔ backgroundTimeRemaining زبردستی ختم ہونے سے پہلے سیکنڈز کی تعداد لوٹاتا ہے — اگر قدر لامحدود ہے، تو ایپ بغیر پابندی کے چل رہی ہے (آڈیو، نیویگیشن)۔ مینیجر مختلف ناموں کے ساتھ متعدد پس منظر کے کام شروع کرنے اور ہر ایک کو صحیح طریقے سے مکمل کرنے کی اجازت دیتا ہے۔ یہ طریقہ پس منظر کے کام کے رساو کو روکتا ہے اور یقینی بناتا ہے کہ سسٹم بند نہ کیے گئے کاموں کی وجہ سے ایپ کو ختم نہ کرے۔

اکثر پوچھے گئے سوالات

کیا iOS ایپ ہمیشہ کے لیے پس منظر میں چل سکتی ہے؟

ہاں، محدود تعداد میں زمروں کے لیے: آڈیو (AVAudioSession زمرہ .playback)، VoIP (PushKit)، نیویگیشن (allowsBackgroundLocationUpdates کے ساتھ CLLocationManager)، Bluetooth (سنٹرل بیک گراؤنڈ موڈ)، پس منظر اپ ڈیٹ (BGTaskScheduler)۔ باقی سب کے لیے — زیادہ سے زیادہ 30 سیکنڈ۔ iOS 16+ میں، Apple نے اجازت شدہ زمروں کے لیے بھی تقاضے سخت کر دیے ہیں۔

beginBackgroundTask BGTaskScheduler سے کیسے مختلف ہے؟

beginBackgroundTask پس منظر میں جانے کے بعد ایپ کی زندگی تقریباً 30 سیکنڈ بڑھانے کے لیے ایک سنکرونس API ہے۔ اسے applicationDidEnterBackground میں کال کیا جاتا ہے۔ BGTaskScheduler سسٹم ٹرگرز (وقت، مقام، مواد اپ ڈیٹ) کے ذریعے مستقبل میں کام شیڈول کرنے کے لیے ایک ایسنکرونس API ہے۔ BGTaskScheduler جدید طریقہ ہے، جسے Apple نے iOS 13+ کے لیے تجویز کیا ہے۔

Android میری Background Service کو کیوں ختم کرتا ہے؟

Android 8 (API 26) سے شروع ہو کر، Background Service ایپ کے پس منظر میں جانے کے چند منٹ بعد ختم ہو جاتی ہے۔ حل: لمبے کاموں کے لیے اطلاع کے ساتھ Foreground Service یا ملتوی کاموں کے لیے WorkManager استعمال کریں۔ ترتیبات میں اپنی ایپ کے لیے بیٹری آپٹیمائزیشن چیک کریں — اگر یہ آپٹیمائزڈ ہے، تو سسٹم پس منظر کے کاموں کو ملتوی یا منسوخ کر سکتا ہے۔

iOS سمیلیٹر پر Background کیسے ٹیسٹ کریں؟

ہوم اسکرین پر جانے کے لیے Cmd+Shift+H دبائیں۔ Xcode میں، Debug → Simulate Background Fetch استعمال کریں۔ beginBackgroundTask چیک کرنے کے لیے، کنسول (Shift+Cmd+C) کھولیں اور e UIApplication.shared.backgroundTimeRemaining کال کریں۔ Xcode 15+ میں، سمیلیٹر کے Diagnostics ٹیب میں Background Execution سکرپٹ دستیاب ہے۔

Android پر process death کیا ہے؟

Process Death وسائل کی کمی یا پس منظر میں غیرفعالیت پر سسٹم کے ذریعے Android پروسیس کا ختم ہونا ہے۔ iOS کے برعکس، Android میں Suspended نہیں ہے — پروسیس یا تو زندہ ہے (پس منظر میں ہو سکتا ہے) یا مردہ ہے (Not Running)۔ Process Death OS کا معمول کا رویہ ہے، اور ایپ کو اس کے بعد SavedStateHandle، onSaveInstanceState یا DataStore کے ذریعے حالت بحال کرنی چاہیے۔

خلاصہ

  • Background — ایپ اسکرین پر نظر نہیں آتی لیکن کوڈ چلاتی ہے، Suspended (منجمد) کے برعکس
  • iOS — beginBackgroundTask (30 سیکنڈ تک) اور مستقبل کے کاموں کی منصوبہ بندی کے لیے BGTaskScheduler
  • Android — لمبے کاموں کے لیے Foreground Service، ضمانت کے ساتھ ملتوی کاموں کے لیے WorkManager
  • حدود — دونوں پلیٹ فارم قوانین سخت کر رہے ہیں: Doze، Low Power Mode، App Standby
  • محفوظ کرنا — applicationDidEnterBackground اور onStop Suspended/Not Running سے پہلے آخری موقع
  • شیڈولنگ — BGTaskScheduler اور WorkManager شرائط کے ساتھ کام کرتے ہیں (Wi-Fi، چارجنگ، وقت)
  • Foreground Service — دونوں پلیٹ فارم پر لا محدود پس منظر کے کام کا واحد طریقہ

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں