Jetpack Google की Android लाइब्रेरीज़ का एक सेट है जो डेवलपमेंट को सरल बनाता है और स्थिर एप्लिकेशन बनाने में तेजी लाता है। ViewModel, Room और Navigation जैसे घटक विशिष्ट कार्यों को हल करते हैं: जीवनचक्र प्रबंधन, डेटा संग्रहण और नेविगेशन। Android Developers (2026) के अनुसार, Jetpack 50 से अधिक लाइब्रेरीज़ को कवर करता है, जिनमें से प्रत्येक AndroidX के माध्यम से Android 5.0 (API 21) के साथ पिछड़ा संगत है — एक संगतता लाइब्रेरी जिसने Support Library को बदल दिया।
मुख्य बातें
Android Jetpack Google की लाइब्रेरीज़, टूल्स और आर्किटेक्चरल दिशानिर्देशों का एक संग्रह है, जिसे 2018 में Google I/O में प्रस्तुत किया गया। Jetpack ने Support Library और Android Architecture Components को बदल दिया, उन्हें एक एकल पारिस्थितिकी तंत्र में विलय कर दिया। Jetpack से पहले, प्रत्येक Android लाइब्रेरी स्वतंत्र रूप से अपडेट होती थी, जिससे संस्करण विरोध पैदा होते थे। Jetpack ने एक एकल AndroidX पहचानकर्ता के तहत संस्करणों को सिंक्रनाइज़ किया और मामूली पैच के साथ स्थिर प्रमुख संस्करणों का एक मॉडल पेश किया।
Jetpack लाइब्रेरीज़ चार श्रेणियों में विभाजित हैं: Architecture (ViewModel, Room, Navigation, WorkManager), UI (Fragment, Compose, Animation, Palette), Behavior (DownloadManager, Media, Permissions, Sharing), Foundation (Android KTX, Multidex, AppCompat)। प्रत्येक श्रेणी एप्लिकेशन की एक विशिष्ट परत के कार्यों को संबोधित करती है — डेटा प्रबंधन से लेकर उपयोगकर्ता इंटरफ़ेस तक।
Google तीन Jetpack सिद्धांतों को बढ़ावा देता है: accelerate development (कम boilerplate, अधिक व्यावसायिक तर्क), eliminate boilerplate (ViewModel मैन्युअल स्थिति बचत को समाप्त करता है, Room SQLiteOpenHelper लिखने को समाप्त करता है) और build with confidence (प्रत्येक लाइब्रेरी रिलीज़ से पहले 15,000+ परीक्षण पास करती है)। Android Developers (2026) के अनुसार, Jetpack का उपयोग करने वाले एप्लिकेशन में जीवनचक्र से संबंधित 30% कम क्रैश होते हैं।
सभी Jetpack लाइब्रेरीज़ AndroidX पहचानकर्ता (जैसे androidx.* आर्टिफैक्ट) के तहत वितरित की जाती हैं। AndroidX ने Support Library (जैसे com.android.support.* आर्टिफैक्ट) को बदल दिया, मोनोलिथिक लाइब्रेरी को स्वतंत्र संस्करण के साथ मॉड्यूलर आर्टिफैक्ट में विभाजित कर दिया। AndroidX में माइग्रेशन gradle.properties में android.useAndroidX=true विकल्प के माध्यम से किया जाता है — Android Studio स्वचालित रूप से आयातों को परिवर्तित करता है।
ViewModel Jetpack आर्किटेक्चर का केंद्रीय घटक है जो UI डेटा संग्रहीत करता है। Activity के विपरीत, जो स्क्रीन रोटेशन पर नष्ट हो जाती है, ViewModel मेमोरी में रहता है। उपयोगकर्ता एक फॉर्म भरता है, फोन घुमाता है — डेटा खो नहीं जाता। ViewModel स्वचालित रूप से साफ़ हो जाता है जब LifecycleOwner (Activity या Fragment) स्थायी रूप से अपना जीवनचक्र समाप्त करता है (finish)।
class ProfileViewModel : ViewModel() {
private val _userName = MutableLiveData<String>()
val userName: LiveData<String> = _userName
fun loadProfile(userId: String) {
viewModelScope.launch {
val user = repository.getUser(userId)
_userName.value = user.name
}
}
}
@OptIn(ExperimentalLifecycleApi::class)
class MyObserver : LifecycleObserver {
@OnLifecycleEvent(Lifecycle.Event.ON_START)
fun onStart() {
println("स्क्रीन शुरू हुई")
}
}
LiveData — एक अवलोकनीय डेटा कंटेनर जो जीवनचक्र का सम्मान करता है। यदि स्क्रीन दिखाई नहीं देती (onStop), LiveData अपडेट नहीं भेजता — यह मेमोरी लीक और गैर-मौजूद Activity को अपडेट करने के प्रयास में क्रैश को रोकता है। Lifecycle — एक वर्ग जो वर्तमान स्थिति (CREATED, STARTED, RESUMED) संग्रहीत करता है और अन्य घटकों को स्थिति परिवर्तनों की सदस्यता लेने की अनुमति देता है। साथ में, ViewModel, LiveData और Lifecycle प्रतिक्रियाशील Android आर्किटेक्चर की नींव बनाते हैं।
viewModelScope — ViewModel जीवनचक्र से बंधा एक अंतर्निहित CoroutineScope है। इस scope में लॉन्च किए गए सभी कोरूटीन ViewModel साफ़ होने पर स्वचालित रूप से रद्द हो जाते हैं। यह प्रत्येक ViewModel में Disposable और CompositeDisposable के मैन्युअल प्रबंधन को समाप्त करता है। viewModelScope के साथ काम करने के लिए androidx.lifecycle:lifecycle-viewmodel-ktx निर्भरता आवश्यक है।
Room एक Jetpack ORM लाइब्रेरी है जो SQLite पर एक अमूर्त परत प्रदान करती है। रॉ SQL क्वेरी लिखने और मैन्युअल रूप से Cursor को ऑब्जेक्ट में बदलने के बजाय, डेवलपर Entity (तालिका), DAO (डेटा एक्सेस ऑब्जेक्ट) और Database (प्रवेश बिंदु) घोषित करता है। Room @Query एनोटेशन के माध्यम से संकलन समय पर SQL क्वेरी की जांच करता है — यदि तालिकाएं या कॉलम मौजूद नहीं हैं, तो बिल्ड एक स्पष्ट त्रुटि के साथ विफल हो जाता है।
@Entity
data class User(
@PrimaryKey val id: String,
val name: String,
val email: String
)
@Dao
interface UserDao {
@Query("SELECT * FROM User WHERE id = :userId")
suspend fun getUser(userId: String): User?
@Insert
suspend fun insertUser(user: User)
}
@Database(entities = [User::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun userDao(): UserDao
}
Entity User तीन कॉलम वाली तालिका का वर्णन करता है। DAO कोरूटीन के साथ काम करने के लिए suspend फ़ंक्शन घोषित करता है — क्वेरी स्वचालित रूप से पृष्ठभूमि थ्रेड पर निष्पादित होती है। Room @Migration एनोटेशन के माध्यम से माइग्रेशन का समर्थन करता है: डेवलपर संस्करणों के बीच संक्रमण के लिए SQL स्क्रिप्ट का वर्णन करता है, और Room इसे डेटा हानि के बिना निष्पादित करता है। माइग्रेशन की अनुपस्थिति में, Room IllegalStateException फेंकता है — यह स्कीमा अपडेट करते समय आकस्मिक डेटा हानि से परियोजनाओं की रक्षा करता है।
Room केवल आदिम प्रकार और उनके रैपर संग्रहीत करता है। सूचियों, Date या कस्टम ऑब्जेक्ट को संग्रहीत करने के लिए @TypeConverter का उपयोग किया जाता है — एक स्थैतिक विधि जो एक प्रकार को String (JSON) या Long (timestamp) में परिवर्तित करती है। तालिकाओं के बीच संबंध @Relation एनोटेशन और कुशल join क्वेरी के लिए @Transaction के साथ सहायक POJO वर्गों के माध्यम से मॉडल किए जाते हैं।
Navigation Component — स्क्रीन के बीच संक्रमण प्रबंधित करने के लिए एक Jetpack लाइब्रेरी। मैन्युअल रूप से FragmentTransaction कॉल करने के बजाय, डेवलपर एक नेविगेशन ग्राफ़ (गंतव्य नोड्स के साथ XML फ़ाइल) बनाता है, और सिस्टम टाइप-सेफ संक्रमण विधियों के साथ एक Directions वर्ग उत्पन्न करता है। Navigation Component बैक स्टैक, डीप लिंक और स्क्रीन के बीच आर्गुमेंट पासिंग के सही संचालन को सुनिश्चित करता है।
// nav_graph.xml
//
// android:name=".ProfileFragment">
//
// android:defaultValue="-1"
// app:argType="integer" />
//
// फ़्रैगमेंट कोड में:
class ProfileFragment : Fragment() {
private val args: ProfileFragmentArgs by navArgs()
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
loadProfile(args.userId)
}
}
userId आर्गुमेंट प्रकार (integer) और डिफ़ॉल्ट मान के साथ नेविगेशन ग्राफ़ में पास किए जाते हैं। ProfileFragmentArgs वर्ग स्वचालित रूप से Navigation Safe Args प्लगइन द्वारा उत्पन्न होता है — इसमें सही Kotlin प्रकारों के साथ सभी आर्गुमेंट होते हैं। डीप लिंक ग्राफ़ में कॉन्फ़िगर किए जाते हैं: app:deepLink="app://profile/{userId}"। Navigation Component स्वयं URL को पार्स करता है और बैक स्टैक बनाता है जैसे कि उपयोगकर्ता ने इंटरफ़ेस के माध्यम से नेविगेट किया हो।
Navigation Component NavController के माध्यम से BottomNavigationView के साथ एकीकृत होता है: प्रत्येक मेनू आइटम ग्राफ़ में एक गंतव्य से जुड़ा होता है। टैब के बीच स्विच करने से फ़्रैगमेंट पुनर्निर्माण नहीं होता — Navigation Component NavBackStackEntry के माध्यम से स्थिति संरक्षित करता है। सशर्त नेविगेशन के लिए (यदि प्रमाणित नहीं है तो लॉगिन दिखाएं), onCreate में जांच के साथ navController.navigate(condition) का उपयोग किया जाता है।
AndroidX Support Library का पुन: डिज़ाइन किया गया आर्किटेक्चर है जिसमें प्रत्येक लाइब्रेरी को स्वतंत्र संस्करण के साथ अपना स्वयं का आर्टिफैक्ट मिला। एकल com.android.support:appcompat-v7:28.0.0 के बजाय, AndroidX androidx.appcompat:appcompat:1.7.0, androidx.recyclerview:recyclerview:1.4.0 इत्यादि प्रदान करता है। इसने उस समस्या को समाप्त कर दिया जहां विभिन्न निर्भरताएं Support Library के विभिन्न संस्करणों को खींचती थीं, जिससे विरोध पैदा होता था।
AndroidX में माइग्रेशन Android Studio 3.2+ में मेनू Refactor → Migrate to AndroidX के माध्यम से स्वचालित रूप से किया जाता है। स्टूडियो Java/Kotlin फ़ाइलों, मेनिफ़ेस्ट और संसाधनों में सभी आयातों को बदल देता है। पिछड़ा संगतता AndroidX का मुख्य लाभ है: लाइब्रेरीज़ Android 5.0 (API 21) और उससे ऊपर काम करती हैं, जो Google Play Console (2025) के अनुसार 97% सक्रिय उपकरणों को कवर करती हैं।
सबसे अधिक उपयोग किए जाने वाले आर्टिफैक्ट: appcompat (पुराने API पर डार्क थीम, Material Design), recyclerview (ViewHolder के साथ अनुकूली सूचियाँ), constraintlayout (सपाट पदानुक्रम के साथ लचीला कंटेनर), cardview (Material Design कार्ड), preference (Material शैली के साथ सेटिंग स्क्रीन)। प्रत्येक आर्टिफैक्ट स्वतंत्र रूप से संस्करणित है, पूरे पैकेज को अपडेट किए बिना फिक्स की डिलीवरी में तेजी लाता है।
Architecture और AndroidX के अलावा, Jetpack में विशिष्ट मोबाइल डेवलपमेंट कार्यों के लिए कई विशेष लाइब्रेरीज़ शामिल हैं। WorkManager — गारंटीकृत निष्पादन के साथ पृष्ठभूमि कार्यों के लिए (सिंक्रनाइज़ेशन, लॉग अपलोड), आवधिक और विलंबित कार्यों के साथ-साथ नेटवर्क और बैटरी बाधाओं का समर्थन करता है। DataStore — कोरूटीन पर आधारित SharedPreferences का एक विकल्प, टाइप की गई संपत्तियों (Preferences DataStore) और Protocol Buffers (Proto DataStore) का समर्थन करता है।
प्रत्येक लाइब्रेरी का अपना न्यूनतम SDK और आर्टिफैक्ट होता है। Google साल में एक बार प्रमुख संस्करण जारी करता है (Android रिलीज़ के साथ मेल खाता है) और तिमाही सुरक्षा पैच। अनुशंसा — APK आकार बढ़ने से बचने के लिए केवल आवश्यक लाइब्रेरीज़ शामिल करें। पूर्ण Jetpack संग्रह (सभी आर्टिफैक्ट) 20 MB से अधिक है, लेकिन एक विशिष्ट एप्लिकेशन 5–7 लाइब्रेरीज़ का उपयोग करता है, APK में 3–5 MB जोड़ता है।
अक्सर पूछे जाने वाले प्रश्न
हाँ, Google ने 2019 में Support Library का समर्थन बंद कर दिया। सभी नई Jetpack लाइब्रेरीज़ और Google Play Services को AndroidX की आवश्यकता है। माइग्रेशन Android Studio के माध्यम से 30–60 मिनट में किया जाता है।
Jetpack Java के साथ पूरी तरह से संगत है। हालांकि, कई सुविधाएं (viewModelScope, कोरूटीन, Compose) केवल Kotlin में उपलब्ध हैं। Google नई परियोजनाओं के लिए Kotlin की अनुशंसा करता है।
ViewModel मेमोरी में ऑब्जेक्ट संग्रहीत करता है और रोटेशन को सहन करता है। onSaveInstanceState केवल सीरियलाइज़ेबल प्रिमिटिव (Bundle) के लिए उपयुक्त है। प्रक्रिया मारे जाने पर ViewModel संरक्षित नहीं होता — इसके लिए SavedStateHandle की आवश्यकता है।
WorkManager — उन कार्यों के लिए जो एप्लिकेशन बंद होने के बाद भी निष्पादित होने चाहिए: सिंक्रनाइज़ेशन, लॉग अपलोड, एनालिटिक्स भेजना। कोरूटीन — स्क्रीन से बंधे कार्यों के लिए।
SharedPreferences आयातों को DataStoredataStore.data.first() (suspend) के माध्यम से पढ़ना, dataStore.edit { ... } के माध्यम से लिखना। DataStore एसिंक्रोनस है और ANR से सुरक्षित है।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें