Xamarin
Türkiye [beta]
Konular


Xamarin.Forms Shared Uygulamanın Yapısı, MainActivity, AppDelegate, App.cs, MainPage Kavramları

Xamarin.Forms Shared Uygulamanın Yapısı, MainActivity, AppDelegate, App.cs, MainPage Kavramları

Yeni bir Xamarin uygulaması oluşturduğunuzda (VisualStudio > New Project > Xamarin.Forms Shared), template, Solution içerisinde Shared Part, Droid, iOS ve WinPhone olmak üzere 4 Proje oluşturur. (Windows projesini şimdilik dikkate almayalım)

 

 

 

Shared Part: OrnekUygulama

Shared Part daha önce kullanmadıysanız başta biraz kafa karıştırıcı görünebilir fakat alıştıktan ve sağladığı faydaları gördükten sonra bu yapıdan keyif alacaksınız.

Bu bölüm platformlar arası ortak kodu yazacağımız kısımdır. Projenin; Model, View, ViewModel yapısı ve projeye özel ilave edeceğimiz ortak sınıflar burada oluşturulacaktır.

Xamarin Türkiye paylaşım portalının Blog bölümünde, “Xamarin Öğreniyorum” kategorisinin sıradaki yazısında birlikte örnek bir proje yapıp bu kısmı detaylı inceleyeceğiz. Yazıyı Yiğit Özaksüt hazırlıyor, kendisini sıkıştırabilirsiniz :))

VS SolutionExplorer’da, Shared bölümde, ilgili uygulama şablonu ile oluşturulan App.cs dosyasını göreceksiniz. Bu sınıf Xamarin.Forms arabiriminin çalıştırılan ilk sınıfı olacak ve öncelikle projenin görüntülenecek ilk View’ını belirtmemizde rol oynayacak (Set as StartUpPage bilmeyen yoktur sanırım, onun gibi düşünebilirsiniz.)

 

Android: OrnekUygulama.Droid

App’iniz Android işletim sistemli bir cihaza kurulup çalıştırıldığında ilk olarak projenizin bu kısmı çalıştırılır. En basit tarifiyle (bu yazımızın konusu olmayan adımları atlayarak) platform OrnekUygulama.Droid projesi, MainActivity sınıfının içerisindeki OnCreate() methoduna ulaşır.

 

 

 

Method içerisinde Xamarin.Forms arabirimine ilişkin iki satır kod gözlemliyoruz.

Bu kod satırlarından ilki Xamarin.Forms arabirimi initialize edecek methodu çağırır. Diğeri ise  Shared Projemiz içerisinde bulunan App.cs sınıfının bir örneği (instance) oluşturularak LoadApplication() methoduna iletilir. Böylece ilk View’ın çağırılmasını sağlayacak olan App sınıfı ayağa kaldırılmış olur.

 

iOS: OrnekUygulama.iOS

Android bölümündeki açıklamalarımı bu bölüme de uyarlayabiliriz, farklı olarak iOS tarafında MainActivity sınıfının görevini “AppDelegate” sınıfı, OnCreate() methodunun yerini de FinishedLaunching() methodu almaktadır.

 

WindowsPhone: OrnekUygulama.WinPhone

WinPhone uygulamalarının yapısına daha geniş bir yazımda yer vereceğim.

  

App.cs

Android ya da iOS

App sınıfının örneği (instance), Xamarin.Forms uygulamanızı temsil etmektedir. İlerleyen yazılarımızda daha geniş olarak ele alacağımız App.Current property’si üzerinden projenin tüm ekranlarında erişilebilir durumdadır.

Şimdi App.cs’i inceleyelim.

 

 

 

 

App class’ı Application sınıfından türetilmiştir. Application ise Xamarin.Forms’un temel (base) türü olan Element sınıfından türetilmiştir.

Yukarıda App sınıfının uygulamanızın çağırılacak ilk View’ı belirlediğinden bahsetmiştik. Görselde App sınıfının constructor’ına bakarsanız MainPage property’sine bir atama göreceksiniz.

İşte meşhur Set As StartUpPage anı.

 

Son olarak OnStart() , OnSleep() , OnResume() methodlarını vurgulamış olmak için bu cümleyi kurarak yazıma son veriyorum :)

 

 

Related

Share

  • Recent
  • Popular
  • Tag
  • Xamarin Nasıl Çalışır?

    Xamarin'de uygulamanın tüm kodunu C# dili ile yazıyoruz. Yani Android için Java ya da iOS için objectiveC ya da Swift'e ihtiyaç duymuyoruz. Bu durum bizi sürekli olarak "Peki bu nasıl oluyor? Nativ...
  • Xamarin ile neler yapabiliriz?

    Merhaba Arkadaşlar, Xamarin platformu ile yeni tanışan arkadaşlara fikir vermesi açısından, geçtiğimiz ay tamamladığımız ve XAML ile neler yapılabileceğine dair iyi bir örnek olan GKFX...
  • SFS – Xamarin Cross Platform Sigorta Satış Uygulaması

    En büyük avantajı nerede gördünüz? Yabancı olduğunuz Android ve iOS gibi platformların doğal bir getirisi olan kavramları derinlemesine öğrenmek zorunda kalmadan .NET dünyasında alışkın ...
  • Xamarin Nedir?

    Xamarin, farklı mobil platformlar için Native uygulama geliştirmek isteyenlere cross-platform çözüm sunan bir platformdur. Xamarin sayesinde Visual Studio ve C# dilini kullanarak Android, iOS ve Win...
Etkinlikler