Trang chủ > Lập trình iPhone cơ bản > Lập trình iPhone – HelloWorld

Lập trình iPhone – HelloWorld


Nếu bạn đã từng học lập trình thì chắc chắn bạn biết rằng HelloWold là chương trình kinh điển trong ngành IT🙂, bất cứ ngôn ngữ lập trình nào thì HelloWorld cũng là chương trình demo đầu tiên mà bạn viết. Chúng ta cũng sẽ bắt đầu bằng những gì được cho là nên phải bắt đầu từ đó.
Có rất nhiều kiểu để thể hiện một chương trình HelloWorld trên iPhone, mình sẽ chỉ cho các bạn cách đơn giản nhất. Để lập trình iPhone, bạn phải có một số hiểu biết nhất định về ngôn ngữ Objective-C. Apple có cung cấp một số tutorial đơn giản, ngắn gọn về Objective-C. Các bạn có thể xem ở đây.
Nếu bạn chưa cài đặt iPhone SDK trên máy tính của mình, bấm vào đây để tìm hiểu cách cài đặt. Sau khi bạn đã hoàn tất công việc cài đặt, chúng ta cùng tiếp tục.
Tạo ứng dụng Navigation-Based

Mở bộ công cụ Xcode

Bạn sẽ thao tác với bộ công cụ Xcode để thực hiện mọi công việc trong quá trình phát triển các ứng dụng của mình.
Tạo new iPhone OS Project
Vào Xcode>New Project một cửa sổ mới sẽ xuất hiện như hình dưới

Bạn phải chọn Application bên dưới iPhone OS và chọn Navigation-Based Application. Bấm Choose… và bạn sẽ được yêu cầu đặt tên cho project. Gõ vào “HelloWorld” và ta cùng bắt đầu.
Tìm hiểu về những files mặc định
Bạn có tự hỏi những file gì mà nhiều vậy?
Có khá nhiều file được tự động thêm vào project của bạn. Lần đầu mới nhìn, mình có cảm giác như là đang bị đe dọa. Đừng quá lo lắng, chúng ta chỉ cần chỉnh sửa một file trong số đó. Sau đây mình sẽ giải thích sơ qua về các file khác. Bạn có thể bỏ qua không cần đọc phần này, tuy nhiên lần đầu tiên khi thấy nhiều file như vậy khi lập trình iPhone, mình cảm thấy khá bối rối.
1. CoreGraphics.framework, Foundation.framework, UIKit.framework- Chắc bạn đã đoán được, đây là môt tập hợp các library functions cung cấp sẵn bởi Apple mà chúng ta sẽ sử dụng trong các ứng dụng của mình. Chúng ta sử dụng chúng giống như việc include thư viện trong các ngôn ngữ lập trình khác.
2. HelloWorld.app – Đây chính là ứng dụng của bạn được cài đặt vào iPhone. Ngay lúc này, chúng ta chưa thật sự cần quan tâm đến nó.
3. Hello_World_Prefix.pch – Đây là một file được include khác, biên dịch từ nhiều file riêng biệt giúp bạn không cần phải include từng file một vào trong project. File này chứa một số đoạn mã để include dữ liệu bên trong frameworks.
4. Hello_WorldAppDelegate.h – Đây là file header chứa tất cả các định nghĩa về biến mà ta sẽ sử dụng. Tương tự như một file header trong C hay C++.
5. Hello_WorldAppDelegate.m – Phần cốt lõi của ứng dụng nằm ở đây. File chính là điểm bắt đầu của ứng dụng. File main.m gọi object này.
6. Info.plist – file này chứa nhiều thông tin(meta information) khác nhau trong chương trình của bạn. Bạn sẽ không cần phải động chạm đến file này cho đến khi bạn sẵn sàng cho việc test thử chương trình trên iPhone.
7. main.m – Giống như hầu hết các ngôn ngữ lập trình khác, file này chứa hàm main. Đây là khởi điểm của chương trình. Hàm main về cơ bản khởi tạo object và khởi động chương trình. Bạn không phải chỉnh sửa file này.
8. MainWindow.xib – Chứa các thông tin trực quan về cửa sổ màn hình chính(main window). Nếu bạn nháy đúp lên nó, một chương trình có tên gọi “Interface Builder” sẽ được được mở ra.Chúng ta sẽ nói đến “Interface Builder” sau. Bạn cần nhớ một điều, file này không chứa bất kỳ một dòng mã nào cả.
9. RootViewController.h, RootViewController.m – Những file này dùng cho một view controller đã được thêm sẵn vào cửa sổ màn hình chính(main window). Về cơ bản, Apple đã tạo sẵn một giao diện đơn giản ngay khi bạn bấm vào Navigation-Based Application. Vì hầu hết các ứng dụng kiểu navigation-based đều sử dụng một TableView, Apple cung cấp sẵn cho chúng ta.
10. RootViewController.xib – Đây là một view mà Apple cung cấp sẵn dưới dạng table. Nó có các dòng và cột. Chúng ta sẽ hiển thị lời chào “HelloWorld” trên một trong số các dòng của table này.
Tất cả các file trên tập hợp lại để tạo nên một chương trình cơ bản. Nào, bạn hãy bấm vào nút Build and Go ở phía trên của Xcode. Chú ý cái drop-down phía trên bên trái hiển thị Simulator|Debug, có nghĩa là bạn bảo Xcode rằng bạn đang test trên thiết bị giả lập iPhone(iPhone Simulator).

Bạn sẽ thấy iPhone Simulator khởi động và chương trình của bạn bắt đầu chạy. Hiện tại vẫn chưa có gì thú vị xảy ra. Tất cả những gì bạn thấy chỉ là một TableView mà Apple đã thêm sẵn cho chúng ta. Việc ta cần làm là thêm một dòng(row) vào TableView này.


Cập nhật UITableView Cells để hiển thị lời chào “HelloWorld”.
Bây giờ chúng ta sẽ code tý chút
Ta bắt đầu bằng việc mở file RootViewController.m. Đây là view controller mà Apple đã thêm sẵn vào cửa sổ chính của chương trình. Tất cả các hàm mà bạn thấy đã được tạo sẵn ở đây được overridden từ lớp cha TableView. Vì chúng ta đang chỉnh sửa table nên các hàm này liên quan đến thao tác chỉnh sửa table. Tìm hàm numberOfRowsInSection.
-(NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section{
return 0;
}

Hàm này cho ứng dụng biết table sẽ chứa bao nhiêu dòng. Hiện tại nó trả về 0. Chúng ta sẽ sửa lại thành return 1. Ta muốn ứng dụng sẽ hiển thị 1 dòng trên table. Bây giờ, kéo xuống hàm cellForRowAtIndexPath. Hàm này được gọi một lần đối với mỗi dòng. Đây là nơi ta sẽ định nghĩa những gì sẽ được hiển thị tại từng dòng. Trong trường hợp này ta muốn hiển thị lời chào “Hello World”.
– (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *MyIdentifier = @”MyIdentifier”;

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:MyIdentifier] autorelease];
}
// Set up the cell
return cell;
}

Những gì mà hàm này đang làm là tạo ra một đối tượng cell và return đối tượng này. Đoạn mã trong khối if(cell==nil) kiểm tra xem chúng ta đã tạo ra một cell trước đó chưa. Nếu chưa, tạo một cell mới, còn không thì sử dụng cell đã tạo trước đó. Việc này giúp cho ứng dụng có performance tốt hơn vì ta không phải tạo ra cell mới mỗi lần chương trình gọi lại hàm này. Bạn thêm dòng code sau vào ngay trước dòng chú thích // Set up the cell:
[cell setText:@”Hello World”];
– (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *MyIdentifier = @”MyIdentifier”;

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:MyIdentifier] autorelease];
}

[cell setText:@”Hello World”];

// Set up the cell
return cell;
}

Ta gọi phương thức setText của đối tượng cell và truyền vào chuỗi “Hello World”. Bạn biết rằng trong Objective-C, chuỗi bắt đầu với ký tự “@”. Bây giờ bấm nút Build and Go để khởi động iPhone Simulator. Bạn sẽ thấy một màn hình như dưới đây:

Từ lúc này, bạn có thể sử dụng mã trong chương trình này như là nền tảng cho việc tạo một ứng dụng kiểu Navigation-Based. Trong bài viết sau, mình sẽ mô tả cách để hiển thị một mảng kiểu chuỗi để tạo một chương trình chương trình đơn giản với chức năng navigation. Nếu bạn không có thời gian để đọc bài viết này, bạn có thể download sample code cho ứng dụng helloworld tại đây(chú ý, sau khi download về đổi đuôi file từ .docx thành .zip). Hy vọng các bạn hài lòng với bài viết này hoặc các bạn có câu hỏi gì hãy viết trong phần comments. Chúc các bạn vui vẻ!

  1. 18/11/2010 lúc 5:13 sáng

    Good quá! Tiếp nữa đi bác🙂

  1. No trackbacks yet.

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s

%d bloggers like this: