Eğer gerçekten istersen, mutlaka olur.

Adobe Native Extension #3 : iOS

11 ay ago, Written by , Posted in NOTLARIM

Bir önceki yazımda Android kütüphanesi geliştirmiş ve ActionScript bağlantısını kurarak AnimateCC’ye extension geliştirmiştik. ANE nedir, neden ihtiyaç duyuyoruz sorularının cevabını tekrar gözden geçirmek için sizi öncelikle şuraya alayım: Adobe Air Native Extension

Bu yazımda Objective C kullanarak daha önceki yazımda olduğu gibi bir alert dialog göstermek için native kütüphane yazacağım. Sonra bu kütüphaneyle ANE paketlemesi yapacağım.

Gerekli Ortamın Kurulması

ANE geliştirebilmemiz için gerekenler: AIR 3 SDK , ActionScript kod yazabilmek için bir IDE (ben Adobe Flash Builder 4.7 kullanacağım) ve Objective C kütüphanesi geliştirmek için XCode

XCode için:
https://developer.apple.com/xcode/

AIR 3 SDK için:
http://www.adobe.com/devnet/air/air-sdk-download.html

SWC Kütüphanesinin Oluşturulması(ActionScript Tarafı)

Bu bölümde Objective C kodumuz ve AIR uygulaması arasında arayüz görevi görecek bir ActionScript kütüphanesi yazacağız. Yazacağımız kod Android için yazdığımız kütüphaneyle aynı olacak. Bir ExtensionContext oluşturacağız ve bunu ilklendireceğiz. Bu context sayesinde native taraf ve AIR arasında bir köprü kurmuş olacağız. Buna ek olarak ise basit bir fonksiyon yazacağız. Bu fonksiyon Objective C tarafındaki bir methodu tetikleyecek. Bu metod da ekrana bir alert dialog getirerek, gönderdiğimiz mesajı yayınlayacak.

SWC tarafı bu kadar. Şimdi iletişime geçeceğimiz iOS-Objective C tarafını yazalım.

Objective C Kütüphanesinin Oluşturulması(iOS Tarafı)

Amacımız .a uzantılı bir kütüphane oluşturmak olduğundan, öncelikle bir Cocoa Touch Static Library projesi oluşturmamız lazım. Sırasıyla adımlar şu şekilde:

Proje dosyamız oluştuktan sonra, ilk olarak projemizin Build Settings ayarlarına giriyoruz ve “Buid Active Architecture Only” ayarını hem debug hem de release için NO yapıyoruz. Bu şekilde kütüphanemizi derlediğimizde hem ARM hem de x86 platformu için çalışabilir bir kütüphane elde etmiş olacağız.

Buna ek olarak FlashRuntimeExtensions.h header dosyasını projemize dahil etmemiz lazım. Bu kütüphaneyi indirdiğiniz AIR SDK içerisine bulabilirsiniz. Projeye header dosyamızı eklemek için ise projeye sağ tıklayıp “Add Files to AlertDialog” seçeneğini seçiyor ve dosyanın yerini gösteriyoruz.

Bu aşamaları geçtikten sonra elimizdeki yapı aşağıdaki gibiyse, kodlamaya hazırız demektir.

AlertDialog.h’a girip aşağıdaki kodları yazalım. Burada dört tane fonksiyonumuz bulunmakta: VXIOSApiContextInitializer, VXIOSApiContextFinalizer, VXIOSApiExtInitializer, VXIOSApiExtFinalizer.

Yukarıda yazdığımız fonksiyonların işlevlerini detaylı bir şekilde AlertDialog.m dosyasını yazarken inceleyeceğiz. Şimdi bunu kodlayalım.

Kütüphanemiz hazır. Şimdi derleyebiliriz. Derlerken dikkat etmemiz gereken nokta “Generic iOS Device” seçeneğiyle çalışmamız gerektiği. Bu sayede evrensel bir iOS kütüphanesi yapmış olacağız. Herhangi bir iPhone cihazına özel olmamış olacak. Projemizi derlediğimizde gördüğünüz gibi Products altında libAlertDialog.a adında kütüphanemiz oluştu.

ANE Paketlemesinin Yapılması

Artık hem swc hem de objective c kütüphanemiz hazır olduğuna göre elimizde iki adet dosya bulunmakta: libAlertDialog.a ve AlertDialogSample.swc. Bu dosyalarla birlikte çeşitli ayarlamalar yaparak ANE paketlemesi yapacağız. Bunun için daha önce indirmiş olduğumuz AIR SDK’dan yararlanacağız.Şimdi masaüstümüzde bir klasör oluşturalım ve içeriği aşağıdaki resimdeki gibi olsun.

İlk olarak “AlertDialogSample.swc” dosyasını bu dizine kopyalayın. Bu dosyayı winrar ya da türevinde açarak içindeki “library.swf” dosyasını oluşturduğunuz klasörlere(iPhone-ARM,iPhone-x86 ve default) çıkartın.
Daha sonra ise “libAlertDialog.a” dosyasını iPhone-ARM ve iPhone-x86 klasörleri altına kopyalayın. Son durumda klasör yapımız aşağıdaki şekildeyse eğer bir sonraki aşamaya geçebiliriz.

Şimdi bulunduğunuz dizinde(Build Ane dosyası benim için) “extension.xml” adında yeni bir dosya oluşturun. Bu dosyanın içeriği aşağıdaki gibi olsun.

Son olarak dosya yapımız şu şekilde oldu:

Bundan sonrasında terminal kullanarak ilerleyeceğiz. Öncelikle windows kullanıyorsanız cmd , mac os kullanıyorsanız terminal açarak oluşturduğunuz dosya içerisine girin.

Bu şekilde “alertdialogsample.ane” dosyası proje dizininizde oluşacaktır.
Paketlemeyle ilgili detaylı bilgi için Adobe ADT Packaging

Böylece Animate CC için nasıl iOS kütüphanesini kullanarak ANE oluşturduğumuzu öğrenmiş olduk. Herhangi bir probleminizde veya zorlandığınız aşamada soru sormaktan çekinmeyin.

Hayatınızdan kod eksik olmasın.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir