CategoriesProgramming

Bikin HTTP Request lebih cepat dengan Generic Class!

Halo teman-teman! Saya menulis artikel ini untuk membantu developer iOS lain yang pada artikel lalu sempat bertanya langsung ke saya cara membuat Generic Class untuk HTTP Request 😉.

Sedikit Disclaimer❗️, Generic Class bukan hanya ditujukan untuk membuat HTTP Request / Networking saja. Tapi bisa untuk semua fungsi dengan input yang generic/umum. Silakan baca dokumentasi lebih lengkap disini.

Generics — The Swift Programming Language (Swift 5.2)

Networking sudah menjadi sesuatu yang paling sering dilakukan pada Mobile Apps, khususnya pada iOS Developement. Ya, you know right gimana Mobile Apps tanpa ada networking.

Menggunakan Generic Class ini gambaran umumnya adalah membuat box yang dapat menyimpan dan menjaga semua inputnya. Dengan batasan sesuai dengan ukuran box nya dan tidak merusak komposisi box. Bagaimana? Sedikit lebih jelas bukan.

So, Let’s see how the code works!

Untuk networking akan menggunakan Alamofire😁, untuk kalian pengguna Moya atau URLSession bisa menyesuaikan .

  • Pada dasarnya ini mirip class dengan function seperti biasa

Yang membuat berbeda adalah simbol <T>. simbol tersebut adalah simbol generic yang mengindikasikan bahwa fungsi tersebut merupakan fungsi generic.

  • Selanjutnya, tuliskan kode request seperti biasa
  • And yes! fungsi generic kita selesai! sangat mudah kan? Eits, jangan lupa untuk merubah fungsi menjadi static function agar fungsi dapat diakses tanpa pembuatan objek kelas terlebih dahulu.
  • Bagaimana cara menggunakan kelas ini? cara menggunakan nya cukup mudah

Yap! Hanya seperti itu cara menggunakan nya. Kalian tidak perlu baris kode untuk setiap kali request. Dengan menggunakan Generic Class untuk networking, dapat memangkas kode request hingga 30% . Tentunya sangat membantu untuk proses development kalian.

Tapi, jika kalian membutuhkan bantuan untuk pembuatan fungsinya. Feel free untuk menghubungi saya di @nandamochammad

That's All! See you on the next line!

Leave a Reply

Your email address will not be published. Required fields are marked *