{"id":5012,"date":"2021-02-03T10:38:19","date_gmt":"2021-02-03T10:38:19","guid":{"rendered":"https:\/\/serkanseker.com\/?p=5012"},"modified":"2021-02-03T10:38:19","modified_gmt":"2021-02-03T10:38:19","slug":"xamarin-forms-shell-gezinti-cubugu","status":"publish","type":"post","link":"https:\/\/serkanseker.com\/tr\/xamarin-forms-shell-gezinti-cubugu\/","title":{"rendered":"Xamarin.Forms Shell Yap\u0131s\u0131 \u0130le Alt Gezinti \u00c7ubu\u011fu"},"content":{"rendered":"<div class=\"entry-content entry clearfix\">\n<p><strong>Shell <\/strong>yap\u0131s\u0131 Xamarin.Forms uygulamalar\u0131nda gerekli olan bir\u00e7ok temel \u00f6zelli\u011fi sa\u011flayarak mobil uygulamalar\u0131n karma\u015f\u0131kl\u0131\u011f\u0131n\u0131 azalt\u0131r. Shell sayfa yap\u0131s\u0131 Tabbar \u00f6zelli\u011fi ile uygulamada alt gezinti \u00e7ubu\u011fu olu\u015fturu ve g\u00f6rsel bir hiyerar\u015fi sa\u011flar.<\/p>\n<p>Bu yaz\u0131mda Xamarin.Forms uygulamalar\u0131nda <strong>Shell <\/strong>yap\u0131s\u0131n\u0131n nas\u0131l kullan\u0131laca\u011f\u0131n\u0131 ve nas\u0131l \u00f6zelle\u015ftirilece\u011fini anlataca\u011f\u0131m. <\/p>\n<h2 class=\"wp-block-heading\"><span id=\"XamarinForms_Shell_Yapisi_Nedir\">Xamarin.Forms Shell Yap\u0131s\u0131 Nedir?<\/span><\/h2>\n<p>Shell sayfa yap\u0131s\u0131 Xamarin.Forms\u2019a 4.0 versiyonu ile geldi. Shell yap\u0131s\u0131n\u0131 kullanarak a\u00e7\u0131l\u0131r pencereler, sekmeler, gezinme, arama, ya\u015fam d\u00f6ng\u00fcs\u00fc ve \u00f6zel olu\u015fturucular olu\u015fturabilirsiniz. B\u00f6ylece kullan\u0131c\u0131 deneyimi a\u00e7\u0131s\u0131ndan daha kaliteli bir uygulama geli\u015ftirmi\u015f olursunuz. Ayr\u0131ca uygulaman\u0131z\u0131n karma\u015f\u0131kl\u0131\u011f\u0131n\u0131 da azalt\u0131rs\u0131n\u0131z.<\/p>\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p>Shell yap\u0131s\u0131n\u0131 sosyal medya uygulamalar\u0131nda s\u0131kl\u0131kla g\u00f6r\u00fcyoruz. Instagram, Twitter ve Tumblr, sekmeli sayfa yap\u0131s\u0131n\u0131 kullanan uygulamalara iyi birer \u00f6rnektir.<\/p>\n<\/div>\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" alt=\"xamarin.forms shell sayfa yap\u0131s\u0131\" class=\"wp-image-299 entered error\" data-lazyloaded=\"1\" data-ll-status=\"error\" data-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-src=\"https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/02\/xamarin-forms-shell-sayfa-yapisi-1024x740.jpg\" data-srcset=\"https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/02\/xamarin-forms-shell-sayfa-yapisi-1024x740.jpg 1024w, https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/02\/xamarin-forms-shell-sayfa-yapisi-300x217.jpg 300w, https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/02\/xamarin-forms-shell-sayfa-yapisi-768x555.jpg 768w, https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/02\/xamarin-forms-shell-sayfa-yapisi.jpg 1080w\" height=\"740\" src=\"https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/02\/xamarin-forms-shell-sayfa-yapisi-1024x740.jpg\" width=\"1024\" \/><figcaption>Xamarin.Forms Shell sayfa yap\u0131s\u0131<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<p>Fazla say\u0131da kullan\u0131c\u0131s\u0131 olan uygulamalar\u0131n genelde sekmeli sayfa yap\u0131s\u0131n\u0131 kullanmas\u0131n\u0131n bir nedeni var: Kullan\u0131c\u0131 deneyimini art\u0131rmak. Mobil uygulamalar\u0131n ba\u015far\u0131s\u0131n\u0131n s\u0131rr\u0131, kullan\u0131c\u0131 deneyimini art\u0131rmaktan ge\u00e7er. Bir uygulaman\u0131n back-end\u2019i \u00e7ok iyi \u00e7al\u0131\u015f\u0131yor ancak UI\/UX a\u00e7\u0131s\u0131ndan zay\u0131fsa, o uygulama \u00e7ok say\u0131da kullan\u0131c\u0131ya ula\u015famaz.<\/p>\n<p>Bu nedenle y\u00fcksek kullan\u0131c\u0131 hacmine sahip uygulamalar genellikle sekmeli sayfa yap\u0131s\u0131n\u0131 tercih eder. B\u00f6ylelikle uygulaman\u0131n karma\u015f\u0131kl\u0131\u011f\u0131n\u0131 azalt\u0131r ve kullan\u0131c\u0131ya daha basit bir kullan\u0131m sunarlar. Sonu\u00e7 olarak kullan\u0131c\u0131 deneyimi artar ve daha fazla kullan\u0131c\u0131ya ula\u015f\u0131rlar.<\/p>\n<h2 class=\"wp-block-heading\"><span id=\"Shell_Yapisi_Kullanimi\">Shell Yap\u0131s\u0131 Kullan\u0131m\u0131<\/span><\/h2>\n<p>A\u015fa\u011f\u0131daki ad\u0131mlar\u0131 s\u0131ras\u0131yla takip ederek Xamarin.Forms uygulamalar\u0131n\u0131za Shell yap\u0131s\u0131n\u0131 uygulayabilirsiniz.<\/p>\n<p><span class=\"ugb-highlight\" style=\"color: var(--nv-primary-accent);background-color: var(--nv-light-bg)\">1<\/span> Yapman\u0131z gereken ilk \u015fey, Shell sayfas\u0131n\u0131n sekmelerinde g\u00f6r\u00fcnmesi i\u00e7in uygun simgeler bulmakt\u0131r. Uygulaman\u0131zda ana sayfa, arama, profil gibi sayfalar olacaksa ona uygun ikonlar\u0131 indirin.<\/p>\n<p><a class=\"broken_link\" href=\"https:\/\/material.io\/resources\/icons\/?style=baseline\" rel=\"noreferrer noopener\" target=\"_blank\">Material Design<\/a>\u2018da bir\u00e7ok kategoride ikonlar vard\u0131r. Buradan diledi\u011finiz ikonlar\u0131 SVG ve PNG format\u0131nda indirebilirsiniz.<\/p>\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><span class=\"ugb-highlight\" style=\"color: var(--nv-primary-accent);background-color: var(--nv-light-bg)\">2<\/span> Ard\u0131ndan ikonlar\u0131 projenizin <strong>Android\/Resources \/drawable<\/strong> klas\u00f6r\u00fcne at\u0131n. Android uygulamalar\u0131n\u0131n medya dosyalar\u0131 drawable klas\u00f6rde bulunur.<\/p>\n<p><span class=\"ugb-highlight\" style=\"color: var(--nv-primary-accent);background-color: var(--nv-light-bg)\">3<\/span> \u015eimdi sekmelere t\u0131klay\u0131nca a\u00e7\u0131lacak olan sayfalar\u0131 olu\u015fturun. Her sayfa i\u00e7in bir yeni bir ContentPage olu\u015fturun. Ben bu \u00f6rnek proje i\u00e7in HomePage, SettingsPage, FavoritesPage ve UserPage sayfalar\u0131 olu\u015fturdum.<\/p>\n<\/div>\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" alt=\"xamarin.forms shell\" class=\"wp-image-300 entered error\" data-lazyloaded=\"1\" data-ll-status=\"error\" data-sizes=\"(max-width: 307px) 100vw, 307px\" data-src=\"https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/02\/xamarin-forms-shell.jpg\" data-srcset=\"https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/02\/xamarin-forms-shell.jpg 307w, https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/02\/xamarin-forms-shell-149x300.jpg 149w\" height=\"617\" src=\"https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/02\/xamarin-forms-shell.jpg\" width=\"307\" \/><figcaption>G\u00f6r\u00fcnt\u00fc dosyalar\u0131n\u0131 <strong>Android\/Resources \/drawable<\/strong> klas\u00f6r\u00fcne at\u0131n.<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<\/div>\n<h3 class=\"wp-block-heading\"><span id=\"AppShellxaml_Sayfasi_Ekleyin\">AppShell.xaml Sayfas\u0131 Ekleyin<\/span><\/h3>\n<p><span class=\"ugb-highlight\" style=\"color: var(--nv-primary-accent);background-color: var(--nv-light-bg)\">4<\/span> Ard\u0131ndan projeye sa\u011f t\u0131klay\u0131n ve <strong>AppShell.xaml<\/strong> adl\u0131 yeni bir ContentPage ekleyin. Xamarin.Forms\u2019daki kabuk sayfas\u0131 genellikle AppShell olarak adland\u0131r\u0131l\u0131r.<\/p>\n<p><span class=\"ugb-highlight\" style=\"color: var(--nv-primary-accent);background-color: var(--nv-light-bg)\">5<\/span> Daha sonra <strong>AppShell.xaml.cs<\/strong> s\u0131n\u0131f\u0131n\u0131n ContentPage s\u0131n\u0131f\u0131ndan de\u011fil Shell s\u0131n\u0131f\u0131ndan miras almas\u0131n\u0131 sa\u011flay\u0131n. B\u00f6ylece, AppShell sayfas\u0131n\u0131n Shell yap\u0131s\u0131nda bir sayfa oldu\u011funu bildirmi\u015f olursunuz.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-csharp\">public partial class AppShell : Shell\n{\n    public AppShell()\n    {\n        InitializeComponent();\n    }\n}<\/code><\/pre>\n<p><span class=\"ugb-highlight\" style=\"color: var(--nv-primary-accent);background-color: var(--nv-light-bg)\">6<\/span> Yeni ekledi\u011finiz XAML sayfas\u0131 ContentPage yap\u0131s\u0131ndad\u0131r. Ancak, AppShell.xaml.xs s\u0131n\u0131f\u0131 Shell s\u0131n\u0131f\u0131ndan miras ald\u0131\u011f\u0131 i\u00e7in ContentPage\u2019i Shell ile de\u011fi\u015ftirmelisiniz. Aksi taktirde uygulamay\u0131 \u00e7al\u0131\u015ft\u0131r\u0131rken hata al\u0131rs\u0131n\u0131z.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-markup\">&lt;Shell xmlns=&quot;http:\/\/xamarin.com\/schemas\/2014\/forms&quot;\n             xmlns:x=&quot;http:\/\/schemas.microsoft.com\/winfx\/2009\/xaml&quot;\n             xmlns:d=&quot;http:\/\/xamarin.com\/schemas\/2014\/forms\/design&quot;\n             xmlns:mc=&quot;http:\/\/schemas.openxmlformats.org\/markup-compatibility\/2006&quot; xmlns:local1=&quot;clr-namespace:ShellDemo&quot;\n             mc:Ignorable=&quot;d&quot;\n             x:Class=&quot;ShellDemo.AppShell&quot;&gt;\n&lt;\/Shell&gt;<\/code><\/pre>\n<p><span class=\"ugb-highlight\" style=\"color: var(--nv-primary-accent);background-color: var(--nv-light-bg)\">7<\/span> \u015eimdi uygulaman\u0131n alt gezinme \u00e7ubu\u011funun sekmelerini ekleyin. <strong>&lt;Tabbar&gt;<\/strong> etiketleri aras\u0131na her sekme i\u00e7in bir <strong>&lt;Tab&gt;<\/strong> ekleyin. Bu sekmelerin ba\u015fl\u0131\u011f\u0131n\u0131, simgesini ve i\u00e7erik sayfas\u0131n\u0131 a\u015fa\u011f\u0131daki gibi ekleyin.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-markup\">&lt;TabBar &gt;\n    &lt;Tab Title=&quot;Home&quot; Icon=&quot;home.png&quot;&gt;\n        &lt;ShellContent&gt;\n            &lt;local1:HomePage \/&gt;\n        &lt;\/ShellContent&gt;\n    &lt;\/Tab&gt;\n    &lt;Tab Title=&quot;Favourites&quot; Icon=&quot;favourites.png&quot;&gt;\n        &lt;ShellContent&gt;\n            &lt;local1:FavouritesPage \/&gt;\n        &lt;\/ShellContent&gt;\n    &lt;\/Tab&gt;\n    &lt;Tab Title=&quot;Settings&quot; Icon=&quot;settings.png&quot;&gt;\n        &lt;ShellContent&gt;\n            &lt;local1:SettingsPage \/&gt;\n        &lt;\/ShellContent&gt;\n    &lt;\/Tab&gt;\n    &lt;Tab Title=&quot;User&quot; Icon=&quot;user.png&quot;&gt;\n        &lt;ShellContent&gt;\n            &lt;local1:UserPage \/&gt;\n        &lt;\/ShellContent&gt;\n    &lt;\/Tab&gt;\n&lt;\/TabBar&gt;<\/code><\/pre>\n<h3 class=\"wp-block-heading\"><span id=\"Shell_Yapisini_Ozellestirin\">Shell Yap\u0131s\u0131n\u0131 \u00d6zelle\u015ftirin<\/span><\/h3>\n<p><span class=\"ugb-highlight\" style=\"color: var(--nv-primary-accent);background-color: var(--nv-light-bg)\">8<\/span> \u015eimdi biraz tasar\u0131mla oynayal\u0131m. Shell yap\u0131s\u0131 i\u00e7inde &lt;Shell.Resources&gt; etiketleri aras\u0131nda &lt;ResourceDictionary&gt; tan\u0131mlayarak, BackgroundColor, TitleColor, TabBarBackgroundColor gibi sayfan\u0131n bir\u00e7ok kontrol\u00fcn\u00fc de\u011fi\u015ftirebiliriz.<\/p>\n<ul class=\"wp-block-list\">\n<li><strong>BackgroundColor<\/strong> Shell sayfas\u0131ndaki arka plan rengini tan\u0131mlar.<\/li>\n<li><strong>DisabledColor<\/strong> devre d\u0131\u015f\u0131 b\u0131rak\u0131lan metni ve simgeleri g\u00f6lgelendiren tan\u0131mlar.<\/li>\n<li><strong>ForegroundColor<\/strong> metni ve simgeleri g\u00f6lgelendiren tan\u0131mlar.<\/li>\n<li><strong>TitleColor<\/strong> mevcut sayfan\u0131n ba\u015fl\u0131\u011f\u0131 i\u00e7in kullan\u0131lan rengi tan\u0131mlar.<\/li>\n<li><strong>UnselectedColor<\/strong> se\u00e7ili olmayan metin ve simgeler i\u00e7in kullan\u0131lan rengi tan\u0131mlar.<\/li>\n<\/ul>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-markup\">&lt;Shell.Resources&gt;\n        &lt;ResourceDictionary&gt;\n            &lt;Color x:Key=&quot;NavigationPrimary&quot;&gt;#2196F3&lt;\/Color&gt;\n            &lt;Style x:Key=&quot;BaseStyle&quot; TargetType=&quot;Element&quot;&gt;\n                &lt;Setter Property=&quot;Shell.BackgroundColor&quot; Value=&quot;Pink&quot; \/&gt;\n                &lt;Setter Property=&quot;Shell.ForegroundColor&quot; Value=&quot;#7175D8&quot; \/&gt;\n                &lt;Setter Property=&quot;Shell.TitleColor&quot; Value=&quot;#303960&quot; \/&gt;\n                &lt;Setter Property=&quot;Shell.DisabledColor&quot; Value=&quot;#B4FFFFFF&quot; \/&gt;\n                &lt;Setter Property=&quot;Shell.UnselectedColor&quot; Value=&quot;#95FFFFFF&quot; \/&gt;\n                &lt;Setter Property=&quot;Shell.TabBarBackgroundColor&quot; Value=&quot;Pink&quot; \/&gt;\n                &lt;Setter Property=&quot;Shell.TabBarForegroundColor&quot; Value=&quot;White&quot; \/&gt;\n                &lt;Setter Property=&quot;Shell.TabBarUnselectedColor&quot; Value=&quot;#9d8f8f&quot; \/&gt;\n                &lt;Setter Property=&quot;Shell.TabBarTitleColor&quot; Value=&quot;#303960&quot; \/&gt;\n            &lt;\/Style&gt;\n            &lt;Style BasedOn=&quot;{StaticResource BaseStyle}&quot; TargetType=&quot;TabBar&quot; \/&gt;\n        &lt;\/ResourceDictionary&gt;\n&lt;\/Shell.Resources&gt;<\/code><\/pre>\n<h3 class=\"wp-block-heading\"><span id=\"AppShellxaml_Sayfasini_MainPage_olarak_ayarlayin\">AppShell.xaml Sayfas\u0131n\u0131 MainPage olarak ayarlay\u0131n<\/span><\/h3>\n<p><span class=\"ugb-highlight\" style=\"color: var(--nv-primary-accent);background-color: var(--nv-light-bg)\">9<\/span> Son olarak, App.xaml.cs s\u0131n\u0131f\u0131n\u0131n App() kurucu methodunda MainPage\u2019i AppShell ile de\u011fi\u015ftirin. B\u00f6ylece uygula AppShell.xaml sayfas\u0131ndan ba\u015flayacak.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-\">public App()\n{\n    InitializeComponent();\n    MainPage = new AppShell();\n}<\/code><\/pre>\n<p>Bu ad\u0131mda uygulamay\u0131 \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda statusBarColor ve navigationBarColor alanlar\u0131n\u0131n mavi renk tonlar\u0131nda oldu\u011funu g\u00f6receksiniz. Yani Xamarin.Forms\u2019un varsay\u0131lan temas\u0131 olan MainTheme\u2019nin ana renkleri. <\/p>\n<p>E\u011fer bu renkler sizin Shell sayfan\u0131zdaki renklerle uyumlu de\u011filse <a href=\"https:\/\/www.serkanseker.com\/tr\/xamarin-malzeme-temasi\/\" rel=\"noreferrer noopener\" target=\"_blank\">Malzeme Temas\u0131n\u0131<\/a> kendinize g\u00f6re \u00f6zelle\u015ftirebilirsiniz.<\/p>\n<h3 class=\"wp-block-heading\"><span id=\"Malzeme_Temasini_Ozellestirin\">Malzeme Temas\u0131n\u0131 \u00d6zelle\u015ftirin<\/span><\/h3>\n<p>Yukar\u0131daki ad\u0131mlar\u0131 tamamlad\u0131ktan sonra, malzeme temas\u0131n\u0131 \u00f6zelle\u015ftirerek <strong>statusBarColor<\/strong>, <strong>navigationBarColor <\/strong>gibi alanlar\u0131n rengini de\u011fi\u015ftirebilirsiniz. Bunu yapmak i\u00e7in <strong>Android\/Resources\/values \u200b\/styles.xml<\/strong> dosyas\u0131ndaki teman\u0131z\u0131n colorPrimaryDark rengini de\u011fi\u015ftirin. (bkz. <a href=\"https:\/\/www.serkanseker.com\/tr\/xamarin-malzeme-temasi\/\" rel=\"noreferrer noopener\" target=\"_blank\">Xamarin\u2019de Malzeme Temas\u0131\u2019n\u0131 \u00d6zelle\u015ftirme<\/a>)<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-markup\">    &lt;item name=&quot;colorPrimaryDark&quot;&gt;#FFC0CB&lt;\/item&gt;<\/code><\/pre>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" alt=\"xamarin.forms shell sayfa yap\u0131s\u0131 ile alt gezinti \u00e7ubu\u011fu\" class=\"wp-image-303\" data-lazyloaded=\"1\" data-sizes=\"(max-width: 288px) 100vw, 288px\" data-src=\"https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/02\/xamarin-forms-shell-alt-gezinti-cubugu.png\" data-srcset=\"https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/02\/xamarin-forms-shell-alt-gezinti-cubugu.png 576w, https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/02\/xamarin-forms-shell-alt-gezinti-cubugu-169x300.png 169w\" height=\"512\" src=\"image\/gif;base64,R0lGODdhAQABAPAAAMPDwwAAACwAAAAAAQABAAACAkQBADs=\" width=\"288\" \/><figcaption>Xamarin.Forms sekmeli sayfa yap\u0131s\u0131 ile alt gezinti \u00e7ubu\u011fu<\/figcaption><\/figure>\n<\/div>\n<h2 class=\"wp-block-heading\"><span id=\"Sonuc\">Sonu\u00e7<\/span><\/h2>\n<p>\u00d6zetle sekmeli sayfa yap\u0131s\u0131, mobil uygulamalardaki karma\u015f\u0131kl\u0131\u011f\u0131 b\u00fcy\u00fck \u00f6l\u00e7\u00fcde azalt\u0131r. Do\u011fal olarak kullan\u0131c\u0131 deneyimi de artar. Bu nedenle g\u00fcn\u00fcm\u00fczde \u00e7ok kullan\u0131c\u0131l\u0131 mobil uygulamalar sekmeli sayfa yap\u0131s\u0131n\u0131 tercih etmektedir. Ayr\u0131ca Xamarin uygulamalar\u0131n\u0131z\u0131 sekmeli bir sayfa yap\u0131s\u0131yla geli\u015ftirmelisiniz.<\/p>\n<p>Bu yaz\u0131da Shell yap\u0131s\u0131n\u0131n \u00f6zelliklerini ve kullan\u0131m\u0131n\u0131 bir \u00f6rnekle anlatt\u0131m. Ek olarak, size tasar\u0131m\u0131 nas\u0131l \u00f6zelle\u015ftirece\u011finizi g\u00f6sterdim. Umar\u0131m yararl\u0131 olmu\u015ftur.<\/p>\n<\/p>\n<p><!-- AI CONTENT END 1 -->\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Shell yap\u0131s\u0131 Xamarin.Forms uygulamalar\u0131nda gerekli olan bir\u00e7ok temel \u00f6zelli\u011fi sa\u011flayarak mobil uygulamalar\u0131n karma\u015f\u0131kl\u0131\u011f\u0131n\u0131 azalt\u0131r. Shell sayfa yap\u0131s\u0131 Tabbar \u00f6zelli\u011fi ile uygulamada alt gezinti \u00e7ubu\u011fu olu\u015fturu ve g\u00f6rsel<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","footnotes":""},"categories":[575],"tags":[576,577,578,579,580,581,574,42,570,582,19,28,4,15,5],"class_list":["post-5012","post","type-post","status-publish","format-standard","hentry","category-turkish","tag-net-maui","tag-algoritma","tag-dependencyservice","tag-giris-ekrani","tag-kaynak-sozlukleri","tag-malzeme-temasi","tag-monkeycache","tag-mvvm","tag-nuget","tag-onboarding-screen","tag-sqlite","tag-syncfusion","tag-xamarin","tag-xamarin-android","tag-xamarin-forms"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Xamarin.Forms Shell Yap\u0131s\u0131 \u0130le Alt Gezinti \u00c7ubu\u011fu - Serkan Seker TR<\/title>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Xamarin.Forms Shell Yap\u0131s\u0131 \u0130le Alt Gezinti \u00c7ubu\u011fu - Serkan Seker TR\" \/>\n<meta property=\"og:description\" content=\"Shell yap\u0131s\u0131 Xamarin.Forms uygulamalar\u0131nda gerekli olan bir\u00e7ok temel \u00f6zelli\u011fi sa\u011flayarak mobil uygulamalar\u0131n karma\u015f\u0131kl\u0131\u011f\u0131n\u0131 azalt\u0131r. Shell sayfa yap\u0131s\u0131 Tabbar \u00f6zelli\u011fi ile uygulamada alt gezinti \u00e7ubu\u011fu olu\u015fturu ve g\u00f6rsel\" \/>\n<meta property=\"og:url\" content=\"https:\/\/serkanseker.com\/tr\/xamarin-forms-shell-gezinti-cubugu\/\" \/>\n<meta property=\"og:site_name\" content=\"Serkan Seker TR\" \/>\n<meta property=\"article:published_time\" content=\"2021-02-03T10:38:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/02\/xamarin-forms-shell-sayfa-yapisi-1024x740.jpg\" \/>\n<meta name=\"author\" content=\"serkanadmin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"serkanadmin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/serkanseker.com\/tr\/xamarin-forms-shell-gezinti-cubugu\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/serkanseker.com\/tr\/xamarin-forms-shell-gezinti-cubugu\/\"},\"author\":{\"name\":\"serkanadmin\",\"@id\":\"https:\/\/serkanseker.com\/tr\/#\/schema\/person\/841fcc69b248e08e52c4190963caeaf5\"},\"headline\":\"Xamarin.Forms Shell Yap\u0131s\u0131 \u0130le Alt Gezinti \u00c7ubu\u011fu\",\"datePublished\":\"2021-02-03T10:38:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/serkanseker.com\/tr\/xamarin-forms-shell-gezinti-cubugu\/\"},\"wordCount\":956,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/serkanseker.com\/tr\/xamarin-forms-shell-gezinti-cubugu\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/02\/xamarin-forms-shell-sayfa-yapisi-1024x740.jpg\",\"keywords\":[\".net maui\",\"algoritma\",\"DependencyService\",\"giri\u015f ekran\u0131\",\"kaynak s\u00f6zl\u00fckleri\",\"malzeme temas\u0131\",\"MonkeyCache\",\"MVVM\",\"NuGet\",\"onboarding screen\",\"sqlite\",\"syncfusion\",\"xamarin\",\"xamarin.android\",\"xamarin.forms\"],\"articleSection\":[\"Turkish\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/serkanseker.com\/tr\/xamarin-forms-shell-gezinti-cubugu\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/serkanseker.com\/tr\/xamarin-forms-shell-gezinti-cubugu\/\",\"url\":\"https:\/\/serkanseker.com\/tr\/xamarin-forms-shell-gezinti-cubugu\/\",\"name\":\"Xamarin.Forms Shell Yap\u0131s\u0131 \u0130le Alt Gezinti \u00c7ubu\u011fu - Serkan Seker TR\",\"isPartOf\":{\"@id\":\"https:\/\/serkanseker.com\/tr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/serkanseker.com\/tr\/xamarin-forms-shell-gezinti-cubugu\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/serkanseker.com\/tr\/xamarin-forms-shell-gezinti-cubugu\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/02\/xamarin-forms-shell-sayfa-yapisi-1024x740.jpg\",\"datePublished\":\"2021-02-03T10:38:19+00:00\",\"author\":{\"@id\":\"https:\/\/serkanseker.com\/tr\/#\/schema\/person\/841fcc69b248e08e52c4190963caeaf5\"},\"breadcrumb\":{\"@id\":\"https:\/\/serkanseker.com\/tr\/xamarin-forms-shell-gezinti-cubugu\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/serkanseker.com\/tr\/xamarin-forms-shell-gezinti-cubugu\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/serkanseker.com\/tr\/xamarin-forms-shell-gezinti-cubugu\/#primaryimage\",\"url\":\"https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/02\/xamarin-forms-shell-sayfa-yapisi-1024x740.jpg\",\"contentUrl\":\"https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/02\/xamarin-forms-shell-sayfa-yapisi-1024x740.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/serkanseker.com\/tr\/xamarin-forms-shell-gezinti-cubugu\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/serkanseker.com\/tr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Xamarin.Forms Shell Yap\u0131s\u0131 \u0130le Alt Gezinti \u00c7ubu\u011fu\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/serkanseker.com\/tr\/#website\",\"url\":\"https:\/\/serkanseker.com\/tr\/\",\"name\":\"Serkan Seker TR\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/serkanseker.com\/tr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/serkanseker.com\/tr\/#\/schema\/person\/841fcc69b248e08e52c4190963caeaf5\",\"name\":\"serkanadmin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/serkanseker.com\/tr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/93ddc1f96117bf468976afe93a077eda77de96bcdb48dc749903598a546786a3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/93ddc1f96117bf468976afe93a077eda77de96bcdb48dc749903598a546786a3?s=96&d=mm&r=g\",\"caption\":\"serkanadmin\"},\"sameAs\":[\"https:\/\/serkanseker.com\"],\"url\":\"https:\/\/serkanseker.com\/tr\/author\/serkanadmin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Xamarin.Forms Shell Yap\u0131s\u0131 \u0130le Alt Gezinti \u00c7ubu\u011fu - Serkan Seker TR","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_US","og_type":"article","og_title":"Xamarin.Forms Shell Yap\u0131s\u0131 \u0130le Alt Gezinti \u00c7ubu\u011fu - Serkan Seker TR","og_description":"Shell yap\u0131s\u0131 Xamarin.Forms uygulamalar\u0131nda gerekli olan bir\u00e7ok temel \u00f6zelli\u011fi sa\u011flayarak mobil uygulamalar\u0131n karma\u015f\u0131kl\u0131\u011f\u0131n\u0131 azalt\u0131r. Shell sayfa yap\u0131s\u0131 Tabbar \u00f6zelli\u011fi ile uygulamada alt gezinti \u00e7ubu\u011fu olu\u015fturu ve g\u00f6rsel","og_url":"https:\/\/serkanseker.com\/tr\/xamarin-forms-shell-gezinti-cubugu\/","og_site_name":"Serkan Seker TR","article_published_time":"2021-02-03T10:38:19+00:00","og_image":[{"url":"https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/02\/xamarin-forms-shell-sayfa-yapisi-1024x740.jpg","type":"","width":"","height":""}],"author":"serkanadmin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"serkanadmin","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/serkanseker.com\/tr\/xamarin-forms-shell-gezinti-cubugu\/#article","isPartOf":{"@id":"https:\/\/serkanseker.com\/tr\/xamarin-forms-shell-gezinti-cubugu\/"},"author":{"name":"serkanadmin","@id":"https:\/\/serkanseker.com\/tr\/#\/schema\/person\/841fcc69b248e08e52c4190963caeaf5"},"headline":"Xamarin.Forms Shell Yap\u0131s\u0131 \u0130le Alt Gezinti \u00c7ubu\u011fu","datePublished":"2021-02-03T10:38:19+00:00","mainEntityOfPage":{"@id":"https:\/\/serkanseker.com\/tr\/xamarin-forms-shell-gezinti-cubugu\/"},"wordCount":956,"commentCount":0,"image":{"@id":"https:\/\/serkanseker.com\/tr\/xamarin-forms-shell-gezinti-cubugu\/#primaryimage"},"thumbnailUrl":"https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/02\/xamarin-forms-shell-sayfa-yapisi-1024x740.jpg","keywords":[".net maui","algoritma","DependencyService","giri\u015f ekran\u0131","kaynak s\u00f6zl\u00fckleri","malzeme temas\u0131","MonkeyCache","MVVM","NuGet","onboarding screen","sqlite","syncfusion","xamarin","xamarin.android","xamarin.forms"],"articleSection":["Turkish"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/serkanseker.com\/tr\/xamarin-forms-shell-gezinti-cubugu\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/serkanseker.com\/tr\/xamarin-forms-shell-gezinti-cubugu\/","url":"https:\/\/serkanseker.com\/tr\/xamarin-forms-shell-gezinti-cubugu\/","name":"Xamarin.Forms Shell Yap\u0131s\u0131 \u0130le Alt Gezinti \u00c7ubu\u011fu - Serkan Seker TR","isPartOf":{"@id":"https:\/\/serkanseker.com\/tr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/serkanseker.com\/tr\/xamarin-forms-shell-gezinti-cubugu\/#primaryimage"},"image":{"@id":"https:\/\/serkanseker.com\/tr\/xamarin-forms-shell-gezinti-cubugu\/#primaryimage"},"thumbnailUrl":"https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/02\/xamarin-forms-shell-sayfa-yapisi-1024x740.jpg","datePublished":"2021-02-03T10:38:19+00:00","author":{"@id":"https:\/\/serkanseker.com\/tr\/#\/schema\/person\/841fcc69b248e08e52c4190963caeaf5"},"breadcrumb":{"@id":"https:\/\/serkanseker.com\/tr\/xamarin-forms-shell-gezinti-cubugu\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/serkanseker.com\/tr\/xamarin-forms-shell-gezinti-cubugu\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/serkanseker.com\/tr\/xamarin-forms-shell-gezinti-cubugu\/#primaryimage","url":"https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/02\/xamarin-forms-shell-sayfa-yapisi-1024x740.jpg","contentUrl":"https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/02\/xamarin-forms-shell-sayfa-yapisi-1024x740.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/serkanseker.com\/tr\/xamarin-forms-shell-gezinti-cubugu\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/serkanseker.com\/tr\/"},{"@type":"ListItem","position":2,"name":"Xamarin.Forms Shell Yap\u0131s\u0131 \u0130le Alt Gezinti \u00c7ubu\u011fu"}]},{"@type":"WebSite","@id":"https:\/\/serkanseker.com\/tr\/#website","url":"https:\/\/serkanseker.com\/tr\/","name":"Serkan Seker TR","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/serkanseker.com\/tr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/serkanseker.com\/tr\/#\/schema\/person\/841fcc69b248e08e52c4190963caeaf5","name":"serkanadmin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/serkanseker.com\/tr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/93ddc1f96117bf468976afe93a077eda77de96bcdb48dc749903598a546786a3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/93ddc1f96117bf468976afe93a077eda77de96bcdb48dc749903598a546786a3?s=96&d=mm&r=g","caption":"serkanadmin"},"sameAs":["https:\/\/serkanseker.com"],"url":"https:\/\/serkanseker.com\/tr\/author\/serkanadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/posts\/5012","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/comments?post=5012"}],"version-history":[{"count":0,"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/posts\/5012\/revisions"}],"wp:attachment":[{"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/media?parent=5012"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/categories?post=5012"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/tags?post=5012"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}