Uygulamalı Uzantılar: Context, View ve String Yardımcıları
Yaygın kalıplar için gerçek Android tarzı yardımcı uzantılar oluşturun.
Uygulamalı Uzantılar: Context, View ve String Yardımcıları, CoddyKit'te ücretsiz bir Kotlin Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Kotlin Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Kotlin Academy kursu toplamda 4 dersten oluşur.
Gerçek Dünya Uzantıları
Uzantılar, değiştiremeyeceğiniz çerçeve türleri üzerinde çok kullanışlıdır: Context, View, String ve koleksiyonlar. Aşağıda, gerçek Android kod tabanlarından alınmış pratik kalıplar yer alır.
Context.toast Yardımcısı
Ayrıntılı Toast.makeText(...).show() çağrısını tek satırlık bir uzantıyla sarmalayın.
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 Kaynak Yardımcıları
Kaynak aramalarında tür dönüştürme işleminden kaçının. Uzantılar, okunabilirliği ve tür güvenliğini artırır.
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 durumlarını gereksiz ayrıntılar olmadan değiştirin.
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 (boole)
Bir koşula göre durumu değiştiren tek satırlık bir çözümdür; if-else görünürlük kodunun yerini alır.
import android.view.View
fun View.setVisible(visible: Boolean) {
visibility = if (visible) View.VISIBLE else View.GONE
}
// Usage: errorLabel.setVisible(state.hasError)View.onClick Lambda'sı
Daha temiz tıklama dinleyicisi; anonim bir OnClickListener yerine lambda geçirir.
import android.view.View
fun View.onClick(action: (View) -> Unit) {
setOnClickListener(action)
}
// Usage:
// button.onClick { view -> println("clicked") }String.isValidEmail
String üzerindeki alana özgü doğrulama uzantıları, iş mantığının okunabilir olmasını sağlar.
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
Uzun dizeleri üç noktayla kısaltın; bu, yaygın bir kullanıcı arayüzü yardımcısıdır.
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
Her kelimenin ilk harfini büyütün; bu, yaygın bir biçimlendirme yardımcısıdır.
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())
}Liste Uzantısı: chunkedBy
Ardışık öğeleri bir anahtara göre gruplayın; bu, kullanıcı arayüzü bölümleri için kullanışlıdır.
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]]
}Etkinlik Yardımcıları
Gezinmeyi, yeniden somutlaştırılmış genel türlerle tür güvenli ve daha kısa hâle getirin.
import android.content.Context
import android.content.Intent
inline fun <reified T> Context.startActivity() {
startActivity(Intent(this, T::class.java))
}
// Usage: context.startActivity<MainActivity>()Aşırıya Kaçmayın
Uzantılar genel ad alanına eklenir. Bunları amacına odaklı ve kapsamı sınırlı (private/internal) tutun; alanlarına göre gruplayın (alıcı türü başına bir dosya kullanmak iyi sonuç verir).
fun String.shout() = uppercase() + "!"
fun String.whisper() = lowercase() + "..."
fun main() {
println("hello".shout())
println("HELLO".whisper())
}Hızlı Kontrol
Uzantılar neden Context veya View gibi Android çerçeve türleri için çok uygundur?
Özet
Uzantılar, çerçeve türlerine (Context, görünüm, String, liste) kullanımı kolay yardımcılar eklemek için idealdir. Yaygın kalıplar şunlardır: görünürlük değiştirme, tıklama dinleyicileri, kaynak aramaları, doğrulama ve biçimlendirme. Uzantıları amacına odaklı, kapsamı sınırlı ve alıcı türüne göre gruplanmış tutun.
Sıkça Sorulan Sorular
“Uygulamalı Uzantılar: Context, View ve String Yardımcıları” dersi ücretsiz mi?
Evet — “Uygulamalı Uzantılar: Context, View ve String Yardımcıları” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Kotlin Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Kotlin Academy kursu toplamda 4 dersten oluşur.
“Uygulamalı Uzantılar: Context, View ve String Yardımcıları” dersinde ne öğreneceğim?
Yaygın kalıplar için gerçek Android tarzı yardımcı uzantılar oluşturun. Kotlin Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Kotlin Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Kotlin Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Uygulamalı Uzantılar: Context, View ve String Yardımcıları” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Kotlin Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Kotlin Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Uzantı İşlevleri: Söz Dizimi ve Dağıtım Kuralları
- Uzantı Özellikleri ve Hesaplanan Uzantılar
- Kapsamlı Uzantılar ve Companion Uzantıları
- Uygulamalı Uzantılar: Context, View ve String Yardımcıları