{"id":13343,"date":"2022-04-20T00:06:03","date_gmt":"2022-04-19T21:06:03","guid":{"rendered":"https:\/\/kutaybilen.com.tr\/?p=13343"},"modified":"2022-04-20T00:06:03","modified_gmt":"2022-04-19T21:06:03","slug":"swift-programlama-lisani-nedir-neler-yapilabilir","status":"publish","type":"post","link":"https:\/\/kutaybilen.com.tr\/?p=13343","title":{"rendered":"Swift Programlama Lisan\u0131 Nedir, Neler Yap\u0131labilir?"},"content":{"rendered":"<p>2010 ve sonras\u0131 ta\u015f\u0131nabilir uygulamalar\u0131n alt\u0131n \u00e7a\u011f\u0131 oldu. Bir\u00e7ok uygulama geli\u015ftiricisi bilgisayar \u00fczerinde yapabildikleri \u015feyleri ta\u015f\u0131nabilir platformlara da aktarabilmek ismine ta\u015f\u0131nabilir yaz\u0131l\u0131m lisanlar\u0131na y\u00f6neldi. Zira ta\u015f\u0131nabilir piyasas\u0131 inan\u0131lmaz bir <strong>s\u00fcratle <\/strong>b\u00fcy\u00fcmeye ba\u015flam\u0131\u015ft\u0131.<\/p>\n<p>Android ve iOS ta\u015f\u0131nabilir platformun iki \u00f6nc\u00fc i\u015fletim sistemi oldu\u011fu i\u00e7in, bu platformlar \u00fczerinde uygulama geli\u015ftirmek i\u00e7in kullan\u0131labilecek lisanlar\u0131n pop\u00fclerli\u011fi artmaya ba\u015flad\u0131. \u0130\u015fte <strong>Swift <\/strong>de tam olarak bu noktada devreye giriyor. Zira Apple eserlerde \u00e7al\u0131\u015fan uygulamalar yazmak i\u00e7in kullan\u0131labilecek en g\u00fczel programlama lisanlar\u0131ndan biri Swift.<\/p>\n<p><b><em>Swift <\/em>ne demek?<\/b><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.webtekno.com\/images\/editor\/default\/0002\/31\/5f6456bcce4df4e3c4cabc682f23ed2e46bbb792.jpeg\"\/><\/p>\n<p>Swift bir programlama lisan\u0131 ismi olmas\u0131n\u0131n yan\u0131 s\u0131ra, t\u0131pk\u0131 vakitte \u0130ngilizce lisan\u0131nda bir\u00e7ok farkl\u0131 manaya gelebilen bir s\u00f6z. Bu manalardan kimileri \u201cs\u00fcratli\u201d, \u201c<strong>kara sa\u011fan ku\u015fu<\/strong>\u201d, \u201cseri\u201d ve \u201c\u00e7abuk\u201d. Fakat lisan\u0131n logosuna bak\u0131ld\u0131\u011f\u0131 vakit, Apple\u2019\u0131n net bir formda kara sa\u011fan ku\u015fundan esinlendi\u011fi anla\u015f\u0131l\u0131yor.<\/p>\n<p><b>Swift\u2019in d\u00fcnden bug\u00fcne geli\u015fim s\u00fcreci:<\/b><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.webtekno.com\/images\/editor\/default\/0002\/31\/b38ddaf2dff3e1708e1e6402fa2cd87e4b3b7a82.jpeg\"\/><\/p>\n<p>Birinci olarak Apple Worldwide Developers Conference 2014 isimli aktiflikte duyurulan Swift, o vakitten bu vakte b\u00fcy\u00fck \u00f6l\u00e7\u00fcde yol kat etti. O vakitler Apple\u2019\u0131n \u00fcst seviye y\u00f6neticilerinden biri olan <strong>Chris Lattner<\/strong>, programlama lisan\u0131n\u0131n temellerini 2010 y\u0131l\u0131nda atmaya ba\u015flad\u0131.<\/p>\n<p>Apple 2013 y\u0131l\u0131na kadar kar\u015f\u0131lar\u0131na \u00e7\u0131kmas\u0131 olas\u0131 bir meseleye kar\u015f\u0131l\u0131k arad\u0131. O sorun da yeni programlama lisan\u0131n\u0131n h\u00e2li haz\u0131rda Apple eserlere uygulama geli\u015ftirmek i\u00e7in kullan\u0131lan <strong>Objective-C <\/strong>ekosisteminde kendine nas\u0131l yer bulaca\u011f\u0131yd\u0131. Teknoloji devi, geli\u015ftiricileri Swift kullanmaya zorlamak istemiyordu. Zira bu t\u00fcrl\u00fc bir hareket \u00e7ok sert yans\u0131lar alabilirdi.<\/p>\n<p>Apple bu noktada mevcut Objective-C lisan\u0131na yat\u0131r\u0131m yapmaya devam etmeye karar verdi. Fakat bir yandan da yeni ve sa\u011flam bir lisan geli\u015ftirdi\u011finin iletilerini vermeye ba\u015flad\u0131. Bundan bir y\u0131l sonra ise Apple ayg\u0131tlara uygulama geli\u015ftiren be\u015ferler Swift\u2019in betas\u0131 ile tan\u0131\u015ft\u0131lar. Swift, birinci ay <strong>11 milyon ki\u015fi <\/strong>taraf\u0131ndan indirildi.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.webtekno.com\/images\/editor\/default\/0002\/31\/89f0e713f008be656c6376dc4b0f3eea902183c6.jpeg\"\/><\/p>\n<p>S\u00fcre\u00e7 devam ettik\u00e7e geli\u015ftiricilerin Swift hakk\u0131nda kan\u0131lar\u0131 de yava\u015f yava\u015f olu\u015fmaya ba\u015flad\u0131. G\u00f6r\u00fc\u015fler ba\u015flarda \u00e7ok karma\u015f\u0131kt\u0131. Bir k\u0131s\u0131m geli\u015ftirici, Swift\u2019in kullanmas\u0131 kolay bir lisan oldu\u011fu i\u00e7in \u00e2l\u00e2 oldu\u011funu, \u00f6teki bir kesim ise bu kolayl\u0131ktan dolay\u0131 yetersiz oldu\u011funu d\u00fc\u015f\u00fcn\u00fcyordu. Fakat iki taraf da \u015fimdi Swift kullanmak i\u00e7in \u00e7ok <strong>erken oldu\u011fu<\/strong> konusunda ortak fikre sahipti.<\/p>\n<p>Y\u0131llar 2015\u2019i g\u00f6sterdi\u011fi vakit Apple Swift\u2019i a\u00e7\u0131k kaynak kodlu bir programlama lisan\u0131 h\u00e2line getirdi. Apple\u2019\u0131n bu hareketi sonras\u0131nda Swift a\u011f\u0131r ilgi g\u00f6rd\u00fc. A\u00e7\u0131k kaynak kodlu h\u00e2le geldi\u011finin birinci haftas\u0131nda <strong>60.000\u2019den fazla insan <\/strong>Swift\u2019in bir kopyas\u0131n\u0131 indirdi. Sonras\u0131nda ge\u00e7en 2 sene i\u00e7inde de Swift resm\u00ee olarak tarihin en s\u00fcratli b\u00fcy\u00fcyen programlama lisan\u0131 oldu.<\/p>\n<p><b><em>Swift <\/em>ile neler yap\u0131labilir?<\/b><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.webtekno.com\/images\/editor\/default\/0002\/31\/0d5e30e0f275fe7d7f0b4aaed34e93491251c08b.jpeg\"\/><\/p>\n<p>Swift, Apple\u2019\u0131n uzun y\u0131llard\u0131r s\u00fcregelen stratejisini devam ettirerek s\u0131rf Apple eserlerine uygulama yazmak i\u00e7in kullan\u0131labiliyor. Yani Swift kullanarak macOS, tvOS, iPadOS, watchOS ve iOS y\u00fckl\u00fc t\u00fcm ayg\u0131tlarda s\u0131k\u0131nt\u0131s\u0131zca \u00e7al\u0131\u015fabilecek uygulamalar geli\u015ftirmek m\u00fcmk\u00fcn. Bu hususta sadece tek bir istisna bulunuyor.<\/p>\n<p>Swift temelinde a\u00e7\u0131k kaynak kodlu oldu\u011fu bir programla lisan\u0131 oldu\u011fu i\u00e7in, a\u00e7\u0131k kaynak kodlu i\u015fletim sistemi \u00e7ekirde\u011finde de \u00e7al\u0131\u015fabiliyor. Pekala bu ne demek? K\u0131saca, <strong>Swift <\/strong>kullanarak Linux i\u015fletim sisteminde \u00e7al\u0131\u015fabilecek uygulamalar da geli\u015ftirilebiliyor.<\/p>\n<p>Her ne kadar<strong>Linux\u2019ta \u00e7al\u0131\u015fan uygulamalar <\/strong>yazmak m\u00fcmk\u00fcn olsa da Swift temel olarak Apple eserlerinde \u00e7al\u0131\u015fmas\u0131 i\u00e7in \u00fcretildi. Bu y\u00fczden Swift, Apple marka eserlerin donan\u0131mlar\u0131n\u0131 en verimli halde kullanabilen programlama lisan\u0131. Yani Apple y\u0131llar boyunca in\u015fa etti\u011fi ekosistemini burada da s\u00fcrd\u00fcrmeyi ba\u015far\u0131yor.<\/p>\n<p><b>Swift nereden \u00f6\u011frenilebilir?<\/b><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.webtekno.com\/images\/editor\/default\/0002\/31\/ae7a3cf755fa6b6bbf2b6ea1142b6db122f00754.jpeg\"\/><\/p>\n<p>Apple sadece kendi eserlerinde kullan\u0131labilen bir programlama lisan\u0131 geli\u015ftirdi\u011fi i\u00e7in geli\u015ftiricileri bir halde kendi platformuna ge\u00e7meye ikna etmesi gerekti\u011fini biliyor. Bunu yapabilmek i\u00e7in de kapsaml\u0131 bir Swift takviyesi sunuyor. Sundu\u011fu dayana\u011f\u0131 de \u015fimdi \u00e7ocuk ya\u015ftaki <strong>potansiyel <\/strong>geli\u015ftiricilerden ba\u015flatan ad\u0131mlarla sa\u011fl\u0131yor.<\/p>\n<p>Bahsetti\u011fimiz ad\u0131mlardan bir tanesi iPad \u00fczerinde bulunan bir uygulama. Uygulaman\u0131n ismi <strong>Swift Playgrounds<\/strong>. Fiyats\u0131z bir iPad uygulamas\u0131 olan Swift Playgrounds, \u00e7ocuklara programc\u0131l\u0131k mesle\u011finin temellerini \u00f6\u011fretmek i\u00e7in tasarland\u0131. \u0130\u00e7inde oyunlardan ve \u00e7e\u015fitli vazifelerden olu\u015fan e\u011fitim ara\u00e7lar\u0131 bulunuyor.<\/p>\n<p>Programlamaya yeni ba\u015flayan be\u015ferler i\u00e7in Swift Playgrounds \u00e7ok kullan\u0131\u015fl\u0131 bir uygulama olabilir. Zira her ne kadar \u00e7ocuklara odakl\u0131 bir program olsa da yeti\u015fkin bir be\u015fere da ba\u015flang\u0131\u00e7 d\u00fczeyinde e\u011fitimler vermek i\u00e7in hayli kullan\u0131\u015fl\u0131 bir ortam sunuyor. \u015eayet programlamaya daha h\u00e2kim biriyseniz, Apple\u2019\u0131n kendi uygulama marketi olan App Store \u00fczerinde yakla\u015f\u0131k <strong>500 sayfal\u0131k Swift<\/strong> kullanma k\u0131lavuzu vazifesi g\u00f6ren bir e-kitap da mevcut.<\/p>\n<p><b>Swift nas\u0131l kullan\u0131l\u0131r?<\/b><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.webtekno.com\/images\/editor\/default\/0002\/31\/15845a75799942f2cfa8a8454cc71a277dc1a7c3.jpeg\"\/><\/p>\n<p>\u015ea\u015f\u0131rtan olmayan bir formda, Swift\u2019i tam verimli olarak kullanmak i\u00e7in bir Apple ayg\u0131t\u0131na sahip olman\u0131z gerekiyor. Zira kendisi <strong>Xcode <\/strong>isimli, macOS \u00fczerinde \u00e7al\u0131\u015fan bir Apple t\u00fcmle\u015fik geli\u015ftirme ortam\u0131nda (IDE) kullan\u0131labiliyor.<\/p>\n<p>Xcode ba\u015fka t\u00fcmle\u015fik geli\u015ftirme ortamlar\u0131yla kar\u015f\u0131la\u015ft\u0131r\u0131ld\u0131\u011f\u0131 vakit geride kalan bir yaz\u0131l\u0131m de\u011fil. \u0130\u00e7erisinde kod d\u00fczenleyici, yan\u0131lg\u0131 ay\u0131klay\u0131c\u0131, <strong>test etmek <\/strong>i\u00e7in kullan\u0131labilen ortamlar \u00fczere en gerekli ara\u00e7lar bulunuyor.<\/p>\n<p><b>Swift\u2019in art\u0131lar\u0131:<\/b><\/p>\n<p><b>Uygulama geli\u015ftirme s\u00fcreci s\u00fcratli:<\/b><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.webtekno.com\/images\/editor\/default\/0002\/31\/07b63af116d133bc4fb1827b1fcaa7720d159a90.jpeg\"\/><\/p>\n<p>Swift, hem yazmas\u0131 hem de okumas\u0131 bir\u00e7ok programlama lisan\u0131na nazaran daha kolay olan bir lisan. Objective-C ile kar\u015f\u0131la\u015ft\u0131r\u0131ld\u0131\u011f\u0131 vakit, birebir s\u00fcre\u00e7leri yapmak i\u00e7in yaz\u0131lmas\u0131 gereken kod say\u0131s\u0131 k\u0131ymetli \u00f6l\u00e7\u00fcde daha az. Ayr\u0131yeten Apple taraf\u0131ndan, bilhassa Apple eserlerinde daha rand\u0131manl\u0131 \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131 i\u00e7in \u00fcretildi\u011finden, iOS ayg\u0131tlarla hayli <strong>uyumlu <\/strong>bir lisan.<\/p>\n<p><b>\u0130nan\u00e7l\u0131 bir programlama lisan\u0131:<\/b><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.webtekno.com\/images\/editor\/default\/0002\/31\/e17c77b7976ee470e8f88382e8391d6187a53c43.jpeg\"\/><\/p>\n<p>Bir programlama lisan\u0131n\u0131n inan\u00e7l\u0131 olmas\u0131 ne demek? K\u0131saca \u00f6zetlemek gerekirse, bir programlama lisan\u0131n\u0131n ne kadar inan\u00e7l\u0131 oldu\u011fu, kod \u00e7\u00f6kmelerine ve \u00fcretim yanl\u0131\u015flar\u0131na ne kadar mani olabildi\u011fiyle \u00f6l\u00e7\u00fcl\u00fcr. Swift, uygulaman\u0131n kodunda bulunan yan\u0131lg\u0131lar\u0131 g\u00f6steren ve <strong>kolayl\u0131kla <\/strong>d\u00fczeltilmesine m\u00fcsaade veren bir yap\u0131ya sahip. Yani yan\u0131lg\u0131lar\u0131n \u00f6n\u00fcne ge\u00e7me konusunda ba\u015far\u0131l\u0131 bir lisan.<\/p>\n<p><b>Otomatik Bellek Sayma (ARC) \u00f6zelli\u011fi:<\/b><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.webtekno.com\/images\/editor\/default\/0002\/31\/e102a458bf8755cc2a2f416bab74083558534ee5.jpeg\"\/><\/p>\n<p>Java ve C# \u00fczere lisanlar, art\u0131k kullan\u0131lmayan s\u0131n\u0131f \u00f6rneklerini silmek i\u00e7in \u201c<strong>\u00e7\u00f6p toplay\u0131c\u0131lar\u0131<\/strong>\u201d kullan\u0131yor. \u00c7\u00f6p toplay\u0131c\u0131lar bellek aktifli\u011fini art\u0131rmak i\u00e7in \u00e7ok yararl\u0131lar fakat i\u015flemci g\u00fcc\u00fcn\u00fcn y\u00fczde yirmisine kadar kullanabiliyorlar. Swift\u2019in Otomatik Bellek Sayma \u00f6zelli\u011fi ise, hangi \u00f6rneklerin art\u0131k kullan\u0131lmad\u0131\u011f\u0131n\u0131 otomatik olarak saptayarak bunlar\u0131 siliyor. Bunu yaparken de i\u015flemciden faydalanmad\u0131\u011f\u0131 i\u00e7in ayg\u0131t\u0131 daha az yoruyor.<\/p>\n<p><b>Swift\u2019in eksileri:<\/b><\/p>\n<p><b>\u00c7ok yeni bir lisan:<\/b><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.webtekno.com\/images\/editor\/default\/0002\/31\/333a23f76c3aa998b367b9f5d07ec572b7fa0e49.jpeg\"\/><\/p>\n<p>Swift, 1980\u2019lerde kullan\u0131lmaya ba\u015flanan Objective-C\u2019ye oranla \u015fimdi \u00e7ok gen\u00e7 bir lisan. Apple sistemli olarak Swift g\u00fcncellemeleri getiriyor. Vakit ge\u00e7tik\u00e7e daha stabil ve pratik bir lisan h\u00e2line geliyor. Lakin bir programlama lisan\u0131 i\u00e7in 5 y\u0131l \u00e7ok k\u0131sa bir m\u00fchlet. Bu y\u00fczden Swift \u015fimdilik <strong>lokal <\/strong>k\u00fct\u00fcphanelere ve ara\u00e7lara m\u00e2hkum durumda.<\/p>\n<p><b>Az ki\u015fi kullan\u0131yor:<\/b><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.webtekno.com\/images\/editor\/default\/0002\/31\/224ca04f08d8afbacedaf07c2a622c336641a202.jpeg\"\/><\/p>\n<p>Swift g\u00fcnden g\u00fcne daha fazla ki\u015fi taraf\u0131ndan kullan\u0131l\u0131yor ama rakibi olan programlama lisanlar\u0131na oranla h\u00e2l\u00e2 \u00e7ok k\u00fc\u00e7\u00fck bir toplulu\u011fu var. Yaz\u0131l\u0131mc\u0131lar\u0131n ansiklopedisi vazifesi g\u00f6ren StackOverflow \u00fczerinde yap\u0131lan bir ankete nazaran, <strong>87.354<\/strong> i\u015ftirak\u00e7inin s\u0131rf <strong>y\u00fczde 6,6<\/strong>\u2019s\u0131 Swift\u2019i nizaml\u0131 olarak kullan\u0131yor.<\/p>\n<p><b>Eski iOS s\u00fcr\u00fcmleriyle uyumlulu\u011fu d\u00fc\u015f\u00fck:<\/b><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.webtekno.com\/images\/editor\/default\/0002\/31\/ccd8d8e6dd4d0e632b0c59534ffb7155956e2486.jpeg\"\/><\/p>\n<p>Swift sadece iOS 7 ve \u00fcst\u00fc s\u00fcr\u00fcmlere uygulama geli\u015ftirmek i\u00e7in kullan\u0131labiliyor. Yani eski ayg\u0131tlar kullanmaya devam eden insanlar\u0131n da kullanabilece\u011fi uygulamalar geli\u015ftirirken, Swift lisan\u0131n\u0131 kullanmak imkans\u0131z. Bununla birlikte, iPhone kullan\u0131c\u0131lar\u0131n\u0131n <strong>y\u00fczde 5<\/strong>\u2019inden az bir k\u0131sm\u0131n\u0131n iOS 6 yahut daha eski bir s\u00fcr\u00fcm kulland\u0131\u011f\u0131n\u0131 da s\u00f6yleyelim.<\/p>\n<p>Apple\u2019\u0131n geli\u015ftirdi\u011fi programlama lisan\u0131 olan Swift ile ilgili merak edilenlen noktalar\u0131 gidermeye \u00e7al\u0131\u015ft\u0131k. Swift\u2019in gelecekte iOS i\u015fletim sistemine uygulama geli\u015ftirmek i\u00e7in en \u00e7ok kullan\u0131lan programlama lisanlar\u0131ndan biri olup olmayaca\u011f\u0131n\u0131 bekleyerek g\u00f6rece\u011fiz. Sanki Apple <strong>te\u015febb\u00fcslerinde <\/strong>ba\u015far\u0131l\u0131 olacak m\u0131? Sizler de niyetlerinizi yorumlar k\u0131sm\u0131ndan payla\u015fabilirsiniz.<\/p>\n<div> <\/div>\n","protected":false},"excerpt":{"rendered":"<p>2010 ve sonras\u0131 ta\u015f\u0131nabilir uygulamalar\u0131n alt\u0131n \u00e7a\u011f\u0131 oldu. Bir\u00e7ok uygulama geli\u015ftiricisi bilgisayar \u00fczerinde yapabildikleri \u015feyleri ta\u015f\u0131nabilir &#8230;<\/p>\n","protected":false},"author":1,"featured_media":13344,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[854],"tags":[889,1275,2774,395,932],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/kutaybilen.com.tr\/index.php?rest_route=\/wp\/v2\/posts\/13343"}],"collection":[{"href":"https:\/\/kutaybilen.com.tr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kutaybilen.com.tr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kutaybilen.com.tr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kutaybilen.com.tr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=13343"}],"version-history":[{"count":1,"href":"https:\/\/kutaybilen.com.tr\/index.php?rest_route=\/wp\/v2\/posts\/13343\/revisions"}],"predecessor-version":[{"id":13345,"href":"https:\/\/kutaybilen.com.tr\/index.php?rest_route=\/wp\/v2\/posts\/13343\/revisions\/13345"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kutaybilen.com.tr\/index.php?rest_route=\/wp\/v2\/media\/13344"}],"wp:attachment":[{"href":"https:\/\/kutaybilen.com.tr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=13343"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kutaybilen.com.tr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=13343"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kutaybilen.com.tr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=13343"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}