Kotlin Academy · पाठ

प्लेटफ़ॉर्म एपीआई

मूल सुविधाओं तक पहुँचें

पाठ 4, कुल 4 में से13 चरण

प्लेटफ़ॉर्म एपीआई, CoddyKit पर Kotlin Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Kotlin Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Kotlin Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

नेटिव सुविधाओं तक पहुँचना

साझा कोड को कभी-कभी डिवाइस की सुविधाओं—भंडारण, सेटिंग्स, घड़ी और नेटवर्क इंजन—की आवश्यकता होती है। KMM नेटिव API तक साफ़-सुथरे ढंग से पहुँचने के कई तरीके देता है।

मूलभूत मानों के लिए अपेक्षित/वास्तविक

छोटे प्लेटफ़ॉर्म मानों के लिए expect/actual का उपयोग करें। साझा कोड साफ़ रहता है, जबकि हर प्लेटफ़ॉर्म आवश्यक विवरण उपलब्ध कराता है।

// commonMain
expect fun currentTimeMillis(): Long

// androidMain
actual fun currentTimeMillis(): Long = System.currentTimeMillis()

प्लेटफ़ॉर्म कोड में निर्भरता इंजेक्शन

एक अधिक लचीला तरीका यह है: साझा कोड में एक इंटरफ़ेस परिभाषित करें और हर ऐप से प्लेटफ़ॉर्म कार्यान्वयन उसमें प्रविष्ट कराएँ।

// commonMain
interface Storage {
    fun save(key: String, value: String)
    fun load(key: String): String?
}

Android कार्यान्वयन

Android, SharedPreferences के साथ इंटरफ़ेस को लागू करता है और इसे साझा कोड को उपलब्ध कराता है।

// androidMain
import android.content.SharedPreferences

class AndroidStorage(private val prefs: SharedPreferences) : Storage {
    override fun save(key: String, value: String) {
        prefs.edit().putString(key, value).apply()
    }
    override fun load(key: String): String? = prefs.getString(key, null)
}

iOS कार्यान्वयन

iOS, Foundation फ़्रेमवर्क के NSUserDefaults के साथ उसी इंटरफ़ेस को लागू करता है।

// iosMain
import platform.Foundation.NSUserDefaults

class IosStorage : Storage {
    private val defaults = NSUserDefaults.standardUserDefaults
    override fun save(key: String, value: String) = defaults.setObject(value, key)
    override fun load(key: String): String? = defaults.stringForKey(key)
}

नेटिव iOS API को कॉल करना

iosMain से आप Apple फ़्रेमवर्क को सीधे कॉल कर सकते हैं, क्योंकि Kotlin/Native उनके लिए इंटरऑप बाइंडिंग तैयार करता है।

import platform.UIKit.UIDevice

fun deviceModel(): String = UIDevice.currentDevice.model

Android API को कॉल करना

androidMain में पूरा Android SDK उपलब्ध होता है, क्योंकि यह Android प्लेटफ़ॉर्म के आधार पर संकलित होता है।

import android.os.Build

fun deviceModel(): String = Build.MODEL

पहले से तैयार मल्टीप्लेटफ़ॉर्म लाइब्रेरी

अक्सर आपको अपना इंटरऑप बनाने की आवश्यकता नहीं होती। लाइब्रेरी पहले से ही सामान्य सुविधाओं को समेटती हैं:

  • multiplatform-settings — कुंजी-मान भंडारण
  • Ktor — नेटवर्क संचार
  • SQLDelight — स्थानीय डेटाबेस

कार्यान्वयन उपलब्ध कराना

ऐप शुरू होने पर प्लेटफ़ॉर्म कार्यान्वयन उसमें प्रविष्ट कराएँ, आमतौर पर Koin जैसे DI फ़्रेमवर्क के माध्यम से, ताकि साझा कोड को सही कार्यान्वयन मिल सके।

// Android: provide AndroidStorage(prefs)
// iOS: provide IosStorage()
// Shared Repository(storage) uses whichever was injected

तरीका चुनना

दिशानिर्देश:

  • छोटा मान → expect/actual
  • कई विधियों वाला व्यवहार → इंटरफ़ेस + निर्भरता इंजेक्शन
  • सामान्य आवश्यकता → मौजूदा मल्टीप्लेटफ़ॉर्म लाइब्रेरी का उपयोग करें

चलने योग्य अमूर्तता का उदाहरण

इंटरफ़ेस का विचार साधारण Kotlin कोड में समझा जा सकता है। यहाँ मेमोरी-आधारित कार्यान्वयन प्लेटफ़ॉर्म भंडार की जगह काम करता है।

interface Storage {
    fun save(key: String, value: String)
    fun load(key: String): String?
}

class MemoryStorage : Storage {
    private val map = mutableMapOf<String, String>()
    override fun save(key: String, value: String) { map[key] = value }
    override fun load(key: String): String? = map[key]
}

fun main() {
    val s: Storage = MemoryStorage()
    s.save("name", "Ada")
    println(s.load("name"))
}

त्वरित जाँच

आपको ऐसी भंडारण सुविधा चाहिए जिसमें कई विधियाँ हों, जिसे हर प्लेटफ़ॉर्म पर अलग तरह से लागू किया जाए और जिसका आसानी से परीक्षण किया जा सके। अनुशंसित तरीका क्या है?

पुनरावलोकन

आप नेटिव सुविधाओं तक साफ़-सुथरे ढंग से पहुँच सकते हैं:

  • मूलभूत मानों के लिए expect/actual
  • व्यवहार के लिए साझा इंटरफ़ेस + प्रविष्ट कराया गया प्लेटफ़ॉर्म कार्यान्वयन
  • androidMain/iosMain में सीधा इंटरऑप
  • संभव हो तो मल्टीप्लेटफ़ॉर्म लाइब्रेरी का पुनः उपयोग करें

इससे KMM की मूल बातें वाला पाठ्यक्रम पूरा होता है।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Kotlin सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
51
पाठ
203

अक्सर पूछे जाने वाले प्रश्न

क्या “प्लेटफ़ॉर्म एपीआई” पाठ निःशुल्क है?

हाँ — Kotlin Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “प्लेटफ़ॉर्म एपीआई” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Kotlin Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“प्लेटफ़ॉर्म एपीआई” में मैं क्या सीखूँगा?

मूल सुविधाओं तक पहुँचें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Kotlin Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Kotlin Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Kotlin Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।

“प्लेटफ़ॉर्म एपीआई” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Kotlin Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Kotlin Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. KMM प्रोजेक्ट संरचना
  2. expect और actual
  3. व्यावसायिक तर्क साझा करना
  4. प्लेटफ़ॉर्म एपीआई
← Kotlin Academy पर वापस जाएँ