Wednesday, January 30, 2013
Daripada Java ke Objective C
Kepada sesiapa yang baru nak belajar objective c daripada Java background atau dari language lain, ini presetation slide yang bagus untuk permulaan.
http://www.slideshare.net/bobmccune/ob-4933190
Slide ni tahun 2010 lagi masa iOS 4, tapi masih lagi boleh guna. Sejak ios 5 dah tak perlu fikir pasal memory management dalam kebanyakan kes sebab semua dah di manage oleh Automatic Reference Counting atau ARC.
http://www.slideshare.net/bobmccune/ob-4933190
Slide ni tahun 2010 lagi masa iOS 4, tapi masih lagi boleh guna. Sejak ios 5 dah tak perlu fikir pasal memory management dalam kebanyakan kes sebab semua dah di manage oleh Automatic Reference Counting atau ARC.
Labels:
Basic
Sunday, January 27, 2013
Key Value Coding
Biasanya programming language menggunakan dot syntax untuk panggil method atau dapatkan property.
contohnya,
//get
CGFloat height = box.height;
//set
box.height = 5;
Dengan menggunakan KVC, untuk set atau get
//get
[box setValueForKey:@"height"];
//set
CGFloat height = [box valueForKey:@"height];
Dengan menggunakan KVC ada banyak kelebihan. Contohnya anda ada satu Class Box . Di bawah menunjukkan interface class box, ada 3 properties height, width dan length
Contohnya ada satu array yang mempunyai boxes, dan anda nak tambahkan total height. Macam mana, lagi simple bukan? Contoh lagi jika nak hanya widths array Jika anda lihat @sum dinamakan collection operator, ada beberapa lagi collection operator seperti @avg, @min, @max dan @count seperti dalam documentation
http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/KeyValueCoding/Articles/CollectionOperators.html
Yang menarik adalah boleh juga kalau nak define custom operator sendiri. Dalam objective c tak semestinya menggunakan KVC tapi ada sesetengah tempat yg lebih baik menggunakan KVC. Dengan menggunakan KVC juga dapat memendekkan lagi code dan juga menjadikan code nampak lebih kemas seperti contoh di atas.
contohnya,
//get
CGFloat height = box.height;
//set
box.height = 5;
Dengan menggunakan KVC, untuk set atau get
//get
[box setValueForKey:@"height"];
//set
CGFloat height = [box valueForKey:@"height];
Dengan menggunakan KVC ada banyak kelebihan. Contohnya anda ada satu Class Box . Di bawah menunjukkan interface class box, ada 3 properties height, width dan length
Contohnya ada satu array yang mempunyai boxes, dan anda nak tambahkan total height. Macam mana, lagi simple bukan? Contoh lagi jika nak hanya widths array Jika anda lihat @sum dinamakan collection operator, ada beberapa lagi collection operator seperti @avg, @min, @max dan @count seperti dalam documentation
http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/KeyValueCoding/Articles/CollectionOperators.html
Yang menarik adalah boleh juga kalau nak define custom operator sendiri. Dalam objective c tak semestinya menggunakan KVC tapi ada sesetengah tempat yg lebih baik menggunakan KVC. Dengan menggunakan KVC juga dapat memendekkan lagi code dan juga menjadikan code nampak lebih kemas seperti contoh di atas.
Labels:
Basic,
Key Value Coding
Saturday, January 19, 2013
Hello World
Programming iOS/Mac memerlukan Xcode ide. anda boleh download dengan free di Mac App Store atau mungkin dari tempat lain.
2. Kita akan buat OSX application, click Cocoa Application dan tekan Next

4. Kemudian anda akan dipaparkan seperti gambar di bawah
5. Di Project Navigator, anda dapat lihat files yang dicreate secara automatik oleh Xcode. Yang perlu diberi perhatian adalah AppDelegate.h, AppDelegate.m dan MainMenu.xib.
6. Dalam objective C, Class file dibahagi kepada '.h' dan '.m'. Header file adalah file '.h', ia berfungsi untuk declaration class variable/property. '.m' file pula adalah implementation file, iaitu dimana code body akan ditulis. File separation antara '.h' dan '.m' ini juga menjadikan code nampak lebih bersih.
7. Ambil perhatian bahawa class AppDelegate adalah mula-mula dipanggil selepas App dibuka. Untuk Mac, method pertama yang dipanggil oleh App secara automatik adalah applicationDidFinishLaunching.
8. Pergi ke dalam applicationDidFinishLaunching dan tambah code ini. NSLog() berfungsi untuk log ke console. Ia bersamaan dengan printf() untuk c.
9. Kemudian tekan Run di upper left corner. Pertama sekali anda akan dapati satu window kosong. Abaikan window ini kerana ia tak termasuk dalam tutorial ini. Sila take note satu view baru dibuka dibawah iaitu Debug Area. Di console anda dapati Hello World! ditulis bermakna anda berjaya untuk langkah pertama.
1. Apabila pertama kali buka Xcode, anda akan dipaparkan seperti di bawah. Pilih Create New Project
2. Kita akan buat OSX application, click Cocoa Application dan tekan Next
3. Kemudian tulis nama application kat product name 'Intro'. Pastikan Use Automatic Reference Counting (ARC) dicheck. Dengan ARC kita tidak perlu fikir banyak pasal memory management. Uncheck Core Data, Core Data adalah untuk application yang berasaskan database. Kemudian tekan Next.

4. Kemudian anda akan dipaparkan seperti gambar di bawah
5. Di Project Navigator, anda dapat lihat files yang dicreate secara automatik oleh Xcode. Yang perlu diberi perhatian adalah AppDelegate.h, AppDelegate.m dan MainMenu.xib.
6. Dalam objective C, Class file dibahagi kepada '.h' dan '.m'. Header file adalah file '.h', ia berfungsi untuk declaration class variable/property. '.m' file pula adalah implementation file, iaitu dimana code body akan ditulis. File separation antara '.h' dan '.m' ini juga menjadikan code nampak lebih bersih.
7. Ambil perhatian bahawa class AppDelegate adalah mula-mula dipanggil selepas App dibuka. Untuk Mac, method pertama yang dipanggil oleh App secara automatik adalah applicationDidFinishLaunching.
8. Pergi ke dalam applicationDidFinishLaunching dan tambah code ini. NSLog() berfungsi untuk log ke console. Ia bersamaan dengan printf() untuk c.
Labels:
Basic
Friday, January 18, 2013
Intro kepada iOS/Mac Programming
Sebelum belajar programming untuk iOS/Mac, ada beberapa perkara yang perlu diketahui
2. Objective C Adalah subset kpd c language, maksudnya c atau c++ juga boleh diguna selain objective c di XCode
3. Multithreading
Dipanggil Grand Central Dispatch, multithreading untuk Mac/iOS adalah mudah. Dengan GCD, tidak perlu fikir untuk create thread, cuma panggil function dan set untuk di run pada thread yang lain.
4. Animation
Animation di dalam mac/iOS dibahagi kpd implicit dan explicit animation. Implicit animation boleh dikatakan animation yang terjadi dengan automatik. Contohnya jika sesuatu object diubah position. Ia secara auto akan animate ke position yang baru. Untuk explicit animation, satu animation object mesti dibuat terlebih dahulu, explicit animation memungkinkan animation yang lebih advance.
Setiap Animation juga akan secara automatik di run pada thread selain main thread. Ini menjadikan user interface (UI) tidak diblok atau tidak mengganggu kelancaran UI.
5. Dynamic language
Objective c adalah dynamic language. Dengan dynamic language akan memungkinkan code yang ditulis lebih pendek kerana sifat language yang fleksibel. Ia juga menjadikan code lebih baik dan clean.
6. Programming Technology semakin berkembang setiap OS version
Setiap OS/iOS version, akan ada teknologi yang baru daripada Apple. Menariknya kebanyakannya akan lebih memudahkan kita code dengan lebih baik dan setiap API dari apple adalah sangat konsisten menyebabkan lebih senang untuk belajar sesuatu yang baru.
Belajar objective c syntax adalah paling penting. Ini disebabkan Objective c syntax banyak juga berbeza berbanding programming language lain. Bagaimanapun objective c syntax adalah di design untuk self documenting. Ia membolehkan programmer dapat faham code dengan lebih baik walaupun kurang comment
Contohnya:
Untuk create satu kotak (box), dalam c dan objective c, method syntax adalah
//C
- (void)createBoxWithHeight:(float)height width:(float)width length:(float)length
{
Untuk panggil method,
//C
Sesiapa yang baru belajar objective c pastinya pening dengan syntax yang digunakan. Tetapi ia convenient dan self documenting. Sebelum semicolon, semuanya adalah sebahagian daripada method, ia adalah sebagai self description yang pendek, kalau letak apa-apa nama pun boleh sebenarnya. Selepas semicolon adalah nilai parameter yang dipass.
Beberapa Kelebihan objective c
1. Tak perlu fikir memory management sebab dihandle secara automatik oleh ARC (kebanyakan kes)2. Objective C Adalah subset kpd c language, maksudnya c atau c++ juga boleh diguna selain objective c di XCode
3. Multithreading
Dipanggil Grand Central Dispatch, multithreading untuk Mac/iOS adalah mudah. Dengan GCD, tidak perlu fikir untuk create thread, cuma panggil function dan set untuk di run pada thread yang lain.
4. Animation
Animation di dalam mac/iOS dibahagi kpd implicit dan explicit animation. Implicit animation boleh dikatakan animation yang terjadi dengan automatik. Contohnya jika sesuatu object diubah position. Ia secara auto akan animate ke position yang baru. Untuk explicit animation, satu animation object mesti dibuat terlebih dahulu, explicit animation memungkinkan animation yang lebih advance.
Setiap Animation juga akan secara automatik di run pada thread selain main thread. Ini menjadikan user interface (UI) tidak diblok atau tidak mengganggu kelancaran UI.
5. Dynamic language
Objective c adalah dynamic language. Dengan dynamic language akan memungkinkan code yang ditulis lebih pendek kerana sifat language yang fleksibel. Ia juga menjadikan code lebih baik dan clean.
6. Programming Technology semakin berkembang setiap OS version
Setiap OS/iOS version, akan ada teknologi yang baru daripada Apple. Menariknya kebanyakannya akan lebih memudahkan kita code dengan lebih baik dan setiap API dari apple adalah sangat konsisten menyebabkan lebih senang untuk belajar sesuatu yang baru.
Perkara asas perlu dipelajari
1.SyntaxBelajar objective c syntax adalah paling penting. Ini disebabkan Objective c syntax banyak juga berbeza berbanding programming language lain. Bagaimanapun objective c syntax adalah di design untuk self documenting. Ia membolehkan programmer dapat faham code dengan lebih baik walaupun kurang comment
Contohnya:
Untuk create satu kotak (box), dalam c dan objective c, method syntax adalah
//C
void createBox(float height, float width, float length)
{
//method body
}
//Objective C
{
//method body
}Untuk panggil method,
//C
createBox(6, 3, 5);
//Objective C
[self createBoxWithHeight:6 width:3 length:5];
Sesiapa yang baru belajar objective c pastinya pening dengan syntax yang digunakan. Tetapi ia convenient dan self documenting. Sebelum semicolon, semuanya adalah sebahagian daripada method, ia adalah sebagai self description yang pendek, kalau letak apa-apa nama pun boleh sebenarnya. Selepas semicolon adalah nilai parameter yang dipass.
Labels:
Basic
Monday, January 14, 2013
Core Animation Intro
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Dalam video ada 3 situasi
1. Ketika mouse diklik, object merah bergerak ke mouse tanpa animation (implicit animation disabled)
2. Ketika mouse di drag, object merah bergerak menggunakan implicit animation dan object biru berputar dengan explicit animation
3. Ketika mouse dilepas, object biru bergerak ke mouse dgn explicit animation
Secara kasar, implicit animation maknanya animation terjadi dengan automatik, contohnya hanya tukar property value dan secara automatic terjadinya animation. Explicit animation pula perlu coding dan boleh digunakan untuk animation yg lebih advance.
Jika anda baru belajar, mesti code mcm tk masuk akal, tetapi selepas belajar basic, ini hanya sesuatu yg mudah, kerana core animation sendiri mmg api yg mudah.
Code
Download
Labels:
animation
Assalamualaikum,
Blog ni akan menceritakan pasal Apple Mac OS dan juga programming tutorial untuk Apple device.
Saya seorang programmer yang masih belajar lagi menggunakan Cocoa framework iaitu programming untuk Apple device dan juga telah membuat beberapa apps untuk Mac OS
Jika ada soalan sila kemukakan di ruangan komen atau emel
lutfime_2000@yahoo.com
Blog ni akan menceritakan pasal Apple Mac OS dan juga programming tutorial untuk Apple device.
Saya seorang programmer yang masih belajar lagi menggunakan Cocoa framework iaitu programming untuk Apple device dan juga telah membuat beberapa apps untuk Mac OS
Jika ada soalan sila kemukakan di ruangan komen atau emel
lutfime_2000@yahoo.com
Subscribe to:
Posts (Atom)




