﻿
{"id":27504,"date":"2025-01-28T04:07:01","date_gmt":"2025-01-28T04:07:01","guid":{"rendered":"https:\/\/www.gencayyildiz.com\/blog\/?p=27504"},"modified":"2025-01-28T04:07:01","modified_gmt":"2025-01-28T04:07:01","slug":"capacitor-ile-angular-uygulamalarini-mobil-uygulamalara-donusturme","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/capacitor-ile-angular-uygulamalarini-mobil-uygulamalara-donusturme\/","title":{"rendered":"Capacitor \u0130le Angular Uygulamalar\u0131n\u0131 Mobil Uygulamalara D\u00f6n\u00fc\u015ft\u00fcrme"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>Bu i\u00e7eri\u011fimizde Ionic ekibi taraf\u0131ndan geli\u015ftirilmi\u015f olan ve Angular, React, Vue.js vs. gibi web uygulamalar\u0131n\u0131n mobil platformlarda \u00e7al\u0131\u015ft\u0131r\u0131labilmesini sa\u011flayan bir k\u00f6pr\u00fc(bridge) ve runtime \u00e7\u00f6z\u00fcm\u00fc olan Capacitor teknolojisini inceliyor olaca\u011f\u0131z.<\/p>\n<h3>Capacitor Nedir?<\/h3>\n<p>Capacitor; Angular ve React gibi web tabanl\u0131 uygulamalar\u0131 platforma \u00f6zg\u00fc(native) \u00f6zelliklere eri\u015febilen mobil uygulamalara d\u00f6n\u00fc\u015ft\u00fcrmemizi kolayla\u015ft\u0131ran ve kamera, konum vs. gibi ilgili cihaz\u0131n yerel \u00f6zelliklerinden kolayca eri\u015fim sunarak istifade etmemizi sa\u011flayan ve bunun yan\u0131nda TypeScript deste\u011fi ve esnek eklenti sistemi sayesinde biz geli\u015ftiricilere basit ve h\u0131zl\u0131 deneyimler sa\u011flayan bir k\u00fct\u00fcphanedir.<\/p>\n<p>Capacitor sayesinde ayn\u0131 kod taban\u0131n\u0131 kullanarak modern web uygulamalar\u0131n\u0131z\u0131n iOS ve Android s\u00fcr\u00fcmlerini zahmetsizce yay\u0131nlayabilir ve b\u00f6ylece platformlar aras\u0131 \u00e7al\u0131\u015fma(cross-platform) ihtiyac\u0131n\u0131 rahatl\u0131kla kar\u015f\u0131layabilirsiniz. Tabi bunu yaparkende bir yandan geli\u015ftirme a\u015famas\u0131nda olan uygulamalar\u0131n\u0131z\u0131n iOS ve Android s\u00fcr\u00fcmlerinin takibini canl\u0131 yeniden y\u00fckleme(live reload) \u00f6zelli\u011fi sayesinde h\u0131zl\u0131ca\u00a0ger\u00e7ekle\u015ftirebilirsiniz.<\/p>\n<p>Normal \u015fartlarda bir Angular ya da React uygulamas\u0131, yaln\u0131zca taray\u0131c\u0131 API&#8217;leriyle\u00a0s\u0131n\u0131rl\u0131 kapsama sahipken, Capacitor sayesinde kamera, dosya sistemi, bildirimler vs. gibi cihaza\/platforma \u00f6zg\u00fc API&#8217;leri de kullan\u0131labilmesine imkan tan\u0131makta\u00a0ve b\u00f6ylece uygulaman\u0131n ger\u00e7ek bir mobil uygulama gibi \u00e7al\u0131\u015fabilmesini sa\u011flamaktad\u0131r.<\/p>\n<p>K\u0131saca Capacitor; geli\u015ftirilen modern web uygulamalar\u0131n\u0131n ger\u00e7ek bir mobil uygulamas\u0131na d\u00f6n\u00fc\u015ft\u00fcr\u00fclmesini ve bunu yaparkende mobil cihazlar\u0131n \u00f6zelliklerinden etkin bir \u015fekilde istifade edilmesini sa\u011flayan bir k\u00fct\u00fcphanedir.<\/p>\n<h3>Capacitor Nas\u0131l Kullan\u0131l\u0131r?<\/h3>\n<p>Bir Angular uygulamas\u0131nda Capacitor&#8217;\u00fc\u00a0kullanabilmek i\u00e7in \u00f6ncelikle kurulumunun ger\u00e7ekle\u015ftirilmesi gerekmektedir. Bunun i\u00e7in <code style=\"color:purple;font-size:12px;\">npm i @capacitor\/core<\/code> ve <code style=\"color:purple;font-size:12px;\">npm i -D @capacitor\/cli<\/code> dependency&#8217;lerinin y\u00fcklenmesi ve ard\u0131ndan <code style=\"color:purple;font-size:12px;\">npx cap init<\/code> talimat\u0131 e\u015fli\u011finde Capasitor&#8217;\u00fcn ba\u015flat\u0131lmas\u0131 gerekmektedir. Tabi bu sonuncu i\u015flemi ger\u00e7ekle\u015ftirirken cli taraf\u0131ndan a\u015fa\u011f\u0131daki g\u00f6rselde oldu\u011fu gibi birka\u00e7 soruyla kar\u015f\u0131la\u015f\u0131lacakt\u0131r;<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme.png\" alt=\"Capacitor \u0130le Angular Uygulamalar\u0131n\u0131 Mobil Uygulamalara D\u00f6n\u00fc\u015ft\u00fcrme\" width=\"837\" height=\"327\" class=\"aligncenter size-full wp-image-27508\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme.png 837w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme-300x117.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme-768x300.png 768w\" sizes=\"auto, (max-width: 837px) 100vw, 837px\" \/><\/a>G\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere <em>Name<\/em> ve <em>Package ID<\/em> bilgileri istenilmektedir. <em>Name<\/em>, uygulaman\u0131n g\u00f6r\u00fcn\u00fcr ad\u0131 olarak d\u00fc\u015f\u00fcn\u00fclebilir. Misal olarak uygulaman\u0131z\u0131 Google Play yahut App Store gibi bir ma\u011fazada yay\u0131nlayacaksan\u0131z kullan\u0131c\u0131lar\u0131n g\u00f6rece\u011fi isme kar\u015f\u0131l\u0131k gelmektedir. <em>Package ID<\/em> ise uygulaman\u0131n Android ve iOS platformlar\u0131nda e\u015fsiz bir \u015fekilde tan\u0131mlanmas\u0131 i\u00e7in kullan\u0131lan bir kimliktir. Burada dikkat edilmesi gereken nokta; <em>Package ID<\/em> de\u011ferinin genellikle Java paket ismine benzer bir formatta yani ters domain ad\u0131 format\u0131nda yaz\u0131l\u0131yor olmas\u0131d\u0131r. <span style=\"font-size:12px;\">(bknz: <code>com.\u015firketadi.projeadi<\/code> gibi&#8230;)<\/span> Velhas\u0131l bizlerin uygun bir \u015fekilde bu de\u011ferleri vermemiz gerekmektedir.<\/p>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme-1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme-1.png\" alt=\"Capacitor \u0130le Angular Uygulamalar\u0131n\u0131 Mobil Uygulamalara D\u00f6n\u00fc\u015ft\u00fcrme\" width=\"190\" height=\"294\" class=\"aligncenter size-full wp-image-27510\" \/><\/a>E\u011fer ki Capasitor aya\u011fa kald\u0131r\u0131ld\u0131ysa uygulaman\u0131n ana dizininde i\u00e7eri\u011fi a\u015fa\u011f\u0131daki gibi olan <em style=\"color:green;font-size:12px;\">capacitor.config.ts<\/em> isminde bir temel yap\u0131land\u0131rma dosyas\u0131 olu\u015fturulacakt\u0131r.<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nimport type { CapacitorConfig } from '@capacitor\/cli';\r\n\r\nconst config: CapacitorConfig = {\r\n  appId: 'com.ngsoft.capacitorexample',\r\n  appName: 'capacitor-example',\r\n  webDir: 'dist'\r\n};\r\n\r\nexport default config;\r\n<\/pre>\n<\/div>\n<p>G\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere dosyan\u0131n i\u00e7erisinde biraz \u00f6nce girilen bilgiler tutulmakta ve bir yandan da platform ba\u011f\u0131ml\u0131l\u0131klar\u0131 tan\u0131mlanmaktad\u0131r.<\/p>\n<p>Evet, bu a\u015famadan sonra art\u0131k uygulaman\u0131n Android ve iOS s\u00fcr\u00fcmlerini olu\u015fturabiliriz. Bunun i\u00e7in \u00f6ncelikle <code style=\"color:purple;font-size:12px;\">npm i @capacitor\/android @capacitor\/ios<\/code> talimat\u0131 e\u015fli\u011finde ilgili platformlar\u0131n y\u00fcklenmesi gerekmektedir. Platformlar y\u00fcklenip, dependency&#8217;leri <em>package.json<\/em> dosyas\u0131na eklendikten sonra uygulaman\u0131n Android ve iOS projelerini olu\u015fturmak i\u00e7in <code style=\"color:purple;font-size:12px;\">npx cap add android<\/code> ve <code style=\"color:purple;font-size:12px;\">npx cap add ios<\/code> talimatlar\u0131n\u0131n \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131 gerekmektedir. Tabi bu talimatlar\u0131 \u00e7al\u0131\u015ft\u0131rmadan \u00f6nce uygulaman\u0131n <code style=\"color:purple;font-size:12px;\">ng build --configuration production<\/code> talimat\u0131 e\u015fli\u011finde derlenmesi gerekmektedir. \u00c7\u00fcnk\u00fc Capacitor, uygulaman\u0131n derlenmi\u015f halini kullanmaktad\u0131r.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme-4.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme-4.png\" alt=\"Capacitor \u0130le Angular Uygulamalar\u0131n\u0131 Mobil Uygulamalara D\u00f6n\u00fc\u015ft\u00fcrme\" width=\"170\" height=\"175\" class=\"aligncenter size-full wp-image-27514\" \/><\/a>Derleme neticesinde uygulaman\u0131n ana dizininde <code>dist\/<\/code> klas\u00f6r\u00fc i\u00e7erisinde \u00e7\u0131kt\u0131n\u0131n hali haz\u0131rda sunuldu\u011funu g\u00f6receksiniz. Burada yukar\u0131daki g\u00f6rselden de dikkat ederseniz uygulaman\u0131n \u00e7\u0131kt\u0131s\u0131 <code>dist\\capacitor-example\\browser<\/code> dizinine at\u0131lmaktad\u0131r. Ee haliyle biraz \u00f6nce olu\u015fturdu\u011fumuz <em style=\"color:green;font-size:12px;\">capacitor.config.ts<\/em> dosyas\u0131ndaki <code>webDir<\/code> alan\u0131n\u0131 buna g\u00f6re g\u00fcncellememiz gerekmektedir ki uygulaman\u0131n Android s\u00fcr\u00fcm\u00fc de do\u011fru kaynaktan beslenebilsin&#8230;<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nimport type { CapacitorConfig } from '@capacitor\/cli';\r\n\r\nconst config: CapacitorConfig = {\r\n  appId: 'com.ngsoft.capacitorexample',\r\n  appName: 'capacitor-example',\r\n  webDir: 'dist\/capacitor-example\/browser'\r\n};\r\n\r\nexport default config;\r\n<\/pre>\n<\/div>\n<p>Evet, art\u0131k uygulaman\u0131n Android ve iOS projelerinin olu\u015fturulmas\u0131 i\u00e7in yukar\u0131da bahsi ge\u00e7en gerekli talimat\u0131 verebiliriz;<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme-2.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme-2.png\" alt=\"Capacitor \u0130le Angular Uygulamalar\u0131n\u0131 Mobil Uygulamalara D\u00f6n\u00fc\u015ft\u00fcrme\" width=\"467\" height=\"237\" class=\"aligncenter size-full wp-image-27512\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme-2.png 467w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme-2-300x152.png 300w\" sizes=\"auto, (max-width: 467px) 100vw, 467px\" \/><\/a>Bu talimatlar neticesinde uygulaman\u0131n root dizininde <code>ios\/<\/code> ve <code>android\/<\/code> klas\u00f6rlerinin olu\u015fturuldu\u011fu g\u00f6r\u00fclecektir.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme-3.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme-3.png\" alt=\"Capacitor \u0130le Angular Uygulamalar\u0131n\u0131 Mobil Uygulamalara D\u00f6n\u00fc\u015ft\u00fcrme\" width=\"153\" height=\"162\" class=\"aligncenter size-full wp-image-27513\" \/><\/a><\/p>\n<blockquote><p><em style=\"color:green;\">iOS platformu i\u00e7in macOS bir cihaza ve Xcode&#8217;a ihtiya\u00e7 oldu\u011funu unutmay\u0131n\u0131z! Android platform i\u00e7in ise Windows, macOS yahut Linux i\u015fletim sistemlerinde g\u00f6n\u00fcl rahatl\u0131\u011f\u0131yla \u00e7al\u0131\u015fabilir, Android Studio IDE&#8217;si e\u015fli\u011finde de geli\u015ftirmelerinizi takip edebilirsiniz.<\/em><\/p><\/blockquote>\n<p>Bizler malumunuz Windows ortam\u0131nda \u00e7al\u0131\u015fma sergiledi\u011fimiz i\u00e7in ee haliyle Android s\u00fcr\u00fcm\u00fc \u00fczerine odakl\u0131 bir \u015fekilde i\u00e7eri\u011fimize devam ediyor olaca\u011f\u0131z. \u015eimdi, yapt\u0131\u011f\u0131m\u0131z bunca \u00e7al\u0131\u015fma neticesinde uygulaman\u0131n Android s\u00fcr\u00fcm\u00fcn\u00fc aya\u011fa kald\u0131rmaya \u00e7al\u0131\u015fal\u0131m.  Bu y\u00fczden  <code style=\"color:purple;font-size:12px;\">npx cap open android<\/code> talimat\u0131 e\u015fli\u011finde uygulaman\u0131n Android s\u00fcr\u00fcm\u00fcn\u00fc Android Studio IDE&#8217;sinde a\u00e7al\u0131m.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme.gif\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme.gif\" alt=\"Capacitor \u0130le Angular Uygulamalar\u0131n\u0131 Mobil Uygulamalara D\u00f6n\u00fc\u015ft\u00fcrme\" width=\"800\" height=\"431\" class=\"aligncenter size-full wp-image-27515\" \/><\/a>Yukar\u0131daki ekran al\u0131nt\u0131s\u0131ndan g\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere uygulamam\u0131z\u0131n Android s\u00fcr\u00fcm\u00fc ba\u015far\u0131yla aya\u011fa kald\u0131r\u0131lm\u0131\u015f vaziyettedir.<\/p>\n<h3>Uygulama Kodunun Mobil Projeyle Senkronize Edilmesi<\/h3>\n<p>Uygulaman\u0131n mobil versiyonunu olu\u015fturduktan sonra uygulamada meydana gelen yeniliklerin mobil versiyona anl\u0131k olarak yans\u0131t\u0131lmas\u0131 isteniyorsa e\u011fer i\u015fte burada uygulama kodu ile mobil versiyon aras\u0131nda bir senkronizasyon i\u015flemi yap\u0131lmas\u0131 gerekmektedir. Bunun i\u00e7in uygulamada de\u011fi\u015fiklikler yap\u0131ld\u0131ktan sonra \u00f6nce <code style=\"color:purple;font-size:12px;\">ng build<\/code> ile derlenmesi ve ard\u0131ndan <code style=\"color:purple;font-size:12px;\">npx cap sync<\/code> talimat\u0131n\u0131n verilmesi yeterli olacakt\u0131r. Bu talimat hem Android hem de iOS platformlar i\u00e7in t\u00fcm de\u011fi\u015fiklikleri senkronize edecektir. Ha yine de sizler tek bir platform \u00fczerinden senkronizasyon hedefliyorsan\u0131z bunun i\u00e7in de <code style=\"color:purple;font-size:12px;\">npx cap sync ios<\/code> &#8211; <code style=\"color:purple;font-size:12px;\">npx cap open ios<\/code> \u015feklinde talimatlar\u0131n\u0131z\u0131 platforma g\u00f6re \u00f6zelle\u015ftirebilirsiniz. Velhas\u0131l, yap\u0131lan bu senkronizasyon i\u015flemi neticesinde uygulaman\u0131n <em style=\"color:green;font-size:12px;\">capacitor.config.ts<\/em> dosyas\u0131nda belirtilen <code>webDir<\/code> alan\u0131ndaki dizinde olu\u015fturulan yenilikler mobil versiyonun ilgili dosyalar\u0131na aktar\u0131lacak ve varsa ekstradan dependency&#8217;ler de y\u00fcklenecektir.<\/p>\n<blockquote><p><em>\u00d6zellikle her major de\u011fi\u015fiklik sonras\u0131nda <code style=\"color:purple;font-size:12px;\">npx cap sync<\/code> talimat\u0131n\u0131n kullan\u0131lmas\u0131 gerekti\u011fini unutmay\u0131n\u0131z.<\/em><\/p><\/blockquote>\n<h3>Canl\u0131 Yeniden Y\u00fckleme (Live Reload) <\/h3>\n<p><em><strong>\u0130yi de hoca, Angular&#8217;da nas\u0131l ki <code>ng serve<\/code> ile anl\u0131k de\u011fi\u015fiklikleri taray\u0131c\u0131ya yans\u0131tabiliyoruz, bunu mobil versiyonlar da da yapam\u0131yor muyuz?<\/strong><\/em> diye uzun kar\u0131\u015f\u0131k bir soru akl\u0131n\u0131zda canlanm\u0131\u015f olabilir&#8230; El-cevap, elbette ki yapabiliyoruz. Hat\u0131rlarsan\u0131z i\u00e7eri\u011fimizin ilk sat\u0131rlar\u0131nda bahsetti\u011fimiz gibi Capacitor canl\u0131 yeniden y\u00fckleme(live reload) \u00f6zelli\u011fine sahiptir. Bu \u00f6zellikten istifade edebilmek i\u00e7in uygulaman\u0131n IPv4 adresinden aya\u011fa kald\u0131r\u0131lmas\u0131 gerekmektedir. Bunun i\u00e7in de <code style=\"color:purple;font-size:12px;\">ng serve --host 0.0.0.0<\/code> \u015feklinde talimat\u0131n verilmesi gerekmektedir.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme-5.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme-5.png\" alt=\"Capacitor \u0130le Angular Uygulamalar\u0131n\u0131 Mobil Uygulamalara D\u00f6n\u00fc\u015ft\u00fcrme\" width=\"263\" height=\"60\" class=\"aligncenter size-full wp-image-27517\" \/><\/a>Bu talimat neticesinde uygulama yukar\u0131daki g\u00f6rselden de anla\u015f\u0131laca\u011f\u0131 \u00fczere IPv4 adresi \u00fczerinden de host edilecektir. <em><strong>Bu yapt\u0131\u011f\u0131m\u0131z\u0131n konuyla ne alakas\u0131 var la hoca?<\/strong><\/em> diye sordu\u011funuzu duyar gibiyim&#8230; Normal \u015fartlarda, <code style=\"color:purple;font-size:12px;\">ng serve<\/code> talimat\u0131 <code>localhost<\/code> \u00fczerinden yani sadece geli\u015ftirme yap\u0131lan bilgisayar \u00fczerinden eri\u015filebilecek \u015fekilde uygulamay\u0131 aya\u011fa kald\u0131racakt\u0131r. Ancak telefon ya da tablet gibi fiziksel bir cihaz \u00fczerinden uygulama test etmek isteniyorsa bu taktirde uygulaman\u0131n ilgili cihaz taraf\u0131ndan eri\u015filebilir olmas\u0131 gerekmektedir. \u0130\u015fte tamda bu noktada uygulaman\u0131n t\u00fcm a\u011f aray\u00fczlerinden gelen istekleri dinlemesini sa\u011flayacak olan <code>--host 0.0.0.0<\/code> parametresi kullan\u0131l\u0131r.<\/p>\n<p>Uygulamay\u0131 belirtilen \u015fekilde serve ettikten sonra <em style=\"color:green;font-size:12px;\">capacitor.config.ts<\/em> dosyas\u0131nda a\u015fa\u011f\u0131daki gibi IPv4 adresinin bildirilmesi gerekmektedir;<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nimport type { CapacitorConfig } from '@capacitor\/cli';\r\n\r\nconst config: CapacitorConfig = {\r\n  appId: 'com.ngsoft.capacitorexample',\r\n  appName: 'capacitor-example',\r\n  webDir: 'dist\/capacitor-example\/browser',\r\n  server: {\r\n    url: &quot;http:\/\/192.168.0.26:4200\/&quot;,\r\n    cleartext: true\r\n  }\r\n};\r\n\r\nexport default config;\r\n<\/pre>\n<\/div>\n<p>Bu yap\u0131land\u0131rmay\u0131 ger\u00e7ekle\u015ftirdikten sonra da <code style=\"color:purple;font-size:12px;\">npx cap sync<\/code> talimat\u0131yla senkronizasyonun sa\u011flan\u0131p, bu yenili\u011fin mobil versiyonlara da aktar\u0131lmas\u0131 sa\u011flanmal\u0131d\u0131r. Vee b\u00f6ylece art\u0131k uygulamada yapt\u0131\u011f\u0131m\u0131z herhangi bir de\u011fi\u015fikli\u011fin anl\u0131k olarak mobil versiyonlara da yans\u0131d\u0131\u011f\u0131n\u0131 g\u00f6zlemleyebiliriz.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme-1.gif\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme-1.gif\" alt=\"Capacitor \u0130le Angular Uygulamalar\u0131n\u0131 Mobil Uygulamalara D\u00f6n\u00fc\u015ft\u00fcrme\" width=\"800\" height=\"431\" class=\"aligncenter size-full wp-image-27518\" \/><\/a><\/p>\n<blockquote><p><em>Live reload \u00f6zelli\u011fi yaln\u0131zca geli\u015ftirme s\u0131ras\u0131nda kullan\u0131lmas\u0131 gereken bir ara\u00e7 oldu\u011fundan dolay\u0131 mobil uygulamay\u0131 yay\u0131nlarken kapat\u0131lmas\u0131 gerekmektedir.<\/em><\/p><\/blockquote>\n<h3>Cihaz Kameras\u0131na, Konum Bilgisine vs. Eri\u015fim<\/h3>\n<p>Capacitor ile mobil cihaz\u0131n bir\u00e7ok \u00f6zelli\u011fine eri\u015fim g\u00f6sterilip, kullan\u0131labilmektedir. Bizler burada kamera ve konum bilgisi \u00fczerinden \u00f6rneklendirme yapaca\u011f\u0131z. E\u011fer ki daha fazla mobil \u00f6zelli\u011fe eri\u015fim ihtiyac\u0131 s\u00f6z konusuysa Capacitor&#8217;\u00fcn resmi dok\u00fcmantasyonu \u00fczerinden <span style=\"font-size:12px;\">(bknz: <a href=\"https:\/\/capacitorjs.com\/docs\/apis\" target=\"_blank\">official plugins<\/a>)<\/span> gerekli incelemelerde bulunabilirsiniz.<\/p>\n<ul>\n<li><strong>Kamera Eri\u015fimi<\/strong><br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme-6.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme-6-150x150.png\" alt=\"Capacitor \u0130le Angular Uygulamalar\u0131n\u0131 Mobil Uygulamalara D\u00f6n\u00fc\u015ft\u00fcrme\" width=\"150\" height=\"150\" class=\"alignleft size-thumbnail wp-image-27519\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme-6-150x150.png 150w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme-6-80x80.png 80w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a>Angular uygulamas\u0131 \u00fczerinden Capacitor arac\u0131l\u0131\u011f\u0131yla kameraya eri\u015fim g\u00f6sterebilmek i\u00e7in \u00f6ncelikle <code style=\"color:purple;font-size:12px;\">npm install @capacitor\/camera<\/code> paketinin uygulamaya y\u00fcklenmesi gerekmektedir. Ard\u0131ndan kamera eri\u015fimine dair kullan\u0131c\u0131 taraf\u0131ndan telefon arac\u0131l\u0131\u011f\u0131yla gerekli izinlerin verilebilmesi i\u00e7in a\u015fa\u011f\u0131daki yap\u0131land\u0131rmalar\u0131n <code>AndroidManifest.xml<\/code> dosyas\u0131na eklenmesi gerekmektedir.<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n&lt;uses-permission android:name=&quot;android.permission.READ_EXTERNAL_STORAGE&quot;\/&gt;\r\n&lt;uses-permission android:name=&quot;android.permission.WRITE_EXTERNAL_STORAGE&quot; \/&gt;\r\n<\/pre>\n<\/div>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme-7.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme-7.png\" alt=\"Capacitor \u0130le Angular Uygulamalar\u0131n\u0131 Mobil Uygulamalara D\u00f6n\u00fc\u015ft\u00fcrme\" width=\"919\" height=\"437\" class=\"aligncenter size-full wp-image-27520\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme-7.png 919w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme-7-300x143.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme-7-768x365.png 768w\" sizes=\"auto, (max-width: 919px) 100vw, 919px\" \/><\/a>Bu izinler anla\u015f\u0131laca\u011f\u0131 \u00fczere foto\u011fraf dosyalar\u0131n\u0131 okumak ve kaydedebilmek i\u00e7in storage ile ilgili izinlerdir.<\/p>\n<p>\u0130zin i\u015flemlerini tamamlad\u0131ktan sonra art\u0131k kamerayla ilgili \u00e7al\u0131\u015fmalara gelebiliriz. Bunun i\u00e7in a\u015fa\u011f\u0131daki gibi bir \u00e7al\u0131\u015fma yap\u0131labilir;<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n.\r\n.\r\n.\r\n      &lt;p&gt;\r\n        &lt;button (click)=&quot;fotografCek()&quot;&gt;Foto\u011fraf \u00c7ek&lt;\/button&gt;\r\n        &lt;br&gt;\r\n        &lt;img style=&quot;width: 343px; height: 330px;&quot; &#x5B;src]=&quot;photo()&quot;&gt;\r\n      &lt;\/p&gt;\r\n.\r\n.\r\n.\r\n<\/pre>\n<\/div>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n.\r\n.\r\n.\r\n  photo = signal&lt;string | undefined&gt;(&quot;&quot;);\r\n  async fotografCek() {\r\n    const image = await Camera.getPhoto({\r\n      quality: 90,\r\n      allowEditing: false,\r\n      resultType: CameraResultType.Base64\r\n    });\r\n\r\n    this.photo.set(`data:image\/jpeg;base64,${image.base64String}`);\r\n  }\r\n.\r\n.\r\n.\r\n<\/pre>\n<\/div>\n<p>Yap\u0131lan t\u00fcm bu \u00e7al\u0131\u015fmalardan sonra <code style=\"color:purple;font-size:12px;\">npx cap sync<\/code> talimat\u0131yla uygulama senkronize edilmelidir. Ard\u0131ndan Android Studio \u00fczerinden yap\u0131lan \u00e7al\u0131\u015fmalar\u0131 test edebiliriz;<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme-2.gif\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme-2.gif\" alt=\"Capacitor \u0130le Angular Uygulamalar\u0131n\u0131 Mobil Uygulamalara D\u00f6n\u00fc\u015ft\u00fcrme\" width=\"404\" height=\"958\" class=\"aligncenter size-full wp-image-27521\" \/><\/a>Yukar\u0131daki ekran al\u0131nt\u0131s\u0131ndan da g\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere Android Studio \u00fczerinden kameray\u0131 test ederken bir kamera sim\u00fclasyonu \u00fczerinden test ger\u00e7ekle\u015ftirilebilmektedir. Uygulamay\u0131 yay\u0131nlay\u0131p, telefon \u00fczerinden \u00e7al\u0131\u015fma sergiledi\u011fimizde ise ger\u00e7ek kameran\u0131n kullan\u0131ld\u0131\u011f\u0131n\u0131 g\u00f6rece\u011fiz.<\/p>\n<p>\u015eimdi yapt\u0131\u011f\u0131m\u0131z bu \u00e7al\u0131\u015fma uygulaman\u0131n hem web hem de mobil versiyonlar\u0131nda varl\u0131k g\u00f6stermektedir. Halbuki kamerayla ilgili bu \u00e7al\u0131\u015fmalar\u0131 bizler sadece mobil versiyonunda kullanmak isteyece\u011fiz. \u0130\u015fte b\u00f6yle bir durumda tek yap\u0131lmas\u0131 gereken a\u015fa\u011f\u0131daki gibi k\u00fc\u00e7\u00fck bir css dokunu\u015fudur.<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n.\r\n.\r\n.\r\n      &lt;p class=&quot;mobil-goster&quot;&gt;\r\n        &lt;button (click)=&quot;fotografCek()&quot;&gt;Foto\u011fraf \u00c7ek&lt;\/button&gt;\r\n        &lt;br&gt;\r\n        &lt;img style=&quot;width: 343px; height: 330px;&quot; &#x5B;src]=&quot;photo()&quot;&gt;\r\n      &lt;\/p&gt;\r\n.\r\n.\r\n.\r\n<\/pre>\n<\/div>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n.mobil-goster {\r\n    display: none;\r\n}\r\n\r\n@media(max-width:760px) {\r\n    .mobil-goster {\r\n        display: block;\r\n    }\r\n}\r\n<\/pre>\n<\/div>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme-3.gif\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme-3.gif\" alt=\"Capacitor \u0130le Angular Uygulamalar\u0131n\u0131 Mobil Uygulamalara D\u00f6n\u00fc\u015ft\u00fcrme\" width=\"660\" height=\"566\" class=\"aligncenter size-full wp-image-27522\" \/><\/a>Bak\u0131n, g\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere mobil versiyona ge\u00e7ildi\u011fi taktirde kamera i\u015flevleri devreye girmektedir.\n<\/li>\n<li><strong>Konum Eri\u015fimi<\/strong><br \/>\nTelefonun konum eri\u015fimi i\u00e7in ise <code style=\"color:purple;font-size:12px;\">npm install @capacitor\/geolocation<\/code> paketinden istifade edilecektir. Paketi y\u00fckledikten sonra <code>AndroidManifest.xml<\/code> dosyas\u0131nda a\u015fa\u011f\u0131daki izinlerin yap\u0131land\u0131r\u0131lmas\u0131 gerekmektedir.<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n&lt;uses-permission android:name=&quot;android.permission.ACCESS_COARSE_LOCATION&quot; \/&gt;\r\n&lt;uses-permission android:name=&quot;android.permission.ACCESS_FINE_LOCATION&quot; \/&gt;\r\n&lt;uses-feature android:name=&quot;android.hardware.location.gps&quot; \/&gt;\r\n<\/pre>\n<\/div>\n<p>Bu i\u015flemden sonra mevcut konumla ilgili bilgiler a\u015fa\u011f\u0131daki gibi \u00e7ekilebilir;<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n  async mevcutKonum() {\r\n    const position = await Geolocation.getCurrentPosition();\r\n\r\n    alert(`Enlem : ${position.coords.latitude}\\nBoylam : ${position.coords.longitude}`)\r\n  }\r\n<\/pre>\n<\/div>\n<\/li>\n<\/ul>\n<h3>Ionic Component&#8217;lerinden \u0130stifade Etme<\/h3>\n<p>Ionic; HTML, CSS ve JavaScript gibi web teknolojilerini kullanarak mobil uygulama geli\u015ftirme deneyimini kolayla\u015ft\u0131ran bir framework&#8217;d\u00fcr. Ve bizler, Angular uygulamalar\u0131nda Ionic component&#8217;lerini kullanarak mobil cihazlara has tasarlanm\u0131\u015f olan ara\u00e7lardan istifade edebilmekte ve b\u00f6ylece kullan\u0131c\u0131 deneyimi a\u00e7\u0131s\u0131ndan daha elveri\u015fli \u00e7al\u0131\u015fmalar ger\u00e7ekle\u015ftirebilmekteyiz.<\/p>\n<p>Bunun i\u00e7in \u00f6ncelikle <code style=\"color:purple;font-size:12px;\">npm install @ionic\/angular<\/code> talimat\u0131 e\u015fli\u011finde Ionic&#8217;in uygulamaya y\u00fcklenmesi gerekmektedir. Ard\u0131ndan istenilen component&#8217;e dair HTML ve TypeScript geli\u015ftirmesi ger\u00e7ekle\u015ftirildikten sonra uygulamay\u0131 derleyip, senkronize edebilirsiniz.<\/p>\n<p>Misal olarak a\u015fa\u011f\u0131da <code>ion-select<\/code> component&#8217;inin \u00e7al\u0131\u015fmas\u0131n\u0131 inceleyebilirsiniz;<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        &lt;label&gt;Ionic&lt;\/label&gt;\r\n        &lt;ion-list&gt;\r\n          &lt;ion-item&gt;\r\n            &lt;ion-select label=&quot;Default label&quot; placeholder=&quot;Favorite Fruit&quot;&gt;\r\n              &lt;ion-select-option value=&quot;apple&quot;&gt;Apple&lt;\/ion-select-option&gt;\r\n              &lt;ion-select-option value=&quot;banana&quot;&gt;Banana&lt;\/ion-select-option&gt;\r\n              &lt;ion-select-option value=&quot;orange&quot;&gt;Orange&lt;\/ion-select-option&gt;\r\n            &lt;\/ion-select&gt;\r\n          &lt;\/ion-item&gt;\r\n\r\n          &lt;ion-item&gt;\r\n            &lt;ion-select label=&quot;Fixed label&quot; label-placement=&quot;fixed&quot; placeholder=&quot;Favorite fruit&quot;&gt;\r\n              &lt;ion-select-option value=&quot;apple&quot;&gt;Apple&lt;\/ion-select-option&gt;\r\n              &lt;ion-select-option value=&quot;banana&quot;&gt;Banana&lt;\/ion-select-option&gt;\r\n              &lt;ion-select-option value=&quot;orange&quot;&gt;Orange&lt;\/ion-select-option&gt;\r\n            &lt;\/ion-select&gt;\r\n          &lt;\/ion-item&gt;\r\n\r\n          &lt;ion-item&gt;\r\n            &lt;ion-select label=&quot;Stacked label&quot; label-placement=&quot;stacked&quot;&gt;\r\n              &lt;ion-select-option value=&quot;apple&quot;&gt;Apple&lt;\/ion-select-option&gt;\r\n              &lt;ion-select-option value=&quot;banana&quot;&gt;Banana&lt;\/ion-select-option&gt;\r\n              &lt;ion-select-option value=&quot;orange&quot;&gt;Orange&lt;\/ion-select-option&gt;\r\n            &lt;\/ion-select&gt;\r\n          &lt;\/ion-item&gt;\r\n\r\n          &lt;ion-item&gt;\r\n            &lt;ion-select label=&quot;Floating label&quot; label-placement=&quot;floating&quot;&gt;\r\n              &lt;ion-select-option value=&quot;apple&quot;&gt;Apple&lt;\/ion-select-option&gt;\r\n              &lt;ion-select-option value=&quot;banana&quot;&gt;Banana&lt;\/ion-select-option&gt;\r\n              &lt;ion-select-option value=&quot;orange&quot;&gt;Orange&lt;\/ion-select-option&gt;\r\n            &lt;\/ion-select&gt;\r\n          &lt;\/ion-item&gt;\r\n        &lt;\/ion-list&gt;\r\n<\/pre>\n<\/div>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n.\r\n.\r\n.\r\nimport { IonItem, IonList, IonSelect, IonSelectOption } from '@ionic\/angular\/standalone';\r\n\r\n@Component({\r\n  selector: 'app-root',\r\n  standalone: true,\r\n  imports: &#x5B;RouterOutlet, IonItem, IonList, IonSelect, IonSelectOption],\r\n  templateUrl: '.\/app.component.html',\r\n  styleUrl: '.\/app.component.scss'\r\n})\r\nexport class AppComponent {\r\n  .\r\n  .\r\n  .\r\n}\r\n<\/pre>\n<\/div>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n@import '@ionic\/angular\/css\/ionic.bundle.css';\r\n<\/pre>\n<\/div>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme-8.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme-8.png\" alt=\"Capacitor \u0130le Angular Uygulamalar\u0131n\u0131 Mobil Uygulamalara D\u00f6n\u00fc\u015ft\u00fcrme\" width=\"314\" height=\"524\" class=\"aligncenter size-full wp-image-27527\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme-8.png 314w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/01\/Capacitor-Ile-Angular-Uygulamalarini-Mobil-Uygulamalara-Donusturme-8-180x300.png 180w\" sizes=\"auto, (max-width: 314px) 100vw, 314px\" \/><\/a>Nihai olarak;<br \/>\nB\u00f6ylece Angular mimarisiyle geli\u015ftirilen uygulamalar\u0131n olduk\u00e7a d\u00fc\u015f\u00fck maliyetler e\u015fli\u011finde, rahatl\u0131kla ve daha da \u00f6nemlisi h\u0131zl\u0131ca Android ve iOS s\u00fcr\u00fcmlerini \u00e7\u0131karabilir ve en k\u0131sa zamanda ma\u011fazalarda yay\u0131nda bulunarak, ticari faaliyetlerinizde mobil kitleyi de hesaba katabilirsiniz.<\/p>\n<p>\u0130lgilenenlerin faydalanmas\u0131 dile\u011fiyle&#8230;<br \/>\nSonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar&#8230;<\/p>\n<p>Not : \u00d6rnek \u00e7al\u0131\u015fmaya a\u015fa\u011f\u0131daki github adresinden eri\u015febilirsiniz.<br \/>\n<a href=\"https:\/\/github.com\/gncyyldz\/CapacitorExample\" target=\"_blank\">https:\/\/github.com\/gncyyldz\/CapacitorExample<\/a><\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Merhaba, Bu i\u00e7eri\u011fimizde Ionic ekibi taraf\u0131ndan geli\u015ftirilmi\u015f olan ve Angular, React, Vue.js vs. gibi web uygulamalar\u0131n\u0131n mobil platformlarda \u00e7al\u0131\u015ft\u0131r\u0131labilmesini sa\u011flayan bir k\u00f6pr\u00fc(bridge) ve runtime \u00e7\u00f6z\u00fcm\u00fc olan Capacitor teknolojisini inceliyor olaca\u011f\u0131z. Capacitor Nedir? Capacitor; Angular&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":27528,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[626,2420,18],"tags":[5210,2156,5212,5209,5214,5215,5211,5213],"class_list":["post-27504","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-akilli-telefonlar","category-angular","category-javascript","tag-android","tag-angular","tag-canli-yeniden-yukleme","tag-capacitor","tag-ionic","tag-ionic-components","tag-ios","tag-live-reload"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/27504","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=27504"}],"version-history":[{"count":10,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/27504\/revisions"}],"predecessor-version":[{"id":27529,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/27504\/revisions\/27529"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/27528"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=27504"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=27504"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=27504"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}