موبائل ڈیولپمنٹ میں لائف سائیکل: یہ کیا ہے، کیا مراحل ہیں اور کیسے کام کرتا ہے

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

موبائل ایپ کا لائف سائیکل اس بات کا تعین کرتا ہے کہ ایپ لانچ ہونے، چھوٹا ہونے، پس منظر سے واپس آنے اور بند ہونے پر کیسے برتاؤ کرتی ہے۔ اس مضمون میں ہم App Lifecycle (iOS)، Activity Lifecycle (Android)، Fragment Lifecycle، ViewController Lifecycle اور LifecycleOwner کا جائزہ لیں گے۔ ان عملوں کو سمجھنا میموری لیک، ڈیٹا کی کمی اور ایپ کے غلط رویے کو روکنے کے لیے بہت ضروری ہے۔ مزید تفصیلات کے لیے سرکاری Android Activity Lifecycle دستاویزات دیکھیں۔

اہم نکات

  • Activity Lifecycle (Android) میں 7 طریقے شامل ہیں: onCreate → onStart → onResume → onPause → onStop → onDestroy + onRestart
  • ViewController Lifecycle (iOS) ترتیب سے کہلاتا ہے: viewDidLoad → viewWillAppear → viewDidAppear → viewWillDisappear → viewDidDisappear
  • iOS App Lifecycle میں 5 حالتیں ہیں: Not Running, Inactive, Active, Background, Suspended
  • Fragment Lifecycle Activity سے منسلک ہے لیکن اس کے اپنے طریقے ہیں: onAttach, onCreateView, onViewCreated
  • LifecycleOwner (Android) LifecycleObserver کے ذریعے لائف سائیکل کے واقعات کو سبسکرائب کرنے کی اجازت دیتا ہے

ایپ لائف سائیکل (App Lifecycle)

انفرادی اسکرینوں کے لائف سائیکل میں جانے سے پہلے، پوری ایپ کے لائف سائیکل کو سمجھنا ضروری ہے۔ iOS میں، ایپ پانچ حالتوں سے گزرتی ہے: Not Running (چل نہیں رہی)، Inactive (پس منظر میں، واقعات وصول نہیں کرتی)، Active (فعال)، Background (پس منظر میں، کوڈ چل رہا ہے) اور Suspended (پس منظر میں، کوڈ معطل)۔ ان حالتوں کا انتظام AppDelegate میں applicationDidFinishLaunching، applicationDidBecomeActive، applicationWillResignActive، applicationDidEnterBackground اور applicationWillTerminate طریقوں کے ذریعے کیا جاتا ہے۔

Android میں، اس کا ہم منصب Application Lifecycle ہے، جسے Application.ActivityLifecycleCallbacks انٹرفیس کے ذریعے ٹریک کیا جاتا ہے۔ تاہم، Android ایک Activity — ایک انفرادی ایپ اسکرین — کے لائف سائیکل پر زیادہ توجہ دیتا ہے۔ اس کی وجہ یہ ہے کہ Android ایپ متعدد Activities پر مشتمل ہو سکتی ہے، ہر ایک کا اپنا چکر ہوتا ہے۔

Android میں جدید طریقہ lifecycle-process لائبریری سے ProcessLifecycleOwner استعمال کرنا ہے۔ یہ کسی مخصوص Activity سے منسلک ہوئے بغیر پورے عمل کی حالت کو ٹریک کرنے کی اجازت دیتا ہے۔ iOS میں، ایپ کی حالت کو ٹریک کرنے کے لیے UISceneDelegate (iOS 13 سے) یا AppDelegate استعمال کیا جاتا ہے۔ SceneDelegate iPad پر متعدد ونڈوز (ملٹی ونڈو) کو ہینڈل کرتا ہے۔ App Lifecycle کو سمجھنا IT Sectr کے لیے پس منظر کی مطابقت پذیری، سٹریمنگ اور VoIP کالوں والی ایپس تیار کرتے وقت خاص طور پر اہم ہے۔

Android میں Activity Lifecycle

Activity Android ایپ کا بنیادی جزو ہے، جو ایک اسکرین کی نمائندگی کرتا ہے۔ Activity کا ایک واضح طور پر متعین لائف سائیکل ہوتا ہے جسے آپریٹنگ سسٹم صارف کے اعمال اور نظام کے واقعات (اسکرین گھماؤ، آنے والی کال، کم میموری) کے جواب میں منظم کرتا ہے۔

طریقہ وضاحت کیا کریں
onCreateActivity بننے پر ایک بار کہلاتا ہےUI ابتدا، findViewById، ViewModel سیٹ اپ
onStartActivity نظر آنے لگتی ہےاینیمیشن شروع کریں، BroadCastReceiver رجسٹر کریں
onResumeActivity ان پٹ فوکس حاصل کرتی ہےکیمرہ، سینسر، اینیمیشن شروع کریں
onPauseActivity فوکس کھو دیتی ہے (جزوی طور پر نظر آتی ہے)مسودے محفوظ کریں، اینیمیشن روکیں
onStopActivity نظر نہیں آتیوسائل جاری کریں، اپ ڈیٹ روکیں
onDestroyActivity ختم ہو جاتی ہےتمام حوالہ جات صاف کریں، LiveData سے ان سبسکرائب کریں
onRestartonStop کے بعد onStart سے پہلے کہلاتا ہےدوبارہ ابتدا

اہم: عارضی حالت محفوظ کرنے کے لیے onSaveInstanceState onStop سے پہلے کہلاتا ہے۔ بحالی onCreate میں Bundle savedInstanceState کے ذریعے یا ViewModel میں SavedStateHandle کے ذریعے ہوتی ہے۔ لائف سائیکل کی مناسب ہینڈلنگ کے بغیر، اسکرین گھمانے پر ایپ تمام غیر محفوظ شدہ ڈیٹا کھو دے گی۔

kotlin
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }
    override fun onSaveInstanceState(outState: Bundle) {
        super.onSaveInstanceState(outState)
        outState.putString("draft", draftText)
    }
    override fun onDestroy() {
        super.onDestroy()
        // Отписка от всех подписок
    }
}

Jetpack Compose میں Activity Lifecycle

Jetpack Compose میں، Activity کا لائف سائیکل تبدیل نہیں ہوتا، لیکن Compose اضافی اوزار فراہم کرتا ہے: LifecycleOwner کے ذریعے Lifecycle-aware composition، ختم ہونے پر خودکار وسائل کی صفائی کے لیے LifecycleEventEffect اور DisposableEffect اثرات۔

Fragment Lifecycle تفصیل سے

Android میں Fragment Activity کے اندر رہتا ہے اور اس کا اپنا لائف سائیکل ہوتا ہے، جو جزوی طور پر Activity سے ملتا ہے لیکن نئے طریقے شامل کرتا ہے۔ Fragment کو Activity کو ختم کیے بغیر شامل، تبدیل اور ہٹایا جا سکتا ہے، جو انہیں زیادہ لچکدار لیکن زیادہ پیچیدہ بھی بناتا ہے۔

Fragment Lifecycle کے اہم طریقے: onAttach — Fragment Activity سے منسلک (پہلی کال)؛ onCreate — ڈیٹا کی ابتدا؛ onCreateView — View کی تخلیق؛ onViewCreated — View بن گئی، UI ترتیب دیا جا سکتا ہے؛ onStart — Fragment نظر آتا ہے؛ onResume — Fragment فوکس میں؛ onPause — Fragment فوکس کھو دیتا ہے؛ onStop — Fragment نظر نہیں آتا؛ onDestroyView — View ختم ہو جاتی ہے؛ onDestroy — Fragment ختم ہو جاتا ہے؛ onDetach — Fragment Activity سے الگ ہو جاتا ہے۔

Activity سے اہم فرق: onCreateView اور onDestroyView کئی بار کہلائے جا سکتے ہیں (مثال کے طور پر، TabLayout تبدیل کرتے وقت)، جبکہ onCreate ایک بار کہلاتا ہے۔ لہذا، View کی ابتدا onViewCreated میں کی جانی چاہیے، onCreateView میں نہیں۔ View سے متعلق وسائل (جیسے RecyclerView ایڈاپٹر) کو onDestroyView میں صاف کیا جانا چاہیے۔

iOS میں ViewController Lifecycle

UIViewController iOS میں اسکرینوں کے انتظام کے لیے بنیادی کلاس ہے۔ اس کا لائف سائیکل طریقوں کے ایک سلسلے پر مشتمل ہے جسے UIKit خود بخود کہلاتا ہے۔ اس چکر کو سمجھنا مناسب UI ابتدا، ڈیٹا مینجمنٹ اور میموری ہینڈلنگ کے لیے بہت ضروری ہے۔

طریقہ کب کہلاتا ہے عام استعمال
loadViewجب View Controller اپنا View درجہ بندی لوڈ کرتا ہےStoryboard کے بغیر حسب ضرورت ابتدا
viewDidLoadView میموری میں لوڈ ہونے کے بعد (ایک بار)UI ترتیب، ابتدائی ڈیٹا لوڈ کریں
viewWillAppearاسکرین پر View ظاہر ہونے سے پہلےڈیٹا اپ ڈیٹ کریں، اطلاعات سبسکرائب کریں
viewDidAppearاسکرین پر View ظاہر ہونے کے بعداینیمیشن شروع کریں، ٹریکنگ اینیمیشن شروع کریں
viewWillDisappearاسکرین سے View غائب ہونے سے پہلےحالت محفوظ کریں، اطلاعات سے ان سبسکرائب کریں
viewDidDisappearاسکرین سے View غائب ہونے کے بعداینیمیشن روکیں، وسائل جاری کریں
deallocجب View Controller ختم ہوتا ہےتمام وسائل جاری کریں

اہم: viewDidLoad View Controller کی زندگی میں صرف ایک بار کہلاتا ہے۔ ہر بار ظاہر ہونے پر ڈیٹا اپ ڈیٹ کرنے کے لیے viewWillAppear استعمال کریں۔ اگر آپ viewWillAppear میں NotificationCenter سبسکرائب کرتے ہیں، تو میموری لیک سے بچنے کے لیے viewDidDisappear میں ان سبسکرائب کرنا یقینی بنائیں۔

SwiftUI Lifecycle

SwiftUI View ڈھانچوں کے ذریعے Views کے لائف سائیکل کا انتظام کرتا ہے۔ کال بیک طریقوں کے بجائے، SwiftUI onAppear اور onDisappear موڈیفائر استعمال کرتا ہے۔ عالمی ایپ حالتوں کے لیے، App اور Scene پروٹوکول کے ذریعے App Lifecycle استعمال کیا جاتا ہے۔ SwiftUI حالت کی بنیاد پر Views کی تخلیق اور خاتمے کا خود بخود انتظام کرتا ہے، جو ڈیولپمنٹ کو آسان بناتا ہے لیکن View کی شناخت اور عمر کو سمجھنے کی ضرورت ہوتی ہے۔

swift
struct ContentView: View {
    var body: some View {
        Text("Hello")
            .onAppear {
                print("View появилась")
            }
            .onDisappear {
                print("View исчезла")
            }
    }
}

Android میں LifecycleOwner اور LifecycleObserver

LifecycleOwner Android Architecture Components کا ایک انٹرفیس ہے جو ایسی چیز کو نشان زد کرتا ہے جس کا لائف سائیکل ہو (Activity, Fragment)۔ LifecycleObserver ایک انٹرفیس ہے جو کسی چیز کو LifecycleOwner کے واقعات سبسکرائب کرنے کی اجازت دیتا ہے۔ یہ مل کر جدید Android ڈیولپمنٹ میں رد عمل والے لائف سائیکل مینجمنٹ کی بنیاد بناتے ہیں۔

onStart/onStop میں واضح طور پر طریقے کہلانے کے بجائے، DefaultLifecycleObserver (پرانے LifecycleObserver اور @OnLifecycleEvent تشریحات کا متبادل) استعمال کرنے کی سفارش کی جاتی ہے۔ یہ Google کی طرف سے ViewModel اور دیگر اجزاء کے لیے فروغ دینے والا طریقہ ہے جنہیں Activity یا Fragment کے براہ راست حوالہ جات کے بغیر لائف سائیکل پر رد عمل ظاہر کرنے کی ضرورت ہوتی ہے۔

kotlin
class MyObserver : DefaultLifecycleObserver {
    override fun onStart(owner: LifecycleOwner) {
        // Подписка на обновления
    }
    override fun onStop(owner: LifecycleOwner) {
        // Отписка
    }
}

IT Sectr میں، ہم تمام Android پروجیکٹس میں LifecycleOwner استعمال کرتے ہیں۔ ViewModel viewModelScope اور lifecycleScope کے ذریعے Activity کے LifecycleOwner کو سبسکرائب کرتا ہے، جو Activity ختم ہونے پر کوروٹینز کو خود بخود منسوخ کرنے کی ضمانت دیتا ہے۔ یہ میموری لیک کو روکتا ہے اور کوڈ کو صاف اور محفوظ بناتا ہے۔

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

Android میں Activity کس حالتوں سے گزرتی ہے؟

Activity چھ حالتوں سے گزرتی ہے: Created (onCreate)، Started (onStart)، Resumed (onResume)، Paused (onPause)، Stopped (onStop)، Destroyed (onDestroy)۔

iOS میں ViewController Lifecycle کے طریقے کس ترتیب سے کہلاتے ہیں؟

ترتیب: loadView → viewDidLoad → viewWillAppear → viewDidAppear → viewWillDisappear → viewDidDisappear۔ viewDidLoad ایک بار کہلاتا ہے۔

Android میں LifecycleOwner کیا ہے؟

LifecycleOwner Android Architecture Components کا ایک جزو ہے جو Activity یا Fragment کے لائف سائیکل کا مالک ہوتا ہے۔ LifecycleObserver کے ذریعے واقعات سبسکرائب کرنے کی اجازت دیتا ہے۔

iOS میں App Lifecycle کی کیا حالتیں ہیں؟

iOS ایپ پانچ حالتوں سے گزرتی ہے: Not Running، Inactive، Active، Background، Suspended۔ UIApplicationDelegate کے ذریعے منتقلی کا انتظام کیا جاتا ہے۔

Android پر Saved State کیا ہے؟

Saved State اسکرین گھماؤ یا عمل کی دوبارہ تخلیق پر Activity/Fragment کی حالت محفوظ رکھنے کا Android طریقہ کار ہے۔ یہ onSaveInstanceState اور SavedStateHandle استعمال کرتا ہے۔

خلاصہ

  • Android میں Activity Lifecycle (onCreate → onDestroy) — اسکرین حالت کے انتظام کی بنیاد
  • iOS ViewController Lifecycle (viewDidLoad → viewDidDisappear) — UIKit کے صحیح کام کرنے کی کلید
  • Fragment Lifecycle onAttach/onDetach اور onCreateView/onDestroyView کی وجہ سے Activity سے زیادہ پیچیدہ ہے
  • LifecycleOwner (Android) میموری لیک کے بغیر واقعات کی رد عمل والی سبسکرپشن کی اجازت دیتا ہے
  • App Lifecycle پوری ایپ کی حالت (Active, Background, Suspended) کا انتظام کرتا ہے
  • SwiftUI روایتی ViewController طریقوں کے بجائے onAppear اور onDisappear استعمال کرتا ہے
  • مناسب لائف سائیکل ہینڈلنگ موبائل ایپ کے 80% عام کریشوں کو روکتی ہے

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

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

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