Kotlin Academy · पाठ

व्यावहारिक Extensions: Context, View और String Helpers

सामान्य patterns के लिए वास्तविक Android-शैली के utility extensions बनाएँ।

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

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

वास्तविक दुनिया के एक्सटेंशन

जिन फ़्रेमवर्क प्रकारों को आप बदल नहीं सकते, उन पर एक्सटेंशन बहुत उपयोगी होते हैं: Context, View, String और संग्रह। नीचे प्रोडक्शन एंड्रॉइड कोडबेस से लिए गए व्यावहारिक पैटर्न दिए गए हैं।

Context.toast सहायक

विस्तृत Toast.makeText(...).show() को एक-पंक्ति वाले एक्सटेंशन में लपेटिए।

import android.content.Context
import android.widget.Toast
fun Context.toast(message: String, long: Boolean = false) {
    val duration = if (long) Toast.LENGTH_LONG else Toast.LENGTH_SHORT
    Toast.makeText(this, message, duration).show()
}
// Usage: context.toast("Saved!")

Context संसाधन सहायक

संसाधन खोजते समय कास्ट करने से बचिए। एक्सटेंशन पठनीयता और प्रकार-सुरक्षा बेहतर बनाते हैं।

import android.content.Context
import androidx.core.content.ContextCompat
fun Context.color(res: Int) = ContextCompat.getColor(this, res)
fun Context.string(res: Int) = getString(res)
fun Context.dp(value: Int) = (value * resources.displayMetrics.density).toInt()
// Usage: val red = context.color(R.color.error)

View.show / View.hide

बिना अनावश्यक औपचारिकता के View.VISIBLE / View.GONE को टॉगल कीजिए।

import android.view.View
fun View.show() { visibility = View.VISIBLE }
fun View.hide() { visibility = View.GONE }
fun View.invisible() { visibility = View.INVISIBLE }
// Usage: progressBar.show(); button.hide()

View.setVisible(बूलियन)

यह एक-पंक्ति वाला तरीका किसी शर्त के आधार पर दृश्यता टॉगल करता है — if-else दृश्यता कोड का स्थान लेता है।

import android.view.View
fun View.setVisible(visible: Boolean) {
    visibility = if (visible) View.VISIBLE else View.GONE
}
// Usage: errorLabel.setVisible(state.hasError)

View.onClick लैम्ब्डा

क्लिक लिस्नर को अधिक साफ़ बनाइए — अनाम OnClickListener के बजाय लैम्ब्डा पास कीजिए।

import android.view.View
fun View.onClick(action: (View) -> Unit) {
    setOnClickListener(action)
}
// Usage:
// button.onClick { view -> println("clicked") }

String.isValidEmail

String पर डोमेन-विशिष्ट सत्यापन एक्सटेंशन बिज़नेस लॉजिक को पठनीय बनाते हैं।

fun String.isValidEmail(): Boolean {
    val regex = Regex("^[A-Za-z0-9+_.-]+@[A-Za-z0-9.-]+$")
    return regex.matches(this)
}
fun main() {
    println("ada@example.com".isValidEmail()) // true
    println("nope".isValidEmail())             // false
}

String.truncate

लंबी स्ट्रिंग को एलिप्सिस के साथ छोटा कीजिए — यह एक सामान्य यूआई सहायक है।

fun String.truncate(max: Int, ellipsis: String = "..."): String =
    if (length <= max) this else substring(0, max - ellipsis.length) + ellipsis
fun main() {
    println("The quick brown fox".truncate(10)) // The qui...
    println("short".truncate(10))                // short
}

String.toTitleCase

हर शब्द का पहला अक्षर बड़ा कीजिए — यह एक सामान्य फ़ॉर्मैटिंग सहायक है।

fun String.toTitleCase(): String = split(" ").joinToString(" ") {
    if (it.isEmpty()) it
    else it[0].uppercaseChar() + it.substring(1).lowercase()
}
fun main() {
    println("hello WORLD from kotlin".toTitleCase())
}

सूची एक्सटेंशन: chunkedBy

क्रमागत तत्वों को किसी कुंजी के आधार पर समूहित कीजिए — यह यूआई सेक्शन के लिए उपयोगी है।

fun <T, K> List<T>.chunkedBy(keySelector: (T) -> K): List<List<T>> {
    val result = mutableListOf<MutableList<T>>()
    var lastKey: K? = null
    for (item in this) {
        val key = keySelector(item)
        if (key == lastKey) result.last().add(item)
        else { result.add(mutableListOf(item)); lastKey = key }
    }
    return result
}
fun main() {
    val data = listOf(1, 1, 2, 2, 2, 3, 1)
    println(data.chunkedBy { it }) // [[1, 1], [2, 2, 2], [3], [1]]
}

Activity सहायक

रीफ़ाइड जेनेरिक प्रकारों की सहायता से नेविगेशन को प्रकार-सुरक्षित और छोटा बनाइए।

import android.content.Context
import android.content.Intent
inline fun <reified T> Context.startActivity() {
    startActivity(Intent(this, T::class.java))
}
// Usage: context.startActivity<MainActivity>()

अति न कीजिए

एक्सटेंशन ग्लोबल नेमस्पेस में जुड़ते हैं। उन्हें केंद्रित और सीमित (private/internal) रखिए तथा डोमेन के अनुसार समूहित कीजिए (हर रिसीवर प्रकार के लिए एक फ़ाइल रखना अच्छा रहता है)।

fun String.shout() = uppercase() + "!"
fun String.whisper() = lowercase() + "..."
fun main() {
    println("hello".shout())
    println("HELLO".whisper())
}

त्वरित जाँच

Context या View जैसे एंड्रॉइड फ़्रेमवर्क प्रकारों के लिए एक्सटेंशन इतने उपयुक्त क्यों हैं?

पुनरावलोकन

फ़्रेमवर्क प्रकारों (Context, View, स्ट्रिंग, सूची) में सुविधाजनक सहायक जोड़ने के लिए एक्सटेंशन बिल्कुल उपयुक्त हैं। सामान्य पैटर्न हैं: दृश्यता टॉगल, क्लिक लिस्नर, संसाधन खोज, सत्यापन और फ़ॉर्मैटिंग। एक्सटेंशन को केंद्रित, सीमित और रिसीवर प्रकार के अनुसार समूहित रखिए।

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

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

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

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

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

क्या “व्यावहारिक Extensions: Context, View और String Helpers” पाठ निःशुल्क है?

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

“व्यावहारिक Extensions: Context, View और String Helpers” में मैं क्या सीखूँगा?

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

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

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

“व्यावहारिक Extensions: Context, View और String Helpers” पाठ पूरा करने में कितना समय लगता है?

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

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

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

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

  1. Extension Functions: सिंटैक्स और Dispatch Rules
  2. Extension Properties और Computed Extensions
  3. Scoped Extensions और Companion Extensions
  4. व्यावहारिक Extensions: Context, View और String Helpers
← Kotlin Academy पर वापस जाएँ