Aracılığıyla paylaş


Bölüm 1'in özeti. Nasıl Xamarin.Forms uyum sağlar?

Not

Bu kitap 2016 baharında yayımlanmıştır ve o zamandan beri güncellenmemiştir. Kitapta değerli kalan çok şey vardır, ancak bazı malzemeler eskidir ve bazı konular artık tamamen doğru veya eksiksiz değildir.

Programlamadaki en hoş olmayan işlerden biri, özellikle de bu platform farklı bir programlama dili içeriyorsa bir kod tabanını bir platformdan diğerine taşımadır. Kodu yeniden düzenlemek için taşıma sırasında da bir caziplik vardır, ancak her iki platformun da paralel olarak korunması gerekiyorsa, iki kod tabanı arasındaki farklar gelecekteki bakımı zorlaştıracaktır.

Platformlar arası mobil geliştirme

Mobil platformları hedeflerken bu sorun yaygın olarak görülür. Şu anda, iOS işletim sistemini çalıştıran iPhone ve iPad'lerin Apple ailesi ve çeşitli telefon ve tabletlerde çalışan Android işletim sistemi olmak üzere iki önemli mobil platform vardır. Bir diğer önemli platform da, tek bir programın her iki Windows 10'u da hedeflemesine olanak tanıyan Microsoft'un Evrensel Windows Platformu (UWP).

Bu platformları hedeflemek isteyen bir yazılım satıcısının farklı kullanıcı arabirimi paradigmalarıyla, üç farklı geliştirme ortamıyla, üç farklı programlama arabirimiyle ve (belki de en garip şekilde) üç farklı programlama diliyle ilgilenmesi gerekir: iPhone ve iPad için Objective-C, Android için Java ve Windows için C# .

C# ve .NET çözümü

Objective-C, Java ve C# her ne kadar C programlama dilinden türetilmiş olsa da, çok farklı yollar tarafından geliştirilmiştir. C# bu dillerin en yenileridir ve çok yararlı şekillerde olgunlaşıyor. Ayrıca, C# matematik, hata ayıklama, yansıma, koleksiyonlar, genelleştirme, dosya G/Ç, ağ, güvenlik, iş parçacığı oluşturma, web hizmetleri, veri işleme ve XML ve JSON okuma ve yazma desteği sağlayan .NET adlı tüm programlama altyapısıyla yakından ilişkilidir.

Xamarin şu anda C# ve .NET kullanarak yerel Mac, iOS ve Android API'lerini hedeflemek için araçlar sağlamaktadır. Bu araçlar, topluca Xamarin platformu olarak bilinen Xamarin.Mac, Xamarin.iOS ve Xamarin.Android olarak adlandırılır. Bunlar, .NET deyimleriyle bu platformların yerel API'lerini ifade eden kitaplıklar ve bağlamalardır.

Geliştiriciler, C# dilinde Mac, iOS veya Android'i hedefleyen uygulamalar yazmak için Xamarin platformunu kullanabilir. Ancak birden fazla platformu hedeflerken, kodun bir kısmını hedef platformlar arasında paylaşmak çok mantıklıdır. Bu, programı platforma bağımlı koda (genellikle kullanıcı arabirimini içerir) ve genellikle yalnızca temel .NET framework gerektiren platformdan bağımsız koda ayırmayı içerir. Platformdan bağımsız bu kod, Taşınabilir Sınıf Kitaplığı'nda (PCL) veya paylaşılan bir projede (genellikle Paylaşılan Varlık Projesi veya SAP olarak adlandırılır) bulunabilir.

Not

Taşınabilir Sınıf Kitaplıklarının yerini .NET Standart kitaplıkları aldı. Kitaptaki tüm örnek kodlar .NET standart kitaplıklarını kullanacak şekilde dönüştürüldü.

Giriş Xamarin.Forms

Birden çok mobil platformu hedeflerken daha Xamarin.Forms da fazla kod paylaşımına izin verir. için Xamarin.Forms yazılan tek bir program şu platformları hedefleyebilir:

  • iPhone, iPad ve iPod touch'ta çalışan programlar için iOS
  • Android telefon ve tabletlerde çalışan programlar için Android
  • Windows 10'un hedefine Evrensel Windows Platformu

Not

Xamarin.Forms artık Windows 8.1, Windows Phone 8.1 veya Windows 10 Mobile'ı desteklemez, ancak Xamarin.Forms uygulamalar Windows 10 masaüstünde çalıştırılır. Mac, WPF, GTK# ve Tizen platformları için de önizleme desteği vardır.

Bir programın büyük bir Xamarin.Forms kısmı bir kitaplıkta veya SAP'de bulunur. Platformların her biri, bu paylaşılan koda çağrıda bulunan küçük bir uygulama saplamasından oluşur.

API'ler Xamarin.Forms her platformdaki yerel denetimlerle eşler, böylece her platform karakteristik görünümünü korur:

Platform görsellerinin paylaşımının üç ekran görüntüsü

Soldan sağa ekran görüntüleri iPhone ve Android telefonu gösterir:

Sayfada her ekranda metin görüntülemeye yönelik bir Xamarin.FormsLabel , eylemleri başlatmaya yönelik bir Button , Switch açma/kapatma değeri seçmeye yönelik bir ve Slider sürekli aralık içinde bir değer belirtmek için bir yer alır. Bu görünümlerin dördü de üzerindeki ContentPagebir StackLayout öğesinin alt öğeleridir.

Ayrıca sayfaya eklenmiş olan araç Xamarin.Forms çubuğu çeşitli ToolbarItem nesnelerden oluşur. Bunlar, iOS ve Android ekranlarının üst kısmında ve Windows 10 Mobile ekranının alt kısmında simgeler olarak görünür.

Xamarin.Forms ayrıca çeşitli uygulama platformları için Microsoft'ta geliştirilen Genişletilebilir Uygulama İşaretlemeyi Dili olan XAML'yi de destekler. Yukarıda gösterilen programın tüm görselleri PlatformVisuals örneğinde gösterildiği gibi XAML'de tanımlanır.

Bir Xamarin.Forms program hangi platformda çalıştığını belirleyebilir ve buna göre farklı kod yürütebilir. Geliştiriciler daha güçlü bir şekilde çeşitli platformlar için özel kod yazabilir ve bu kodu bir Xamarin.Forms programdan platformdan bağımsız bir şekilde çalıştırabilir. Geliştiriciler ayrıca her platform için işleyiciler yazarak ek denetimler oluşturabilir.

Xamarin.Forms İş kolu uygulamaları veya prototip oluşturma ya da hızlı kavram kanıtı gösterimi için iyi bir çözüm olsa da, vektör grafikleri veya karmaşık dokunma etkileşimi gerektiren uygulamalar için daha az idealdir.

Geliştirme ortamınız

Geliştirme ortamınız hangi platformları hedeflemek istediğinize ve hangi makineleri kullanmak istediğinize bağlıdır.

iOS'u hedeflemek istiyorsanız Xcode ve Xamarin platformunun yüklü olduğu bir Mac'e ihtiyacınız olacaktır. Android'i desteklemek için Java ve gerekli SDK'ların yüklenmesi gerekir. Daha sonra Mac için Visual Studio kullanarak hem iOS hem de Android'i hedefleyebilirsiniz.

Visual Studio'yu yüklemek bilgisayarda iOS, Android ve tüm Windows platformlarını hedeflemenizi sağlar. Ancak Visual Studio'dan iOS'u hedeflemek için Xcode ve Xamarin platformunun yüklü olduğu bir Mac gerekir.

Programları USB ile bilgisayara bağlı gerçek bir cihazda veya bir simülatörde test edebilirsiniz.

Yükleme

Uygulama oluşturmadan ve oluşturmadan Xamarin.Forms önce, hedeflemek istediğiniz platformlara ve geliştirme ortamınıza bağlı olarak ayrı bir iOS uygulaması, android uygulaması ve UWP uygulaması oluşturup derlemeyi denemelisiniz.

Xamarin ve Microsoft web siteleri bunun nasıl yapılacağını gösteren bilgiler içerir:

Bu tek tek platformlar için proje oluşturup çalıştırdıktan sonra, uygulama Xamarin.Forms oluştururken ve çalıştırırken sorun yaşanmaz.