XCode etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
XCode etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

Pazar, Aralık 15, 2013

XCode Bölüm 02 – Sınıflar ve Temel Yapılar

Merhaba,

Bir önceki yazımızda (XCode Bölüm 01) iOS platformunda uygulama geliştirebilmek için kullanılan XCode IDE ‘sine nasıl erişebileceğimizi ve platformun görsel olarak nasıl bir görüntüye sahip olduğunu, projeyi ve emulatörü nasıl çalıştırabileceğimize göz gezdirmiştik.

Bu yazımızda ise pratikte iOS programlanın sınıf dosyalarına ve mimari yapısına göz atıyor olacağız. Yeniden bir proje oluşturmuyor ve bir önceki örneğimizdeki Boş demo projesinden devam ediyorum.
Öncelikle proje içerisinde yer alan sınıf dosyalarının isimlerine göz atalım.

Sınıf Dosyaları (Class Files)

Boş demo projesini oluşturduktan / açtıktan sonra sol bölümde proje dosyalarını görebiliyoruz. (Visual Studio kullanan arkadaşlar var ise Solution Explorer bölümünün görevini yapmaktadır.)

Blogpost1

AppDelegate.h
AppDelegate.m

ViewController.h
ViewController.m

Main.StoryBoard
    Main_iPhone.StoryBoard
    Main_iPad.Storyboard

Şimdi dosyalara göz attığımız da; AppDelegate sınıflarında uygulama seviyesindeki (Application Level) konmutları ekleyebilir ve kullanabiliriz. Bu sınıflar iOS uygulamalarını temsil eder.

AppDelegete sınıfının .m ve .h dosyalarından oluştuğunu göreceğiz. Bu dosyalar C++ kullananlar var ise hatırlayacağınız üzere .h dosyalarında Header file ‘ları (referanslar gibi düşünebilirsiniz) çağırır. .m ise implementasyon (implementation) dosyalarını çağırır.

ViewController adından da anlaşılacağı üzere form üzerinde yer alan objelerin bulunduğu dosyalardır.

Bir de görsel olarak grafikle göstermek gerekirse alt kısımdaki gibi olacaktır.

your_xcode_project_app_flow

Peki AppDelegate ve ViewController dan bahsettik. Ancak Main.Storyboard dosyalarından bahsetmedik. Bu nedir?

StoryBoard

ViewController sınıflarından yararlanan ve görsel objelerimizin bulunduğu bölümdür. Uygulamanın görsel görünümü ile ilgili olarak nesneleri ekleyebileceğimiz, sonuçlarını görebileceğimiz bölümdür.

Main.StoryBoard, ViewController sınıfları ile yönetilebilir kodların kullanılması mümkündür.

Main.StoryBoard, XCode IDE‘sin de InterfaceBuilder alanında yer almaktadır. ViewController.h sınıfı ile referans dosyalarını ve hazırladığımız metodları kullanabilriz.

 

BlogpostPic03 

Görsel olarak görmek gerekirse alt kısımda yer aldığı şekilde olacaktır.
Form üzerine ekleyebileceğimiz kontroller ise IDE ‘nin sağ alt kısmında yer almaktaıdr. Sürükleyip bırakmanız yeterlidir. Form üzerine kontrolleri eklerken hizamaları konusunda IDE yardımcı olmaktadır.

BlogPostPic04

Peki, bu sınıflar birbirleri ile nasıl ilişkili diye aklımıza bir soru takılıyor. Bunu da alt kısımda yer alan basit akış şeması cevaplamaktadır.

your_xcode_project_classes

Şimdi bu kadar konuyu incelediğimizde kafamıza çok geleneksel ama bir o kadar da önemli bir soru takılıyor. Bu uygulamanın objeleri canlı ortamda nasıl çalışıyor.

Uygulamalarınız canlı ortamda diğer bir çok uygulamalar gibi bellek üzerinde oluşmaktadır. Uygulamanın hata vermesi durumunda bellekte kullanmış olduğu alanı serbest bırakmaktadır. Eğer multi tasking bir uygulama geliştiriyor iseniz ise uygulama arka planda bellek kullanmaya devam etmektedir. Ancak farklı uygulamalar ile bu belleği paylaşabilmektedir. (Güzel bir teknoloji :) )

Daha önceden uygulama geliştiriciler eklemiş oldukları referansları ve kullanmış oldukları bellekleri boşaltmak / serbest bırakmaları gerekmekteydi. Daha şu anda güncel kullandığımız IDE lerde otomatik olarak referansları sayıyor ve gerekli temizlik işlemlerini sağlıyor. Sadece projeyi oluştururken Automatic Reference Counting seçeneğinin seçilmiş olması gerekiyor.

Yazımızın burada sonuna geliyoruz. Objective C ‘inin gelişimini ve bunu başımıza kimler sarmış diye merak edenler için wikipedia da yer alan yazıyı okuyabilirsiniz. (Yazının dili Türkçe dir)

http://tr.wikipedia.org/wiki/Objective-C
Umarım yararlı olabilmiştir.

--

TT

C/C++ & Objective C – Yazımsal Benzerlikler

Merhaba,

Objective C ‘ye merak salmış bir çok kimse C ile arasındaki farkları merak etmiş ve incelemiştir. C ya da C++ tecrübesi olan kişiler ise aradaki basit farkları görmüştür.

En temel anlamda yazımsal farklılıklara alt kısımda yer alan görüntü ile sizde mükayese edebilirsiniz.

Ekran Resmi 2013-02-11 01.17.24

Aslında çok benziyor değil mi? :)

İyi günler dilerim.

--

TT

Pazar, Aralık 08, 2013

XCode Bölüm 01 – İlk Proje

Merhabalar,

 

Önemli Not: XCode öğreniyorum serisinin bu yazısı XCode 5 sürümü ile hazırlanmıştır.

Teknoloji gelişimlerini göz önüne aldığımızda mobil platformlar için geliştirilen uygulamaları dikkate almak gerekmektedir.

Mobile uygulama dediğimizde ise en çok kullanılam platform olarak iOS en plana çıkmaktadır. Bu yazımızda ve ilişkisel diğer yazılarımızda iOS için geliştirme platformu olan XCode ve Objective-C ‘i incelemeye çalışıyor olacağız.

Öncelikle uygulama geliştirebilmek için ihtiyacımız olanlara göz atıyor olalım.

En başta uygulamanın geliştirilebilmesi için MacOS işletim sistemine sahip olan bir bilgisayar ya da Virtual PC üzerinde bu işletim sisteminin kurulmuş olan bir işletim sistemi gerekmektedir.

Örnekleri geliştirecek ve deneyeceğimiz bilgisayar MacBook Pro 15¨ Late 2013 modelidir.

Eğer ki bir bilgisayara ulaşmak isterseniz; http://store.apple.com/tr/buy-mac/macbook-pro adresinde erişebilirsiniz.

Ürünlerin fiyatları eğer ki yüksek geldi ise ikinci el bir ürüne de (örn. mac mini) sahip olabilmeniz bütçesel açıdan da uygun olacaktır.

Geliştirmiş olduğunuz uygulamaları AppleStore ‘a ekleyebilmeniz için Developer Lisansa ihtiyacımız bulunmaktadır. https://developer.apple.com/programs/ios/ adresinden 99 dolar karşılığında lisansa erişebilirsiniz. (Safari için uygulama geliştirmek isterseniz developer lisansa ücretsiz edinebilme olanağımız vardır.

Farklı iki terim XCode ve Objective-C

Uygulama geliştirme yaptığım süre zarfında yaklaşık %95 oranında Visual Studio üzerinde uygulama geliştirmiş kalan kısmında ise Eclipse ile ilgilenmiş biri olarak ve yüksek ihtimalle bu blogu takip eden arkadaşlarımın/meslektaşlarımında yüksek ihtimallerle benzer platformalarda uygulama geliştirdiğimizi düşünüyorum.

Bu gerçeği göz önüne aldığımızda ise XCode geliştirme ortamı çok ama çok farklı gelecektir. Objective-C ise nispeten C/C++ ile uygulama geliştirmiş olan kişiler için daha basit ve tanıdık gelecektir.

XCode ‘i Tanıyalım

Öncelikle değinmek istediğim nokta XCode ücretsiz olarak sunulmaktadır. :)

Uygulamayı kurabilmek için MacOs işletim sistemi üzerinde yer alan AppStore uygulamasını çalıştırdılktan sonra ister en çok indirilen ücretsiz uygulamalar listesinden, isterseniz de aratarak kurulum ekranına erişebilirsiniz.

App_Store 

Yeni Proje Oluşturuyoruz

Yeni bir proje oluşturabilmek için öncelikle XCode uygulamasını çalıştırıyoruz.

pic_01 

Yeni proje oluştur dedikten sonra iOS proje şablonunu seçiyoruz.

pic_02 

Single View Application proje şablonunu seçiyoruz.

Not: Proje şablonları ile yapabileceklerimizi diğer yazılarımızda detaylı açıklıyor olacağım.

pic_03 

Proje adını girdikten sonraki adım da ilk XCode projemizi oluşturmuş bulunuyoruz. Şimdi iOS emulatörü çalıştırabilme kısmına geldik.

Editör ile hem iPhone 3.5 inch, iPhone 4 inch & Retina ekran hem de iPad için emulatörlerde projelerinizi çalıştırabilmeniz mümkündür.

pic_04

Çıkan sonucu görebilmek için çalıştır düşmesine basarak sonucu görebiliyoruz. Tabii ki boş bir emülatör :)

pic_05 

Telefonun bütün özelliklerine sahip bir emülatör ile karşılaşıyoruz. Bilgisayarınızın modeline göre çalışma performansı ile sorunlar yaşayabilirsiniz. Benim yaklaşık 4 senelik MacBookPro mda emülatör ‘ün çalışıp kendisini toplarması 5 saniye civarında sürüyordu. Yeni model bir pc ile saliseler içerisinde çalışmasını sağlayabilirsiniz.

Bu sayede XCode ile ilk projemizi oluşturmuş oluyoruz.

Bir sonraki yazımızda temel olarak sınıf yapısına değiniyor olacağız.

İyi günler dilerim.

--

TT