Atau hanya sekedar IDE ?
Nah, untuk menyelesaikan kebingungan ini mari kita bahas-bahas perlahan apa itu BloC yak...
Dalam programmming, terkadang programmer menerapkan suatu teknik desain yang hanya bisa memenuhi suatu permasalahan. Namun, ketika teknik desain tersebut diterapkan pada permasalahan yang lebih kompleks dan luas maka teknik tersebut menjadi sulit untuk diaplikasikan. Oleh karena itu, dibutuhkan sebuah solusi umum yang dapat diaplikasikan sebagai teknik desain pada berbagai permasalahan. Solusi umum tersebut biasa disebut sebagai pattern baru.
Dalam software engineering, design pattern adalah solusi berulang yang umum untuk masalah yang biasa terjadi dalam desain perangkat lunak. Design Pattern merupakan deskripsi atau template untuk menyelesaikan masalah yang dapat digunakan dalam berbagai situasi.
Penerapan pattern design menjadi sangat penting dalam dunia programming karena hal itu akan membuat pola struktur dan pola coding yang sama pada setiam team yang terlibat. Hal ini bukan berarti membakukan setiap programmer untuk beraktivitas dalam ekspresi codingnya, melainkan hanya membakukan pola penulisan dan struktur penulisan coding-nya. Selain itu design pattern juga memiliki tujuan yang hampir sama pada umumnya yaitu mengenai separation.
Maksudanya adalah melakukan pemisahan terhadap coding kita dimana tujuan agar pola coding kita lebih ringkas dan lebih teratur dalam implementasinya serta lebih konsisten. Jadi, setelah dipisah program kita akan lebih gampang untuk dilakukan perawatan dan penambahan fitur. Katakanlah misalnya program kita sudah rilis di production kemudian suatu hari kita perlu menambahkan suatu fitur baru. Jika tidak menerapkan design pattern maka kita akan kesulitan dalam melakukan penambahan satu fitur tersebut karena harus mencampur-adukkan coding-coding dari fitur lain karena single file. Namun, jika design pattern sudah diterapkan maka hal ini akan memudahkan dan tidak akan mengganggu fitur lainnya dalam artian kita tidak perlu mencampur-adukkan coding-coding kita.
BloC
BloC merupakan singkatan dari Bussiness Logic Component dimana design pattern ini digunakan untuk re-use kode yang ada dan dapat dipakai di platform lainnya. Atau bisa dibilang semacam sharing code antar platform khususnya pada bagian bussiness logic-nya.
BloC dirancang dengan tiga nilai inti sebagai berikut :
- Simple, mudah dipahami dan bisa digunakan oleh developer dengan berbagai tingkat keterampilan.
- Powerful, dapat membantu pembuatan aplikasi kompleks yang tersusun dari komponen-komponen yang lebih kecil.
- Testable, mudah ditest.
BloC Design Pattern adalah pattern yang membantu untuk memisahkan presentation dengan bussiness loginc. Sehingga komponen pada project terbagi menjadi Presentational Component, BloC dan Backend. Pattern ini membolehkan developer untuk fokus dalam mengkonversikan event menjadi state.
Terdapat beberapa istilah dalam penerapan BloC ini, yaitu :
- Events, adalah input untuk BloC. Biasanya events ini merupakan UI events seperti tombol yang ditekan atau load-page.
- States, adalah output dari BloC. Komponen dari UI dapat didefinisikan sebagai state dan bisa digambar ulang sesuai dengan state mereka saat ini.
- Transitions, adalah perubahan dari suatu state ke state yang lain. Transisi terjadi ketika suatu event dikirim setelah mapEventToState dipanggil, tetapi sebelum state dari BloC di-update. Transisi terdiri atas current state, event dan next state.
- Blocs, merupakan komponen yang mengonversi Stream dari event ke Stream yang mengubah state.
Why BloC ?
Pertanyaan yang sering dilontarkan / didengar ketika memperkenalkan BloC.... hehe
BloC digunakan karena memisahkan komponen logic dan presentation. Pemisahan komponen logic dan presentation akan memudahkan sekali dalam maintaenance code (source code). Misalnya, pada saat suatu implementasi kode dirubah, maka tidak perlu lagi banyak perubahan pada kode yang lainnya. Selain itu, BloC dapat memudahkan kita untuk mengetahui aplikasi sedang berapa di state yang mana.
Nah, dari keterangan diatas sudah ada gambaran tentang BloC kan ?
Untuk lebih jelasnya kita besok akan belajar implementasinya pada codingnya....
Stay close with this blog guys.....
Tags:
Flutter