Cocoa, masaüstü işletim sistemi macOS için Apple'ın yerel nesne yönelimli programlama ve uygulama programlama arayüzüdür (API).
Geliştirici(ler) | Apple |
---|---|
İşletim sistemi | macOS |
Tür | Yazılım iskeleti |
Resmî sitesi | Sitesi |
İ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.
Cocoa uygulamaları tipik olarak, Objective-C veya Swift programlama dillerini kullanan Apple, özellikle Xcode (eski adı ) ve Interface Builder (şimdi Xcode'un bir parçası) tarafından sağlanan geliştirme araçları kullanılarak geliştirilir. Ancak, Cocoa programlama ortamına, , , , ve D gibi köprü mekanizmalarının yardımıyla , , Object Pascal, Python, Perl, Ruby ve gibi başka araçlar kullanılarak erişilebilir. Köprü mekanizmasına duyulan ihtiyacı ortadan kaldıran 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.
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 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 ü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ı. 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 'ına (Taşınabilir Belge Formatı (PDF) görüntüleme modelini kullanıyor) dayanıyor. 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ı. 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.
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. 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.
- 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
- ^ "Arşivlenmiş kopya". 28 Ağustos 2016 tarihinde kaynağından . Erişim tarihi: 11 Ağustos 2019.
- ^ . 8 Şubat 2011 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Ağustos 2019.
- ^ "Arşivlenmiş kopya". 12 Eylül 2019 tarihinde kaynağından . Erişim tarihi: 11 Ağustos 2019.
- ^ "Arşivlenmiş kopya". 22 Mart 2020 tarihinde kaynağından . Erişim tarihi: 11 Ağustos 2019.
- ^ "Arşivlenmiş kopya". 29 Kasım 2021 tarihinde kaynağından . Erişim tarihi: 11 Ağustos 2019.
- ^ "Arşivlenmiş kopya". 25 Eylül 2020 tarihinde kaynağından . Erişim tarihi: 11 Ağustos 2019.
- ^ "Arşivlenmiş kopya". 14 Temmuz 2019 tarihinde kaynağından . Erişim tarihi: 11 Ağustos 2019.
- ^ "Arşivlenmiş kopya". 8 Ekim 2019 tarihinde kaynağından . Erişim tarihi: 11 Ağustos 2019.
- ^ "Arşivlenmiş kopya". 23 Temmuz 2019 tarihinde kaynağından . Erişim tarihi: 11 Ağustos 2019.
- ^ "Arşivlenmiş kopya". 28 Eylül 2020 tarihinde kaynağından . Erişim tarihi: 11 Ağustos 2019.
Dış bağlantılar
- Sitesi 16 Ağustos 2017 tarihinde Wayback Machine sitesinde .
Ayrıca bakınız
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Cocoa masaustu isletim sistemi macOS icin Apple in yerel nesne yonelimli programlama ve uygulama programlama arayuzudur API Cocoa APIGelistirici ler AppleIsletim sistemimacOSTurYazilim iskeletiResmi sitesiSitesi IOS tvOS ve watchOS icin Cocoa Touch adli jest tanima animasyon ve farkli grafik kontrol ogeleri iceren benzer bir API vardir IPhone iPad iPod Touch Apple TV ve Apple Watch gibi Apple cihazlarinin uygulamalarinda kullanilir Cocoa Cocoa h baslik dosyasinda yer alan Foundation Kit Application Kit ve Core Data cercevelerinden ve C standart kutuphanesi ve Objective C calisma zamani gibi olanlar tarafindan dahil edilen kutuphanelerden ve cercevelerden olusur Cocoa uygulamalari tipik olarak Objective C veya Swift programlama dillerini kullanan Apple ozellikle Xcode eski adi ve Interface Builder simdi Xcode un bir parcasi tarafindan saglanan gelistirme araclari kullanilarak gelistirilir Ancak Cocoa programlama ortamina ve D gibi kopru mekanizmalarinin yardimiyla Object Pascal Python Perl Ruby ve gibi baska araclar kullanilarak erisilebilir Kopru mekanizmasina duyulan ihtiyaci ortadan kaldiran adinda bir Ruby dili uygulamasi daha once Apple tarafindan gelistirilmistir Nu ise kopru olmadan Cocoa ile birlikte kullanilabilen Lisp benzeri bir dildir Objective C Cocoa programlarini basit bir metin editorunde yazmak ve komut satirindan veya make den GNU Compiler Collection GCC veya Clang ile manuel olarak olusturmak da mumkundur Son kullanicilar icin Cocoa uygulamalari Cocoa programlama ortamini kullanarak yazilanlardir Bu tur uygulamalar genellikle tanidik bir gorunume ve hislere sahiptir cunku Cocoa programlama ortami Apple in insan arayuzu yonergelerine uymasi icin bir uygulamanin bircok yonunu otomatiklestirir TarihiCocoa 1980 lerde ve 1990 larda NeXT tarafindan gelistirilen NextStep ve programlama ortamlarindan cesitli yazilim cercevelerinin temel olarak App Kit ve Foundation Kit soyuna devam ediyor Apple Aralik 1996 da NeXT yi satin aldi ve ardindan OpenStep in direkt halefi olacak uzerinde calismaya basladi Blue Box adli klasik Mac OS ve Macintosh isletim sistemleri uygulamalari icin bir oykunme tabanina sahip olmaliydi OpenStep kutuphanelerinin ve ikili destegin tabani Yellow Box olarak adlandirildi Rhapsody Mac OS X te gelisti ve Yellow Box Cocoa oldu Bu nedenle Cocoa siniflari NSString veya NSArray gibi NS harfleriyle baslar Bunlar OpenStep cercevesi NeXTSTEP icin orijinal tescilli terimi ifade eder OpenStep in gelistirilmesine yonelik yapilan calismalarin cogu Mac OS X in gelistirilmesine uygulandi Cocoa en gorunur kisimdi Ancak farkliliklar vardir Ornegin NeXTSTEP ve OpenStep metin ve grafiklerin ekranda gosterilmesi icin Ekran PostScript i kullandi ancak Cocoa Apple in ina Tasinabilir Belge Formati PDF goruntuleme modelini kullaniyor dayaniyor Cocoa ayrica NSURL ve WebKit HTML siniflari ve digerleri de dahil olmak uzere bir Internet destegi seviyesine sahipken OpenStep NSFileHandle siniflari ve Berkeley soketleri uzerinden yonetilen ag baglantilari icin yalnizca temel destege sahipti Sonucta ortaya cikan yazilim cercevesi caresizlik adina Cocoa adini aldi cunku ad zaten Apple tarafindan tescilli idi Bu ismin kullanilmasindan onceki yillar boyunca Apple in Cocoa markasi cocuklar icin multimedya proje tasarim uygulamasinin adi olarak ortaya cikmisti Uygulama baslangicta KidSim adi altinda Apple Advanced Technology Group ta gelistirildi ve daha sonra yeniden adlandirildi ve Cocoa olarak markalandi Apple icin Cocoa yi gelistirmek icin kiralanan Peter Jensen tarafindan icat edilen isim web sayfalarina gomulu oldugu icin Cocuklar icin Java yi cagristirmak icin tasarlandi Ticari marka ve dolayisiyla Cocoa adi bu yazilim cercevesi icin yeni bir ticari marka tescil ettirilirken ortaya cikabilecek gecikmeyi onlemek icin yeniden kullanildi Orijinal Cocoa programi Steve Jobs un Apple a geri donmesini izleyen rasyonellestirmelerden birinde Apple da durduruldu Daha sonra ucuncu bir tarafa lisanslandi ve 2011 itibariyla Stagecast Creator olarak pazarlandi Bellek yonetimiCocoa ortaminin bir ozelligi de dinamik olarak ayrilmis hafizayi yonetme tesisidir CocoA nin NSObject sinifi hem tedarikcinin hem de kullanicinin cogu sinifinin turetildigi bellek yonetimi icin referans sayma semasini uygular NSObject kok sinifindan turetilen nesneler bir tutma ve birakma iletisine yanit verir ve bir tutma sayisini korur RetainCount adli bir yontem var ancak isminin tersine genellikle bir nesnenin tam alikoyma sayisini dondurmez Genelde sistem duzeyinde amaclar icin kullanilir Tahsis veya kopya ile yaratilan yeni tahsis edilen bir nesnenin tutma sayisi vardir Bu nesneye bir tutma mesaji gonderilmesi tutma sayisini artirirken birakma mesaji gonderildiginde tutma sayisini azaltir Bir nesnenin tutma sayisi sifira ulastiginda bir C yikicisina benzer bir prosedurle serbest birakilir Objective C 2 0 ile baslayarak Objective C calisma zamani artik Otomatik Referans Sayma ARC lehine eski ve kullanimdan kaldirilmis istege bagli bir cop toplayici uyguladi Bu modelde calisma zamani tutma ve birakma gibi Cocoa referans sayma islemlerini calismaz hale getirdi Cop toplayici Objective C 2 0 in iOS uygulamasinda mevcut degildir Objective C deki cop toplama islemi dusuk oncelikli bir arka plan is parcacigina dayaniyordu ve kullanici deneyimini duyarli tutmak amaciyla Cocoa nin kullanici etkinliklerini durdurabiliyordu Eski cop toplayici Mac OS X surum 10 13 te hala kullanilabilir ancak Apple tarafindan saglanan hicbir uygulama bunu kullanmaz 2011 yilinda LLVM derleyicisi Objective C kaynak kodunun statik analizini yaparak ve gerektiginde tutma ve birakma mesajlarini yerlestirerek geleneksel cop toplayicinin yerini alan Otomatik Referans Sayma ARC yi baslatti Ana cercevelerCocoa cerceveler adi verilen uc Objective C nesne kutuphanesinden olusur Altyapilar islevsel olarak paylasilan kitapliklara benzer calisma zamaninda programin adres alanina dinamik olarak yuklenebilen derlenmis bir nesnedir ancak cerceveler iliskili kaynaklari baslik dosyalarini ve belgeleri ekler Cocoa cerceveleri yukarida belirtilen parcalari standart konumlarda iceren bir tur paket olarak uygulanir Foundation Kit Foundation NeXTSTEP 3 teki Kurumsal Nesneler Cercevesinde gorundu OpenStep calismasinin bir parcasi olarak gelistirildi ve daha sonra bu sistem 1994 yilinda piyasaya suruldugunde OpenStep AppKit in temeli oldu MacOS ta Core Foundation e dayaniyor Foundation dizge ve deger manipulasyonu kaplar ve yineleme dagitilmis hesaplama olay donguleri calisma donguleri ve dogrudan grafiksel kullanici arayuzune bagli olmayan diger fonksiyonlar saglayan genel bir nesne yonelimli kutuphanedir Cerceve icindeki tum siniflar ve sabitler icin kullanilan NS oneki NeXT ve Sun Microsystems tarafindan ortaklasa gelistirilen Cocoa nin OPENSTEP mirasindan geliyor Application Kit AppKit dogrudan orijinal NeXTSTEP Uygulama Kitinden cikarilmistir Grafiksel kullanici arayuzleri olusturmak ve onlarla etkilesime gecmek icin kullanabileceginiz kod programlari icerir AppKit Foundation uzerine kuruludur ve ayni NS onekini kullanir Core Data Foundation ve Cocoa ya dahil edilen ve Cocoa h da bulunan nesne kalicilik cercevesidir Kaynakca Arsivlenmis kopya 28 Agustos 2016 tarihinde kaynagindan Erisim tarihi 11 Agustos 2019 8 Subat 2011 tarihinde kaynagindan arsivlendi Erisim tarihi 11 Agustos 2019 Arsivlenmis kopya 12 Eylul 2019 tarihinde kaynagindan Erisim tarihi 11 Agustos 2019 Arsivlenmis kopya 22 Mart 2020 tarihinde kaynagindan Erisim tarihi 11 Agustos 2019 Arsivlenmis kopya 29 Kasim 2021 tarihinde kaynagindan Erisim tarihi 11 Agustos 2019 Arsivlenmis kopya 25 Eylul 2020 tarihinde kaynagindan Erisim tarihi 11 Agustos 2019 Arsivlenmis kopya 14 Temmuz 2019 tarihinde kaynagindan Erisim tarihi 11 Agustos 2019 Arsivlenmis kopya 8 Ekim 2019 tarihinde kaynagindan Erisim tarihi 11 Agustos 2019 Arsivlenmis kopya 23 Temmuz 2019 tarihinde kaynagindan Erisim tarihi 11 Agustos 2019 Arsivlenmis kopya 28 Eylul 2020 tarihinde kaynagindan Erisim tarihi 11 Agustos 2019 Dis baglantilarSitesi 16 Agustos 2017 tarihinde Wayback Machine sitesinde Ayrica bakinizCarbon API Objective C Xcode iOS SDK Interface Builder uygulama Rosetta yazilim XNU X Pencere Sistemi