{"id":38015,"date":"2026-01-21T14:00:50","date_gmt":"2026-01-21T11:00:50","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/swiftui-stepper-adim-adim-deger-kontrolu\/"},"modified":"2026-01-21T14:00:50","modified_gmt":"2026-01-21T11:00:50","slug":"swiftui-stepper-adim-adim-deger-kontrolu","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/swiftui-stepper-adim-adim-deger-kontrolu\/","title":{"rendered":"SwiftUI Stepper: Ad\u0131m Ad\u0131m De\u011fer Kontrol\u00fc"},"content":{"rendered":"<h2>SwiftUI Stepper: Ad\u0131m Ad\u0131m De\u011fer Kontrol\u00fc<\/h2>\n<p>SwiftUI, modern ve deklaratif bir yakla\u015f\u0131mla kullan\u0131c\u0131 aray\u00fczleri olu\u015fturmay\u0131 sa\u011flayan g\u00fc\u00e7l\u00fc bir framework&#8217;t\u00fcr. Bu framework&#8217;\u00fcn sundu\u011fu interaktif bile\u015fenlerden biri olan Stepper, say\u0131sal de\u011ferleri kolayca art\u0131rma veya azaltma imkan\u0131 sunarak kullan\u0131c\u0131 deneyimini zenginle\u015ftirir. Bu makalede, SwiftUI Stepper&#8217;\u0131n temel kullan\u0131m\u0131ndan ileri seviye \u00f6zelle\u015ftirmelerine, veri ba\u011flama mekanizmalar\u0131ndan pratik kullan\u0131m senaryolar\u0131na kadar her y\u00f6n\u00fcn\u00fc detayl\u0131 bir \u015fekilde inceleyece\u011fiz. SwiftUI uygulamalar\u0131n\u0131zda kullan\u0131c\u0131lar\u0131n de\u011ferleri hassas ve kontroll\u00fc bir \u015fekilde y\u00f6netmesini sa\u011flamak i\u00e7in Stepper&#8217;\u0131 nas\u0131l etkin bir \u015fekilde kullanabilece\u011finizi ke\u015ffedin.<\/p>\n<h3>Stepper Nedir ve Neden Kullan\u0131l\u0131r?<\/h3>\n<h4>Tan\u0131m\u0131 ve Amac\u0131<\/h4>\n<p>Stepper, bir say\u0131sal de\u011feri belirli ad\u0131mlarla art\u0131rmak veya azaltmak i\u00e7in kullan\u0131lan bir kullan\u0131c\u0131 aray\u00fcz\u00fc kontrol\u00fcd\u00fcr. Genellikle bir metin etiketi ile birlikte g\u00f6r\u00fcn\u00fcr ve kullan\u0131c\u0131n\u0131n + ve &#8211; butonlar\u0131na dokunarak bir de\u011feri de\u011fi\u015ftirmesine olanak tan\u0131r. Amac\u0131, kullan\u0131c\u0131lara klavye giri\u015fi gerektirmeden, belirli bir aral\u0131kta veya s\u0131n\u0131rs\u0131z bir \u015fekilde say\u0131sal se\u00e7imler yapma kolayl\u0131\u011f\u0131 sa\u011flamakt\u0131r.<\/p>\n<h4>Kullan\u0131m Alanlar\u0131<\/h4>\n<p>Stepper, \u00e7e\u015fitli uygulama senaryolar\u0131nda kar\u015f\u0131m\u0131za \u00e7\u0131kar:<\/p>\n<ul>\n<li><strong>Miktar Se\u00e7imi:<\/strong> E-ticaret uygulamalar\u0131nda \u00fcr\u00fcn adedi belirleme (\u00f6rne\u011fin, &#8220;2 adet kahve&#8221;).<\/li>\n<li><strong>Ayarlar:<\/strong> Uygulama i\u00e7i ayarlar ekranlar\u0131nda font boyutu, parlakl\u0131k seviyesi veya ses d\u00fczeyi gibi de\u011ferleri ayarlama.<\/li>\n<li><strong>Ya\u015f veya S\u00fcre Giri\u015fi:<\/strong> Kullan\u0131c\u0131n\u0131n ya\u015f\u0131n\u0131, bir s\u00fcreyi veya belirli bir zaman dilimini se\u00e7mesi.<\/li>\n<li><strong>Oyun Ayarlar\u0131:<\/strong> Oyun i\u00e7i zorluk seviyesi veya tur say\u0131s\u0131 gibi parametreleri de\u011fi\u015ftirme.<\/li>\n<\/ul>\n<h4>Avantajlar\u0131<\/h4>\n<p>Stepper kullanman\u0131n geli\u015ftiriciler ve son kullan\u0131c\u0131lar i\u00e7in bir\u00e7ok avantaj\u0131 vard\u0131r:<\/p>\n<ul>\n<li><strong>Kullan\u0131m Kolayl\u0131\u011f\u0131:<\/strong> Sezgisel aray\u00fcz\u00fc sayesinde kullan\u0131c\u0131lar, karma\u015f\u0131k klavye giri\u015fleri yerine basit dokunu\u015flarla de\u011ferleri ayarlayabilir.<\/li>\n<li><strong>Hata Azaltma:<\/strong> Belirli bir aral\u0131k ve ad\u0131m b\u00fcy\u00fckl\u00fc\u011f\u00fc tan\u0131mlanabildi\u011fi i\u00e7in ge\u00e7ersiz de\u011fer giri\u015fleri engellenir.<\/li>\n<li><strong>G\u00f6rsel Geri Bildirim:<\/strong> De\u011ferin an\u0131nda g\u00fcncellenmesi, kullan\u0131c\u0131ya an\u0131nda g\u00f6rsel geri bildirim sa\u011flar.<\/li>\n<li><strong>Eri\u015filebilirlik:<\/strong> SwiftUI Stepper, VoiceOver gibi eri\u015filebilirlik \u00f6zellikleriyle otomatik olarak uyumludur ve engelli kullan\u0131c\u0131lar i\u00e7in kolayl\u0131k sa\u011flar.<\/li>\n<\/ul>\n<h3>Temel Stepper Kullan\u0131m\u0131<\/h3>\n<p>SwiftUI&#8217;da bir Stepper olu\u015fturmak olduk\u00e7a basittir. Genellikle bir <code>@State<\/code> de\u011fi\u015fkeni ile ba\u011flanarak de\u011fer de\u011fi\u015fimlerini takip ederiz.<\/p>\n<h4>Basit Bir Stepper Olu\u015fturma<\/h4>\n<p>A\u015fa\u011f\u0131daki \u00f6rnek, temel bir Stepper&#8217;\u0131n nas\u0131l tan\u0131mland\u0131\u011f\u0131n\u0131 ve bir <code>@State<\/code> de\u011fi\u015fkeni ile nas\u0131l etkile\u015fim kurdu\u011funu g\u00f6stermektedir. Kullan\u0131c\u0131, Stepper&#8217;\u0131 kullanarak miktar de\u011ferini art\u0131r\u0131p azaltabilir ve bu de\u011fer an\u0131nda ekranda g\u00fcncellenir.<\/p>\n<pre><code class=\"language-swift\">import SwiftUI\n\nstruct BasicStepperView: View {\n    @State private var quantity: Int = 1\n\n    var body: some View {\n        VStack {\n            Stepper(\"Miktar: \\(quantity)\", value: $quantity)\n                .padding()\n            Text(\"Se\u00e7ilen Miktar: \\(quantity)\")\n                .font(.title2)\n                .padding(.top)\n        }\n        .navigationTitle(\"Temel Stepper\")\n    }\n}\n<\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki kodda, <code>quantity<\/code> ad\u0131nda bir <code>@State<\/code> de\u011fi\u015fkeni tan\u0131mlad\u0131k. Stepper'\u0131n ilk parametresi etiketi (<code>\"Miktar: \\(quantity)\"<\/code>), <code>value<\/code> parametresi ise bu <code>@State<\/code> de\u011fi\u015fkenine yap\u0131lan ba\u011flamad\u0131r (<code>$quantity<\/code>). Bu sayede Stepper'daki her art\u0131rma veya azaltma i\u015flemi <code>quantity<\/code> de\u011ferini do\u011frudan etkiler.<\/p>\n<h4>De\u011fer Takibi<\/h4>\n<p>Stepper'\u0131n en temel i\u015flevi, ba\u011fland\u0131\u011f\u0131 de\u011feri takip etmektir. <code>value<\/code> parametresi, bir <code>Binding<\/code> nesnesi bekler. Bu <code>Binding<\/code>, genellikle bir <code>@State<\/code>, <code>@Binding<\/code>, <code>@ObservedObject<\/code> veya <code>@EnvironmentObject<\/code> de\u011fi\u015fkeninden t\u00fcretilir. De\u011fer de\u011fi\u015ftik\u00e7e, bu de\u011fere ba\u011fl\u0131 olan t\u00fcm g\u00f6r\u00fcn\u00fcmler otomatik olarak yeniden \u00e7izilir.<\/p>\n<h4>Metin Etiketi Ekleme<\/h4>\n<p>Stepper'\u0131n ilk parametresi, genellikle Stepper'\u0131n neyi kontrol etti\u011fini a\u00e7\u0131klayan bir etikettir. Bu etiket bir <code>Text<\/code> g\u00f6r\u00fcn\u00fcm\u00fc olabilece\u011fi gibi, <code>HStack<\/code>, <code>Image<\/code> veya di\u011fer karma\u015f\u0131k g\u00f6r\u00fcn\u00fcmleri de i\u00e7erebilir. Etiket, Stepper'\u0131n sol taraf\u0131nda yer al\u0131r ve kullan\u0131c\u0131n\u0131n ba\u011flam\u0131 anlamas\u0131na yard\u0131mc\u0131 olur.<\/p>\n<h3>Stepper De\u011fer Aral\u0131\u011f\u0131 ve Ad\u0131m Ayarlar\u0131<\/h3>\n<p>Stepper'\u0131n g\u00fcc\u00fc, sadece de\u011ferleri art\u0131rmakla kalmay\u0131p, ayn\u0131 zamanda bu de\u011ferlerin hangi aral\u0131kta olabilece\u011fini ve hangi ad\u0131mlarla de\u011fi\u015fece\u011fini de kontrol edebilmesidir.<\/p>\n<h4>Minimum ve Maksimum De\u011fer Belirleme<\/h4>\n<p>Bir Stepper'a minimum ve maksimum de\u011ferler atamak i\u00e7in <code>in<\/code> parametresi kullan\u0131l\u0131r. Bu parametre, bir <code>Range<\/code> (\u00f6rne\u011fin, <code>0...100<\/code>) al\u0131r ve Stepper'\u0131n bu aral\u0131\u011f\u0131n d\u0131\u015f\u0131na \u00e7\u0131kmas\u0131n\u0131 engeller. Bu, \u00f6zellikle ya\u015f, puan veya stok miktar\u0131 gibi belirli s\u0131n\u0131rlar i\u00e7inde kalmas\u0131 gereken de\u011ferler i\u00e7in \u00e7ok kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<pre><code class=\"language-swift\">struct RangedStepperView: View {\n    @State private var age: Int = 18\n\n    var body: some View {\n        VStack {\n            Stepper(\"Ya\u015f\u0131n\u0131z: \\(age)\", value: $age, in: 0...100)\n                .padding()\n            Text(\"Belirlenen Ya\u015f: \\(age)\")\n                .font(.title2)\n                .padding(.top)\n        }\n        .navigationTitle(\"Aral\u0131kl\u0131 Stepper\")\n    }\n}\n<\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki \u00f6rnekte, <code>age<\/code> de\u011feri 0 ile 100 aras\u0131nda kalacakt\u0131r. Kullan\u0131c\u0131 0'a ula\u015ft\u0131\u011f\u0131nda eksi butonu, 100'e ula\u015ft\u0131\u011f\u0131nda ise art\u0131 butonu pasif hale gelecektir.<\/p>\n<h4>Ad\u0131m B\u00fcy\u00fckl\u00fc\u011f\u00fcn\u00fc Ayarlama (step)<\/h4>\n<p><code>step<\/code> parametresi, Stepper'\u0131n her art\u0131rma veya azaltma i\u015fleminde de\u011feri ne kadar de\u011fi\u015ftirece\u011fini belirler. Varsay\u0131lan olarak bu de\u011fer 1'dir. Ancak ondal\u0131kl\u0131 say\u0131larla veya daha b\u00fcy\u00fck ad\u0131mlarla \u00e7al\u0131\u015fman\u0131z gerekti\u011finde bu parametreyi kullanabilirsiniz.<\/p>\n<pre><code class=\"language-swift\">struct StepStepperView: View {\n    @State private var brightness: Double = 0.5\n\n    var body: some View {\n        VStack {\n            Stepper(\"Parlakl\u0131k: \\(brightness, specifier: \"%.1f\")\", value: $brightness, in: 0.0...1.0, step: 0.1)\n                .padding()\n            Text(\"Mevcut Parlakl\u0131k: \\(brightness, specifier: \"%.1f\")\")\n                .font(.title2)\n                .padding(.top)\n        }\n        .navigationTitle(\"Ad\u0131ml\u0131 Stepper\")\n    }\n}\n<\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte, <code>brightness<\/code> de\u011feri 0.0 ile 1.0 aras\u0131nda 0.1'lik ad\u0131mlarla de\u011fi\u015fecektir. <code>specifier: \"%.1f\"<\/code> kullanarak ondal\u0131k basamak say\u0131s\u0131n\u0131 kontrol ettik.<\/p>\n<h4>Sonsuz Stepper<\/h4>\n<p>E\u011fer <code>in<\/code> parametresi belirtilmezse, Stepper s\u0131n\u0131rs\u0131z bir \u015fekilde de\u011ferleri art\u0131r\u0131p azaltabilir. Bu durum, \u00f6rne\u011fin bir oyunun skorunu tutarken veya belirli bir \u00fcst\/alt s\u0131n\u0131r\u0131 olmayan say\u0131larla \u00e7al\u0131\u015f\u0131rken faydal\u0131 olabilir.<\/p>\n<h3>Stepper G\u00f6r\u00fcn\u00fcm\u00fcn\u00fc \u00d6zelle\u015ftirme<\/h3>\n<p>SwiftUI Stepper'\u0131n esnekli\u011fi, sadece i\u015flevselli\u011fiyle s\u0131n\u0131rl\u0131 de\u011fildir; ayn\u0131 zamanda g\u00f6r\u00fcn\u00fcm\u00fcn\u00fc de uygulaman\u0131z\u0131n esteti\u011fine uyacak \u015fekilde \u00f6zelle\u015ftirebilirsiniz.<\/p>\n<h4>Etiket \u0130\u00e7eri\u011fini De\u011fi\u015ftirme<\/h4>\n<p>Stepper'\u0131n sol taraf\u0131ndaki etiket, sadece bir <code>Text<\/code> g\u00f6r\u00fcn\u00fcm\u00fc olmak zorunda de\u011fildir. SwiftUI'\u0131n g\u00f6r\u00fcn\u00fcm kompozisyon yetenekleri sayesinde, bu alana herhangi bir g\u00f6r\u00fcn\u00fcm hiyerar\u015fisini yerle\u015ftirebilirsiniz. Bu, daha zengin ve bilgilendirici etiketler olu\u015fturman\u0131za olanak tan\u0131r.<\/p>\n<pre><code class=\"language-swift\">struct CustomLabelStepperView: View {\n    @State private var itemAmount: Int = 0\n\n    var body: some View {\n        Stepper {\n            HStack {\n                Image(systemName: \"bag.fill\")\n                    .foregroundColor(.brown)\n                Text(\"\u00dcr\u00fcn Adedi:\")\n                Spacer()\n                Text(\"\\(itemAmount)\")\n                    .fontWeight(.bold)\n                    .foregroundColor(.blue)\n                    .font(.title3)\n            }\n        } onIncrement: {\n            itemAmount += 1\n        } onDecrement: {\n            itemAmount -= 1\n        }\n        .padding()\n        .navigationTitle(\"\u00d6zel Etiket\")\n    }\n}\n<\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte, Stepper'\u0131n etiketini bir <code>HStack<\/code> i\u00e7ine yerle\u015ftirdik. Bu <code>HStack<\/code>, bir sistem ikonu, bir metin etiketi ve g\u00fcncel de\u011feri g\u00f6steren stilize edilmi\u015f ba\u015fka bir metin i\u00e7eriyor. <code>onIncrement<\/code> ve <code>onDecrement<\/code> closure'lar\u0131, Stepper'\u0131n butonlar\u0131na bas\u0131ld\u0131\u011f\u0131nda \u00f6zel eylemler tan\u0131mlamam\u0131z\u0131 sa\u011flar.<\/p>\n<h4>Stil Uygulama<\/h4>\n<p>Stepper'\u0131n kendisine ve etiketine \u00e7e\u015fitli SwiftUI modifier'lar\u0131 uygulayarak g\u00f6r\u00fcn\u00fcm\u00fcn\u00fc de\u011fi\u015ftirebilirsiniz. \u00d6rne\u011fin, <code>font<\/code>, <code>foregroundColor<\/code>, <code>background<\/code> ve <code>padding<\/code> gibi modifier'lar ile Stepper'\u0131 uygulaman\u0131z\u0131n genel tasar\u0131m\u0131na uyacak \u015fekilde stilize edebilirsiniz. Ancak Stepper'\u0131n art\u0131 ve eksi butonlar\u0131n\u0131n kendilerini do\u011frudan stilize etmek SwiftUI'da s\u0131n\u0131rl\u0131d\u0131r.<\/p>\n<h4>Stepper'\u0131 Di\u011fer G\u00f6r\u00fcn\u00fcmlerle Birle\u015ftirme<\/h4>\n<p>Stepper, <code>VStack<\/code>, <code>HStack<\/code> veya <code>Form<\/code> gibi di\u011fer layout g\u00f6r\u00fcn\u00fcmleriyle kolayca birle\u015ftirilebilir. Bu, uygulaman\u0131zda karma\u015f\u0131k formlar veya ayarlar ekranlar\u0131 olu\u015ftururken Stepper'\u0131 di\u011fer giri\u015f kontrolleriyle yan yana kullanman\u0131za olanak tan\u0131r.<\/p>\n<h3>Stepper ile Veri Ba\u011flama (Binding)<\/h3>\n<p>Veri ba\u011flama, SwiftUI'\u0131n temel bir konseptidir ve Stepper'\u0131n de\u011feri ile uygulaman\u0131z\u0131n veri modeli aras\u0131ndaki senkronizasyonu sa\u011flar.<\/p>\n<h4>@State ile Ba\u011flama<\/h4>\n<p>En yayg\u0131n Stepper kullan\u0131m\u0131, g\u00f6r\u00fcn\u00fcm\u00fcn kendi i\u00e7inde y\u00f6netti\u011fi bir <code>@State<\/code> de\u011fi\u015fkenine ba\u011flamakt\u0131r. Bu, yukar\u0131daki \u00f6rneklerde g\u00f6rd\u00fc\u011f\u00fcm\u00fcz gibi, basit ve h\u0131zl\u0131 bir \u015fekilde UI ile veri aras\u0131nda ba\u011flant\u0131 kurman\u0131n yoludur. <code>@State<\/code>, g\u00f6r\u00fcn\u00fcm\u00fcn ya\u015fam d\u00f6ng\u00fcs\u00fc boyunca de\u011ferini korur ve de\u011fi\u015fti\u011finde g\u00f6r\u00fcn\u00fcm\u00fcn yeniden \u00e7izilmesini tetikler.<\/p>\n<h4>@Binding ile Alt G\u00f6r\u00fcn\u00fcmlere Aktarma<\/h4>\n<p>Bazen, Stepper'\u0131n de\u011ferini bir \u00fcst g\u00f6r\u00fcn\u00fcmden alt g\u00f6r\u00fcn\u00fcme aktarman\u0131z gerekebilir. Bu durumda, alt g\u00f6r\u00fcn\u00fcmde <code>@Binding<\/code> property wrapper'\u0131n\u0131 kullan\u0131rs\u0131n\u0131z. Bu, veri ak\u0131\u015f\u0131n\u0131 y\u00f6netmek ve kod tekrar\u0131n\u0131 azaltmak i\u00e7in harika bir yoldur.<\/p>\n<pre><code class=\"language-swift\">struct ParentView: View {\n    @State private var globalCounter: Int = 5\n\n    var body: some View {\n        VStack(spacing: 20) {\n            Text(\"Ana G\u00f6r\u00fcn\u00fcm Sayac\u0131: \\(globalCounter)\")\n                .font(.title)\n            ChildStepperView(counter: $globalCounter)\n            ChildStepperView(counter: $globalCounter) \/\/ Ayn\u0131 de\u011feri payla\u015fan ikinci bir Stepper\n        }\n        .navigationTitle(\"Veri Ba\u011flama\")\n    }\n}\n\nstruct ChildStepperView: View {\n    @Binding var counter: Int\n\n    var body: some View {\n        Stepper(\"Alt G\u00f6r\u00fcn\u00fcm Sayac\u0131: \\(counter)\", value: $counter, in: 0...20)\n            .padding(.horizontal)\n    }\n}\n<\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte, <code>ParentView<\/code>'deki <code>globalCounter<\/code> de\u011feri, <code>ChildStepperView<\/code>'e bir <code>@Binding<\/code> olarak aktar\u0131l\u0131r. Her iki <code>ChildStepperView<\/code> de ayn\u0131 <code>globalCounter<\/code> de\u011ferini kontrol eder ve birindeki de\u011fi\u015fiklik di\u011ferini ve ana g\u00f6r\u00fcn\u00fcm\u00fc an\u0131nda etkiler.<\/p>\n<h4>Karma\u015f\u0131k Veri Modelleriyle Kullan\u0131m<\/h4>\n<p>Daha karma\u015f\u0131k uygulamalarda, Stepper'\u0131 <code>ObservableObject<\/code> veya <code>EnvironmentObject<\/code> ile entegre edebilirsiniz. Bu, uygulaman\u0131z\u0131n genelinde payla\u015f\u0131lan veri modelleriyle \u00e7al\u0131\u015f\u0131rken Stepper'\u0131n de\u011ferini merkezi bir yerden y\u00f6netmenizi sa\u011flar. \u00d6rne\u011fin, bir al\u0131\u015fveri\u015f sepeti modelindeki \u00fcr\u00fcn miktar\u0131n\u0131 bir Stepper ile kontrol edebilirsiniz.<\/p>\n<h3>Stepper Kullan\u0131m Senaryolar\u0131 ve \u0130pu\u00e7lar\u0131<\/h3>\n<p>Stepper'\u0131 uygulamalar\u0131n\u0131za entegre ederken g\u00f6z \u00f6n\u00fcnde bulundurman\u0131z gereken baz\u0131 pratik senaryolar ve ipu\u00e7lar\u0131 bulunmaktad\u0131r.<\/p>\n<h4>Miktar Se\u00e7imi (\u00dcr\u00fcn Adedi)<\/h4>\n<p>E-ticaret uygulamalar\u0131nda kullan\u0131c\u0131lar\u0131n sepete eklemek istedikleri \u00fcr\u00fcn adedini se\u00e7meleri i\u00e7in Stepper idealdir. Kullan\u0131c\u0131, \u00fcr\u00fcn say\u0131s\u0131n\u0131 kolayca art\u0131r\u0131p azaltabilir ve bu durum, \u00fcr\u00fcn fiyat\u0131n\u0131n an\u0131nda g\u00fcncellenmesini tetikleyebilir.<\/p>\n<h4>Ayarlamalar (Font Boyutu, Parlakl\u0131k)<\/h4>\n<p>Uygulama i\u00e7i ayarlar ekranlar\u0131nda, Stepper; metin boyutunu, ekran parlakl\u0131\u011f\u0131n\u0131, ses seviyesini veya di\u011fer say\u0131sal ayarlar\u0131 kontrol etmek i\u00e7in kullan\u0131labilir. <code>step<\/code> parametresi ile hassas ayarlamalar yap\u0131labilir.<\/p>\n<h4>Tarih ve Saat Ayarlar\u0131<\/h4>\n<p>Bazen standart <code>DatePicker<\/code> yerine, sadece g\u00fcn, saat veya dakika gibi belirli bir zaman birimini ad\u0131m ad\u0131m ayarlamak isteyebilirsiniz. Stepper, bu t\u00fcr senaryolarda \u00f6zel bir zaman se\u00e7ici olu\u015fturmak i\u00e7in temel bir yap\u0131 ta\u015f\u0131 olabilir.<\/p>\n<h4>Performans \u0130pu\u00e7lar\u0131<\/h4>\n<p>Stepper'\u0131n de\u011feri her de\u011fi\u015fti\u011finde, ba\u011fl\u0131 oldu\u011fu g\u00f6r\u00fcn\u00fcm hiyerar\u015fisi yeniden de\u011ferlendirilebilir. Genellikle bu bir performans sorunu yaratmaz. Ancak, Stepper'\u0131n de\u011ferini \u00e7ok s\u0131k de\u011fi\u015ftiren veya karma\u015f\u0131k hesaplamalar\u0131 tetikleyen bir senaryonuz varsa, performans optimizasyonlar\u0131n\u0131 g\u00f6z \u00f6n\u00fcnde bulundurman\u0131z gerekebilir. \u00d6rne\u011fin, b\u00fcy\u00fck veri setleri \u00fczerinde an\u0131nda filtreleme yapmak yerine, kullan\u0131c\u0131 Stepper'\u0131 b\u0131rakt\u0131\u011f\u0131nda i\u015flemi tetikleyebilirsiniz (\u00f6rne\u011fin, <code>.onEnded<\/code> benzeri bir mekanizma).<\/p>\n<h3>\u0130leri Seviye Stepper Kullan\u0131m\u0131 ve Eri\u015filebilirlik<\/h3>\n<p>Stepper'\u0131n temel i\u015flevselli\u011finin \u00f6tesine ge\u00e7erek, daha \u00f6zelle\u015ftirilmi\u015f davran\u0131\u015flar ve daha iyi eri\u015filebilirlik sa\u011flayabilirsiniz.<\/p>\n<h4>\u00d6zel Stepper Kontrolleri<\/h4>\n<p>SwiftUI Stepper'\u0131n <code>onIncrement<\/code> ve <code>onDecrement<\/code> closure'lar\u0131n\u0131 kullanarak, de\u011ferin art\u0131r\u0131lmas\u0131 veya azalt\u0131lmas\u0131 s\u0131ras\u0131nda \u00f6zel mant\u0131k uygulayabilirsiniz. Bu, varsay\u0131lan ad\u0131m davran\u0131\u015f\u0131n\u0131n \u00f6tesine ge\u00e7menizi ve daha karma\u015f\u0131k i\u015f kurallar\u0131 eklemenizi sa\u011flar.<\/p>\n<pre><code class=\"language-swift\">struct CustomLogicStepperView: View {\n    @State private var customValue: Int = 0\n\n    var body: some View {\n        VStack {\n            Stepper {\n                Text(\"\u00d6zel De\u011fer: \\(customValue)\")\n            } onIncrement: {\n                \/\/ Sadece \u00e7ift say\u0131lar\u0131 art\u0131r veya tekse tek yap\n                if customValue % 2 == 0 {\n                    customValue += 2\n                } else {\n                    customValue += 1\n                }\n            } onDecrement: {\n                \/\/ Sadece 0'\u0131n alt\u0131na d\u00fc\u015fme ve tekse \u00e7ift yap\n                if customValue > 0 {\n                    if customValue % 2 != 0 {\n                        customValue -= 1\n                    } else if customValue > 1 {\n                        customValue -= 2\n                    } else {\n                        customValue = 0\n                    }\n                }\n            }\n            .padding()\n            Text(\"Mevcut \u00d6zel De\u011fer: \\(customValue)\")\n                .font(.title2)\n                .padding(.top)\n        }\n        .navigationTitle(\"\u00d6zel Mant\u0131k\")\n    }\n}\n<\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte, art\u0131rma ve azaltma butonlar\u0131na bas\u0131ld\u0131\u011f\u0131nda <code>customValue<\/code>'nun nas\u0131l de\u011fi\u015fece\u011fine dair \u00f6zel bir mant\u0131k tan\u0131mlad\u0131k. Bu sayede, Stepper'\u0131n varsay\u0131lan davran\u0131\u015f\u0131n\u0131n \u00f6tesine ge\u00e7erek uygulaman\u0131z\u0131n gereksinimlerine uygun, daha esnek kontroller olu\u015fturabilirsiniz.<\/p>\n<h4>Eri\u015filebilirlik (VoiceOver)<\/h4>\n<p>SwiftUI, Stepper gibi standart kontroller i\u00e7in eri\u015filebilirli\u011fi otomatik olarak sa\u011flar. VoiceOver etkinle\u015ftirildi\u011finde, Stepper'\u0131n etiketi ve mevcut de\u011feri okunur. Kullan\u0131c\u0131lar, Stepper'\u0131 VoiceOver jestleriyle kontrol edebilirler. Daha fazla ba\u011flam sa\u011flamak isterseniz, <code>.accessibilityLabel()<\/code> ve <code>.accessibilityValue()<\/code> gibi modifier'lar\u0131 kullanarak VoiceOver'\u0131n okuyaca\u011f\u0131 metni \u00f6zelle\u015ftirebilirsiniz.<\/p>\n<h4>Geri Bildirim Mekanizmalar\u0131<\/h4>\n<p>Kullan\u0131c\u0131 Stepper ile etkile\u015fime ge\u00e7ti\u011finde, haptik geri bildirim (titre\u015fim) veya g\u00f6rsel efektler (butonlar\u0131n k\u0131sa s\u00fcreli vurgulanmas\u0131) gibi geri bildirim mekanizmalar\u0131 ekleyerek kullan\u0131c\u0131 deneyimini iyile\u015ftirebilirsiniz. Bu t\u00fcr k\u00fc\u00e7\u00fck dokunu\u015flar, uygulaman\u0131z\u0131n daha duyarl\u0131 ve kullan\u0131\u015fl\u0131 hissetmesini sa\u011flar.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>SwiftUI Stepper, say\u0131sal de\u011ferleri kullan\u0131c\u0131 dostu bir \u015fekilde y\u00f6netmek i\u00e7in basit ama g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r. Temel kullan\u0131m\u0131ndan, de\u011fer aral\u0131\u011f\u0131 ve ad\u0131m ayarlar\u0131n\u0131n \u00f6zelle\u015ftirilmesine, karma\u015f\u0131k veri ba\u011flama senaryolar\u0131ndan \u00f6zel mant\u0131k eklemeye kadar geni\u015f bir yelpazede esneklik sunar. Uygulamalar\u0131n\u0131zda miktar se\u00e7iminden ayarlamalara kadar bir\u00e7ok farkl\u0131 senaryoda Stepper'\u0131 etkin bir \u015fekilde kullanarak kullan\u0131c\u0131 deneyimini \u00f6nemli \u00f6l\u00e7\u00fcde iyile\u015ftirebilirsiniz. Bu makaledeki bilgiler ve kod \u00f6rnekleri, SwiftUI projelerinizde Stepper'\u0131 ustaca kullanman\u0131z i\u00e7in sa\u011flam bir temel olu\u015fturacakt\u0131r.<\/p>\n<h3>SSS (S\u0131k Sorulan Sorular)<\/h3>\n<h4>Stepper ile Slider aras\u0131ndaki fark nedir?<\/h4>\n<p>Stepper, de\u011feri belirli ad\u0131mlarla art\u0131r\u0131p azalt\u0131rken, Slider ise bir aral\u0131k i\u00e7inde s\u00fcrekli bir de\u011fer se\u00e7imi sunar. Stepper daha \u00e7ok hassas, ad\u0131m ad\u0131m se\u00e7imler i\u00e7in uygunken, Slider daha geni\u015f bir aral\u0131kta h\u0131zl\u0131ca de\u011fer se\u00e7mek i\u00e7in kullan\u0131l\u0131r.<\/p>\n<h4>Stepper'\u0131n varsay\u0131lan ad\u0131m b\u00fcy\u00fckl\u00fc\u011f\u00fc nedir?<\/h4>\n<p>Stepper'\u0131n varsay\u0131lan ad\u0131m b\u00fcy\u00fckl\u00fc\u011f\u00fc 1'dir. Bu, her art\u0131rma veya azaltma i\u015fleminde de\u011ferin 1 birim de\u011fi\u015fti\u011fi anlam\u0131na gelir. Farkl\u0131 bir ad\u0131m b\u00fcy\u00fckl\u00fc\u011f\u00fc i\u00e7in<\/p>\n","protected":false},"excerpt":{"rendered":"Stepper, bir say\u0131sal de\u011feri belirli ad\u0131mlarla art\u0131rmak veya azaltmak i\u00e7in kullan\u0131lan bir kullan\u0131c\u0131 aray\u00fcz\u00fc kontrol\u00fcd\u00fcr. Genellikle bir metin etik&#8230;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-38015","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>SwiftUI Stepper: Ad\u0131m Ad\u0131m De\u011fer Kontrol\u00fc - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/swiftui-stepper-adim-adim-deger-kontrolu\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SwiftUI Stepper: Ad\u0131m Ad\u0131m De\u011fer Kontrol\u00fc\" \/>\n<meta property=\"og:description\" content=\"Stepper, bir say\u0131sal de\u011feri belirli ad\u0131mlarla art\u0131rmak veya azaltmak i\u00e7in kullan\u0131lan bir kullan\u0131c\u0131 aray\u00fcz\u00fc kontrol\u00fcd\u00fcr. Genellikle bir metin etik...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/swiftui-stepper-adim-adim-deger-kontrolu\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-21T11:00:50+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/swiftui-stepper-adim-adim-deger-kontrolu\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/swiftui-stepper-adim-adim-deger-kontrolu\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"SwiftUI Stepper: Ad\u0131m Ad\u0131m De\u011fer Kontrol\u00fc\",\"datePublished\":\"2026-01-21T11:00:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/swiftui-stepper-adim-adim-deger-kontrolu\/\"},\"wordCount\":2102,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/swiftui-stepper-adim-adim-deger-kontrolu\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/swiftui-stepper-adim-adim-deger-kontrolu\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/swiftui-stepper-adim-adim-deger-kontrolu\/\",\"name\":\"SwiftUI Stepper: Ad\u0131m Ad\u0131m De\u011fer Kontrol\u00fc - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-21T11:00:50+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/swiftui-stepper-adim-adim-deger-kontrolu\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/swiftui-stepper-adim-adim-deger-kontrolu\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/swiftui-stepper-adim-adim-deger-kontrolu\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SwiftUI Stepper: Ad\u0131m Ad\u0131m De\u011fer Kontrol\u00fc\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"SwiftUI Stepper: Ad\u0131m Ad\u0131m De\u011fer Kontrol\u00fc - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/swiftui-stepper-adim-adim-deger-kontrolu\/","og_locale":"tr_TR","og_type":"article","og_title":"SwiftUI Stepper: Ad\u0131m Ad\u0131m De\u011fer Kontrol\u00fc","og_description":"Stepper, bir say\u0131sal de\u011feri belirli ad\u0131mlarla art\u0131rmak veya azaltmak i\u00e7in kullan\u0131lan bir kullan\u0131c\u0131 aray\u00fcz\u00fc kontrol\u00fcd\u00fcr. Genellikle bir metin etik...","og_url":"https:\/\/fatihsoysal.com\/blog\/swiftui-stepper-adim-adim-deger-kontrolu\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-21T11:00:50+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"12 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/swiftui-stepper-adim-adim-deger-kontrolu\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/swiftui-stepper-adim-adim-deger-kontrolu\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"SwiftUI Stepper: Ad\u0131m Ad\u0131m De\u011fer Kontrol\u00fc","datePublished":"2026-01-21T11:00:50+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/swiftui-stepper-adim-adim-deger-kontrolu\/"},"wordCount":2102,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/swiftui-stepper-adim-adim-deger-kontrolu\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/swiftui-stepper-adim-adim-deger-kontrolu\/","url":"https:\/\/fatihsoysal.com\/blog\/swiftui-stepper-adim-adim-deger-kontrolu\/","name":"SwiftUI Stepper: Ad\u0131m Ad\u0131m De\u011fer Kontrol\u00fc - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-21T11:00:50+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/swiftui-stepper-adim-adim-deger-kontrolu\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/swiftui-stepper-adim-adim-deger-kontrolu\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/swiftui-stepper-adim-adim-deger-kontrolu\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"SwiftUI Stepper: Ad\u0131m Ad\u0131m De\u011fer Kontrol\u00fc"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38015","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=38015"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38015\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=38015"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=38015"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=38015"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}