Halo kawan-kawan tercinta, kekasih KotlinDalam artikel pertama saya, saya ingin memberi tahu Anda tentang satu perpustakaan yang bermanfaat yang saya tulis secara eksklusif di Kotlin, dan saya secara aktif mendukung dan mengembangkannya. Ini disebut - KDispatcher. Dirancang untuk mengirim dan berlangganan pemberitahuan antara komponen kode Anda. Anda dapat menggunakannya di setiap proyek kotlin, baik itu Android, Frontend, Backend atau KotlinNative.
Manfaat utama:
- Berlangganan acara cepat dan mudah
- Prioritas fungsi panggilan ke pendengar (panggilan balik)
- Menggunakan fungsi ekstensi kotlin
- Keamanan benang
Jadi, untuk menggunakan perpustakaan ini di proyek Anda, Anda perlu menghubungkannya melalui Gradle:
implementation 'com.rasalexman.kdispatcher:kdispatcher:xyz'
atau Maven:
<dependency> <groupId>com.rasalexman.kdispatcher</groupId> <artifactId>kdispatcher</artifactId> <version>xyz</version> <type>pom</type> </dependency>
Setelah itu, Anda dapat menggunakan dua cara:
1) Panggil metode objek:
KDispatcher.subscribe(eventName, ::listenerFunction, priority)
di mana, eventName adalah nama string acara Anda yang ingin Anda ikuti; :: listenerFunction - fungsi yang mengambil parameter tunggal bertipe Notification dan bisa dalam bentuk
(Notification<T>)->Unit
berisi objek data Anda (data: T) dan nama acara (eventName: String). Parameter terakhir, opsional, prioritas: Int adalah variabel numerik untuk mengurutkan panggilan fungsi panggilan balik Anda, karena Anda dapat menandatangani beberapa pendengar untuk satu peristiwa sekaligus. Untuk melewati suatu acara Anda perlu memanggil metode:
KDispatcher.call(eventName:String, data:Any)
Anda juga dapat berhenti berlangganan dari mendengarkan acara ketika Anda tidak lagi membutuhkannya, menggunakan metode ini:
KDispatcher.unsubscribe(eventName:String, ::listenerFunction)
Semuanya sangat sederhana.
2) Cara kedua adalah mengimplementasikan kelas Anda (kata ini tentu saja tidak terlalu bagus, tapi saya harap semua orang akan mengerti) dari antarmuka IKDispatcher dan Anda bisa mendapatkan semua fungsionalitas kerangka acara, dan bahkan lebih, karena fungsi ekstensi kotlin. Di bawah ini saya ingin memberikan contoh kecil menggunakan antarmuka ini:
class MainActivity : AppCompatActivity(), IKDispatcher { private val eventListenerOne = this::eventOneHandler //... override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) scopeOperation() } private fun scopeOperation() { // subscribe(EVENT_CALL_ONE, 3, eventListenerOne) subscribe(EVENT_CALL_ONE, 1, ::eventListenerTwo) subscribe(EVENT_CALL_ONE, 2, MyClass::eventListenerFour) // call(EVENT_CALL_ONE, "FIRST CALL FROM KDISPATCHER") /** * lambda- */ val eventName = "LAMBDA_EVENT" subscribe<String>(eventName) { notification -> println("LAMBDA_EVENT HAS FIRED with event name ${notification.eventName} and data ${notification.data}") unsubscribe(notification.eventName) } call(eventName, "FIRST CALL CUSTOM LABDA EVENT") } fun eventOneHandler(notification:Notification<Any>) { println("eventOneHandler MY TEST IS COMING event = ${notification.eventName} AND data = ${notification.data}") } }
Anda dapat menemukan contoh lengkap penggunaan di tautan
KDispatcher di githubTerima kasih sudah membaca sampai akhir. Saya akan sangat senang menerima umpan balik dan bantuan dalam pengembangan proyek.
Nikmati pengkodean dalam bahasa KOTLIN yang luar biasa!