Buku "C # 7 dan .NET Core. Pengembangan lintas platform untuk para profesional. Edisi ke-3

gambar Halo semuanya, kami sudah menulis tentang buku baru oleh Mark Price, sekarang kami menerbitkan kutipan dari buku "Pengembangan Aplikasi Seluler Menggunakan Xamarin. Bentuk"

Kami akan membuat aplikasi manajemen daftar klien seluler di basis data Northwind, yang dapat dijalankan di iOS atau Android.

Instal Android SDK


Untuk membuat aplikasi Android, Anda harus menginstal setidaknya satu Android SDK. Menginstal Visual Studio untuk Mac secara default sudah termasuk satu Android SDK, tetapi seringkali ini adalah versi yang lebih lama untuk mendukung jumlah perangkat Android terbesar. Untuk menggunakan fitur-fitur terbaru Xamarin.Forms, Anda perlu menginstal versi Android SDK yang lebih baru.

Luncurkan Visual Studio untuk Mac dan jalankan perintah Visual Studio Community -> Preferences (Visual Studio Community -> Preferences).

Dalam kotak dialog Preferensi, buka bagian Projects → SDK Locations dan pilih platform yang diinginkan, misalnya, Android 8.0 - Oreo (Gbr. 18.1).
gambar

Membuat Solusi Xamarin.Forms


Jalankan perintah File → Solution Baru.

Pada kotak dialog yang terbuka, pilih item Aplikasi dalam kategori Multi Platform (proyek lintas platform). Di bagian Xamarin.Forms, pilih Blank Forms App (Gbr. 18.2).

gambar

Klik tombol Berikutnya.

Di bidang Nama Aplikasi, masukkan NorthwindMobile, dan di bidang Pengidentifikasi Organisasi, masukkan com.packt. Setel sakelar Shared Code ke posisi Use Shared Library dan aktifkan kotak centang Use XAML untuk file antarmuka pengguna (Gambar 18.3).

Klik tombol Berikutnya.

Dalam bidang Nama solusi, tentukan nilai Part3Mobile, dan dalam bidang Location - value / Users / your_name / Code (Gbr. 18.4). Klik tombol Buat. Dalam beberapa saat, solusi dan tiga proyek akan dibuat. Dalam Visual Studio untuk Mac, jalankan perintah Build → Build All (Assembly → Build All) dan tunggu hingga program mengunduh semua paket yang diperbarui dan mengumpulkan proyek (Gbr. 18.5).

Klik kanan pada Part3Mobile dan pilih Perbarui Paket NuGet.

gambar

gambar

gambar

Pembuatan model


Kita bisa menggunakan pustaka model data yang dibuat sebelumnya dengan entitas .NET Standard 2.0, tetapi kita perlu menerapkan pengikatan data dua arah, jadi kita akan membuat kelas baru untuk mewakili entitas klien dalam aplikasi seluler.

Klik kanan pada proyek NorthwindMobile, dalam menu konteks, klik Tambah → Folder Baru dan beri nama Model direktori yang dibuat.

Klik kanan pada direktori Models dan pada menu shortcut, klik Add → New File.

Dalam kotak dialog File Baru, jalankan perintah Umum → Kelas Kosong (Umum → Kelas kosong), beri nama Pelanggan kelas (Gbr. 18.6) dan klik tombol Baru.

Ubah instruksi seperti yang ditunjukkan dalam daftar di bawah:

using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; namespace NorthwindMobile.Models { public class Customer : INotifyPropertyChanged { 


gambar


 public static IList<Customer> Customers; static Customer() { Customers = new ObservableCollection<Customer>(); } public event PropertyChangedEventHandler PropertyChanged; private string customerID; private string companyName; private string contactName; private string city; private string country; private string phone; public string CustomerID { get { return customerID; } set   { customerID = value;  PropertyChanged?.Invoke(this,  new PropertyChangedEventArgs("CustomerID"));  } } public string CompanyName { get { return companyName; } set  {  companyName = value; PropertyChanged?.Invoke(this,  new PropertyChangedEventArgs("CompanyName")); } } public string ContactName { get { return contactName; } set { contactName = value; PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("ContactName"));  } } public string City { get { return city; } set { city = value;   PropertyChanged?.Invoke(this,   new PropertyChangedEventArgs("City"));    }    }    public string Country { get { return country; } set { country = value; PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Country")); } } public string Phone { get { return phone; } set { phone = value; PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Phone")); } }  public string Location { get { return string.Format("{0}, {1}", City, Country); } } //     - public static void SampleData() {   Customers.Clear(); Customers.Add(new Customer { CustomerID = "ALFKI", CompanyName = "Alfreds Futterkiste",  ContactName = "Maria Anders", City = "Berlin", Country = "Germany", Phone = "030-0074321" }); Customers.Add(new Customer { CustomerID = "FRANK",  CompanyName = "Frankenversand",    ContactName = "Peter Franken",   City = "München", Country = "Germany", Phone = "089-0877310"  }); Customers.Add(new Customer  {  CustomerID = "SEVES", CompanyName = "Seven Seas Imports", ContactName = "Hari Kumar", City = "London", Country = "UK", Phone = "(171) 555-1717" });    }  } } 

Perhatikan poin-poin berikut.

  • Kelas mengimplementasikan INotifyPropertyChanged, sehingga komponen antarmuka pengguna dua arah seperti Editor akan memperbarui properti dan sebaliknya. Semuanya bertumpu pada acara PropertyChanged, yang terjadi ketika salah satu properti berubah.
  • Setelah mengunduh dari layanan, data pelanggan akan di-cache secara lokal di aplikasi seluler menggunakan ObservableCollection. Ini memberikan dukungan pemberitahuan untuk komponen antarmuka pengguna terkait seperti ListView.
  • Selain properti untuk menyimpan nilai yang diambil dari layanan REST, kelas mendefinisikan properti Lokasi Read-only. Ini akan berfungsi sebagai pengikat dalam daftar konsolidasi pelanggan.
  • Untuk tujuan pengujian, ketika layanan REST tidak tersedia, metode digunakan untuk menggunakan data tiga klien demo.

Membuat antarmuka untuk memutar nomor telepon


Klik kanan pada direktori NorthwindMobile dan pilih Tambah → File Baru dari menu konteks.

Di kotak dialog File Baru, pilih Umum → Antarmuka Kosong, beri nama antarmuka IDialer, dan klik Baru.
Ubah kode antarmuka IDialer seperti yang ditunjukkan dalam daftar berikut:

 namespace NorthwindMobile { public interface IDialer { bool Dial(string number); } } 

Menerapkan antarmuka untuk memanggil nomor telepon untuk iOS


Klik kanan pada direktori NorthwindMobile.iOS dan dari menu konteks, klik Tambah → File Baru.

Di kotak dialog File Baru, pilih Umum → Kelas Kosong (Umum → Kelas Kosong), beri kelas nama PhoneDialer dan klik tombol Baru.

Ubah isinya seperti yang ditunjukkan dalam daftar di bawah ini:

 using Foundation; using NorthwindMobile.iOS; using UIKit; using Xamarin.Forms; [assembly: Dependency(typeof(PhoneDialer))] namespace NorthwindMobile.iOS {  public class PhoneDialer : IDialer {    public bool Dial(string number) { return UIApplication.SharedApplication.OpenUrl( new NSUrl("tel:" + number));  }  } } 

Menerapkan antarmuka untuk memanggil nomor telepon untuk Android


Klik kanan pada direktori NorthwindMobile.Droid di menu konteks dan jalankan perintah Tambah—> File Baru.

Di kotak dialog File Baru, jalankan perintah Umum—> Kelas Kosong (Umum—> Kelas kosong), beri nama kelas PhoneDialer, dan klik tombol Baru.

Ubah isinya seperti yang ditunjukkan dalam daftar berikut:

 using Android.Content; using Android.Telephony; using NorthwindMobile.Droid; using System.Linq; using Xamarin.Forms; using Uri = Android.Net.Uri; [assembly: Dependency(typeof(PhoneDialer))] namespace NorthwindMobile.Droid { public class PhoneDialer : IDialer { public bool Dial(string number) { var context = Forms.Context; if (context == null) return false; var intent = new Intent(Intent.ActionCall); intent.SetData(Uri.Parse("tel:" + number)); if (IsIntentAvailable(context, intent))  {  context.StartActivity(intent); return true; } return false; } public static bool IsIntentAvailable(Context context, Intent intent) { var packageManager = context.PackageManager; var list = packageManager.QueryIntentServices(intent, 0) .Union(packageManager.QueryIntentActivities(intent, 0)); if (list.Any()) return true; var manager = TelephonyManager.FromContext(context); return manager.PhoneType != PhoneType.None; } } } 

Di direktori NorthwindMobile.Droid, perluas subdirektori Properties dan buka file AndroidManifest.xml. Di area Izin yang diperlukan, pilih kotak centang CallPhone (Gambar 18.7).

gambar

Tentang penulis


Mark J. Price adalah Pengembang Solusi Bersertifikat Microsoft (MCSD), Spesialis Microsoft: Pemrograman dalam C # dan Pengembang Bersertifikat Episerver dengan lebih dari 20 tahun pengalaman pelatihan dan pemrograman.

Sejak 1993, Mark telah lulus lebih dari 80 ujian pemrograman Microsoft dan berspesialisasi dalam mempersiapkan orang lain untuk pengujian yang sukses. Murid-muridnya berusia 16 tahun dan profesional dengan pengalaman bertahun-tahun. Mark memberikan pelatihan yang efektif, menggabungkan kegiatan pendidikan dengan praktik nyata dalam konsultasi dan desain sistem untuk perusahaan di seluruh dunia.

Antara 2001 dan 2003, Mark mencurahkan seluruh waktunya untuk mengembangkan perangkat lunak pelatihan resmi di kantor pusat Microsoft di kota Redmond AS. Sebagai bagian dari tim, ia menulis kursus pelatihan pertama dalam C #, ketika hanya versi alfa bahasa yang dirilis. Selama kolaborasi dengan Microsoft, ia bekerja sebagai instruktur pendidikan berkelanjutan untuk perusahaan bersertifikat dalam kursus pelatihan khusus tentang C # dan .NET.

Mark saat ini sedang mengembangkan dan mendukung kursus pelatihan untuk Episerver's Digital Experience Cloud, .NET CMS terbaik dalam pemasaran digital dan e-commerce.

Pada 2010, Mark menerima sertifikat penyelesaian program studi pascasarjana, yang memberikan hak untuk mengajar. Dia mengajar matematika sekolah menengah di London di dua sekolah menengah di London untuk mempersiapkan sertifikat GCSE dan A-Level. Selain itu, Mark menerima sertifikasi Ilmu Komputer BSc. Hons. Gelar di Universitas Bristol, Inggris.

Tentang pengulas


Dustin Heffron adalah pengembang perangkat lunak dan game. Dia memiliki lebih dari satu dekade pengalaman pemrograman dalam berbagai bahasa, delapan di antaranya terkait dengan C # dan .NET.

Saat ini mengembangkan perangkat lunak untuk otomatisasi dan pengujian instrumen medis di Becton Dickinson. Dia juga pendiri dan CEO SunFlake Studios.

Dustin telah berkolaborasi dengan Packt untuk waktu yang lama dan telah berkontribusi pada buku-buku seperti Pengembangan Game XNA 4.0 dengan Contoh: Panduan Pemula, C # 6 dan .NET Core 1.0: Pengembangan Cross-Platform Modern, serta seri tutorial video XNA 3D Programming. dengan contoh Selain itu, Dustin, bersama dengan Larry Louisiana (Larry Louisiana) ikut menulis serangkaian tutorial video XNA 3D Toolkit.

Efraim Kyriakidis adalah insinyur perangkat lunak dengan pengalaman lebih dari sepuluh tahun dalam mengembangkan dan mengimplementasikan solusi perangkat lunak untuk berbagai klien dan proyek. Dia berpengalaman dalam semua tahap siklus pengembangan perangkat lunak. Kenalan pertamanya dengan komputer dan pemrograman terjadi di masa kanak-kanak, selama popularitas komputer Commodore 64, di tahun 80-an abad kedua puluh. Sejak itu, ia tumbuh dan menerima diploma di Universitas Aristoteles di Thessaloniki, Yunani. Sepanjang karirnya, ia telah bekerja terutama dengan teknologi Microsoft, menggunakan C # dan .NET, dimulai dengan versi 1.0. Dia saat ini bekerja di Siemens AG di Jerman sebagai pengembang perangkat lunak.

»Informasi lebih lanjut tentang buku ini dapat ditemukan di situs web penerbit
» Isi
» Kutipan

Kupon diskon 20% untuk penjaja - Paket

Source: https://habr.com/ru/post/id415275/


All Articles