Bagaimana cara mengatur backend aplikasi seluler?

gambar

Apa yang kita lakukan? Registrasi pengguna dan layanan otorisasi untuk aplikasi seluler

Dalam proyek kesayangan masing-masing pengembang seluler, cepat atau lambat akan tiba saatnya Anda perlu dengan cepat dan tanpa terlalu banyak sakit kepala membuat server untuk aplikasi Anda. Tidak masalah fungsi apa yang harus dilakukan server: apakah itu penyimpanan data atau pendaftaran / otorisasi pengguna.

Sebagai aturan, pada awalnya semua orang berjalan (dengan baik, atau sebagian besar) di sepanjang jalan dengan resistensi paling rendah. Kami mencari solusi turnkey dan melihat seberapa cepat itu dapat disesuaikan dengan kebutuhan kita.

Pada tahap ini, hal pertama yang Anda dapat “google” adalah layanan Firebase, batas bebasnya lebih dari cukup untuk mengatur backend dari aplikasi seluler kecil. Tetapi dalam kasus ini, mengingat dengan tepat pengembang Rusia, kami berisiko menginjak hukum kami - transfer data lintas batas dan penyimpanan data pribadi pengguna.

(Undang-Undang Federal 152 “Tentang Data Pribadi”, Pasal 12, Bab 2).

Godaan untuk menggunakan Firebase sangat bagus, tetapi jika kita ingin memastikan diri kita dari kerepotan yang tidak perlu dengan berbagai agen pengawas, kita mulai melihat opsi alternatif.

Tahap selanjutnya adalah penggunaan server VDS dengan semacam solusi open-source atau freemium, di mana "service-as-a-service" yang sudah jadi atau solusi yang memungkinkan untuk menggunakan fungsi serupa diambil sebagai dasarnya.

Beberapa tahun yang lalu di Habré saya sudah menulis panduan terperinci untuk mengatur BaasBox (artikel itu dihapus dari publik karena informasi yang ketinggalan zaman) pada server sewaan dan memberikan contoh menggunakan berbagai panggilan dalam aplikasi iOS untuk bahasa Objective C. Tapi BaasBox benar-benar "kelas berat" dan menentukan minimum Anda untuk server sewaan. Setelah bermain sedikit dengannya, diputuskan untuk menggunakan solusi yang berbeda. Pada saat itu, server Parse baru-baru ini dimasukkan ke dalam pengembangan open-source oleh Facebook, ia tidak memiliki banyak adapter seperti saat ini, tetapi kemampuannya lebih dari cukup untuk proyek-proyek pribadi dan aplikasi pelanggan pribadi (banyak proyek masih ada dan bekerja secara stabil).

Dalam keadilan, perlu dicatat bahwa server parse telah matang sangat banyak dan secara aktif berkembang. Saat ini, hampir semua fungsi yang tersedia pada leluhur komersial telah diciptakan kembali. Anda dapat menulis kait Anda sendiri, pemberitahuan push yang dilokalkan, manajer proses, dan bahkan ada berlangganan untuk mengganti objek berdasarkan soket (ParseLiveQuery - jika menarik, saya akan menulis artikel terpisah tentang pengaturan ParseLiveQuery).

Tetapi parse-server berhenti menjadi menarik justru pada saat itu diperlukan untuk mengimplementasikan tipe data non-standar, yang sulit untuk bekerja berdasarkan jenis yang didefinisikan dalam sistem. Ini juga mengganggu fakta bahwa, bukan menjadi pengembang server khusus, saya sebelumnya tidak mementingkan penyebaran lingkungan yang lebih efisien dan banyak file konfigurasi dibuat dengan tangan, sementara tindakan terus-menerus diulang pada setiap server baru. Pada saat inilah pemahaman datang bahwa solusi kotak bukanlah solusi untuk semua masalah, dan Anda harus melanjutkan ke tahap berikutnya mengatur server Anda untuk aplikasi mobile.

Baru-baru ini, bahasa pengembangan utama saya adalah Swift.Oleh karena itu, dialah yang menarik bagi saya terutama dalam menulis kode sisi server. Swift sendiri mudah dipasang pada sistem unix, tetapi tidak akan memberikan keuntungan yang jelas. Pada intinya, itu akan menyerupai pengembangan aplikasi konsol dengan logika yang kompleks. Dibutuhkan banyak waktu untuk menciptakan kembali metode dasar yang diperlukan di server.

Seperti dalam banyak bahasa lain, sisi server swift memiliki kerangka kerja sendiri dan komunitas yang terlibat dalam pengembangan solusi ini.

Saat ini, ada tiga solusi paling signifikan untuk mengembangkan sisi server yang cepat:

  • Sempurna
  • Uap air
  • Kitura

Ada pilihan lain, tetapi mereka tidak layak disebutkan karena perkembangan mereka yang sudah lama terhenti dan kematian mereka.

Dalam hal dokumentasi dan dukungan, saya lebih suka Vapor, tapi ini masalah selera. Solusi lain akan dekat dengan seseorang. Dengan satu atau lain cara, dalam banyak momen mereka serupa.

Secara alami, lebih lanjut sepanjang siklus artikel dalam contoh saya, saya akan menggunakan Vapor. Berdasarkan hal itu, kami menerapkan layanan registrasi / otorisasi pengguna, mengirim dan mengonfirmasi email, kemampuan untuk mengatur ulang dan mengubah kata sandi.

gambargambar
gambargambar
Apakah layak melakukan implementasi tanpa manfaat praktis?

Mungkin tidak! Oleh karena itu, kami akan membuat layanan paling dewasa yang dapat Anda ambil dan gunakan untuk mengatur logika untuk menyimpan data pengguna di server Anda.

Jika keputusannya dewasa, maka itu melibatkan penggunaan keputusan yang disengaja. Kita harus menyederhanakan penskalaan, menerapkan validasi data, dan menyediakan penyimpanan sesi pengguna, agar tidak memaksanya memasukkan nama pengguna dan kata sandi setiap kali.

Apa yang kita butuhkan untuk ini?

  • VAPOR 4 (ya, masih dalam versi beta, tetapi rilis akan segera hadir, seperti yang dijanjikan pengembang)
  • PostgreSQL (ada adaptor yang sangat baik untuk bekerja dengan database ini)
  • Nginx
  • SSL (tutup semua permintaan kami dari klien ke server menggunakan sertifikat)
  • Localhost (pertimbangkan metode pengembangan secara lokal, agar tidak terhubung ke jaringan dan bekerja di jalan tanpa masalah)

Baiklah, kami akan mengemas semua ini di Docker untuk memastikan pekerjaan yang sama, terlepas dari lingkungan runtime saat ini.

Jujur, saya skeptis terhadap buruh pelabuhan pada satu waktu, tetapi saya harus melihat lebih dekat pada teknologi ini. Tujuan artikel ini bukan untuk menjelaskan karyanya dan untuk belajar bagaimana bekerja dengannya (saya curiga bahwa saya sendiri masih harus mempelajari banyak fitur menarik dari buruh pelabuhan). Tetapi mereka yang tidak tahu apa itu dan bagaimana bekerja dengannya, dapat secara independen berkenalan dengan Docker melalui tautan resmi: www.docker.com Ke

depan, saya akan meninggalkan tautan yang bermanfaat ke aplikasi Kitematic, yang dirancang untuk menyederhanakan pekerjaan dengan wadah buruh pelabuhan : kitematic.com (harus ada untuk mereka yang tidak suka menggunakan terminal).

Jadi, mari kita mulai dengan menginstal Docker di komputer mac: Ikuti

tautan hub.docker.com/editions/community/docker-ce-desktop-mac tautan dan unduh Get Docker Desktop For Mac (Stable).

gambar

Buka gambar yang dihasilkan lalu instal apa-apa berbeda dari menyalin standar aplikasi ke direktori program.

gambar

Setelah itu, jalankan aplikasi dan tunggu hingga layanan sepenuhnya diinisialisasi.

gambargambar

Jika belum ada ID Docker, maka itu harus dibuat di hub.docker.com dan jika ada, maka cukup masuk ke aplikasi.

gambar

Itu saja, persiapan untuk menggunakan Docker selesai. Tetap hanya untuk memeriksa versi saat ini dan informasi tentang lingkungan.

> versi
gambar

buruh pelabuhan> info buruh pelabuhan
gambar
Ini melengkapi persiapan untuk pengembangan layanan otorisasi. Pada bagian selanjutnya, kita akan melihat bagaimana Anda dapat menggunakan kontainer dari berbagai layanan, kami akan berurusan dengan komposisi buruh pelabuhan untuk mengotomatisasi perakitan lingkungan kita dan mulai menulis kode.

PS: Sedikit saran dari pengalaman pribadi. Ketika kami mengembangkan layanan pada mesin lokal kami, Docker mengalokasikan sumber daya default untuk penggunaan kami. Jika kita ingin memvisualisasikan perilaku layanan yang diharapkan pada server jauh, kita harus menjaga sumber daya pada mesin lokal, sedekat mungkin dengan karakteristik server. Anda dapat melakukan ini dalam pengaturan aplikasi Desktop Docker, yang kami unduh:

gambar

Penulis artikel:
Vitaly Podolsky, guru HackerU

All Articles