• bu dili öğrenmeye başlamak için en derli toplu ve düzgün örneklere sahip yer ray wenderlich adlı bir programcının bir kaç yıl önce yazmaya başladığı ve şu anda kalabalık bir ekip tarafından geliştirilen blog. zaten google aramalarında da sık sık karşınıza çıkması olası, neredeyse her konuyla ilgili bir şeyler barındırıyor. stanford'un iphone programlamlama dersleri epey ünlü ve itunesu üzerinden ücretsiz bir şekilde erişilebilir durumda. cocoadevcentral ve idev101 üzerinde de bazı temel konuların örneklerle anlatımı var.

    internetteki objective-c derslerinin en büyük sıkıntısı pek çok konunun yüzeysel bir şekilde geçilmesi. bu durumda başvurmanız gereken adres genellikle apple'ın kendi dokümantasyonları oluyor. az ağdalı bir dille yazılmış olmakla birlikte apple epey detaylı hazırlanmış bir dökümantasyona sahip, genellikle her türlü sorunuza cevap bulabiliyorsunuz.

    bir şeyler oturduktan sonra ara ara göz atmanın yararlı olduğu çeşitli bloglar; maniacdev, iphonedevelopment, cocoawithlove, theocacao, iosdevelopertips, nsblog, ios-blog.

    "e ben tembelim, her şeyi baştan kendim mi yazcam kim uğraşacak?" diyorsanız ilk ziyaret etmeniz gereken yer cocoacontrols. hem ios hem mac os için pek çok hazır arayüz bileşenini bu adresten bulmak mümkün. ayrıca github üzerinde afnetworking, mwfeedparser, mgtwitterengine gibi göz atmanın yararlı olduğu pek çok açık kaynak kütüphane mevcut.

    oyun yapmak için de pek çok farklı yöntem var. cocos2d en çok kullanılan ve sorularınıza cevap bulmanız en olası olan oyun motoru, ray wenderlich'in sitesinde de pek çok dersi bulunuyor. apple'ın ios 7 ile getirdiği sprite kit'de basit oyunlar için güzel bir çözüm sunuyor. şurada çeşitli oyun motorlarıyla ilgili bazı bilgiler var, daha fazlası da araştırılarak bulunabilir. opengl programlamayla ilgili kaynaklar da bir stackoverflow sorusunda detaylıca anlatılmış.

    son olarak windows üzerinde objective-c yazmak uzun süre boyunca sadece cocotron ile mümkündü ama microsoft sonunda konuya el attı ve visual studio 2015 objective-c'yi derlemeye başladı *. ancak iki yöntemin de * öğrenme amacı dışında pek mantıklı olduğunu düşünmüyorum. ayrıca objective-c ye çok fazla bulaşmadan platform bağımsız bir şeyler yapmak istiyorsanız cocos2d-x aradığınız şey olabilir ama en son baktığımda epey bir dokümantasyon eksiği bulunuyordu, geçen süre içerisinde bu giderilmiş olabilir.
  • ne yazık ki mac os ve ios'a uygulama geliştiren yazılımcıların çoğu, kullanıcı ve program için kritik olabilecek bilgileri nsuserdefaults'da veya property list'lerde saklaması ile bu bilgileri herhangi bir metin dosyasına kaydetmesi arasında fark olmadığının farkında değil. mac os'da biraz daha zor olsa da ios'da kötü niyetli birinin cihazı bilgisayarına bağlaması uygulama dosyalarına erişmesi için yeterli.

    - bu ios'da nasıl bir sıkıntı yaratabilir ki?
    örneğin ekşi sözlük ios uygulaması'na beni hatırla diyerek giriş yaptıktan sonra ifunbox, itools veya benzeri diğer bir yazılımla kullanıcı adı ve şifrenize herhangi bir ek bilgi ve yeteneğe sahip olmadan ulaşmanız mümkün. belki ekşi sözlük şifresinin başkasının eline geçmesi çok kritik bir durum yaratmayabilir ama sorun yaratmaya müsait, kullanıcının hesabına para yatırdığı uygulamaların bir kısmında * da kullanıcı adı ve şifreler aynı şekilde tutuluyor.

    - ama mac os'da dosyalara ulaşmak bu kadar basit değil?
    mac os'da genellikle saldırıya uğrayan taraf zaten kullanıcı değil programcılar oluyor. mesela anytrans'ı sadece bir "no" yerine "yes" yazarak * aktive etmek mümkün.

    - kullanıcı olarak ne yapmak gerekir?
    özellikle ios için; eğer programda kritik bir bilginiz varsa program dosyalarını ifunbox veya itools ile inceleyin ve bilgilere erişebiliyorsanız yapımcı şirkete bildirin. çoğu şirket aslında güvenliği ciddiye alıyor ama durumun farkında değil, ilk fırsatta düzelteceklerdir. eğer şüpheniz varsa da güncelleme gelene kadar da mümkünse kritik bilgileri cihaza kaydetmeyin.

    - yazılımcı olarak ne yapmak gerekir?
    "bence" ray wenderlich'in blogundaki güvenlikle ilgili tutorial gayet doyurucu. bu noktadan sonra daha paranoyağa bağlarsanız o'reilly yayınlarının hacking and securing ios applications kitabına göz atabilir veya daha güzeli apple'ın "secure coding guide" dökümanına * bakabilirsiniz.
  • (bkz: geberesi-c)
  • sol görüşlü terör örgütü kılıklı programlama dili.
  • swift'le birlikte tarih olacağına sevindiğim dildir. smalltalk gibi object oriented dillerin 1990'ların başında yazılım dünyasının geleceği olduğu görülünce o zamanlar steve jobs'ın da next'in geleceğini bu dilde gördüğü programlama diliydi.

    o zamanlar next şirketi tüketicileri ve başlangıç seviyesindeki iş bilgisayarlarını windows'a kaptırmaya başlayınca; yine o zamanlar popüler bir kategori olan workstation (iş bilgisayarları diyebiliriz) işine girmişti. burada da sun ve ibm gibi önemli rakipleri vardır. hatta şurada steve jobs'ın bu rakiplerle ilgili nasıl bir strateji izleyeceğini anlattığı mükemmel bir video vardır. steve jobs'ın pek bilinen videolarından biri değil ama gerçekten ben bu adama bu videoyu izledikten sonra hayran olmuşumdur.

    o videoda steve'i kendi ağzından dinlemek daha güzel olsa da buraya özet geçeyim: stratejisi şudur: bu tür workstationlar klasik iş ortamındaki bütün pc gereksinimlerini yerine getirirken o kurumun kendisi için yazacağı -bugün erp ya da workflow programları diyeceğimiz kategoriler- program için de müthiş bir ortam sunmalıdır: object oriented olmalı, hızlı kod yazılabilmeli, networking olaylarını desteklemeli, vb. işte bunun için de biçilmiş kaftan objective c'dir.

    steve jobs bu dilin yaygınlaştırılması için çok kasmıştır. hatta java'yı geliştirmeden önce sun mühendisleri de bir ara steve jobs'ı ziyaret edip bu dili kullanabilir miyiz diye sorgulamışlardır (hatta eric schmidt'in en son kitabı how google works'ta bu olayla ilgili güzel bir hikaye vardır). fakat o zamanlar iyi bir dil olsa da kod okunulabilirliği ve delegation/protocols olaylarının zor konseptler olduğu gerekçesiyle daha basit olan java'da karar kılmışlardır.

    next'in apple tarafından satın alınmasının ardından sadece mac os x işletim sistemlerine yönelik uygulamalarda kullanılan objective c'nin asıl patlaması iphone os (şimdiki adıyla ios) olmuştur. hoş, steve jobs'ın kendisi bile objective c'nin zor olmasından dolayı web tabanlı uygulamaları ön plana çıkarsa da iphone os hacklenmiş ve objective c'ye dayalı native uygulamalar çıkmaya başlamıştır. nitekim mobil gibi kaynakların sınırlı olduğu bir ortamda web'e göre aşmış performans sunduğundan dolayı çok tutulmuştur. apple da piyasayı iyi süzmüş, app store, daha derli toplu apı ve dokümantasyonla objective c'yi bir anlamda efsane yapmıştır.

    ama yine de objective c bu kadar yaygın olan bir programlama dili olmayı hak etmemiştir. nitekim apple ios apı'ylar oturmaya başlayınca objective c'den kurtulmamızı sağlayacak swift'i geliştirmiştir.

    başa dönersek büyük umutlarla ortaya çıkan, bir dönem sendeleyen, tesadüf eseri patlayan sonuç olarak tarih olmasının artık zamanının geldiğini düşündüğüm bir dildir.
  • c'den sonra hadi bi derece de, java'dan sonra kullanmaya calisinca insan hayattan tiksinebiliyor.
  • yıllardır insanlar bunu nasıl windows ile öğrenir - yazarız diye sorup duruyorlar, bunun için en düzgün cevap ilginç bir şekilde microsoft'dan geldi. windows bridge for ios güzel bir hamle olsa da şimdilik sadece "meraklısına" seviyesinde bir proje, github'da kaynak kodlarının yayınlanmasının hemen ardından pek çok şeyin saçma, eksik veya yanlış uyarlandığı ortaya çıktı * *. dahası microsoft bazı açık kaynak projeleri kaynak göstermeden veya lisans değiştirerek kullanmak gibi gariplikler de yapmış, bu haliyle projenin rayına oturup kullanılabilir hale gelmesi epey bir sürecek.

    diğer taraftan zaten apple uygulama geliştiricileri hızlı bir şekilde swift'e kayıyor, apple buna karşı hamle olarak swift'i linux dışında windows'a da resmi olarak uyarlar ve kaynak kodunu yayınlarsa bana ortalık iyice şenlenir ve rekabetten en çok geliştiriciler karlı çıkar gibi geliyor.
  • c tabanlı bir dil bilip de bunun syntax'ini görünce tüylerin ürpermemesi çok zordur.

    (bkz: bu ne la)
  • oop gecmisi c++, c# ve java'dan ibaret olan bana ilk bakista "n'oluyor gencler, ne bu pointer'lar sarmis dort bir yanimi ? oo bracket'lerle sekil mi yapmaya calistiniz, n'aptiniz?" gibi tepkiler verdiren, pek bir sahsina munhasir programlama lisani..

    seker mi seker, tatli mi tatli bir tutorial'ina asagidaki link'den ulasabilin de benim gibi stanford videolari seyrederken "404: brain not found!" hatalari vermeyin..

    http://cocoadevcentral.com/d/learn_objectivec/
  • programcıların, egolarına yenik düşerek "boktan bir dil" deme gafletine düşmelerini hayretle izlememe sebebiyet veren bir dil. evet öğrenmesi çok zor, ama öğrendikten sonra insana "nesneye dayalı" ne demektir iliklerine kadar hissettirebilen bir dil.

    programlama olayına vb ile başladım, sonra c# .net olayına girdim, arada java mava yazdım son olarak da objective c'ye geçtim. içlerinde en zor dil objective c diyebilirim. ama en eğlencelisi de o bir bakıma. araba oluşturan bir program mı yazacaksın? kasa oluşturan bir view, tekerlek olutşuran bir view vs. vs türevlerini oluşturan viewlar oluşturuyorsun, artık herşey basit. tekerlek'den 4 tane türetiyorsun, kasadan 1 tane, direksiyon 1, vs. vs. derken cidden artık nesnelerle tümleşmiş hissediyorsun kendini ve bir bakıyorsun araba oluşmuş. bu zevk çok güzel ve paha biçilemez. bunu diğer diller de yaşatabilir ama hiç birisi objective c kadar eğlenceli değil, hepsini yazmış bir insan olarak bunu söyleyebilirim.

    özet: zorlar ama öğrenince orgazma ulaştırır. stop.
hesabın var mı? giriş yap