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

Bagaimana Kode Dengan Swift pada Server

by
Difficulty:IntermediateLength:MediumLanguages:

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

Final product image
What You'll Be Creating

Sejak Apple pertama kali memperkenalkan Swift sebagai penerus Objective-C, Apple telah merevolusi bagaimana komunitas mengkode aplikasi iOS, macOS, watchOS dan tvOS. Ketika Swift menjadi platform open-source, ia membuka kemungkinan baru untuk bahasa di luar aplikasi mobile dan client-side — Swift menjadi bahasa server juga! Dalam tutorial ini, Anda akan mempelajari apa server-side Swift dan mengapa Anda ingin Swift di back-end Anda.

Inisiatif Swift server-side didorong oleh tiga proyek terkemuka — Vapor by QutheoryIBM’s Kitura, dan Perfect — dengan tujuan membiarkan developers Swift membuat layanan back-end sepenuhnya matang. Ini, pada dasarnya, akan mengubah developers tersebut menjadi developers full-stack, meniadakan kebutuhan untuk mengandalkan Node atau PHP atau memberikan kontrol ke platform BaaS seperti Firebase Google.

Tujuan dari Artikel Ini

Dalam artikel ini, Anda akan mempelajari semua tentang Swift server-side. Pertama saya akan menjelaskan bagaimana Swift server-side berfungsi, dan kemudian saya akan menunjukkan kepada Anda bagaimana memulai dengan Kitura, Vapor, dan Perfect frameworks.

Apa yang dimaksud dengan Server-Side Swift?

Swift pertama kali diumumkan oleh Apple pada tahun 2014 dan dengan cepat menjadi salah satu bahasa pemrograman yang paling cepat berkembang. Swift menarik dari banyak bahasa kontemporer terbaik, seperti Python, memungkinkan keanggunan dan kemudahan penggunaan. Ini membebaskan insinyur dari belenggu teknis Objective-C, memungkinkan pekerjaan yang lebih cair dan intuitif.

Pada bulan Desember 2015, Apple membuat pengumuman monumental lainnya dan membuat bahasa Swift — bersama dengan supporting libraries, debugger, dan package manager — sebuah proyek sumber terbuka di bawah Apache 2.0 license, membuka platform bagi publik untuk menciptakan pull requests dan berkontribusi. Pergeseran dari Objective-C tidak hanya menarik banyak developers Objective-C yang berkontribusi di App Store, tetapi telah mempermudah developers dari semua keterampilan dan latar belakang untuk memasuki ekosistem Apple dengan Swift.

Namun, sementara development tools Apple secara historis mempermudah developers untuk membuat aplikasi yang menarik dan menarik secara visual untuk App Store, salah satu hambatan utama adalah bahwa proyek-proyek masih memerlukan developers back-end khusus untuk membuat aplikasi berbasis data yang kompleks. Jadi developers iOS dan macOS akan perlu melibatkan bantuan developers Python, PHP, atau Node untuk membuat database back-end mereka atau mengambil keterampilan itu sendiri, menghasilkan beban kerja yang jauh lebih berat untuk menyelesaikan tujuan proyek mereka.

Meskipun back-end-as-a-service (BaaS) telah datang untuk menyelamatkan developers iOS, dengan solusi back-end tanpa kode seperti Google Firebase dan CloudKit milik Apple sendiri yang meringankan kerumitan back-end, banyak tim dan proyek menuntut lebih banyak. Di sinilah Swift server-side datang, memungkinkan Anda untuk membuat server back-end multi-threaded sepenuhnya matang yang bersumber terbuka dan jauh dikonfigurasi.

Server-side Swift memungkinkan Anda memilih bagaimana Anda meng-host server back-end Anda, apakah dengan AWS, RackSpace, atau physical servers Anda sendiri. Anda juga dapat memilih cara memuat saldo server Anda (misalnya melalui solusi server populer seperti NGINX) dan bagaimana mempertahankan data Anda dalam database (baik itu solusi NoSQL seperti MongoDB, atau database tradisional seperti Postgres, MySQL, atau Oracle) . Tidak hanya itu, tetapi Anda tidak pernah terikat pada satu solusi komponen — Anda dapat beralih tanpa memengaruhi keseluruhan basis kode aplikasi Anda.

Intinya adalah bahwa dengan memilih untuk solusi Swift open-source server-side seperti Vapor by Qutheory, IBM's Kitura, atau Perfect, Anda memanfaatkan sejumlah besar plugin yang memungkinkan Anda untuk mengkonfigurasi back end seperti yang Anda inginkan itu, memanfaatkan keahlian tim yang ada di Swift untuk melakukannya.

Server-side Swift tentu kedengarannya menarik, tetapi framework mana yang tepat untuk Anda? Selanjutnya kita melihat masing-masing secara bergantian, dimulai dengan Kitura.

Memulai Dengan Kitura

Ikhtisar

Dimulai dengan Kitura, Anda memiliki platform yang awalnya dirilis pada Februari 2016 dan menjadi terkenal di tahun itu di WWDC Apple, yang mewakili peluncuran IBM untuk mendukung web server-side dengan Swift, yang kemudian diatur ke transisi dari tangan Apple ke open source.

Secara umum, Kitura berfokus pada konvensi konfigurasi: ia membangun proyek awal Anda dengan bertopik, sebelum Anda memilih frameworks khusus dan libraries yang ingin Anda bangun. Mekanisme otentikasi Kitura didukung oleh frameworks middleware Kitura-Credentials , yang memungkinkan Anda untuk memilih dari mekanisme otentikasi smorgasbord, dari nama pengguna / sandi tradisional ke login media sosial dan otentikasi federasi, menggunakan OpenID yang menangani JSON Web Tokens (JWT ).

Solusi database ORM Kitura didukung oleh Kuery untuk mengaburkan kerumitan menangani SQL secara langsung, mendukung basis data relasional umum seperti MySQL, SQLite, dan PostgreSQL, serta solusi basis data lainnya, termasuk basis data NoSQL, melalui berbagai plugin lain yang kompatibel.

Kitura juga menyediakan plugin berguna lainnya untuk hal-hal seperti HTML templating, menggunakan plugin populer seperti Stencil dan Markdown. Berasal dari IBM, framework server-side juga mendapat manfaat dari konektivitas intim dengan API IBM Watson serta menyediakan dukungan asli macOS untuk mengintegrasikan langsung ke platform cloud Bluemix mereka. Ini menyediakan opsi tambahan yang Anda inginkan, bersama dengan opsi penerapan tradisional lainnya di server Linux / Unix dan macOS.

Meskipun platform ini memang menyediakan serangkaian fitur unik — dari Kuery hingga kemampuan untuk berintegrasi dengan berbagai pustaka API IBM — itu tidak memiliki pengaruh komunitas yang dimiliki Vapor. Mengadopsi Kitura membutuhkan apresiasi dan merangkul cara-cara nonkonvensional sendiri dalam melakukan berbagai hal, mulai dari bagaimana Kuery beroperasi hingga mekanisme otentisasinya. Namun, mengingat bahwa itu didukung oleh perusahaan besar dengan fokus pada perusahaan, ada beberapa jaminan yang dibangun di masa depan.

Kitura documentation page

Memasang dan Menjalankan Kitura

Cara tercepat untuk memulai adalah dengan menggunakan Kitura’s command-line interface (CLI), yang didukung pada macOS dan Linux. Menggunakan utilitas manajemen paket populer Homebrew, instal Kitura dan Kitura CLI dengan memasukkan berikut:

Dalam folder kosong yang akan Anda gunakan sebagai proyek Anda, jalankan yang berikut ini untuk menginisialisasi proyek Anda:

Setelah selesai membuat skeleton application Anda, Anda akan melihat proyek baru bernama HelloKitura.xcodeproject. Anda dapat mempelajari lebih lanjut tentang pembuatan proyek dengan mengacu pada Kitura’s official documentation. Anda dapat membuka proyek yang baru dibuat di Xcode dan mengedit application class utama, Application.swift, untuk menangani semua panggilan ke root server Anda http : // localhost: 8080 / URL:

Snipet kode di atas merespons dengan mengembalikan the classic HelloWorld!. Sebelum akhirnya Anda dapat menjalankan proyek, ubah skema Xcode Anda untuk mengarah ke HelloKitura (proyek aktif Anda), dan mulai proyek Anda dengan menekan Command-R. Saat server Anda berjalan, di browser pilihan Anda, buka http: // localhost: 8080 dan Anda akan melihat teks hello world di browser Anda.

Informasi lebih lanjut

Periksa link berikut untuk informasi lebih lanjut tentang Kitura.

Memulai dengan Vapor

Ikhtisar

Dirilis beberapa bulan kemudian dari Kitura, pada bulan September 2016, Vapor by Qutheory secara luas dianggap yang paling populer dalam hal ukuran komunitas dan jumlah plugin. Ini dibangun di atas kerangka Swift-nio Apple, menjadikannya pembangkit tenaga listrik kinerja sejati. Tidak seperti Kitura dan platform lain, yang tidak murni dibangun di Swift melainkan pada Node.js atau intermediary parsers lainnya, Vapor memisahkan dirinya dari salah satu dependensi tersebut untuk mengirimkan parser Swift dan menyediakan API yang jelas dan dapat dibaca.

Vapor documentation page

Vapor menyediakan dukungan komprehensif dari database untuk vendor SQL seperti MySQL dan PostgreSQL, serta vendor NoSQL seperti Redis dan MongoDB, seperti Kitura. Sedangkan Kitura memiliki solusi ORM Kuery sendiri, Vapor memanfaatkan Fluent ORM untuk mendukung database yang baru saja saya sebutkan, membuatnya relatif mudah untuk memperluas ORM ke penyedia basis data pihak ketiga lainnya. Vapor memisahkan dirinya dari kerangka lain yang secara natif mendukung Apple’s Push Notification Service, serta mendukung SMTP untuk mendorong pemberitahuan email.

Sedangkan Kitura mengimplementasikan framework otentikasi sendiri, Vapor memiliki Stormpath’s Turnstile authentication library yang dipanggang secara asli. Seperti Kitura, platform ini juga mendukung template Moustache dan Markdown, serta bahasa template ekspresif Swift-native sendiri, Leaf. Vapor juga dilengkapi dengan mesin CLI sendiri seperti frameworks Swift server-side lainnya, dengan kemampuan untuk memperluas argumen command-line aplikasi dengan custom flags.

Memasang dan Menjalankan

Untuk memulai dengan Vapor, Anda mulai dengan menginstal Vapor toolbox, yang terdiri dari semua library dependencies dan toolkit CLI. Instal dengan Homebrew dengan memasukkan yang berikut di terminal:

Setelah instalasi selesai, Anda dapat mengonfirmasi bahwa Vapor berhasil diinstal dengan mengetikkan vapor —help. Untuk membuat proyek, ketik yang berikut, gantikan dengan nama proyek Anda sendiri:

Mesin Vapor akan membangun struktur folder yang menyerupai berikut ini:

Untuk benar-benar membuat proyek Xcode, Anda juga harus secara eksplisit memasukkan perintah berikut, dari dalam folder proyek:

Akhirnya, untuk membangun dan menjalankan proyek Anda, dari Xcode pilih skema Run serta perangkat target penyebaran My Mac, dan kemudian tekan tombol Run seperti yang Anda lakukan untuk proyek Xcode lainnya. Jika proyek Xcode Anda tidak mengalami kesalahan apa pun, Anda akan melihat pesan konfirmasi berikut di terminal:

Lanjutkan dan masukkan URL itu di browser pilihan Anda, dan Anda akan melihat aplikasi Anda berjalan.

Informasi lebih lanjut

Periksa link berikut untuk informasi lebih lanjut.

Memulai Dengan Sempurna

Ikhtisar

Akhirnya, kita melihat Perfect by PerfectlySoft, a feature-rich server-side platform seperti Vapor dan Kitura. Perfect includes mencakup lonceng dan peluit standar yang sama seperti yang Anda temukan pada vendor sebelumnya, mulai dari template dengan Mustache atau Markdown ke jaringan dengan soket web, serta Apple Push Notification  dan SMTP.

Perfect documentation page

Seperti platform server-side lainnya, Perfect memiliki implementasi ORM sendiri, the StORM platform (Perfect StORM), yang menyediakan dukungan asli untuk MySQL, PostgreSQL dan basis data relasional lainnya, serta MongoDB, Redis, dan solusi NoSQL lainnya. Satu kelalaian yang luar biasa dari Perfect adalah CLI, tetapi framework membuat ini dengan aplikasi macOS asli.

Seperti Vapor, Perfect juga memiliki Turnstile yang dipanggang untuk menghidupkan authentication mechanism, diperluas untuk berinteraksi dengan Storn dengan lebih intim. Perbedaan lain yang dimiliki solusi ini terhadap yang lain adalah di banyak pustaka utilitas asli yang didukungnya, termasuk bungkus cURL mereka sendiri serta alat untuk bekerja dengan file dan folder. Basis developer Perfect adalah yang terbesar kedua, hampir setara dengan Vapor's, yang berarti Anda memiliki komunitas yang kuat untuk mendukung platform ini, bersama dengan serangkaian sumber daya pendidikan yang kaya untuk memberi Anda kepercayaan diri jika Anda memilihnya.

Memasang dan Menjalankan

Bangun dan berjalan dengan Perfect benar-benar mudah. Pertama, mengkloning repo PerfectlySoft, dengan memasukkan berikut:

Dari dalam folder yang dikloning, buat proyek:

Akhirnya, jalankan proyek, yang akan menjalankan server lokal pada alamat 0.0.0.0:8181:

Anda juga dapat menjalankan proyek Anda di Xcode dengan terlebih dahulu menghasilkan proyek baru, sebagai berikut:

Dalam Xcode, pastikan target eksekusi Anda diarahkan ke My Mac, sebelum membangun dan menjalankan proyek.

Informasi lebih lanjut

Periksa link berikut untuk informasi lebih lanjut tentang Perfect framework.

Kesimpulan

Rilis Swift ke komunitas open-source telah memicu dorongan untuk solusi Swift di luar aplikasi klien, dengan frameworks server back-end menjadi perbatasan berikutnya. Didorong oleh tiga proyek terkemuka — Vapor by Qutheory, IBM's Kitura, dan Perfect — server-side Swift telah memungkinkan para insinyur iOS (dan macOS) untuk menjadi full-stack developers. Ini dapat meniadakan ketergantungan pada Node.js, PHP atau .NET back-end engineers. Server-side Swift juga memberikan kemampuan kepada tim untuk mengontrol back-end mereka tanpa harus bergantung pada solusi back-end-as-a-service mobile seperti Firebase atau CloudKit.

Swift Server-side bukan untuk semua orang: Anda harus memutuskan seberapa besar kontrol yang Anda butuhkan untuk back-end Anda, dan apakah masuk akal bagi Anda untuk menggulirkan sendiri. Juga, saya tidak mencoba memberi tahu Anda solusi Swift server-side mana yang terbaik. Developers tentu dimanjakan dengan pilihan, dan ketiganya memberikan pengambilan yang unik dan matang dan patut dicoba. Saya akan mendorong Anda untuk bermain-main dengan masing-masing kode sampel, mengevaluasi sintaks, dan terlibat dengan komunitas masing-masing untuk melihat solusi mana yang paling cocok bagi Anda.

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.