BTC USD 81,002.9 Gold USD 4,378.12
Time now: Jun 1, 12:00 AM

Belajar iOS/Mac Programming

lutfi

Freshie
Messages
13
Joined
Mar 5, 2012
Messages
13
Reaction score
2
Points
8
Salam, thread ini adalah tutorial tentang bagaimana nak buat app untuk iOS/Mac jika ada yang berminat

Sebelum belajar programming untuk iOS/Mac, ada beberapa perkara yang perlu diketahui

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.Syntax
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

Code:
//C
void createBox(float height, float width, float length)
{
    //method body
**

//Objective C
- (void)createBoxWithHeight:(float)height width:(float)width length:(float)length
{
    //method body
**


Untuk panggil method,

Code:
//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.

progi.png


Blog link: http://wancocoa.blogspot.com/2013/01/sebelum-belajar-programming-untuk.html
 
Last edited:
Hello World

Hello World
Programming iOS/Mac memerlukan Xcode ide. anda boleh download dengan free di Mac App Store atau mungkin dari tempat lain.

1. Apabila pertama kali buka Xcode, anda akan dipaparkan seperti di bawah. Pilih Create New Project
Screen+Shot+2013-01-20+at+9.12.30+AM.jpg


2. Kita akan buat OSX application, click Cocoa Application dan tekan Next
Screen+Shot+2013-01-20+at+9.12.41+AM.jpg


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.
Screen+Shot+2013-01-20+at+9.13.20+AM.jpg


4. Kemudian anda akan dipaparkan seperti gambar di bawah
Screen+Shot+2013-01-20+at+9.13.54+AM.jpg


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.

Code:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    // Insert code here to initialize your application
    NSLog(@"Hello World!");
{


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.

Screen+Shot+2013-01-20+at+10.15.39+AM.jpg


Blog link: http://wancocoa.blogspot.com/2013/01/hello-world.html
 
Last edited:
Sekadar pendpt peribadi...
Aku penah belajar Objective-C tp aku tak brp suka cara syntax ni ditulis psl susah utk bc dan perlu byk tulis simbol mcm return sebelum fungsi ditulis dgn cara (void).

Sebagai tambahan gak pd tutorial...korang kalu perhatikan byk type dlm Objective-C ni bermula dengan NS. NS tu bermaksud NeXTSTEP. OS dr kompeni yg Steve Jobs tubuhkn apabila dia keluar dr Apple. Byk benda dlm Objective-C ni dtg dr NeXTSTEP dulu..
 
Sekadar pendpt peribadi...
Aku penah belajar Objective-C tp aku tak brp suka cara syntax ni ditulis psl susah utk bc dan perlu byk tulis simbol mcm return sebelum fungsi ditulis dgn cara (void).

Sebagai tambahan gak pd tutorial...korang kalu perhatikan byk type dlm Objective-C ni bermula dengan NS. NS tu bermaksud NeXTSTEP. OS dr kompeni yg Steve Jobs tubuhkn apabila dia keluar dr Apple. Byk benda dlm Objective-C ni dtg dr NeXTSTEP dulu..

Memang betul org kata objective c ni panjang2, tp kalau kita dah declare method atau var, akan ada auto complete. Macam aku belajar objective c, ambik masa jgk nak biasa dengan syntax, tapi akhirnya ak memang lagi suka syntax objc daripada c. Juga ak memang kagum dengan apa yang objective c (Apple) ni boleh buat walaupun mungkin juga sbb ak tak tahu language lain sangat.

Sesiapa yg ada guna Mac dan ada Xcode boleh tolong tak, try bukak app ni, ia untuk automatik tutorial guna automator, nak test jd ke tak
Code:
https://www.dropbox.com/sh/yi1w39o85k3vk1a/B-06m54dZi
 
Last edited:
ak tngk mcm tkde yg minat.. mls plk nk sambg,
lgpn ak tngh busy buat app skrg, haha
 
huhu beres, nnti ak update, walaupun ak pn dlm proses blajar lg
 
Buat Simple Calculator app

Salam,

Dalam post ni, saya akan ajar bagaimana untuk buat Simple Calculator app guna Xcode
Anda akan belajar beberapa perkara

1. Cara menggunakan interface builder
2. Cara connect interface builder dengan code
3. NSButton, NSPopUpButton, NSTextField

Step
1. Buat projek baru Xcode dan pilih Cocoa Application, pada product name guna SimpleCalculator (tak kisah pn apa nama sebenarnya)

Xcode-10-1024x694.jpg


2. Pastikan uncheck Use Core Data dan check Use Automatic Reference Counting.

*Core Data adalah untuk app yang berasas database. Automatic Reference Counting (ARC) membolehkan kita tidak perlu fikir banyak pasal memory management kerana compiler yang ambil tugas itu.

3. Apabila project telah dibuat, pergi ke MainMenu.xib (xib dalam sebutan dipanggil nib). Apa yang anda lihat dipanggil Interface Builder (IB).

4. Object Library adalah dimana object yang akan diguna untuk interface.

SimpleCalculator.xcodeproj-—-MainMenu.jpg

Interface Builder

5. Pada Object Library, drag object supaya menjadi seperti rajah di bawah. Pada Object Library anda boleh search di bawahnya dan drag ke SimpleCalculator Window

Text Field (NSTextField)
Pop Up Button (NSPopUpButton)
Label (NSTextField)
Push Button (NSButton)

6. Tukar title supaya menjadi seperti dibawah. Anda boleh tukar title dengan double click pada object ataupun dengan tukar title di Attributes Inspector.
Xcode-8.jpg


Object yang telah di drag ke Window
7. Tekan butang Run dan anda ia akan memaparkan Window seperti yang telah dibuat di IB tetapi ia masih tidak boleh melakukan apa2.

8. Pada pop up button, kita mahu ia sebagai math operator, double click pada popup button, kemudian double click setiap menu item dan namakan seperti rajah di bawah.

Pada mulanya anda hanya ada 3 menu item, untuk tambah satu lagi menu item, click pada mana2 menu item. Kemudian copy dan paste menggunakan keyboard.

Xcode-11.jpg


Menu items dalam pop up button
9. Bahagian interface sudah siap. Sekarang kita perlu connect object di dalam IB kepada AppDelegate. Untuk ini tekan Assistant Editor

Xcode.jpg


10. Selepas tekan Assistant Editor, sepatutnya view akan terbahagi 2 bahagian seperti di bawah.

SimpleCalculator-1024x695.jpg


11. Untuk connect setiap object ke AppDelegate, hold Ctrl key, kemudian drag object ke AppDelegate.h menggunakan mouse.

Xcode-6.jpg


Connect outlet by dragging from IB to AppDelegate.h
12. Pastikan Connection adalah Outlet untuk setiap object melainkan Calculate button gunakan connection Action.

Xcode-4.jpg


13. Setelah siap setiap nama sepatutnya seperti berikut.

*IBOutlet bermaksud sesuatu property itu diconnect dengan IB supaya kita boleh mendapat value dan sebagainya. manakala IBAction bermaksud sesuatu Action (method) akan dipanggil setelah diclick di interface

Code:
@property (assign) IBOutlet NSWindow *window;
@property (weak) IBOutlet NSTextField *firstTextField;
@property (weak) IBOutlet NSPopUpButton *operatorPopup;
@property (weak) IBOutlet NSTextField *secondTextField;
@property (weak) IBOutlet NSTextField *resultTextField;
 
- (IBAction)calculate:(id)sender;

14. Sekarang pergi ke AppDelegate.m, anda akan dapati – (IBAction)calculate:(id)sender. Ia secara automatik dibuat oleh Xcode selepas di connect.

15. Sekarang dalam AppDelegate.m tambah seperti dibawah.

Code:
- (IBAction)calculate:(id)sender
{
    NSLog(@"In calculate method!");
**

16. Kemudian Run dan tekan butang Calculate. Jika betul maka dalam Output Area iaitu bahagian bawah akan tertulis seperti berikut

2013-03-09 13:53:32.758 SimpleCalculator[4680:303] In calculate method!

17. Dalam method calculate:, tukar code menjadi seperti di bawah

Code:
- (IBAction)calculate:(id)sender {
    NSLog(@"In calculate method!");
    CGFloat firstNumber = self.firstTextField.floatValue;
    CGFloat secondNumber = self.secondTextField.floatValue;
    CGFloat result = 0;
 
    switch (self.operatorPopup.indexOfSelectedItem) {
        case 0: //X
            result = firstNumber * secondNumber;
            break;
        case 1: // /
            result = firstNumber / secondNumber;
            break;
        case 2: //+
            result = firstNumber + secondNumber;
            break;
        case 3: //-
            result = firstNumber - secondNumber;
            break;
        default:
            break;
    **
    self.resultTextField.floatValue =result;
**

18. Run dan cuba kalculator yang telah siap!

19. Dalam code ni mula2 kita ambil nilai daripada textfield di IB dan masukkan dalam firstNumber dan secondNumber.

20. Kemudian untuk tahu operator mana yang dipilih kita gunakan switch dan method dari NSPopupButton indexOfSelectedItem. Index adalah bermula dari 0, daripada nilai index kita buat operasi yang sewajarnya ke dalam variable result.

21. Akhirnya nilai result di pas ke resultTextField untuk update interface.

*Jika tak faham sesuatu fungsi, documentation sangatlah berguna. Pada bahagian sebelah kanan di Quick Help, apabila anda tekan cursor mouse contohnya di indexOfSelectedItem. Quick Help akan tulis description untuk indexOfSelectedItem. Kemudian tekan NSPopUpButton Class Reference untuk maklumat lebih lanjut tentang class NSPopUpButton ni.

Xcode-12.jpg

Quick Help

p/s: Sila subscribe di blog baru aku http://wancocoa.bijokmind.com untuk artikel baru
 
Back
Top
Log in Register