Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Swift
Code

Apa yang Diharapkan Dari Swift 3

by
Length:MediumLanguages:

Indonesian (Bahasa Indonesia) translation by Yosef Andreas (you can also view the original English article)

Kamu mungkin tahu bahwa Swift 3 akan datang akhir tahun ini. Ini adalah rilis pertama yang menggabungkan kerja keras dari komunitas yang fantastis. Puluhan proposal telah diajukan sejak Apple membuka Swift pada tahun 2015 dan puluhan diterima setelah dipertimbangkan dengan seksama oleh tim inti. Pada artikel ini, kita akan melihat beberapa perubahan penting dalam Swift 3.

Tentang Apa Saja Swift 3 Itu?

Tim inti memiliki tujuan yang sangat jelas dengan rilisnya Swift 3, menciptakan fondasi yang kuat untuk bahasa pemrograman Swift. Pada WWDC 2016, Chris Lattner menekankan bahwa Swift 3 memperkenalkan berbagai perubahan besar dengan maksud untuk mendapatkan fundamental yang benar. Itu merupakan tema umum dari rilis yang akan datang. Ini berarti merombak fitur-fitur yang ada, menghapus beberapa fitur, dan meningkatkan fondasi bahasa.

Proyek evolusi Swift telah menjadi kisah sukses sejati untuk semua orang yang terlibat dalam komunitas Swift. Partisipasinya luar biasa dan hasilnya adalah Swift 3. Apple transparan tentang proses rilis dan snapshot Swift 3 tersedia dari situs Swift dan termasuk dalam Xcode 8, yang dalam versi beta pada saat penulisan ini.

Lebih dari Swift

Rilis Swift 3 tidak hanya berfokus pada bahasa pemrograman Swift, tetapi juga mencakup perubahan besar pada toolchain, pustaka standar, dan interoperabilitas bahasa dengan Cocoa.  Ingat bahwa Swift lebih dari sekadar sebuah bahasa. Ketika kita berbicara tentang Swift, kita umumnya hanya memikirkan bahasa, tetapi itu juga termasuk pustaka standar dan manajer paket.

Kompatibilitas Sumber

Jika kamu telah bekerja dengan Swift, maka kamu tahu bahwa migrasi basis kode dari satu versi ke versi lain bukanlah urusan sepele. Sayangnya, migrasi proyek ke Swift 3 tidak akan berbeda.

Dikatakan, tujuan utama Swift 3 adalah memastikan transisi dari Swift 3 ke versi bahasa yang akan datang tidak akan seperti itu. Kompatibilitas sumber adalah titik fokus utama dari Swift 3.

Ketakjuban

Swift dirancang untuk menjadi bahasa pemrograman modern, tetapi sama pentingnya untuk membuat bahasa yang terlihat bagus dan ... yah ... mengagumkan. Dengan Swift 3, tim terus "mengoptimalkan bahasa untuk ketakjuban" seperti yang dikatakan Chris Lattner.

Meskipun ada banyak perubahan yang terjadi, hasil akhirnya adalah bahasa yang terasa dan terlihat hebat. Swift 3 merupakan sebuah kegembiraan untuk digunakan. Perubahan pada Core Graphics dan Grand Central Dispatch, yang kita diskusikan sebentar lagi, adalah contoh yang bagus. 

Apa yang Berubah?

Cukup tentang bagaimana Swift yang luar biasa dan betapa hebatnya Swift 3 nantinya. Di sisa artikel ini, saya ingin fokus pada beberapa perubahan utama yang diperkenalkan di Swift 3. Perlu diingat bahwa Swift 3 terus berkembang hingga rilis resmi akhir tahun ini.

API

Keterbacaan

Banyak waktu dan energi dihabiskan untuk meningkatkan API dari bahasa Swift. Perubahannya signifikan, tidak dapat disangkal. Tapi hasilnya sangat, sangat bagus. Dengan Swift 3, tim inti bertujuan untuk API yang berfokus pada keterbacaan dan aksesibilitas.

Sementara banyak dari kita telah terbiasa dengan kata kerja Objective-C, Swift API yang baru mengambil pendekatan yang berbeda dengan hanya menekankan dan berfokus pada hal-hal penting. Lihatlah contoh berikut dari Swift 2.2.1. Contoh ini harus terlihat akrab jika kamu menghabiskan waktu dengan Swift ... atau Objective-C.

Di Swift 3, cuplikan kode ini terlihat sedikit berbeda seperti yang kamu lihat di bawah ini.

Komunitas Swift menyadari bahwa tidak perlu memasukkan referensi ke apa yang akan disajikan karena informasi tersebut sudah dimasukkan dalam parameter pertama. Akibatnya, nama metode menjadi lebih mudah dibaca dan lebih ringkas. Peningkatan yang pasti jika kamu bertanya kepada saya.

Ini merupakan hal yang lazim dalam Swift 3. Beberapa proposal yang diterima dan termasuk dalam Swift 3 fokus pada penyederhanaan dan menghapus cacat dari bahasa. API Swift pada awalnya sangat dipengaruhi oleh sifat verbose Objective-C. Keterbacaan sangat bagus, tetapi Swift 3 mengurangi verbositas tanpa mengorbankan keterbacaan.

Komunitas Swift berpendapat bahwa desain API harus selalu menggunakan API dan terlihat jelas dalam perubahan yang diperkenalkan di Swift 3. Saya yakin kamu setuju bahwa API yang dirubah terlihat — dan terbaca — hebat.

Parameter Pelabelan

Perubahan penting lainnya yang disambut banyak pengembang adalah tanda tangan fungsi dan metode yang konsisten dengan menyertakan label parameter pertama secara default.  Ini adalah apa yang tampak seperti fungsi khas di Swift 2.2.1. Secara default, label parameter pertama dihilangkan ketika fungsi dipanggil.

Itu tidak lagi berlaku di Swift 3. Parameter pertama tidak lagi diberikan perlakuan khusus, yang merupakan perubahan yang disambut baik.

Karena perubahan ini, kamu dapat lebih meningkatkan contoh di atas dengan menghilangkan referensi ke tampilan dalam nama fungsi.

Impor sebagai Anggota

Bekerja dengan C API di Swift selalu terlihat dan terasa kikuk. Fungsi Core Graphics, misalnya, diimpor sebagai fungsi global, yang bukan solusi hebat dan, akibatnya, menggunakan Core Graphics di Swift tidak terasa hebat.

Hal yang sama berlaku untuk Grand Central Dispatch. Pada contoh berikut, kami menggunakan Grand Central Dispatch untuk mengirimkan tugas ke antrian latar belakang secara asinkron.

Di Swift 3, API terasa lebih seperti API Swift asli. Fungsi diimpor sebagai metode, yang menghasilkan sintaks berikut di Swift 3.

Menghapus Fitur

Komunitas Swift juga menyetujui penghapusan sejumlah fitur, beberapa di antaranya telah memicu beberapa diskusi panas. Saya ingin menunjukkan empat dari mereka.

C-Style for Loops

Apakah ini terlihat akrab bagimu?

C-style for loop tidak lagi tersedia di Swift 3. Tunggu.  Apa? Mengapa? Itu pertanyaan yang sangat bagus. Kamu dapat membaca proposal , yang dikirimkan oleh Erica Sadun, di GitHub. Ini membawa kita pada perubahan kontroversial berikutnya.

Ucapkan Selamat Tinggal pada ++ dan --

Segera setelah membuka sumber Swift, Chris Lattner, pencipta Swift, mengajukan proposal untuk menghapus peningkatan dan pengurangan operator dari bahasa. Dalam proposalnya, dia menyebutkan bahwa operator ini ditambahkan, "tanpa banyak pertimbangan", pada awal pengembangan Swift. Untuk membersihkan Swift API dan menghindari kebingungan, ++ dan -- tidak lagi tersedia di Swift.

Namun, jangan panik. Solusinya sederhana. Tidak perlu khawatir.

Tidak Ada Parameter var Lagi

Jika kamu sudah familiar dengan fungsi-fungsi di Swift, maka kamu tahu bahwa parameter dari suatu fungsi adalah konstan secara default. Kamu dapat mengubah perilaku ini dengan menambahkan nama parameter dengan kata kunci var. Untuk parameter variabel, salinan variabel dari parameter dilewatkan ke fungsi.

Tapi bagaimana ini berbeda dari parameter ditandai sebagai inout? Benar. Itulah yang banyak dari kita bertanya-tanya dan itu adalah motivasi untuk menghapus parameter variabel dari bahasa.

Dari perspektif fungsi, tidak ada perbedaan, yaitu, fungsi menerima salinan lokal yang dapat berubah dari nilai parameter. Seperti namanya, bagaimanapun, parameter yang ditandai sebagai inout menulis nilainya kembali ke variabel asli.

Untuk menghindari kebingungan, parameter var tidak lagi tersedia di Swift 3. Untungnya, parameter inout tetap ada.

Berbicara tentang parameter inout, di Swift 3, kata kunci inout terintegrasi dalam sintaks tipe parameter fungsi. Lihatlah contoh-contoh berikut untuk lebih memahami perubahan ini.

Perilaku Tuple Splat Implisit

Meskipun Swift masih sangat muda, ada banyak fitur yang cukup maju. Tahukah kamu bahwa kamu dapat mengirimkan tuple ke fungsi alih-alih daftar parameter? Tidak perlu bersorak. Fitur ini akan dihapus di Swift 3.

Chris Lattner mengacu pada perilaku ini sebagai "lucu" dalam proposalnya untuk menghapus fitur tersebut. Meskipun perilaku ini dapat berguna dari waktu ke waktu, tampaknya ini memiliki beberapa konsekuensi. Alasan untuk memunculkan proposal ini adalah untuk menyoroti tujuan utama dari tim inti, menyederhanakan sintaks dan API bahasa.

Saya dapat melihat bagaimana fitur ini terlihat rapi pada awalnya, tetapi, seiring dengan berkembangnya bahasa, semakin rumit, dan semakin banyak orang mulai menggunakannya, fitur seperti ini menambahkan nilai terbatas pada bahasa sebagai pertukaran untuk apa yang tampaknya menjadi daftar komplikasi , termasuk masalah kinerja selama kompilasi dan kompleksitas untuk tipe pemeriksa yang dapat dihindari dengan menghilangkan fitur tersebut.

Apa Hubungannya Dengan Swift 2.3?

Minggu lalu, saya menulis tentang Xcode 8. Dalam artikel itu, saya menyebutkan bahwa Xcode 8 mendukung Swift 2.3 dan Swift 3. Tapi apa itu Swift 2.3 dan bagaimana cara membandingkannya dengan Swift 2.2?

Swift 2.3 adalah pembaruan minor namun penting untuk Swift. Perbedaan utama dengan Swift 2.2.1, versi yang disertakan dalam Xcode 7.3.1, adalah kompatibilitas dengan SDK untuk sistem operasi baru Apple, iOS 10, tvOS 10, watchOS 3, dan macOS Sierra (10.12).

Ini berarti kamu dapat menggunakan dan membangun terhadap SDK baru tanpa membuat lompatan ke Swift 3. Dengan Xcode 8, kamu dapat mengirimkan aplikasi ke App Store menggunakan Swift 2.3 atau Swift 3. Tim Swift mengetahui dan memahami bahwa migrasi ke Swift 3 memiliki dampak signifikan pada proyek-proyek yang sudah ada yang termasuk Swift. Swift 2.3 memastikan kamu dapat memigrasikan proyek kamu jika mau.

Alat-alat

Yang juga saya sukai dari proyek Swift adalah alat dikembangkan bersama dengan bahasa. Ini berarti bahwa alat tersebut juga menerima pembaruan substansial ketika Swift 3 dirilis akhir tahun ini.

Dokumentasi

Selama WWDC, kami sudah melihat sekilas perubahan yang dilakukan pada dokumentasi. Meskipun ini mungkin tampak sepele, apakah kamu pernah mempertimbangkan berapa banyak waktu yang dihabiskan untuk menelusuri dokumentasi? Saya memiliki titik lemah untuk perincian seperti ini dan menghargai upaya yang telah dilakukan tim untuk membuat dokumentasi lebih mudah diakses. Perubahannya bahkan lebih dramatis di Xcode 8 seperti yang saya tulis minggu lalu

Xcode

Untuk saat ini, sebagian besar pengembang Swift menggunakan Xcode sebagai kuda pacu mereka. Ini dapat berubah di masa depan karena bahasa memperoleh daya tarik pada platform lain. Bukankah Google memiliki rencana untuk menggunakan Swift di Android?

Di Xcode 8, integrasi Swift jauh lebih baik. Menavigasi perpustakaan standar, misalnya, lebih intuitif. Dalam salah satu sesi WWDC 2016, Ewa Matejska menggambarkan bagaimana antarmuka yang disintesis sekarang lebih intuitif dan lebih mudah dipahami. Ini membuat browsing perpustakaan standar menjadi kurang menakutkan.

Ini membawa kita pada kompilasi dan optimalisasi. Kamu mungkin pernah mendengar tentang keseluruhan pengoptimalan modul. Fitur ini sekarang diaktifkan secara default di Xcode. Ini berdampak pada kinerja aplikasi dan Apple menyarankan agar fitur ini diaktifkan dalam produksi. Jika kamu ingin mempelajari lebih lanjut tentang optimasi seluruh modul, saya sarankan membaca artikel ini oleh Keith Harrison.

Sementara seluruh optimasi modul meningkatkan waktu kompilasi ketika kamu pertama kali membangun sebuah proyek, hasilnya lebih dari sepadan. Edisi berikutnya kurang terpengaruh berkat kompilasi inkremental.

Kesimpulan

Swift 3 adalah tonggak utama bagi semua orang yang terlibat dalam komunitas Swift. Meskipun tidak ada yang suka melanggar perubahan, arah bahasa yang diambil menjadi lebih jelas, membuat platform lebih kuat dan siap untuk perubahan di masa mendatang tanpa mengorbankan kompatibilitas sumber.

Dalam artikel ini, saya menyoroti beberapa perubahan penting yang dapat kamu harapkan di Swift 3. Untuk daftar lengkap perubahan, saya mendorong kamu untuk mengunjungi panduan migrasi di situs Swift.

Kamu juga dapat mengunjungi proyek evolusi Swift di GitHub untuk membaca lebih lanjut tentang proposal yang telah diterima dan yang masih dikerjakan. Jangan takut. Proposal seringkali mudah dimengerti. Nyatanya, tujuan dari proyek evolusi Swift adalah agar semua orang dapat menambah diskusi. Apa yang menghentikanmu?

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.