Flutter & SwiftUI: Dari Flutter Developer Menjadi iOS Developer

Flutter & SwiftUI: Dari Flutter Developer Menjadi iOS Developer

Hi, Sobat Flutter developer! Membangun aplikasi multiplatform memang terasa menyenangkan, bukan? Dengan bahasa Dart yang mudah dipelajari, Flutter memungkinkan kita membuat aplikasi berbasis satu kode untuk berbagai platform: Android, iOS, desktop, hingga website. Efisiensi waktu dan biaya menjadi keunggulan utama.

Namun, bagaimana jika sewaktu-waktu kamu diminta menulis kode secara native, misalnya menggunakan Kotlin untuk Android atau Swift untuk iOS? Perubahan ini membutuhkan penyesuaian. 

Oleh karena itu, kali ini kita akan membahas kemiripan Flutter dengan SwiftUI sehingga kamu dapat memperluas kemampuanmu sebagai mobile developer yang adaptif.

💻 Mulai Belajar Pemrograman

Belajar pemrograman di Dicoding Academy dan mulai perjalanan Anda sebagai developer profesional.

Daftar Sekarang

Flutter di Mata Dunia

Flutter menjadi salah satu alternatif ketika kamu ingin membangun aplikasi multiplatform dengan satu codebase saja. Ditinjau dari sisi bisnis, biaya yang perlu dikeluarkan untuk membangun aplikasi akan jauh lebih murah dibanding membangunnya secara terpisah atau native

Bayangkan, jika perusahaan memintamu menuliskan aplikasi secara native, kamu akan menangani minimal dua basis kode, Android dan iOS. Bagaimana jika aplikasi perlu dikembangkan untuk desktop dan website? Kamu akan kerepotan, bukan? Perusahaan pun akan menambah karyawan atau tim untuk menangani masing-masing basis kode tersebut. 

Oleh karena itu, jika ada teknologi yang memungkinkan pengembangan aplikasi dalam beberapa platform sekaligus hanya dengan satu codebase, tentunya lebih hemat, bukan? Pastinya akan jadi lebih efisien dari sisi biaya, waktu, dan tenaga. 

Selain itu, SDK yang dikembangkan secara langsung oleh Google iniFluttersangat diidam-idamkan khalayak ramai. Hal ini disebabkan karena banyaknya keunggulan yang dimiliki oleh Flutter, seperti berikut.

Memungkinkan Kita untuk Membuat Aplikasi yang Indah (Beautiful)

Desainer dapat dengan bebas berkreasi tanpa adanya banyak batasan dari framework. Flutter juga dapat mengontrol setiap piksel yang ada di layar sehingga memudahkan dalam membuat animasi. Flutter menyediakan banyak komponen material design yang dapat berjalan baik pada Android, iOS, dan web.

Berjalan dengan Sangat Cepat (Fast)

Flutter menggunakan graphic engine bernama lmpeller yang digunakan pada platform iOS, Android, dan macOS, serta Skia pada platform lain. Kode Flutter menggunakan bahasa Dart, yang memungkinkan untuk dikompilasi ke kode native 32-bit serta 64-bit ARM untuk iOS dan Android.

Sangat Produktif (Productive)

Flutter memiliki fitur hot-reload yang memungkinkan kamu untuk melihat hasil kompilasi secara real-time. Dengan hot-reload, kamu dapat dengan mudah melihat perubahan kode pada perangkat, tanpa perlu menunggu restart dan kehilangan state.

Bersifat Terbuka (Open Source)

Flutter adalah proyek open source dengan lisensi BSD. Kode yang ada dalam Flutter berasal dari kontribusi ratusan developer di seluruh dunia. Banyak plugin yang sudah dibuat oleh developer. 

Kamu dapat ikut berkontribusi mengembangkan Flutter dengan melaporkan bug/issue atau memperbaiki kode yang sudah ada. Source code dari Flutter dapat kamu temukan pada tautan https://github.com/flutter/flutter.

Oleh karena itulah, banyak pengembang yang menyukai Flutter untuk menyelesaikan masalah. Ada lebih dari 1 juta aplikasi yang telah dibangun dengan Flutter. Bahkan, dalam situs resmi menyebutkan total pengikut dalam akun Meetup (aplikasi event) sebesar 170 ribu! Hayo, ngaku deh, pasti kamu salah satu fans Flutter, bukan?

Belajar iOS Development sebagai Flutter Developer

Sebenarnya, seberapa penting mempelajari iOS development bagi Flutter developer? Tentunya, banyak manfaat yang akan kamu dapatkan. Selain bisa memahami platform iOS secara spesifik, kamu juga bisa memperluas pekerjaanmu menjadi mobile developer seutuhnya. 

Bayangkan, sebagai Flutter developer, kamu akan beberapa kali berkutat dengan kode specific API, seperti menangani sensor atau Bluetooth dalam aplikasi pada berbagai platform yang ada. 

Hal inilah yang membuat kamu harus mempelajari bahasa pemrograman Swift agar aplikasi Flutter-mu bisa berjalan dengan baik. Tentunya, tidak afdal jika kamu hanya mempelajari bahasa pemrogramannya saja, tetapi tidak mempelajari iOS development, bukan?

Mempelajari iOS development bagi seorang Flutter developer itu simpel karena secara alur sama. Jika Flutter menggunakan bahasa Dart, kamu bisa menggunakan Swift untuk membangun aplikasi iOS. 

Kamu hanya perlu membiasakan beberapa perbedaan antara Dart dan Swift saja. Selama paham konsep pemrograman pada Dart, hal itu mudah untuk dilakukan.

Tahap selanjutnya adalah mempelajari cara membangun aplikasi iOS itu sendiri. Jika dalam Flutter, kamu menuliskan semuanya dengan Dart, bukan? Hal ini sedikit berbeda dengan iOS karena kamu butuh bantuan UIKit untuk membangun antarmuka pengguna. 

Namun, saat ini sudah ada SwiftUI sebagai pengganti UIKit. SwiftUI memiliki cara penulisan yang mirip dengan Flutter, yakni menggunakan pendekatan declarative UI. Artinya, ketika kamu terbiasa menulis kode Flutter, mempelajari SwiftUI terasa mudah. 

Kemiripan SwiftUI dengan Flutter

Setelah memahami kunci menjadi iOS developer, mari kita coba bahas kemiripan antara SwiftUI dengan Flutter. Hal ini akan membuka cakrawala dan pandanganmu tentang iOS Development yang mudah untuk dipelajari sebagai Flutter developer

Sebuah View dan Widget

Dalam Flutter, semua komponen UI direpresentasikan sebagai widget, sedangkan dalam SwiftUI, menggunakan view. Walaupun keduanya memiliki kemiripan, SwiftUI menggunakan pendekatan Modifier sebagai property immutability, sedangkan dalam Flutter menggunakan semua komponen, termasuk properties, sebagai widget.

Flutter

SwiftUI

Menjalankan Aplikasi

Kita bisa menggunakan App untuk SwiftUI dan runApp untuk Flutter dalam menentukan widget atau view yang akan ditampilkan saat aplikasi dijalankan.

Flutter

SwiftUI

Selain itu, SwiftUI menggunakan body untuk membungkus sebuah struct yang sesuai dengan protocol dari View. Dalam Dart, struct paling mirip dengan class atau class dengan modifier tertentu, sedangkan protocol mirip dengan sebuah interface atau abstract class

Berbeda dengan Flutter, HomePage adalah widget yang memanfaatkan konsep StatelessWidget sehingga ia menggunakan metode build untuk membungkus sebuah Widget.

Flutter

SwiftUI

Menampilkan Sebuah Tombol

Kamu bisa menggunakan struct Button untuk membangun sebuah tombol dalam SwiftUI. Berbeda dengan Flutter, kamu bisa menggunakan CupertinoButton, salah satu class dari library Cupertino, untuk membuat sebuah tombol.

Flutter

SwiftUI

Mengatur Kumpulan Tampilan

Kita pasti sering menemukan skenario untuk menyusun sebuah beberapa tampilan menjadi sebuah kelompok, bukan? Hal itu bisa dilakukan dengan layout container. Kamu bisa menggunakan HStack pada SwiftUI dan Row pada Flutter untuk mengelompokkan beberapa komponen UI secara horizontal.

Flutter

SwiftUI

Seperti sebelumnya, bedanya VStack dan Column ini digunakan untuk mengelompokkan beberapa komponen UI secara vertikal.

Flutter

SwiftUI

Jika Anda perhatikan, SwiftUI secara default memiliki alignment adalah rata tengah, baik secara horizontal maupun vertikal. Oleh karena itu, kode SwiftUI menjadi lebih singkat dibandingkan Flutter yang harus menambahkan alignment karena secara default berada di atas dan rata tengah secara horizontal saja.

Menampilkan Informasi dalam Bentuk Daftar

Flutter dan SwiftUI juga mendukung sebuah layout untuk mengatur tampilan dalam bentuk daftar, yakni List pada SwiftUI serta ListView pada Flutter.

Flutter

SwiftUI

Mengelola State

Flutter memiliki StatefulWidget untuk mengelola state secara local dan State untuk mengelola state dalam Widget. Berbeda dengan SwiftUI yang memiliki @State untuk mengelola state dalam sebuah View. Selain itu, SwiftUI juga memiliki protocol ObservableObject untuk mengelola state yang lebih kompleks.

Flutter

SwiftUI

Kesimpulan

Tentu masih banyak lagi kemiripan antara SwiftUI dan Flutter. Jika kamu adalah seorang Flutter developer, mengenal SwiftUI dapat membuka peluang baru sebagai iOS developer tanpa harus memulai dari nol. 

Dengan pendekatan yang mirip, seperti penggunaan declarative UI dan kemiripan dalam pengelolaan state, SwiftUI adalah langkah alami untuk memperluas kemampuanmu.

Flutter menawarkan efisiensi serta fleksibilitas dalam pengembangan multiplatform, tetapi kemampuan memahami platform native, seperti iOS dengan Swift dan SwiftUI, dapat menjadikanmu seorang mobile developer yang lebih lengkap. Jadi, jika kamu telah terbiasa dengan Flutter, mempelajari SwiftUI akan terasa lebih mudah. 

Pada akhirnya, dengan keahlian pada kedua framework ini, kamu tidak hanya menjadi lebih adaptif, tetapi juga lebih siap menghadapi kebutuhan industri yang terus berkembang. Siap naik level? 

Jika kamu ingin mulai belajar iOS development, telah hadir langganan Learning Path baru, iOS Developer di Tokopedia Dicoding. Mulai belajar terarah dengan Learning Path. Khusus untuk kamu, dapatkan diskon 70% untuk setiap pembelian paket learning path. Kunjungi dicoding.id/iOS

Mulailah petualangan membangun aplikasi iOS dengan SwiftUI hari ini! Sekian blog kali ini, sampai jumpa bertemu dalam blog lainnya! Terima kasih.


Belajar Pemrograman Gratis
Belajar pemrograman di Dicoding Academy dan mulai perjalanan Anda sebagai developer profesional.