İçeriğe atla

Cocoa API

Cocoa API
Geliştirici(ler)Apple
İşletim sistemimacOS
TürYazılım iskeleti
Resmî sitesiSitesi

Cocoa, masaüstü işletim sistemi macOS için Apple'ın yerel nesne yönelimli programlama ve uygulama programlama arayüzüdür (API).[1]

İOS, tvOS ve watchOS için, Cocoa Touch adlı, jest tanıma, animasyon ve farklı grafik kontrol öğeleri içeren benzer bir API vardır. İPhone, iPad, iPod Touch, Apple TV ve Apple Watch gibi Apple cihazlarının uygulamalarında kullanılır.

Cocoa, Cocoa.h başlık dosyasında yer alan Foundation Kit, Application Kit ve Core Data çerçevelerinden ve C standart kütüphanesi ve Objective-C çalışma zamanı gibi olanlar tarafından dahil edilen kütüphanelerden ve çerçevelerden oluşur.[2]

Cocoa uygulamaları tipik olarak, Objective-C veya Swift programlama dillerini kullanan Apple, özellikle Xcode (eski adı Project Builder) ve Interface Builder (şimdi Xcode'un bir parçası) tarafından sağlanan geliştirme araçları kullanılarak geliştirilir.[3] Ancak, Cocoa programlama ortamına, PasCocoa, PyObjC, CamelBones, RubyCocoa ve D gibi köprü mekanizmalarının yardımıyla Clozure CL, LispWorks, Object Pascal, Python, Perl, Ruby ve AppleScript gibi başka araçlar kullanılarak erişilebilir. Köprü mekanizmasına duyulan ihtiyacı ortadan kaldıran MacRuby adında bir Ruby dili uygulaması, daha önce Apple tarafından geliştirilmiştir, Nu ise köprü olmadan Cocoa ile birlikte kullanılabilen Lisp benzeri bir dildir. Objective-C Cocoa programlarını basit bir metin editöründe yazmak ve komut satırından veya make'den GNU Compiler Collection (GCC) veya Clang ile manuel olarak oluşturmak da mümkündür.[4]

Son kullanıcılar için, Cocoa uygulamaları, Cocoa programlama ortamını kullanarak yazılanlardır. Bu tür uygulamalar genellikle tanıdık bir görünüme ve hislere sahiptir, çünkü Cocoa programlama ortamı Apple'ın insan arayüzü yönergelerine uyması için bir uygulamanın birçok yönünü otomatikleştirir.

Tarihi

Cocoa, 1980'lerde ve 1990'larda NeXT tarafından geliştirilen NextStep ve OpenStep programlama ortamlarından çeşitli yazılım çerçevelerinin (temel olarak App Kit ve Foundation Kit) soyuna devam ediyor. Apple, Aralık 1996'da NeXT'yi satın aldı ve ardından OpenStep'in direkt halefi olacak Rhapsody işletim sistemi üzerinde çalışmaya başladı. Blue Box adlı klasik Mac OS ve Macintosh işletim sistemleri uygulamaları için bir öykünme tabanına sahip olmalıydı. OpenStep kütüphanelerinin ve ikili desteğin tabanı Yellow Box olarak adlandırıldı.[5] Rhapsody Mac OS X'te gelişti ve Yellow Box Cocoa oldu. Bu nedenle, Cocoa sınıfları NSString veya NSArray gibi NS harfleriyle başlar. Bunlar, OpenStep çerçevesi, NeXTSTEP için orijinal tescilli terimi ifade eder.

OpenStep'in geliştirilmesine yönelik yapılan çalışmaların çoğu, Mac OS X'in geliştirilmesine uygulandı, Cocoa en görünür kısımdı. Ancak, farklılıklar vardır. Örneğin, NeXTSTEP ve OpenStep, metin ve grafiklerin ekranda gösterilmesi için Ekran PostScript'i kullandı, ancak Cocoa Apple'ın Quartz'ına (Taşınabilir Belge Formatı (PDF) görüntüleme modelini kullanıyor) dayanıyor.[6] Cocoa ayrıca, NSURL ve WebKit HTML sınıfları ve diğerleri de dahil olmak üzere bir İnternet desteği seviyesine sahipken, OpenStep, NSFileHandle sınıfları ve Berkeley soketleri üzerinden yönetilen ağ bağlantıları için yalnızca temel desteğe sahipti.

Sonuçta ortaya çıkan yazılım çerçevesi, çaresizlik adına Cocoa adını aldı, çünkü ad zaten Apple tarafından tescilli idi. Bu ismin kullanılmasından önceki yıllar boyunca, Apple'ın Cocoa markası, çocuklar için multimedya proje tasarım uygulamasının adı olarak ortaya çıkmıştı. Uygulama başlangıçta KidSim adı altında Apple Advanced Technology Group'ta geliştirildi ve daha sonra yeniden adlandırıldı ve "Cocoa" olarak markalandı. Apple için Cocoa'yı geliştirmek için kiralanan Peter Jensen tarafından icat edilen isim, web sayfalarına gömülü olduğu için "Çocuklar için Java" yı çağrıştırmak için tasarlandı.[7] Ticari marka ve dolayısıyla "Cocoa" adı, bu yazılım çerçevesi için yeni bir ticari marka tescil ettirilirken ortaya çıkabilecek gecikmeyi önlemek için yeniden kullanıldı. Orijinal "Cocoa" programı, Steve Jobs'un Apple'a geri dönmesini izleyen rasyonelleştirmelerden birinde Apple'da durduruldu. Daha sonra üçüncü bir tarafa lisanslandı ve 2011 itibarıyla Stagecast Creator olarak pazarlandı.

Bellek yönetimi

Cocoa ortamının bir özelliği de dinamik olarak ayrılmış hafızayı yönetme tesisidir. CocoA'nın NSObject sınıfı, hem tedarikçinin hem de kullanıcının çoğu sınıfının türetildiği, bellek yönetimi için referans sayma şemasını uygular. NSObject kök sınıfından türetilen nesneler bir tutma ve bırakma iletisine yanıt verir ve bir tutma sayısını korur. RetainCount adlı bir yöntem var, ancak isminin tersine, genellikle bir nesnenin tam alıkoyma sayısını döndürmez. Genelde sistem düzeyinde amaçlar için kullanılır.[8]

Tahsis veya kopya ile yaratılan yeni tahsis edilen bir nesnenin tutma sayısı vardır. Bu nesneye bir tutma mesajı gönderilmesi, tutma sayısını artırırken, bırakma mesajı gönderildiğinde tutma sayısını azaltır. Bir nesnenin tutma sayısı sıfıra ulaştığında, bir C ++ yıkıcısına benzer bir prosedürle serbest bırakılır.

Objective-C 2.0 ile başlayarak, Objective-C çalışma zamanı, artık Otomatik Referans Sayma (ARC) lehine eski ve kullanımdan kaldırılmış isteğe bağlı bir çöp toplayıcı uyguladı. Bu modelde, çalışma zamanı "tutma" ve "bırakma" gibi Cocoa referans sayma işlemlerini çalışmaz hale getirdi. Çöp toplayıcı, Objective-C 2.0'ın iOS uygulamasında mevcut değildir.[9] Objective-C'deki çöp toplama işlemi düşük öncelikli bir arka plan iş parçacığına dayanıyordu ve kullanıcı deneyimini duyarlı tutmak amacıyla Cocoa'nın kullanıcı etkinliklerini durdurabiliyordu. Eski çöp toplayıcı Mac OS X sürüm 10.13'te hala kullanılabilir, ancak Apple tarafından sağlanan hiçbir uygulama bunu kullanmaz.

2011 yılında LLVM derleyicisi, Objective-C kaynak kodunun statik analizini yaparak ve gerektiğinde tutma ve bırakma mesajlarını yerleştirerek geleneksel çöp toplayıcının yerini alan Otomatik Referans Sayma (ARC) 'yı başlattı.

Ana çerçeveler

Cocoa, çerçeveler adı verilen üç Objective-C nesne kütüphanesinden oluşur. Altyapılar işlevsel olarak paylaşılan kitaplıklara benzer, çalışma zamanında programın adres alanına dinamik olarak yüklenebilen derlenmiş bir nesnedir, ancak çerçeveler ilişkili kaynakları, başlık dosyalarını ve belgeleri ekler. Cocoa çerçeveleri, yukarıda belirtilen parçaları standart konumlarda içeren bir tür paket olarak uygulanır.[10]

  • Foundation Kit (Foundation), NeXTSTEP 3'teki Kurumsal Nesneler Çerçevesinde göründü. OpenStep çalışmasının bir parçası olarak geliştirildi ve daha sonra bu sistem 1994 yılında piyasaya sürüldüğünde OpenStep AppKit'in temeli oldu. MacOS'ta, Core Foundation'e dayanıyor. Foundation, dizge ve değer manipülasyonu, kaplar ve yineleme, dağıtılmış hesaplama, olay döngüleri (çalışma döngüleri) ve doğrudan grafiksel kullanıcı arayüzüne bağlı olmayan diğer fonksiyonlar sağlayan genel bir nesne yönelimli kütüphanedir. Çerçeve içindeki tüm sınıflar ve sabitler için kullanılan "NS" öneki, NeXT ve Sun Microsystems tarafından ortaklaşa geliştirilen Cocoa'nın OPENSTEP mirasından geliyor.
  • Application Kit (AppKit) doğrudan orijinal NeXTSTEP Uygulama Kitinden çıkarılmıştır. Grafiksel kullanıcı arayüzleri oluşturmak ve onlarla etkileşime geçmek için kullanabileceğiniz kod programları içerir. AppKit, Foundation üzerine kuruludur ve aynı NS önekini kullanır.
  • Core Data, Foundation ve Cocoa'ya dahil edilen ve Cocoa.h'da bulunan nesne kalıcılık çerçevesidir.

Kaynakça

  1. ^ "Arşivlenmiş kopya". 28 Ağustos 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Ağustos 2019. 
  2. ^ "Arşivlenmiş kopya". 8 Şubat 2011 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Ağustos 2019. 
  3. ^ "Arşivlenmiş kopya". 12 Eylül 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Ağustos 2019. 
  4. ^ "Arşivlenmiş kopya". 22 Mart 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Ağustos 2019. 
  5. ^ "Arşivlenmiş kopya". 29 Kasım 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Ağustos 2019. 
  6. ^ "Arşivlenmiş kopya". 25 Eylül 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Ağustos 2019. 
  7. ^ "Arşivlenmiş kopya". 14 Temmuz 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Ağustos 2019. 
  8. ^ "Arşivlenmiş kopya". 8 Ekim 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Ağustos 2019. 
  9. ^ "Arşivlenmiş kopya". 23 Temmuz 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Ağustos 2019. 
  10. ^ "Arşivlenmiş kopya". 28 Eylül 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Ağustos 2019. 

Dış bağlantılar

Ayrıca bakınız

İlgili Araştırma Makaleleri

macOS, Macintosh işletim sistemi ailesinin son sürümüdür ve Apple tarafından Macintosh bilgisayarları için tasarlanmış bir işletim sistemidir.

Objective-C, C'nin üzerine yazılmış, yansımalı, nesne yönelimli bir programlama dilidir. ObjC, Objective C ve Obj-C olarak da anılır.

<span class="mw-page-title-main">Mac OS X Snow Leopard</span> Appleın desktop ve sunucu işletim sistemi, Mac OS Xin yedinci ana sürümüdür.

Mac OS X Snow Leopard veya Mac OS X 10.6 Snow Leopard, Apple'ın desktop ve sunucu işletim sistemi, Mac OS X'in yedinci ana sürümüdür. Apple CEO'su Steve Jobs, Snow Leopard'ı WWDC 'da 9 Haziran 2008 tarihinde duyurdu ve Yazılım Mühendisliğinden Sorumlu Kıdemli Başkan Yardımcısı Bertrand Serlet tarafından geliştiricilere özel olarak gösterildi. İlk genel gösteri, Dünya Çapında Pazarlamadan Sorumlu Kıdemli Başkan Yardımcısı Serlet ve Phil Schiller tarafından, WWDC 2009'da sunulmuştur.

<span class="mw-page-title-main">NextStep</span>

Kapalı kaynak kodlu NeXTStep, NeXTcube gibi özel iş istasyonu bilgisayarları yelpazesini çalıştıracak NeXT Computer tarafından geliştirilen nesne tabanlı, çoklu işletim sistemidir. Daha sonra bilgisayar mimarileri olmuştur.

<span class="mw-page-title-main">Qt (çalışma alanı)</span>

Qt, birden çok platformu destekleyen bir grafiksel kullanıcı arayüzü geliştirme araç takımıdır. Genellikle GUI programları geliştirmek için kullanılsa da gelişmiş kütüphanesi GUI bileşenlerinin dışında birçok araç içermektedir. Qt, en çok KDE masaüstü ortamında, Opera ağ tarayıcısında ve Skype anlık mesajlaşma programlarında kullanılmasıyla bilinir.

Swift, Apple tarafından iOS ve macOS platformlarına iOS ve Mac uygulamaları geliştirmek için oluşturulan, derlenerek çalışan güçlü ve kullanımı kolay, nesne yönelimli bir programlama dili.

<span class="mw-page-title-main">Mac OS X Tiger</span> Mac OS Xin beşinci büyük sürümü

Mac OS X Tiger, Mac OS X'in, Mac bilgisayarlar için Apple'ın masaüstü ve sunucu işletim sisteminin beşinci büyük sürümüdür. Takma isim olarak yeni sürüme Kaplan ismi verilmiştir. Sürüm Apple Software Update yöntemi ile güncellenmekte. Tiger Mac OS X Pantherin halefi olarak 129.95 dolara 29 Nisan 2005 tarihinde kamuoyuna sunuldu. Yeni özelliklerden bazılarına 64-bit PowerMac G5 için geliştirilmiş destek, Spotlight adlı bir hızlı arama sistemi, Safari web tarayıcısının yeni bir sürümü dahildir.

Mac OS X Server 1.0, NeXT teknolojiye dayalı Apple Computer tarafından perakende pazarında satılan ilk işletim sistemidir. 16 Mart 1999 tarihinde yayımlandı. Bu, OpenStep sisteminin ve Mac OS 8-in geçici bir kombinasyonu olmuş Rhapsody adlı ürün kodunun son sürümü oldu.

Cocoa Touch Apple' tarafından yapılan iOS, Apple Watch için watchOS ve dördüncü nesil Apple TV için tvOS üzerinde çalışan yazılım programlarını oluşturmak için bir UI Kullanıcı arayüzü çerçevedir. macOS üzerinde mevcut değildir. Cocoa Touch iPhone, iPod Touch ve iPad için iOS işletim sisteminin bir soyutlama katmanını sağlar.

Dock, macOS işletim sisteminin grafiksel kullanıcı arayüzünün belirgin bir özelliğidir. Uygulamaları başlatmak ve çalışan uygulamalar arasında geçiş yapmak için kullanılır. Dock ayrıca macOS'ten önceki NextStep ve OpenStep işletim sistemlerinin öne çıkan bir özelliğidir.

<span class="mw-page-title-main">Dashcode (yazılım)</span>

Dashcode Apple tarafından Mac OS X Leopard'a dahil edilen ve Dashboard için widget'ların geliştirilmesini kolaylaştıran bir yazılım uygulamasıydı. İlk kez 24 Mayıs 2006'da Xcode geliştirici araçlarının bir parçası olarak yeni MacBook'lara dahil edildi.

<span class="mw-page-title-main">Instruments (yazılım)</span>

Instruments Xcode 3.0 ve sonraki Xcode sürümlerine entegre edilmiş bir uygulama performans analizörü ve görselleştiricidir. Mac OS X Leopard'a aktarılan ve macOS'un tüm sonraki sürümlerinde bulunan OpenSolaris'ten DTrace izleme çerçevesinin üzerine inşa edilmiştir.

<span class="mw-page-title-main">Interface Builder (uygulama)</span>

Interface Builder Apple'nın Mac OS X işletim sistemi için bir yazılım geliştirme uygulamasıdır. Bu, Xcode'nin araç setinin bir parçasıdır. Arayüz Oluşturucu, Cocoa API ve Carbon API geliştiricilerine grafik kullanıcı arayüzü kullanarak uygulamalar için arayüzler oluşturmasına olanak tanır.

<span class="mw-page-title-main">TextEdit (yazılım)</span>

TextEdit, ilk olarak NeXT'in NextStep ve OpenStep'te bulunan, basit, açık kaynaklı bir kelime işlemci ve metin düzenleyicidir. Apple 'nin NeXT'i satın almasından bu yana MacOS ile dağıtılıyor ve Linux gibi diğer Unix benzeri işletim sistemleri için bir GNUstep uygulaması olarak mevcuttur. Apple Advanced Typography tarafından desteklenmektedir ve birçok gelişmiş tipografi özelliğine sahiptir.

<span class="mw-page-title-main">Xcode</span>

Xcode macOS, iOS, watchOS, tvOS ve visionOS için yazılım geliştirmek için Apple tarafından geliştirilen macOS için entegre bir tümleşik geliştirme ortamıdır. Yazılım geliştirme araçlarını içerir. İlk kez 2003 yılında piyasaya çıkan hizmetin en istikrarlı sürümü, sürüm 8.3.3'tür ve Mac App Store'den macOS Sierra kullanıcıları için ücretsiz olarak sunulmaktadır. Kayıtlı geliştiriciler, Apple Developer web sitesinden paketi önizleme sürümlerini ve önceki sürümlerini indirebilirler. Bununla birlikte, Apple son zamanlarda yazılımın sürüm 9 beta 2'nin beta versiyonunu Apple Developer hesaplarıyla halka açık hale getirdi.

iOS SDK

iOS SDK Apple tarafından geliştirilen bir yazılım geliştirme kitidir. Kit, Apple'ın iOS işletim sisteminde mobil uygulamaların geliştirilmesine olanak tanır.

<span class="mw-page-title-main">XNU</span>

XNU, MacOS işletim sisteminde kullanılmak üzere Aralık 1996'dan beri Apple'da geliştirilen ve Darwin işletim sisteminin bir parçası olarak ücretsiz ve açık kaynaklı yazılım olarak piyasaya sürülen bilgisayar işletim sistemi çekirdeğidir. Ayrıca, iOS, tvOS ve watchOS işletim sistemlerinin çekirdeği olarak da kullanılır. XNU, "X Not Unix"'in bir kısaltmasıdır.

Carbon, Macintosh bilgisayarları çalıştıran işletim sistemi olan Mac OS X için Apple'ın C tabanlı uygulama programlama arayüzlerinden (API) biridir. Carbon, Mac OS 8 ve Mac OS 9 işletim sistemlerinde çalışan programlar için iyi bir geriye dönük uyumluluk sağlamıştır. Geliştiriciler, “klasik” Mac OS ve Macintosh işletim sistemleri yazılımlarını OS X platformuna taşımak için uygulamayı azami çaba harcayarak çok az bir çaba ile kullanabilirler. OpenStep'te ortaya çıkan tamamen farklı Cocoa API sistemidir.

Core Data, Mac OS X Leopard'da tanıtılan ve iPhone SDK 3.2 ile iPad için tanıtılan MacOS'taki Core Foundation tarzı bir API'dir. Bir C API'sini göstermek, şimdi kullanımdan kaldırılmış QuickDraw ve ATSUI çerçevelerinin Mac OS X'in önceki sürümlerinde metin oluşturma yeteneklerini değiştirir. Apple’a göre, Core Text "yüksek performans ve kullanım kolaylığı için tasarlandı" ve düzen API'si "basit, tutarlı ve Core Foundation, Core Graphics ve Cocoa ile sıkı bir şekilde bütünleştirildi".

Bu, macOS bileşenlerinin bir listesidir. Bunlar mevcut Mac işletim sisteminde bulunan özelliklerdir.