{"id":903,"date":"2015-01-02T01:45:37","date_gmt":"2015-01-01T23:45:37","guid":{"rendered":"http:\/\/metehantoksoy.com\/?p=903"},"modified":"2015-01-02T01:45:37","modified_gmt":"2015-01-01T23:45:37","slug":"android-android-mimarisi-activity-ve-fragment","status":"publish","type":"post","link":"https:\/\/metehantoksoy.com\/?p=903","title":{"rendered":"Android &#8211; Android Mimarisi, Activity ve Fragment!"},"content":{"rendered":"<p><a href=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2015\/01\/android-code.png\"><img loading=\"lazy\" decoding=\"async\" class=\" size-full wp-image-925 aligncenter\" src=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2015\/01\/android-code.png\" alt=\"android-code\" width=\"640\" height=\"310\" srcset=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2015\/01\/android-code.png 640w, https:\/\/metehantoksoy.com\/wp-content\/uploads\/2015\/01\/android-code-300x145.png 300w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/a><\/p>\n<p>Android&#8217;e kod yazmam\u0131z i\u00e7in gerekli Android Studio ve gerekli programlar\u0131n nas\u0131l y\u00fcklenece\u011finden <a title=\"Android\u2019e \u0130lk Selam!\" href=\"https:\/\/metehantoksoy.com\/2014\/11\/27\/androide-ilk-selam\/\" target=\"_blank\">bu yaz\u0131m\u0131zda<\/a>, Android Studio&#8217;nun aray\u00fcz\u00fcnden <a title=\"Andro\u0131d Stud\u0131o da Nedir?\" href=\"https:\/\/metehantoksoy.com\/2014\/11\/27\/android-studio-da-nedir\/\" target=\"_blank\">bu yaz\u0131m\u0131zda<\/a> bahsetmi\u015ftik.<\/p>\n<p>Bu yaz\u0131m\u0131zdan itibaren\u00a0art\u0131k ellerimizi Android kodlar\u0131n\u0131\u00a0yava\u015f yava\u015f bula\u015ft\u0131rmaya ba\u015flayaca\u011f\u0131z. Fakat ondan \u00f6nce bilmemiz gereken \u015fey android mimarisi. Yani Android platformunda kod yazmaya ge\u00e7meden \u00f6nce \u00e7ok k\u0131sa Android Mimarisi \u00fczerinde duraca\u011f\u0131z.<\/p>\n<p><!--more--><\/p>\n<h2 style=\"text-align:center;\"><span style=\"color:#003366;\"><strong>Android Mimarisi\u00a0<\/strong><\/span><\/h2>\n<figure style=\"width: 558px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.tutorialspoint.com\/android\/images\/android_architecture.jpg\" alt=\"Android Architecture\" width=\"558\" height=\"402\" \/><figcaption class=\"wp-caption-text\">Bu resim http:\/\/www.tutorialspoint.com\/android\/android_architecture.htm adresinden al\u0131nm\u0131\u015ft\u0131r.<\/figcaption><\/figure>\n<p>Android Mimarisi 5 katmandan olu\u015fur. Bunlardan ilki ve en alt katman\u0131 <strong>Linux Kernel<\/strong> (<em>Linux \u00c7ekirdek<\/em>) katman\u0131d\u0131r. Bu katman ayn\u0131 zamanda yaz\u0131l\u0131m ile donan\u0131m\u0131n birle\u015fti\u011fi yerdir.\u00a0Onun \u00fczerinde <strong>Libraries\u00a0<\/strong>(<em>K\u00fct\u00fcphaneler<\/em>) bulunur. \u00a0<strong>Android Runtime<\/strong> (<em>Android \u00c7al\u0131\u015fma Zaman\u0131<\/em>) katman\u0131nda ise \u00e7ekirdek k\u00fct\u00fcphaneler yani sistemin kerneline ait k\u00fct\u00fcphaneler ve <strong>Dalvik Virtual Machine<\/strong> (<em>Dalvik Sanal Makinesi<\/em>) bulunur. <strong>Dalvik Sanal Makinesi<\/strong>, <strong>JWM<\/strong> ile yakla\u015f\u0131k olarak ayn\u0131 mant\u0131\u011fa sahiptir. <strong>Dalvik Virtual Machine<\/strong> hakk\u0131nda daha detayl\u0131 bilgiye <a title=\"Dalvik - Wikipedia\" href=\"http:\/\/en.wikipedia.org\/wiki\/Dalvik_(software)\" target=\"_blank\">buraya <\/a>t\u0131klayarak ula\u015fabilirsiniz , <strong>Application Framework<\/strong> (<em>Uygulama \u00c7at\u0131s\u0131<\/em>) katman\u0131nda bir nevi sistem servisleri bulunur. <strong>Location Manager<\/strong>, <strong>Notification Manager<\/strong> vb.ve en \u00fcst katmanda da <strong>Applcations<\/strong> (<em>Uygulamalar<\/em>) bulunur. Bu katmanda hem sistem uygulamalar\u0131 (<em>Rehber, Launcher, Arama vb.<\/em>) hem de kullan\u0131c\u0131 uygulamalar\u0131 bulunur.<\/p>\n<h2 style=\"text-align:center;\"><strong><span style=\"color:#003366;\">Android Programlama &#8211; Activity ve Fragment!<\/span><\/strong><\/h2>\n<p>Bu giri\u015ften sonra Android Programlamaya yava\u015f yava\u015f ba\u015flayal\u0131m. Yaz\u0131n\u0131n buras\u0131ndan sonras\u0131na ait ekran g\u00f6r\u00fcnt\u00fcleri ve baz\u0131 detaylar <strong>Android Studio<\/strong> \u00fczerinden\u00a0anlat\u0131lacakt\u0131r. Android Studio&#8217;yu indirmek i\u00e7in bu yaz\u0131n\u0131n ba\u015f\u0131nda verdi\u011fim ilgili yaz\u0131lar\u0131m\u0131 okuyabilirsiniz.<\/p>\n<p>Android Studio&#8217;yu a\u00e7\u0131p yeni bir proje olu\u015fturuyoruz. Bu i\u015flemi bir \u00f6nceki yaz\u0131da anlatt\u0131\u011f\u0131m i\u00e7in atl\u0131yorum. Projeyi olu\u015ftururken <strong>3.<\/strong> <strong>Ekranda<\/strong> bizden <strong>Android API<\/strong>\u00a0<strong>Level<\/strong> (<em>versiyon<\/em>)\u00a0se\u00e7memizi isteyecektir. A\u015fa\u011f\u0131dakine benzer bir ekran ile kar\u015f\u0131la\u015facaks\u0131n\u0131z.<\/p>\n<p><a href=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2014\/11\/android-studio-31.png\"><img loading=\"lazy\" decoding=\"async\" class=\" size-large wp-image-841 aligncenter\" src=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2014\/11\/android-studio-31.png?w=660\" alt=\"android-studio-3\" width=\"660\" height=\"397\" srcset=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2014\/11\/android-studio-31.png 1080w, https:\/\/metehantoksoy.com\/wp-content\/uploads\/2014\/11\/android-studio-31-300x181.png 300w, https:\/\/metehantoksoy.com\/wp-content\/uploads\/2014\/11\/android-studio-31-1024x616.png 1024w, https:\/\/metehantoksoy.com\/wp-content\/uploads\/2014\/11\/android-studio-31-768x462.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/a><\/p>\n<p>Burada <strong>API Level<\/strong> bizim uygulamay\u0131 yazmak istedi\u011fimiz <em><strong>minimum API versiyonudur<\/strong><\/em>. Her API versiyonun farkl\u0131l\u0131klar\u0131 mevcuttur. Bu farkl\u0131l\u0131klar i\u015fletim sisteminin servis \u00e7a\u011fr\u0131lar\u0131ndan ekrandaki bir TextView&#8217;in i\u00e7indeki metni de\u011fi\u015ftirmeye kadar farkl\u0131l\u0131k g\u00f6sterir. Bir ipucu olarak API versiyonunu <em>minimum tutmak<\/em> uygulaman\u0131z\u0131 destekleyen cihaz kapsam\u0131n\u0131 <em>art\u0131racakt\u0131r<\/em>. Benim \u00f6nerim <strong>Android 4.0<\/strong> yani <strong>API 14<\/strong> ile geli\u015ftirmenizdir. Zira hem <em>g\u00fcncel API<\/em> kullanm\u0131\u015f hem de <em>kapsama oran\u0131n\u0131z\u0131 artacakt\u0131r<\/em>. Android API versiyonlar\u0131 ile ilgili bilgiye ula\u015fmak i\u00e7in <a title=\"Android Uses SDK\" href=\"http:\/\/developer.android.com\/guide\/topics\/manifest\/uses-sdk-element.html\" target=\"_blank\">buraya <\/a>t\u0131klay\u0131n.<\/p>\n<p><a href=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2014\/11\/android-studio-41.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-842\" src=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2014\/11\/android-studio-41.png?w=660\" alt=\"android-studio-4\" width=\"660\" height=\"397\" srcset=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2014\/11\/android-studio-41.png 1080w, https:\/\/metehantoksoy.com\/wp-content\/uploads\/2014\/11\/android-studio-41-300x181.png 300w, https:\/\/metehantoksoy.com\/wp-content\/uploads\/2014\/11\/android-studio-41-1024x616.png 1024w, https:\/\/metehantoksoy.com\/wp-content\/uploads\/2014\/11\/android-studio-41-768x462.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/a><\/p>\n<p>Bir sonraki ekranda <strong>Activity<\/strong> eklemek isteyip istemedi\u011fimizi soruyor. Burada bu yaz\u0131m\u0131z\u0131n ana konusu olan genel tan\u0131mlar k\u0131sm\u0131na geldik. 2 adet genel tan\u0131m\u0131m\u0131z mevcut. Biri <strong>Activity<\/strong>, di\u011feri de <strong>Fragment<\/strong> kavramlar\u0131.<\/p>\n<h3 style=\"text-align:center;\"><span style=\"color:#003366;\"><strong>Acivity Nedir?\u00a0<\/strong><\/span><\/h3>\n<p><strong>Acitivy<\/strong>, uygulam\u0131z\u0131n \u00f6n planda g\u00f6r\u00fcnen ve arka planda \u00e7al\u0131\u015fan b\u00f6l\u00fcm\u00fcd\u00fcr. Acivity <strong>XML<\/strong> format\u0131nda bir <strong>layout<\/strong> dosyas\u0131 ve <strong>Java<\/strong> dilinde bir <strong>class<\/strong>&#8216;dan meydana gelir. \u00a0Her bir Acvitiy&#8217;nin kendine ait bir <strong>ya\u015fam d\u00f6ng\u00fcs\u00fc<\/strong> vard\u0131r. Bu\u00a0ya\u015fam d\u00f6ng\u00fcs\u00fcn\u00fc ve \u00e7al\u0131\u015fma s\u0131ras\u0131nda Activity&#8217;i\u00a0sizlere a\u00e7\u0131kl\u0131yor olaca\u011f\u0131m.<\/p>\n<h4><span style=\"color:#008000;\"><strong>Activity&#8217;nin Ya\u015fam D\u00f6ng\u00fcs\u00fc (Activity Lifecycle)\u00a0<\/strong><\/span><\/h4>\n<p><a href=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2015\/01\/activity_lifecycle_tr.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-906\" src=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2015\/01\/activity_lifecycle_tr.png?w=660\" alt=\"Activity_LifeCycle_TR\" width=\"660\" height=\"662\" srcset=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2015\/01\/activity_lifecycle_tr.png 865w, https:\/\/metehantoksoy.com\/wp-content\/uploads\/2015\/01\/activity_lifecycle_tr-300x300.png 300w, https:\/\/metehantoksoy.com\/wp-content\/uploads\/2015\/01\/activity_lifecycle_tr-150x150.png 150w, https:\/\/metehantoksoy.com\/wp-content\/uploads\/2015\/01\/activity_lifecycle_tr-768x771.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/a><\/p>\n<p>Yukar\u0131daki resmi k\u0131saca \u00f6zetlersek:<\/p>\n<p>Bir <strong>Activity<\/strong> \u00c7al\u0131\u015fmaya ba\u015flad\u0131\u011f\u0131 zaman s\u0131ras\u0131yla <strong>Activity class<\/strong>&#8216;\u0131na ait <em><strong>onCreate()<\/strong><\/em>, <em><strong>onStart()<\/strong> <\/em>ve <em><strong>onResume()<\/strong> <\/em>methodlar\u0131 \u00e7al\u0131\u015ft\u0131rarak \u00e7al\u0131\u015fmaya ba\u015flar. Kapat\u0131ld\u0131\u011f\u0131nda ise s\u0131ras\u0131yla <em><strong>onPause()<\/strong><\/em>, <em><strong>onStop()<\/strong> <\/em>ve bellekten silindi\u011fi method\u00a0olan <em><strong>onDestroy()<\/strong><\/em> methodlar\u0131 \u00e7al\u0131\u015f\u0131r.<\/p>\n<p>Bu fonksiyonlar\u0131 normal zamanda g\u00f6rmemize veya <strong>Override<\/strong> edip i\u00e7ini doldurmam\u0131za gerek yok zira biz dokunmad\u0131\u011f\u0131m\u0131zda kendi i\u015flevini yerine getirmektedir. Fakat ekrandan bir TextView bulup onun fontunu veya yaz\u0131s\u0131n\u0131 de\u011fi\u015ftireceksek yani k\u0131sacas\u0131 layout&#8217;da bulunan bile\u015fenlere ula\u015facakken bunlar\u0131 bile\u015fenler View&#8217;a yani ekranda g\u00f6sterime girdikten sonra yapmam\u0131z hata almam\u0131z\u0131 engelleyecekti. Bunun da yeri layout dosyas\u0131ndaki bile\u015fenler \u00e7al\u0131\u015fmaya onCreate() methodunun i\u00e7indeki <strong>setContentView()<\/strong>\u00a0method \u00e7a\u011fr\u0131s\u0131ndan sonras\u0131d\u0131r.<\/p>\n<h3 style=\"text-align:center;\"><span style=\"color:#003366;\"><strong>Fragment Nedir?\u00a0<\/strong><\/span><\/h3>\n<p><strong>Fragment<\/strong> class&#8217;\u0131 ve kavram\u0131 <strong>Android API 11<\/strong> ile gelmi\u015ftir. <strong>Fragment<\/strong>&#8216;lar da ayn\u0131 <strong>Activityler<\/strong> gibi bir <strong>class<\/strong> ve bir <strong>layout<\/strong> dosyas\u0131ndan olu\u015furlar. En \u00f6nemli fark\u0131 activity&#8217;lere g\u00f6re <em>daha h\u0131zl\u0131 ve performansl\u0131<\/em> olmalar\u0131. Ayn\u0131 ekranda iki farkl\u0131 Activity \u00e7al\u0131\u015famazken iki veya daha fazla farkl\u0131 fragment \u00e7al\u0131\u015fabilmektedir. Fakat bir Fragment Activity gibi kendi ba\u015f\u0131na direkt olarak <em>\u00e7al\u0131\u015ft\u0131r\u0131lamaz<\/em>. Fragment bir Activity i\u00e7erisinde \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131 gerekmektedir.<\/p>\n<h4><span style=\"color:#008000;\"><strong>Fragment&#8217;\u0131n Ya\u015fam D\u00f6ng\u00fcs\u00fc (Fragment Lifecycle)\u00a0<\/strong><\/span><\/h4>\n<p><a href=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2015\/01\/fragment-lifecycle-tr2-2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-915\" src=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2015\/01\/fragment-lifecycle-tr2-2.png?w=660\" alt=\"Fragment LifeCycle (TR)2 (2)\" width=\"660\" height=\"582\" srcset=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2015\/01\/fragment-lifecycle-tr2-2.png 794w, https:\/\/metehantoksoy.com\/wp-content\/uploads\/2015\/01\/fragment-lifecycle-tr2-2-300x264.png 300w, https:\/\/metehantoksoy.com\/wp-content\/uploads\/2015\/01\/fragment-lifecycle-tr2-2-768x677.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/a><\/p>\n<p>Bir Fragment, bir Activity&#8217;e eklendi\u011finde s\u0131ras\u0131yla <em><strong>onAttach()<\/strong><\/em>, <em><strong>onCreate()<\/strong><\/em>, <em><strong>onCreateView()<\/strong><\/em>, <em><strong>onViewCreated()<\/strong><\/em>,<em><strong>onStart()<\/strong><\/em> ve <em><strong>onResume()<\/strong><\/em> methodlar\u0131 \u00e7a\u011fr\u0131l\u0131r. Fragment de\u011fi\u015fti\u011finde veya \u00f6n planda ba\u015fka bir uygulama a\u00e7\u0131ld\u0131\u011f\u0131nda ise \u00f6nce Fragment&#8217;\u0131n onPause() methodu \u00e7a\u011fr\u0131l\u0131r. Fragment de\u011fi\u015ftirilir veya kapat\u0131l\u0131rsa <em><strong>onStop()<\/strong><\/em>, <em><strong>onDestroyView()<\/strong><\/em>, <em><strong>onDestroy()<\/strong><\/em> ve <em><strong>onDetach()<\/strong> <\/em>methodlar\u0131 \u00e7a\u011f\u0131r\u0131l\u0131r.<\/p>\n<h3 style=\"text-align:center;\"><span style=\"color:#008000;\"><strong>Fragment&#8217;\u0131n Activity&#8217;e Eklenmesi &amp; \u00c7al\u0131\u015fmas\u0131<\/strong><\/span><\/h3>\n<p>Fragment \u00e7al\u0131\u015fmak i\u00e7in <strong>Activity&#8217;e ihtiya\u00e7 duyar<\/strong>. Peki o zaman burada Activity &#8211; Fragment aras\u0131da bir ili\u015fki var olmal\u0131d\u0131r. Bu ili\u015fkiyi method boyutunda inceleyelim.<\/p>\n<p>Fragment bir activity&#8217;e eklendi\u011finde asl\u0131nda kendi class&#8217;\u0131nda\u00a0de belirli fonksiyonlar tetiklenir. Bunun nedeni Fragment&#8217;\u0131n layout&#8217;unda yer alan <strong>bile\u015fenlerin<\/strong> (components) <strong>View<\/strong>&#8216;e eklenmesidir. Bu eklenme s\u0131ras\u0131nda ekrandaki g\u00f6r\u00fcnt\u00fc (<em>View<\/em>) yeniden olu\u015fturulur.<\/p>\n<p>Fragment ve Activity&#8217;nin <strong>Ya\u015fam D\u00f6ng\u00fclerini<\/strong> (<em>Lifecycles<\/em>)\u00a0konsola yazd\u0131rarak da g\u00f6zlemleyebiliriz. Bunun i\u00e7in methodlar\u0131 Activity ve Fragment&#8217;lar\u0131m\u0131zda <strong>Override<\/strong> ederek, bu methodlar\u0131n i\u00e7inde &#8220;<em><strong>Log.i<\/strong><\/em>&#8221; ile i\u015fletim sisteminin l<strong>ogcat<\/strong>&#8216;ine yazd\u0131rd\u0131k ve bunu da <strong>Android Studio<\/strong>&#8216;dan g\u00f6zlemledik.<\/p>\n<p><a href=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2015\/01\/activity.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-916\" src=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2015\/01\/activity.png?w=660\" alt=\"activity\" width=\"660\" height=\"222\" srcset=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2015\/01\/activity.png 982w, https:\/\/metehantoksoy.com\/wp-content\/uploads\/2015\/01\/activity-300x101.png 300w, https:\/\/metehantoksoy.com\/wp-content\/uploads\/2015\/01\/activity-768x258.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/a><\/p>\n<p><strong>Activity<\/strong>&#8216;mizin class\u0131nda\u00a0<strong>Override<\/strong> etti\u011fimiz methodlar\u0131n\u0131\u00a0ve \u00e7al\u0131\u015fma s\u0131ralar\u0131n\u0131 <em><strong>logcat<\/strong><\/em>&#8216;e\u00a0yazd\u0131rd\u0131k. S\u0131ras\u0131yla <em><strong>onCreate()<\/strong><\/em>, <em><strong>onStart()<\/strong> <\/em>ve <em><strong>onResume()<\/strong> <\/em>methodlar\u0131n\u0131n\u00a0\u00e7al\u0131\u015ft\u0131\u011f\u0131na dair bilgileri yazd\u0131rd\u0131k.<\/p>\n<p><a href=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2015\/01\/fragment.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-917\" src=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2015\/01\/fragment.png?w=660\" alt=\"fragment\" width=\"660\" height=\"180\" srcset=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2015\/01\/fragment.png 1002w, https:\/\/metehantoksoy.com\/wp-content\/uploads\/2015\/01\/fragment-300x82.png 300w, https:\/\/metehantoksoy.com\/wp-content\/uploads\/2015\/01\/fragment-768x209.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/a><\/p>\n<p>Ayn\u0131 \u015fekilde <strong>Fragment<\/strong>\u00a0class\u0131m\u0131zdan da gerekli methodlar\u0131 <strong>Override<\/strong> ettik ve s\u0131ras\u0131yla <em><strong>onAttach()<\/strong><\/em>, <em><strong>onCreate()<\/strong><\/em>, <em><strong>onCreateView()<\/strong><\/em>, <em><strong>onViewCreated()<\/strong><\/em>, <em><strong>onActivityCreated()<\/strong><\/em>, <em><strong>onStart()<\/strong><\/em> ve <em><strong>onResume()<\/strong><\/em> fonksiyonlar\u0131n\u0131n Fragment&#8217;\u0131n Activity&#8217;ye eklenmesi s\u0131ras\u0131nda \u00e7a\u011f\u0131r\u0131ld\u0131\u011f\u0131n\u0131 g\u00f6rd\u00fck.<\/p>\n<p>Activity ve Fragment&#8217;lar\u0131n \u00e7al\u0131\u015fmas\u0131na dair \u00f6rnek Test projesini <strong>GitHub<\/strong> linkine <a title=\"GitHub - Activity-Fragment\" href=\"https:\/\/github.com\/birfincankafein\/metehantoksoy.com\/tree\/master\/Android\/TestApp%20-%20Activity-Fragment\" target=\"_blank\">buraya t\u0131klayarak<\/a>\u00a0ula\u015fabilirsiniz. Ayr\u0131ca <strong>GitHub<\/strong> \u00fczerinden payla\u015faca\u011f\u0131m b\u00fct\u00fcn projeler i\u00e7in de <a title=\"GitHub - birfincankafein\" href=\"https:\/\/github.com\/birfincankafein\" target=\"_blank\">buraya t\u0131klayarak<\/a> eri\u015febilirsiniz.<\/p>\n<p>Bundan sonraki yaz\u0131larda art\u0131k kod \u00f6rnekleriyle devam edece\u011fiz. \u0130nternetten veri indirme, Asenkron i\u015flemler, animasyonlar, API ba\u011flant\u0131lar, konum bilgisi vb. kullanarak basit uygulamalar yazaca\u011f\u0131z. Sormak istedi\u011finiz bir yer olursa bu yaz\u0131n\u0131n alt\u0131na yorum yazabilir veya <em><strong>metehantoksoy@gmail.com<\/strong><\/em>\u00a0adresimden bana e-posta\u00a0atabilirsiniz. Takipte kal\u0131n! Herkese mutlu seneler!<\/p>\n<p>Ac<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Android&#8217;e kod yazmam\u0131z i\u00e7in gerekli Android Studio ve gerekli programlar\u0131n nas\u0131l y\u00fcklenece\u011finden bu yaz\u0131m\u0131zda, Android Studio&#8217;nun aray\u00fcz\u00fcnden bu yaz\u0131m\u0131zda bahsetmi\u015ftik. Bu yaz\u0131m\u0131zdan itibaren\u00a0art\u0131k ellerimizi Android kodlar\u0131n\u0131\u00a0yava\u015f yava\u015f bula\u015ft\u0131rmaya ba\u015flayaca\u011f\u0131z. Fakat ondan \u00f6nce bilmemiz gereken \u015fey android mimarisi. Yani Android platformunda kod yazmaya ge\u00e7meden \u00f6nce \u00e7ok k\u0131sa Android Mimarisi \u00fczerinde duraca\u011f\u0131z.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[13,2],"tags":[28,35,36,38,41,43,107,115,143,154,159,189,190,272],"class_list":["post-903","post","type-post","status-publish","format-standard","hentry","category-android","category-development","tag-activity","tag-android","tag-android-mimarisi","tag-android-studio","tag-android-uygulama","tag-api","tag-fragment","tag-github","tag-java","tag-lifecycle","tag-logcat","tag-onattach","tag-oncreate","tag-yasam-dongusu"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/metehantoksoy.com\/index.php?rest_route=\/wp\/v2\/posts\/903","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/metehantoksoy.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/metehantoksoy.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/metehantoksoy.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/metehantoksoy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=903"}],"version-history":[{"count":0,"href":"https:\/\/metehantoksoy.com\/index.php?rest_route=\/wp\/v2\/posts\/903\/revisions"}],"wp:attachment":[{"href":"https:\/\/metehantoksoy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=903"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/metehantoksoy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=903"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/metehantoksoy.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=903"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}