{"id":32915,"date":"2025-10-27T09:42:03","date_gmt":"2025-10-27T06:42:03","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=32915"},"modified":"2025-10-27T09:42:03","modified_gmt":"2025-10-27T06:42:03","slug":"android-toggle-button-switch-example","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/android-toggle-button-switch-example\/","title":{"rendered":"Android Toggle Button, Switch Example"},"content":{"rendered":"<p><body><\/p>\n<h2>Giri\u015f<\/h2>\n<p>Android uygulamalar\u0131 geli\u015ftirirken kullan\u0131c\u0131 aray\u00fcz\u00fc (UI) bile\u015fenleri, kullan\u0131c\u0131 deneyiminin temelini olu\u015fturur. Kullan\u0131c\u0131lar\u0131n bir \u00f6zelli\u011fi a\u00e7\u0131p kapatmas\u0131n\u0131, bir ayar\u0131 etkinle\u015ftirmesini veya devre d\u0131\u015f\u0131 b\u0131rakmas\u0131n\u0131 sa\u011flayan etkile\u015fimli \u00f6\u011feler, modern uygulamalar\u0131n vazge\u00e7ilmezidir. Bu rehberde, Android&#8217;de bu t\u00fcr ikili durumlu i\u015flemleri y\u00f6netmek i\u00e7in kullan\u0131lan iki temel UI bile\u015fenini, <strong>ToggleButton<\/strong> ve <strong>Switch<\/strong>&#8216;i detayl\u0131 bir \u015fekilde inceleyece\u011fiz. Her iki bile\u015fenin ne oldu\u011funu, ne zaman ve nas\u0131l kullan\u0131laca\u011f\u0131n\u0131, XML d\u00fczeninde nas\u0131l tan\u0131mland\u0131\u011f\u0131n\u0131 ve Java\/Kotlin kodunda olay y\u00f6netiminin nas\u0131l yap\u0131ld\u0131\u011f\u0131n\u0131 ad\u0131m ad\u0131m \u00f6\u011freneceksiniz. Ayr\u0131ca, pratik ipu\u00e7lar\u0131, \u00f6rnek kodlar ve s\u0131k\u00e7a sorulan sorularla konuyu peki\u015ftirece\u011fiz.<\/p>\n<h2>Toggle Buton ve Switch Nedir?<\/h2>\n<p>ToggleButton ve Switch, Android&#8217;de kullan\u0131c\u0131lar\u0131n iki durum aras\u0131nda (a\u00e7\u0131k\/kapal\u0131, etkin\/devre d\u0131\u015f\u0131, evet\/hay\u0131r) se\u00e7im yapmas\u0131n\u0131 sa\u011flayan g\u00f6rsel bile\u015fenlerdir. Her ikisi de temelde ayn\u0131 i\u015flevi g\u00f6rse de, g\u00f6rsel tasar\u0131mlar\u0131 ve modern uygulamalardaki kullan\u0131m tercihleri a\u00e7\u0131s\u0131ndan farkl\u0131l\u0131k g\u00f6sterirler.<\/p>\n<h3>ToggleButton<\/h3>\n<p><strong>ToggleButton<\/strong>, ad\u0131ndan da anla\u015f\u0131laca\u011f\u0131 gibi, iki durum aras\u0131nda ge\u00e7i\u015f yapabilen bir butondur. Kullan\u0131c\u0131 t\u0131klad\u0131\u011f\u0131nda durumu de\u011fi\u015fir ve genellikle bu duruma g\u00f6re \u00fczerindeki metin de farkl\u0131la\u015f\u0131r. \u00d6rne\u011fin, &#8220;A\u00e7\u0131k&#8221; veya &#8220;Kapal\u0131&#8221; gibi metinler g\u00f6sterebilir. Genellikle daha geleneksel bir buton g\u00f6r\u00fcn\u00fcm\u00fcndedir ve Material Design \u00f6ncesi d\u00f6nemlerde veya basit, metin tabanl\u0131 ikili se\u00e7imler i\u00e7in tercih edilirdi.<\/p>\n<ul>\n<li><strong>G\u00f6r\u00fcn\u00fcm:<\/strong> Standart bir buton gibi g\u00f6r\u00fcn\u00fcr, ancak bas\u0131l\u0131p bas\u0131lmad\u0131\u011f\u0131n\u0131 veya se\u00e7ili olup olmad\u0131\u011f\u0131n\u0131 belirten bir g\u00f6rsel duruma sahiptir.<\/li>\n<li><strong>Metin:<\/strong> <code>android:textOn<\/code> ve <code>android:textOff<\/code> \u00f6znitelikleri ile a\u00e7\u0131k ve kapal\u0131 durumdaki metinleri \u00f6zelle\u015ftirilebilir.<\/li>\n<li><strong>Kullan\u0131m Alanlar\u0131:<\/strong> Basit ayarlar, filtreleme se\u00e7enekleri (\u00f6rne\u011fin, &#8220;Favorileri G\u00f6ster&#8221; a\u00e7\u0131k\/kapal\u0131), h\u0131zl\u0131 durum de\u011fi\u015fiklikleri.<\/li>\n<\/ul>\n<h3>Switch<\/h3>\n<p><strong>Switch<\/strong>, modern Android uygulamalar\u0131nda daha s\u0131k kar\u015f\u0131la\u015f\u0131lan, g\u00f6rsel olarak daha \u00e7ekici ve interaktif bir bile\u015fendir. Bir anahtar veya s\u00fcrg\u00fc gibi g\u00f6r\u00fcn\u00fcr ve genellikle bir parmak hareketiyle veya dokunu\u015fla a\u00e7\u0131l\u0131p kapan\u0131r. Material Design y\u00f6nergeleriyle uyumlu olarak tasarlanm\u0131\u015ft\u0131r ve genellikle sistem ayarlar\u0131, \u00f6zellik etkinle\u015ftirme\/devre d\u0131\u015f\u0131 b\u0131rakma gibi \u00f6nemli ikili se\u00e7imler i\u00e7in kullan\u0131l\u0131r.<\/p>\n<ul>\n<li><strong>G\u00f6r\u00fcn\u00fcm:<\/strong> Bir s\u00fcrg\u00fc (thumb) ve bir yol (track) i\u00e7erir. S\u00fcrg\u00fc yol \u00fczerinde hareket ederek a\u00e7\u0131k veya kapal\u0131 durumu g\u00f6rsel olarak temsil eder.<\/li>\n<li><strong>Metin:<\/strong> Genellikle yan\u0131nda bir a\u00e7\u0131klama metni (<code>android:text<\/code>) bulunur, ancak ToggleButton gibi a\u00e7\u0131k\/kapal\u0131 durum i\u00e7in ayr\u0131 metinleri yoktur.<\/li>\n<li><strong>Kullan\u0131m Alanlar\u0131:<\/strong> Wi-Fi, Bluetooth gibi sistem ayarlar\u0131, bildirimleri etkinle\u015ftirme\/devre d\u0131\u015f\u0131 b\u0131rakma, karanl\u0131k mod ge\u00e7i\u015fleri gibi \u00f6zellikler.<\/li>\n<\/ul>\n<h2>Android&#8217;de ToggleButton Kullan\u0131m\u0131<\/h2>\n<p>ToggleButton&#8217;\u0131 bir Android uygulamas\u0131nda kullanmak olduk\u00e7a basittir. Hem XML d\u00fczeninde hem de Java\/Kotlin kodunda kolayca y\u00f6netilebilir.<\/p>\n<h3>XML D\u00fczeninde Tan\u0131mlama<\/h3>\n<p>Bir <code>ToggleButton<\/code>&#8216;\u0131 XML d\u00fczen dosyan\u0131za (\u00f6rne\u011fin, <code>activity_main.xml<\/code>) eklemek i\u00e7in a\u015fa\u011f\u0131daki gibi bir kod kullanabilirsiniz:<\/p>\n<pre><code class=\"language-xml\"><ToggleButton\n    android:id=\"@+id\/myToggleButton\"\n    android:layout_width=\"wrap_content\"\n    android:layout_height=\"wrap_content\"\n    android:textOn=\"WI-FI A\u00c7IK\"\n    android:textOff=\"WI-FI KAPALI\"\n    android:checked=\"false\" \/>\n<\/code><\/pre>\n<ul>\n<li><code>android:id<\/code>: Bile\u015fene programatik olarak eri\u015fmek i\u00e7in benzersiz bir kimlik sa\u011flar.<\/li>\n<li><code>android:layout_width<\/code> ve <code>android:layout_height<\/code>: Bile\u015fenin geni\u015fli\u011fini ve y\u00fcksekli\u011fini belirler.<\/li>\n<li><code>android:textOn<\/code>: ToggleButton a\u00e7\u0131k durumdayken g\u00f6sterilecek metin.<\/li>\n<li><code>android:textOff<\/code>: ToggleButton kapal\u0131 durumdayken g\u00f6sterilecek metin.<\/li>\n<li><code>android:checked<\/code>: ToggleButton&#8217;\u0131n ba\u015flang\u0131\u00e7taki durumunu belirler (<code>true<\/code> i\u00e7in a\u00e7\u0131k, <code>false<\/code> i\u00e7in kapal\u0131).<\/li>\n<\/ul>\n<h3>Java\/Kotlin Kodunda Eri\u015fim ve Olay Y\u00f6netimi<\/h3>\n<p>XML&#8217;de tan\u0131mlanan <code>ToggleButton<\/code>&#8216;a Activity veya Fragment kodunuzdan eri\u015fmek ve durum de\u011fi\u015fikliklerini dinlemek i\u00e7in <code>OnCheckedChangeListener<\/code> kullan\u0131r\u0131z.<\/p>\n<h4>Java \u00d6rne\u011fi:<\/h4>\n<pre><code class=\"language-java\">import androidx.appcompat.app.AppCompatActivity;\nimport android.os.Bundle;\nimport android.widget.CompoundButton;\nimport android.widget.Toast;\nimport android.widget.ToggleButton;\n\npublic class MainActivity extends AppCompatActivity {\n\n    private ToggleButton myToggleButton;\n\n    @Override\n    protected void onCreate(Bundle savedInstanceState) {\n        super.onCreate(savedInstanceState);\n        setContentView(R.layout.activity_main);\n\n        myToggleButton = findViewById(R.id.myToggleButton);\n\n        myToggleButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {\n            @Override\n            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {\n                if (isChecked) {\n                    Toast.makeText(MainActivity.this, \"Wi-Fi A\u00e7\u0131k\", Toast.LENGTH_SHORT).show();\n                    \/\/ Wi-Fi'\u0131 a\u00e7ma i\u015flemleri burada yap\u0131labilir\n                } else {\n                    Toast.makeText(MainActivity.this, \"Wi-Fi Kapal\u0131\", Toast.LENGTH_SHORT).show();\n                    \/\/ Wi-Fi'\u0131 kapatma i\u015flemleri burada yap\u0131labilir\n                }\n            }\n        });\n    }\n}\n<\/code><\/pre>\n<h4>Kotlin \u00d6rne\u011fi:<\/h4>\n<pre><code class=\"language-kotlin\">import androidx.appcompat.app.AppCompatActivity\nimport android.os.Bundle\nimport android.widget.CompoundButton\nimport android.widget.Toast\nimport android.widget.ToggleButton\n\nclass MainActivity : AppCompatActivity() {\n\n    private lateinit var myToggleButton: ToggleButton\n\n    override fun onCreate(savedInstanceState: Bundle?) {\n        super.onCreate(savedInstanceState)\n        setContentView(R.layout.activity_main)\n\n        myToggleButton = findViewById(R.id.myToggleButton)\n\n        myToggleButton.setOnCheckedChangeListener { buttonView, isChecked ->\n            if (isChecked) {\n                Toast.makeText(this, \"Wi-Fi A\u00e7\u0131k\", Toast.LENGTH_SHORT).show()\n                \/\/ Wi-Fi'\u0131 a\u00e7ma i\u015flemleri burada yap\u0131labilir\n            } else {\n                Toast.makeText(this, \"Wi-Fi Kapal\u0131\", Toast.LENGTH_SHORT).show()\n                \/\/ Wi-Fi'\u0131 kapatma i\u015flemleri burada yap\u0131labilir\n            }\n        }\n    }\n}\n<\/code><\/pre>\n<p>Bu kodda, <code>setOnCheckedChangeListener<\/code> metodu ile ToggleButton&#8217;\u0131n durumu her de\u011fi\u015fti\u011finde \u00e7a\u011fr\u0131lacak bir dinleyici tan\u0131ml\u0131yoruz. <code>isChecked<\/code> parametresi, o anki durumun a\u00e7\u0131k m\u0131 (true) yoksa kapal\u0131 m\u0131 (false) oldu\u011funu g\u00f6sterir.<\/p>\n<h3>Pratik \u0130pu\u00e7lar\u0131<\/h3>\n<ul>\n<li><strong>G\u00f6r\u00fcn\u00fcm \u00d6zelle\u015ftirme:<\/strong> <code>android:background<\/code>, <code>android:textColor<\/code>, <code>android:textSize<\/code> gibi standart buton \u00f6zniteliklerini kullanarak ToggleButton&#8217;\u0131n g\u00f6r\u00fcn\u00fcm\u00fcn\u00fc \u00f6zelle\u015ftirebilirsiniz.<\/li>\n<li><strong>Durum Kaydetme:<\/strong> Kullan\u0131c\u0131n\u0131n yapt\u0131\u011f\u0131 se\u00e7imi uygulaman\u0131n yeniden ba\u015flat\u0131lmas\u0131nda korumak i\u00e7in <code>SharedPreferences<\/code> veya di\u011fer kal\u0131c\u0131 depolama y\u00f6ntemlerini kullanmay\u0131 unutmay\u0131n.<\/li>\n<li><strong>Programatik Durum Ayar\u0131:<\/strong> <code>myToggleButton.setChecked(true);<\/code> veya <code>myToggleButton.toggle();<\/code> metotlar\u0131n\u0131 kullanarak kod \u00fczerinden durumunu de\u011fi\u015ftirebilirsiniz.<\/li>\n<\/ul>\n<h2>Android&#8217;de Switch Kullan\u0131m\u0131<\/h2>\n<p>Switch, modern Android tasar\u0131mlar\u0131 i\u00e7in daha uygun bir se\u00e7enektir ve kullan\u0131m\u0131 ToggleButton&#8217;a benzer bir yap\u0131ya sahiptir.<\/p>\n<h3>XML D\u00fczeninde Tan\u0131mlama<\/h3>\n<p>Bir <code>Switch<\/code>&#8216;i XML d\u00fczen dosyan\u0131za eklemek i\u00e7in a\u015fa\u011f\u0131daki gibi bir kod kullanabilirsiniz:<\/p>\n<pre><code class=\"language-xml\"><Switch\n    android:id=\"@+id\/mySwitch\"\n    android:layout_width=\"wrap_content\"\n    android:layout_height=\"wrap_content\"\n    android:text=\"Bildirimleri A\u00e7\/Kapat\"\n    android:checked=\"true\"\n    android:thumbTint=\"@color\/purple_500\"\n    android:trackTint=\"@color\/purple_200\" \/>\n<\/code><\/pre>\n<ul>\n<li><code>android:id<\/code>: Bile\u015fene programatik olarak eri\u015fmek i\u00e7in benzersiz bir kimlik.<\/li>\n<li><code>android:text<\/code>: Switch&#8217;in yan\u0131nda g\u00f6sterilecek a\u00e7\u0131klama metni.<\/li>\n<li><code>android:checked<\/code>: Switch&#8217;in ba\u015flang\u0131\u00e7taki durumu.<\/li>\n<li><code>android:thumbTint<\/code>: Switch&#8217;in s\u00fcrg\u00fcs\u00fcn\u00fcn (thumb) rengini belirler.<\/li>\n<li><code>android:trackTint<\/code>: Switch&#8217;in yolunun (track) rengini belirler.<\/li>\n<\/ul>\n<p>Renklendirme i\u00e7in <code>@color\/purple_500<\/code> gibi renk kaynaklar\u0131 kullanman\u0131z \u00f6nerilir. Bu renkleri <code>res\/values\/colors.xml<\/code> dosyan\u0131zda tan\u0131mlayabilirsiniz.<\/p>\n<h3>Java\/Kotlin Kodunda Eri\u015fim ve Olay Y\u00f6netimi<\/h3>\n<p><code>Switch<\/code> i\u00e7in de <code>ToggleButton<\/code>&#8216;da oldu\u011fu gibi <code>OnCheckedChangeListener<\/code> kullan\u0131l\u0131r.<\/p>\n<h4>Java \u00d6rne\u011fi:<\/h4>\n<pre><code class=\"language-java\">import androidx.appcompat.app.AppCompatActivity;\nimport android.os.Bundle;\nimport android.widget.CompoundButton;\nimport android.widget.Toast;\nimport android.widget.Switch; \/\/ androidx.appcompat.widget.SwitchCompat da kullan\u0131labilir\n\npublic class MainActivity extends AppCompatActivity {\n\n    private Switch mySwitch;\n\n    @Override\n    protected void onCreate(Bundle savedInstanceState) {\n        super.onCreate(savedInstanceState);\n        setContentView(R.layout.activity_main);\n\n        mySwitch = findViewById(R.id.mySwitch);\n\n        mySwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {\n            @Override\n            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {\n                if (isChecked) {\n                    Toast.makeText(MainActivity.this, \"Bildirimler A\u00e7\u0131k\", Toast.LENGTH_SHORT).show();\n                    \/\/ Bildirimleri a\u00e7ma i\u015flemleri\n                } else {\n                    Toast.makeText(MainActivity.this, \"Bildirimler Kapal\u0131\", Toast.LENGTH_SHORT).show();\n                    \/\/ Bildirimleri kapatma i\u015flemleri\n                }\n            }\n        });\n    }\n}\n<\/code><\/pre>\n<h4>Kotlin \u00d6rne\u011fi:<\/h4>\n<pre><code class=\"language-kotlin\">import androidx.appcompat.app.AppCompatActivity\nimport android.os.Bundle\nimport android.widget.CompoundButton\nimport android.widget.Toast\nimport android.widget.Switch \/\/ androidx.appcompat.widget.SwitchCompat da kullan\u0131labilir\n\nclass MainActivity : AppCompatActivity() {\n\n    private lateinit var mySwitch: Switch\n\n    override fun onCreate(savedInstanceState: Bundle?) {\n        super.onCreate(savedInstanceState)\n        setContentView(R.layout.activity_main)\n\n        mySwitch = findViewById(R.id.mySwitch)\n\n        mySwitch.setOnCheckedChangeListener { buttonView, isChecked ->\n            if (isChecked) {\n                Toast.makeText(this, \"Bildirimler A\u00e7\u0131k\", Toast.LENGTH_SHORT).show()\n                \/\/ Bildirimleri a\u00e7ma i\u015flemleri\n            } else {\n                Toast.makeText(this, \"Bildirimler Kapal\u0131\", Toast.LENGTH_SHORT).show()\n                \/\/ Bildirimleri kapatma i\u015flemleri\n            }\n        }\n    }\n}\n<\/code><\/pre>\n<p>Not: Eski Android s\u00fcr\u00fcmlerinde modern Switch g\u00f6r\u00fcn\u00fcm\u00fcn\u00fc sa\u011flamak i\u00e7in <code>androidx.appcompat.widget.SwitchCompat<\/code> kullanman\u0131z gerekebilir. Ancak g\u00fcncel AndroidX k\u00fct\u00fcphaneleriyle <code>android.widget.Switch<\/code> \u00e7o\u011fu durumda yeterli olacakt\u0131r.<\/p>\n<h3>Pratik \u0130pu\u00e7lar\u0131<\/h3>\n<ul>\n<li><strong>G\u00f6rsel \u00d6zelle\u015ftirme:<\/strong> <code>android:thumb<\/code>, <code>android:track<\/code> \u00f6zniteliklerini kullanarak s\u00fcrg\u00fc ve yol i\u00e7in \u00f6zel drawable kaynaklar\u0131 belirleyebilirsiniz. Bu, uygulaman\u0131z\u0131n markas\u0131na uygun \u00f6zel tasar\u0131mlar yapman\u0131z\u0131 sa\u011flar.<\/li>\n<li><strong>Eri\u015filebilirlik:<\/strong> <code>android:contentDescription<\/code> \u00f6zniteli\u011fini kullanarak ekran okuyucular i\u00e7in Switch&#8217;in amac\u0131n\u0131 a\u00e7\u0131klayan bir metin sa\u011flay\u0131n. Bu, g\u00f6rme engelli kullan\u0131c\u0131lar i\u00e7in \u00f6nemlidir.<\/li>\n<li><strong>Di\u011fer \u0130kili Se\u00e7im Bile\u015fenleri:<\/strong> <code>CheckBox<\/code> ve <code>RadioButton<\/code> da ikili se\u00e7im i\u00e7in kullan\u0131labilir. <code>CheckBox<\/code> ba\u011f\u0131ms\u0131z se\u00e7enekler i\u00e7in, <code>RadioButton<\/code> ise bir grup i\u00e7indeki tek bir se\u00e7ene\u011fi belirlemek i\u00e7in kullan\u0131l\u0131rken, Switch ve ToggleButton genellikle bir \u00f6zelli\u011fin durumunu de\u011fi\u015ftirmek i\u00e7in tercih edilir.<\/li>\n<\/ul>\n<h2>\u00d6rnek Uygulama ve Kar\u015f\u0131la\u015ft\u0131rma<\/h2>\n<p>Hem ToggleButton hem de Switch&#8217;i bir arada kullanarak basit bir ayarlar ekran\u0131 olu\u015ftural\u0131m ve aralar\u0131ndaki farklar\u0131 daha iyi anlayal\u0131m.<\/p>\n<h3>Basit Bir Ayarlar Ekran\u0131 Olu\u015fturma<\/h3>\n<p>A\u015fa\u011f\u0131daki XML kodu, bir <code>LinearLayout<\/code> i\u00e7inde hem bir <code>ToggleButton<\/code> hem de bir <code>Switch<\/code> i\u00e7eren basit bir ayarlar ekran\u0131 g\u00f6sterir:<\/p>\n<pre><code class=\"language-xml\"><?xml version=\"1.0\" encoding=\"utf-8\"?>\n<LinearLayout xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\n    xmlns:app=\"http:\/\/schemas.android.com\/apk\/res-auto\"\n    xmlns:tools=\"http:\/\/schemas.android.com\/tools\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"match_parent\"\n    android:orientation=\"vertical\"\n    android:padding=\"16dp\"\n    tools:context=\".MainActivity\">\n\n    <TextView\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:text=\"Uygulama Ayarlar\u0131\"\n        android:textSize=\"24sp\"\n        android:textStyle=\"bold\"\n        android:layout_marginBottom=\"16dp\"\/>\n\n    <!-- Wi-Fi Ayar\u0131 i\u00e7in ToggleButton -->\n    <ToggleButton\n        android:id=\"@+id\/wifiToggleButton\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"wrap_content\"\n        android:textOn=\"Wi-Fi A\u00e7\u0131k\"\n        android:textOff=\"Wi-Fi Kapal\u0131\"\n        android:checked=\"false\"\n        android:layout_marginBottom=\"8dp\"\/>\n\n    <!-- Bluetooth Ayar\u0131 i\u00e7in Switch -->\n    <Switch\n        android:id=\"@+id\/bluetoothSwitch\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"wrap_content\"\n        android:text=\"Bluetooth Etkinle\u015ftir\"\n        android:checked=\"true\"\n        android:paddingTop=\"8dp\"\n        android:paddingBottom=\"8dp\"\/>\n\n<\/LinearLayout>\n<\/code><\/pre>\n<p>Ve bu bile\u015fenlerin durumlar\u0131n\u0131 y\u00f6neten Activity kodu (Kotlin):<\/p>\n<pre><code class=\"language-kotlin\">import androidx.appcompat.app.AppCompatActivity\nimport android.os.Bundle\nimport android.widget.Toast\nimport android.widget.ToggleButton\nimport android.widget.Switch\n\nclass MainActivity : AppCompatActivity() {\n\n    private lateinit var wifiToggleButton: ToggleButton\n    private lateinit var bluetoothSwitch: Switch\n\n    override fun onCreate(savedInstanceState: Bundle?) {\n        super.onCreate(savedInstanceState)\n        setContentView(R.layout.activity_main)\n\n        wifiToggleButton = findViewById(R.id.wifiToggleButton)\n        bluetoothSwitch = findViewById(R.id.bluetoothSwitch)\n\n        wifiToggleButton.setOnCheckedChangeListener { _, isChecked ->\n            if (isChecked) {\n                Toast.makeText(this, \"Wi-Fi A\u00e7\u0131ld\u0131\", Toast.LENGTH_SHORT).show()\n                \/\/ Wi-Fi a\u00e7ma mant\u0131\u011f\u0131\n            } else {\n                Toast.makeText(this, \"Wi-Fi Kapat\u0131ld\u0131\", Toast.LENGTH_SHORT).show()\n                \/\/ Wi-Fi kapatma mant\u0131\u011f\u0131\n            }\n        }\n\n        bluetoothSwitch.setOnCheckedChangeListener { _, isChecked ->\n            if (isChecked) {\n                Toast.makeText(this, \"Bluetooth Etkinle\u015ftirildi\", Toast.LENGTH_SHORT).show()\n                \/\/ Bluetooth etkinle\u015ftirme mant\u0131\u011f\u0131\n            } else {\n                Toast.makeText(this, \"Bluetooth Devre D\u0131\u015f\u0131 B\u0131rak\u0131ld\u0131\", Toast.LENGTH_SHORT).show()\n                \/\/ Bluetooth devre d\u0131\u015f\u0131 b\u0131rakma mant\u0131\u011f\u0131\n            }\n        }\n    }\n}\n<\/code><\/pre>\n<h3>ToggleButton ve Switch Aras\u0131ndaki Farklar ve Se\u00e7im Kriterleri<\/h3>\n<p>Her iki bile\u015fen de ikili durumlu se\u00e7imler i\u00e7in kullan\u0131lsa da, ne zaman hangisini tercih etmeniz gerekti\u011fi konusunda baz\u0131 \u00f6nemli farklar vard\u0131r:<\/p>\n<ul>\n<li><strong>G\u00f6rsel Tasar\u0131m:<\/strong> Switch, Material Design ile daha uyumlu, modern ve g\u00f6rsel olarak daha belirgindir. ToggleButton ise daha geleneksel, buton benzeri bir g\u00f6r\u00fcn\u00fcme sahiptir ve genellikle metin de\u011fi\u015fiklikleriyle durumu belirtir.<\/li>\n<li><strong>Kullan\u0131m Senaryolar\u0131:<\/strong>\n<ul>\n<li><strong>Switch:<\/strong> Genellikle bir ayar\u0131n veya \u00f6zelli\u011fin an\u0131nda etkili oldu\u011fu, sistem d\u00fczeyinde veya uygulaman\u0131n temel i\u015flevselli\u011fini etkileyen &#8220;a\u00e7\/kapat&#8221; durumlar\u0131 i\u00e7in idealdir. \u00d6rne\u011fin, &#8220;Konum Servislerini A\u00e7&#8221;, &#8220;Karanl\u0131k Modu Etkinle\u015ftir&#8221;. G\u00f6rsel olarak, kullan\u0131c\u0131n\u0131n neyi a\u00e7\u0131p kapatt\u0131\u011f\u0131n\u0131 net bir \u015fekilde g\u00f6sterir.<\/li>\n<li><strong>ToggleButton:<\/strong> Daha az kritik veya h\u0131zl\u0131 filtreleme gibi durumlarda tercih edilebilir. &#8220;Favorileri G\u00f6ster&#8221;, &#8220;T\u00fcm\u00fcn\u00fc Se\u00e7&#8221; gibi durumlar i\u00e7in kullan\u0131labilir. Metin tabanl\u0131 olmas\u0131, bazen daha fazla a\u00e7\u0131klama gerektiren durumlar i\u00e7in avantaj sa\u011flayabilir.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Kullan\u0131c\u0131 Alg\u0131s\u0131:<\/strong> Switch, genellikle bir anahtar\u0131n fiziksel hareketini taklit etti\u011fi i\u00e7in kullan\u0131c\u0131lar taraf\u0131ndan daha sezgisel olarak bir &#8220;durum de\u011fi\u015ftirici&#8221; olarak alg\u0131lan\u0131r. ToggleButton ise daha \u00e7ok bir &#8220;eylem d\u00fc\u011fmesi&#8221; gibi alg\u0131lanabilir, ancak ayn\u0131 zamanda bir durumu da temsil eder.<\/li>\n<li><strong>Tasar\u0131m Tercihleri:<\/strong> Modern Android uygulamalar\u0131nda, Material Design ilkelerine uygunluk a\u00e7\u0131s\u0131ndan Switch genellikle ToggleButton&#8217;a tercih edilir. Ancak, uygulaman\u0131z\u0131n genel tasar\u0131m dili ve kullan\u0131c\u0131 beklentileri bu tercihi etkileyebilir.<\/li>\n<\/ul>\n<h2>Sonu\u00e7 ve S\u0131k\u00e7a Sorulan Sorular<\/h2>\n<p>Bu rehberde, Android&#8217;deki ToggleButton ve Switch bile\u015fenlerinin temel kullan\u0131m\u0131n\u0131, XML ve kod taraf\u0131ndaki tan\u0131mlamalar\u0131n\u0131 ve olay y\u00f6netimini detayl\u0131 bir \u015fekilde inceledik. Her ikisi de ikili durumlu se\u00e7imler i\u00e7in g\u00fc\u00e7l\u00fc ara\u00e7lar olsa da, aralar\u0131ndaki g\u00f6rsel ve kullan\u0131m senaryosu farklar\u0131, do\u011fru bile\u015feni se\u00e7menizde size yol g\u00f6sterecektir. Modern ve kullan\u0131c\u0131 dostu bir aray\u00fcz i\u00e7in genellikle Switch tercih edilirken, belirli senaryolarda ToggleButton da hala ge\u00e7erli bir se\u00e7enektir. Uygulaman\u0131z\u0131n kullan\u0131c\u0131 deneyimini zenginle\u015ftirmek i\u00e7in bu bile\u015fenleri do\u011fru ve etkin bir \u015fekilde kullanmak, geli\u015ftiriciler i\u00e7in \u00f6nemli bir beceridir.<\/p>\n<h3>SSS (S\u0131k\u00e7a Sorulan Sorular)<\/h3>\n<h4>S1: Hangi durumlarda ToggleButton, hangi durumlarda Switch kullanmal\u0131y\u0131m?<\/h4>\n<p><strong>Switch:<\/strong> Genellikle sistem ayarlar\u0131, uygulaman\u0131n temel \u00f6zelliklerini a\u00e7\u0131p kapatma (Wi-Fi, Bluetooth, Bildirimler, Karanl\u0131k Mod) gibi durumlarda, g\u00f6rsel olarak daha modern ve belirgin bir ge\u00e7i\u015f sa\u011flamak i\u00e7in kullan\u0131l\u0131r. An\u0131nda etkili olan ve net bir &#8220;a\u00e7\u0131k\/kapal\u0131&#8221; durumu olan \u00f6zellikler i\u00e7in idealdir.<br \/>\n<strong>ToggleButton:<\/strong> Daha geleneksel veya basit, metin tabanl\u0131 ikili se\u00e7imler i\u00e7in kullan\u0131labilir. \u00d6rne\u011fin, bir liste g\u00f6r\u00fcn\u00fcm\u00fcnde &#8220;Favorileri G\u00f6ster&#8221; veya &#8220;T\u00fcm\u00fcn\u00fc G\u00f6ster&#8221; gibi filtreleme se\u00e7enekleri i\u00e7in uygun olabilir. G\u00f6rsel olarak Switch kadar belirgin olmasa da, metin tabanl\u0131 a\u00e7\u0131klamalar sunma esnekli\u011fi vard\u0131r.<\/p>\n<h4>S2: ToggleButton veya Switch&#8217;in varsay\u0131lan durumunu nas\u0131l ayarlar\u0131m?<\/h4>\n<p>Her iki bile\u015fenin de XML&#8217;de <code>android:checked<\/code> \u00f6zniteli\u011fi bulunur. Bu \u00f6zniteli\u011fi <code>true<\/code> veya <code>false<\/code> olarak ayarlayarak ba\u015flang\u0131\u00e7 durumunu belirleyebilirsiniz. \u00d6rne\u011fin: <code>android:checked=\"true\"<\/code>.<\/p>\n<h4>S3: G\u00f6r\u00fcn\u00fcmlerini nas\u0131l \u00f6zelle\u015ftirebilirim?<\/h4>\n<p><strong>ToggleButton:<\/strong> <code>android:background<\/code>, <code>android:textColor<\/code>, <code>android:textSize<\/code> gibi standart buton \u00f6zniteliklerini kullanarak \u00f6zelle\u015ftirebilirsiniz. Ayr\u0131ca <code>textOn<\/code> ve <code>textOff<\/code> metinlerini de\u011fi\u015ftirerek de g\u00f6rsel geri bildirim sa\u011flayabilirsiniz.<br \/>\n<strong>Switch:<\/strong> <code>android:thumbTint<\/code> (s\u00fcrg\u00fc rengi), <code>android:trackTint<\/code> (yol rengi) \u00f6znitelikleriyle renklerini de\u011fi\u015ftirebilirsiniz. Daha ileri d\u00fczey \u00f6zelle\u015ftirmeler i\u00e7in <code>android:thumb<\/code> ve <code>android:track<\/code> \u00f6zniteliklerine \u00f6zel drawable kaynaklar\u0131 atayarak s\u00fcrg\u00fc ve yol i\u00e7in tamamen \u00f6zel g\u00f6r\u00fcn\u00fcmler olu\u015fturabilirsiniz.<\/p>\n<h4>S4: Kullan\u0131c\u0131n\u0131n yapt\u0131\u011f\u0131 se\u00e7imi nas\u0131l kaydederim?<\/h4>\n<p>Kullan\u0131c\u0131n\u0131n yapt\u0131\u011f\u0131 se\u00e7imi uygulaman\u0131n yeniden ba\u015flat\u0131lmas\u0131nda kal\u0131c\u0131 hale getirmek i\u00e7in <code>SharedPreferences<\/code> en yayg\u0131n ve basit y\u00f6ntemdir. <code>OnCheckedChangeListener<\/code> i\u00e7inde durum de\u011fi\u015fti\u011finde, <code>SharedPreferences<\/code> kullanarak se\u00e7imi kaydedebilir ve uygulama ba\u015flat\u0131ld\u0131\u011f\u0131nda bu de\u011feri okuyarak bile\u015fenin durumunu ayarlayabilirsiniz. Daha karma\u015f\u0131k veri depolama i\u00e7in Room veritaban\u0131 veya DataStore kullan\u0131labilir.<\/p>\n<h4>S5: ToggleButton ve Switch&#8217;in performans fark\u0131 var m\u0131?<\/h4>\n<p>Performans a\u00e7\u0131s\u0131ndan, her iki bile\u015fen de olduk\u00e7a hafiftir ve modern Android cihazlarda g\u00f6zle g\u00f6r\u00fcl\u00fcr bir performans fark\u0131 yaratmazlar. Uygulaman\u0131z\u0131n performans\u0131n\u0131 etkileyecek fakt\u00f6rler genellikle bu t\u00fcr k\u00fc\u00e7\u00fck UI bile\u015fenlerinden ziyade, karma\u015f\u0131k layout&#8217;lar, yo\u011fun grafik i\u015flemleri veya a\u011f istekleri gibi alanlarda aranmal\u0131d\u0131r.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Giri\u015f\nAndroid uygulamalar\u0131 geli\u015ftirirken kullan\u0131c\u0131 aray\u00fcz\u00fc (UI) bile\u015fenleri, kullan\u0131c\u0131 deneyiminin temelini olu\u015fturur. Kullan\u0131c\u0131lar\u0131n","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-32915","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>Android Toggle Button, Switch Example - 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\/android-toggle-button-switch-example\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Android Toggle Button, Switch Example\" \/>\n<meta property=\"og:description\" content=\"Giri\u015f Android uygulamalar\u0131 geli\u015ftirirken kullan\u0131c\u0131 aray\u00fcz\u00fc (UI) bile\u015fenleri, kullan\u0131c\u0131 deneyiminin temelini olu\u015fturur. Kullan\u0131c\u0131lar\u0131n\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/android-toggle-button-switch-example\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-27T06:42:03+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\/android-toggle-button-switch-example\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/android-toggle-button-switch-example\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Android Toggle Button, Switch Example\",\"datePublished\":\"2025-10-27T06:42:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/android-toggle-button-switch-example\/\"},\"wordCount\":1842,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/android-toggle-button-switch-example\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/android-toggle-button-switch-example\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/android-toggle-button-switch-example\/\",\"name\":\"Android Toggle Button, Switch Example - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-27T06:42:03+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/android-toggle-button-switch-example\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/android-toggle-button-switch-example\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/android-toggle-button-switch-example\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Android Toggle Button, Switch Example\"}]},{\"@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":"Android Toggle Button, Switch Example - 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\/android-toggle-button-switch-example\/","og_locale":"tr_TR","og_type":"article","og_title":"Android Toggle Button, Switch Example","og_description":"Giri\u015f Android uygulamalar\u0131 geli\u015ftirirken kullan\u0131c\u0131 aray\u00fcz\u00fc (UI) bile\u015fenleri, kullan\u0131c\u0131 deneyiminin temelini olu\u015fturur. Kullan\u0131c\u0131lar\u0131n","og_url":"https:\/\/fatihsoysal.com\/blog\/android-toggle-button-switch-example\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-27T06:42:03+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\/android-toggle-button-switch-example\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/android-toggle-button-switch-example\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Android Toggle Button, Switch Example","datePublished":"2025-10-27T06:42:03+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/android-toggle-button-switch-example\/"},"wordCount":1842,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/android-toggle-button-switch-example\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/android-toggle-button-switch-example\/","url":"https:\/\/fatihsoysal.com\/blog\/android-toggle-button-switch-example\/","name":"Android Toggle Button, Switch Example - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-27T06:42:03+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/android-toggle-button-switch-example\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/android-toggle-button-switch-example\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/android-toggle-button-switch-example\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Android Toggle Button, Switch Example"}]},{"@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\/32915","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=32915"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32915\/revisions"}],"predecessor-version":[{"id":32916,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32915\/revisions\/32916"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=32915"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=32915"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=32915"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}