Monthly Archives: March 2014

Chap 3: Những đối tượng cơ bản trong Xcode

I. Thông tin chung:

– Nút (Button) và nhãn (Label ) là 2 thứ khó có thể thiếu được trong một ứng dụng. Button giúp người dùng tương tác với ứng dụng còn Label giúp người dùng hiểu thông tin đang được hiển thị mang ý nghĩa gì.

 

II. Nội dung chính:

1. Label (UILabel):

Những thứ có thể được tùy chính trong 1 Label bao gồm:

– Font,

– TextColor

– TextAligment (TextAligment đã được chuyển thành một thuộc tính (property) trong IOS 6)

– enable: Thực ra thì một Label gốc sẽ không tương tác với người sử dụng nghĩa là các sự kiện (Event) không hề có. Tuy nhiên, enable một Label có nghĩa là làm nó hiện lên còn enable false sẽ làm mờ Label thông báo cho người dùng biết field kế bên nó đã bị vô hiệu.

 

* Ngoài ra, chúng ta còn có thể tạo bóng (shadow) dành cho những Label mà chúng ta muốn

lkLabel.shadowColor = [UIColor  blackColor];

lkLabel.shadowOffset = CGSizeMake(2.0, 2.0);

=> Đây là đoạn code dùng để tạo một bóng màu đen lệch qua phải 2 point và lệch xuống dưới 2 point. Nhìn có vẻ không đẹp lắm nhưng nếu bạn sử dụng màu xám (Gray) thì đổ bóng sẽ đẹp hơn nhiều.

 

* Chúng ta có thể điều chỉnh thuộc tính userInteractionEnabled thành YES để có thể tương tác với Label đó.

 

2. Button (UIButton):

– Button là một trong những control rất quen thuộc với lập trình viên. Sau đây là những dạng button được định nghĩa sẵn trong Object C. Bao gồm:

+ UIButtonTypeCustom

+ UIButtonTypeRoundedRect

+ UIButtonTypeDetailDisclosure

+ UIButtonTypeInfoLight

+ UIButtonTypeInfoDark

+ UIButtonTypeContactAdd

=> Thông thường chúng ta sử dụng RoundedRect vì đây là button chuẩn của Xcode để tương tác với người dùng. Nó chỉ bao gồm một button với hình chữ nhật được bo tròn và tương tác như những button trong các ngôn ngữ khác (ví dụ như Java và C #).

– Tuy nhiên khi chúng ta có những điều chỉnh lớn và mong muốn sử dụng Button theo ý thích của mình thì Custom là thứ mà chúng ta sử dụng. Nó cho phép bạn có thể tùy biến lại hoàn toàn button theo ý của bạn và rất dễ để sử dụng

 

Code:

UIButton *lkButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];

[lkButton setTitle:@”LapKan” forState:UIControlStateNormal];

[lkButton setTitle:@”LapKanSelected” forState:UIControlStateHighlighted];

Sau đó set tới vị trí của button:

[lkButton setFrame:CGRectMake(10, 10, 100, 44)];

[self.view addSubview:lkButton]

Bạn cần thêm vào phản hồi dành cho button này:

[lkButton addTarget:self action:@selector(lkButtonPressed:) forControlEvents:UIControlEventTouchUpInside];

 

* Đây là sự kiện được diễn ra:

– (void) lkButtonPressed:(UIButton *) sender

{

NSLog(@“You have pressed %@ button”, sender.titleLabel.text);

}

 

3. UISegmentedControl:

– UISegmentedControl là một lớp con của UIButton. Nó cho phép người sử dụng được lựa chọn trong nhiều tùy chọn khác nhau. Nó bảo đảm rằng ít nhất có 1 lựa chọn được đưa ra. Đây là cách thức đơn giản để lấy thông tin và lựa chọn của khách hàng.

– Những UISegmentedControl đơn giản chỉ bao gồm các con số nhưng bạn cũng có thể đưa vào đó những hình ảnh để làm cho chương trình trở nên trực quan hơn.

[self.segConaddTarget:self action:@selector(segmentChanged:) forControlEvents:UICOntrolEventValueChanged];

Và ta có action changed:

– (void) segmentChanged: (UISegmentedControl *)sender

{

int index = sender.selectedSegmentIndex;

NSString *title = [sender titleForSegmentAtIndex:index];

int x = [title intValue] * [title intValue];

NSString * newTitle =  [[NSNumber numberWithInt:x] stringValue];

[sender setTitle:newTitle forSegmentAtIndex:index];

}

 

4. UITextField:

– Đây là chỗ để người sử dụng nhập thông tin cần thiết vào.

– Điểm cần lưu ý khi sử dụng UITextField là cần phải lưu ý những người thiết kế để UITextField luôn luôn nằm ở nửa trên của màn hình vì khi bắt đầu nhập dữ liệu thì sẽ có một bàn phím ảo che kín phần nửa dưới của màn hình Iphone. Đối với Ipad, thì có vẻ dễ dàng do phần bàn phím ảo chỉ khoảng 1/5 màn hình. Và điểm quan trọng là cần phải ẩn bàn phím ảo đi sau khi đã nhập xong:

– (BOOL) textFieldShouldReturn:(UITextField *)textField

{

[textField resignFirstResponder];

return YES;

}

 

III. Kết luận:

– Đây là bài giới thiệu chung về các nút (Button) và nhãn (Label) trong Object C. Nó còn rất nhiều thuộc tính đáng lưu ý và nhiều cách sử dụng hơn nữa khi được kết hợp với Storyboard và TableView. Tôi sẽ cập nhật những controller khác trong những bài sau.

Chapter 2: Làm quen với Xcode

I. Thông tin chung:

– Xcode là công cụ chính để lập trình Iphone/Ipad. Tất cả những gì mới nhất của Apple đều được tích hợp trong Xcode, IOS 6 hay nhưng gì mới nhất của hệ điều hành. Apple rất ưu ái cho các lập trình viên những người đã làm cho hệ sinh thái của Apple trở nên đa dạng.

– Xcode còn tích hợp cả máy ảo (Simulation) để cho các lập trình viên thử nghiệm các sản phẩm không cần thiết bị thật và môi trường SandBox để kiểm tra các mua bán (in game purchase).

– Xcode là công cụ dễ dàng và đơn giản nhất để bạn phát triển một phần mềm Iphone hay Ipad.

 

II. Nội dung chính:

1. Template (Bản mẫu):

– Từ Xcode 4.2 trở lên có sự thay đổi về tên của các template này. Điều đó làm cho một số bạn sử dụng sách cũ không biết cần phải tạo Template nào để bắt đầu.

+ Single Template với Based-View (từ bản 4.1 trở về trước) là như nhau

2. Giao diện

– Phần bên phải là phần quản lý folder

+ Bạn nên chú ý, phần quản lý folder dù có được chia nhiều như thế nào thì nó vẫn là một folder duy nhất, cần phải có tên gọi khác nhau cho từng tài nguyên (Image, view, nib,…)

 

+ Có 3 kiểu để xem các đoạn code đang viết:

+ Kiểu bình thường: Phần giữa sẽ chỉ chứa code của file đang xem. Chế độ này giúp cho việc tập trung viết code tốt hơn

+ Kiểu kết hợp: Phần nội dung sẽ chia làm 2 phần: Dùng để tham chiếu và kết nối (Connect) các thành phần giao diện (Label, Textbox,…) với các dòng mã. (Hay nói chính xác hơn là sử dụng IB (Interface Builder))

 

* Sử dụng IB (Interface Builder):

* Ưu điểm:

– Sử dụng IB chính là cách ngắn nhất và đơn giản nhất để chương trình không chứa những lỗi sai và nhanh chóng thuận lợi hơn rất nhiều so với việc viết Code bằng tay

– Nhanh chóng nếu làm form với số lượng ít

– Hạn chế tối đa số lượng code phải đánh vào

– Trực quan dễ sử dụng, làm quen dễ dàng

* Nhược điểm:

– Không sử dụng được ở những form động (dynamicform) những form mà sự biến đổi dựa trên những thông số truyền vào

– Chậm nếu phải làm rất nhiều form

 

3. Những điểm cần lưu ý:

– Xcode là một IDE rất mạnh và do nhà phát triển chính là nhà sản xuất cho nên việc viết code được hỗ trợ rất đầy đủ.

– Lưu ý, bảng code để đánh máy của Mac có hỗ trợ đánh tiếng Việt bằng Unicode (tuy không được tiện cho lắm) đây là tính năng hết sức hữu hiệu. Bạn không cần xài Unicode hay Việtkey nhưng nó đem lại một bất lợi nhỏ là các chữ bạn đánh vào chưa hoàn tất (chưa nhấn phím “cách”) thì nó chưa là một chữ nên Xcode không biết có nên search hay không. Vậy nên lúc code hãy tắt chế độ VN sử dụng USA type, đẩy các dòng chữ bằng tiếng Việt lên thành các biến sửa chữa 1 lần duy nhất sẽ tiện lợi hơn rất nhiều.

 

4. Những chức năng đáng để sử dụng:

Xcode có rất nhiều chức năng hay để hỗ trợ cho lập trình viên trong việc viết code:

– Đánh dấu ghi chú (Apple Sign + /) để ghi chú cho phần code bạn đang chọn, thêm một lần nữa để bỏ phần đánh dấu này đi.

– Snapshot cho phép lưu lại tình trạng hiện tại của phần mềm trong lúc đang phát triển để trở lại bất cứ lúc nào

=> Hãy snapshot sau mỗi lần test chạy thành công (ưng ý) hay trước khi bắt đầu một thứ gì đó phức tạp.

 

III. Kết luận:

– Xcode là bộ công cụ miễn phí dành cho lập trình viên tốt nhất hiện nay. Không chỉ hỗ trợ tốt cho việc viết code mà còn mang theo những chức năng mạnh mẽ hỗ trợ database, backup.

Những lợi thế của game di động tại Việt Nam

* Game đã là một phần của công nghệ thông tin từ ngày bắt đầu có những chiếc máy vi tính cá nhân (PC). Chính game là động lực để những công ty sản xuất ra những thiết bị mạnh hơn để đáp ứng việc game ngày càng hiện đại và mạnh mẹ hơn.

– Giờ đây, game không còn là thứ chỉ có những thiết bị chuyên biệt (Xbox, PlayStation) hay những máy vi tính nặng nề (PC). Game trên di động đang phát triển với tốc độ chóng mặt và thay đổi những định kiến đã gắn liền với nó. Game di động giờ đây cũng có cốt truyện và đồ hoạ không hề thua kém PC.

 

Đối với lập trình viên:

– Những game trên PC thì việc lập trình có phần dễ thở hơn do không cần phải xem xét quá nhiều về phần cứng do những game trên Mobile thường nhẹ về cấu hình (nhất là những game được viết riêng cho IOS có cấu hình phần cứng tiêu chuẩn). Với Android, mọi chuyện có vẻ khó khăn hơn. Tuy nhiên các công cụ giả lập cũng đã làm việc rất tốt giúp cho chúng ta có thể xem xét hầu hết các điện thoại Android điển hình.

 

– Dễ dàng sửa lỗi (bug) cho game hơn so với việc phát hành bản cập nhật mà không có một ai để ý đến như game trên PC. Với một hệ thống phân phối hiện đã hoàn chỉnh (Google Play và AppStore), game di động dễ dàng được sửa những lỗi nghiêm trọng cực kì nhanh chóng và thuận tiện mà không tốn thêm bất kì chi phí nào (cho cả lập trình viên lẫn người sử dụng). Ngoài ra, việc nhận được các báo cáo lỗi cũng dễ dàng hơn rất nhiều nhờ có server và các nhận xét ngay trên Google Play hay AppStore cũng giúp ích khá nhiều cho các lập trình viên trong việc phát hiện và sửa lỗi chương trình.

 

– Dễ dàng cập nhật những tính năng mới thông qua mạng của nhà sản xuất như Apple (AppStore). Những tính năng mới sẽ được cập nhật liên tục làm cho game luôn luôn có thứ mới để khám phá chứ không phải chờ tận 1-2 năm mới có một bản cập nhật lớn. Ngoài ra, những sự kiện lớn như Halloween, Chirsmast Eve luôn luôn có những cập nhật phù hợp từ những vật dụng trong game đến những event giảm giá hay theme được thay đổi theo đúng không khí của sự kiện. Chính những điều này làm game không bị lãng quên và luôn phát triển.

Đối với người sử dụng:

– Không cần quan tâm đến việc nâng cấp game do những công cụ sẵn có của nhà phát hành (Apple với AppStore) đã làm việc đó thay bạn. AppStore của IOS 7 giờ đây tự động cập nhật những phiên bản mới của game thay vì bạn phải cập nhật nó bằng tay như lúc trước.

Điểm yếu của game di động đang dần được khắc phục:

– Nói đến game di động, người ta thường nghĩ đến những game đơn giản với đồ hoạ đẹp nhưng thiếu chiều sâu và cốt truyện. Giờ đây với sự phát triển mạnh mẽ của phần cứng, điển hình là iPad Air vừa được giới thiệu vào ngày 22/10/2013 cho sức mạnh đồ hoạ vượt trội đã mở đường cho việc phát triển game di động với đồ hoạ và cốt truyện mạnh mẽ hơn

 

– Đồ hoạ là một trong những yếu tố hàng đầu để giúp người chơi lựa chọn. Một game không đẹp thì dù hay cũng sẽ rất ít người chơi. Game di động lúc trước còn thiếu yếu tố này do chưa có được sự hỗ trợ từ những hãng khác và sức mạnh đồ hoạ chưa cho phép game di động làm được điều đó.

– Những engine vật lý mạnh đang được phát triển trên PC giờ bắt đầu lấn sân qua lĩnh vực di động. Trong đó phải kể đến Unity 3D, đây là một engine đa nền được phát triển bởi Unity Technologies. Sự lấn sân của Unity 3D đã giúp cho game di động trở nên đẹp đẽ và mạnh mẽ hơn rất nhiều so với việc dùng những code bình thường để vẽ.

+ Sự lấn sân của Unity 3D dẫn tới hàng loạt game di động mạnh mẽ được phát hành trên Android như Dragons and Titans, Three Kingdom Online. Một trong số những game đã vận dụng rất tốt khả năng của engine vật lý này là 3T. Đây không chỉ là một game đẹp đẽ và sắc nét ăn đứt những game cũng loại trên thị trường.

 

– Bên cạnh đó, việc phát triển những engine game từ chính nhà sản xuất như Apple cũng góp phần không nhỏ cho việc gia tăng số lượng lẫn chất lượng của game trên di động. Kèm theo việc giới thiệu iOS 7 dành cho di động, Apple cũng đồng thời giới thiệu đến những lập trình viên bộ công cụ mới “Sprite Kit” dành cho việc phát triển những game trên cả Mac OS lẫn di động.

+ Bộ công cụ này không mạnh như Unity 3D nhưng lại hoàn toàn miễn phí và sử dụng vô cùng dễ dàng. Đây chính là nước cờ thông minh của Apple nhằm phát triển thêm đầu game và tăng sự phụ thuộc của các lập trình viên với họ.

 

– Những engine miễn phí hoàn toàn hay miễn phí có điều kiện cũng được đưa ra liên tiếp nhằm tạo điều kiện cho các nhà phát triển game có công cụ để làm việc như Cocos2D, Cocos2D-X (nhiều hệ điều hành)

 

* Webgame giờ đây không thể so sánh với game trên di động được nữa. Những game di động cần đường truyền thấp hơn nhiều do đã chứa phần lớn nội dung game trong máy. Đồ hoạ của Webgames cũng không thể so sánh được với những game mobile vì game mobile đang được sự hậu thuẫn rất lớn của các engine game như vừa nói ở trên.

* Kết: Với sự phát triển chóng mặt của game di động chỉ trong vòng 3 – 5 năm nữa khi phần cứng của các dòng điện thoại thông mình đủ mạnh thì game di động sẽ thay thế hoàn toàn game PC.

Nghệ thuật giờ rẻ như bó rau

Chủ Studio anh Ngọc Huy, là du côn chợ Phạm Văn Hai, với hơn 10 năm kinh nghiệm trong lĩnh vực chửi thề và chơi trò ăn vạ, giờ đã chuyển qua chụp ảnh cưới anh đã từng chửi mọi khách hàng mà anh ấy có được (Ngoài ra thì anh ấy còn tưởng là anh ấy giàu có và luôn lặp lại cho khách hàng nhớ vì anh ấy có trí tưởng tượng phong phú lắm kìa). Khổ thân cho mấy thằng đang nghèo có tí tiền là khinh thường người khác, bị hoang tưởng tột độ. Với phương châm, khách hàng là chó đẻ, anh đã làm cho không biết bao nhiêu cặp vợ chồng thấy cảnh chưa cưới đã bực mình. Anh thật là một người khốn nạn, xin cảm ơn anh đã chiếu cố.

=> Anh đã là một bằng chứng tiêu biểu cho thấy sự khốn nạn và vô văn hoá đã tham gia vào ngành nghệ thuật

Giờ người ta không phân biệt được đâu là nghệ thuật đâu là chợ búa.

Làm nghệ thuật mà trình độ thì chưa học hết lớp 12, thái độ thì chợ búa, vô văn hoá du côn không khác gì một thằng Chí Phèo như thằng chủ tiệm chụp hình cưới Ngọc Huy. Trình độ của những thằng như vậy được xác định bằng cái máy ảnh, nó nghĩ bản thân nó không có tí giá trị nào, máy ảnh mới là thứ có giá trị nên chỉ biết mua máy mả không hề đầu tư vào tay nghề hay kĩ thuật.

Thực tế bạn nên hiểu rằng, chụp hình không phải chỉ là cầm máy chụp hình như ngày xưa chỉ phụ thuộc vào máy và chất lượng củaphim rửa ra, hiện tại công nghệ phát triển, hiệu ứng và chỉnh sửa hình ảnh rất cao có thể đem lại những tấm hình đẹp và chất lượng hơn nhiều so với thời củ chuối lúc trước. Tuy nhiên những tiệm chụp hình cưới cổ lỗ xỉ như tiệm chụp hình cưới Ngọc Huy trên đường Phạm Văn Hai không hề có những khái niệm như vậy. Bọn chúng chỉ trang trí đươc cái vẻ bề ngoài và mua được cái máy chụp hình là nghĩ có thể chụp được hình cưới. Thái độ trước và sau khi nhận tiền cọc hoàn toàn khác hẳn nhau, chính xác cái thái độ cà chớn của dân Việt Nam.

Chủ Studio anh Ngọc Huy, là du côn chợ Phạm Văn Hai, với hơn 10 năm kinh nghiệm trong lĩnh vực chửi thề và chơi trò ăn vạ, giờ đã chuyển qua chụp ảnh cưới anh đã từng chửi mọi khách hàng mà anh ấy có được. Với phương châm, khách hàng là chó đẻ, anh đã làm cho không biết bao nhiêu cặp vợ chồng thấy cảnh chưa cưới đã bực mình. Anh thật là một người khốn nạn, xin cảm ơn anh đã chiếu cố.

Cái đám đầu heo, chợ búa giờ xâm nhập cả vào giới nghệ thuật.

Hãy lựa chọn chính xác những gì mà bạn muốn. Đừng để bực mình vì vướng phải những thằng Chí Phèo như thằng chủ của cái tiệm chụp hình cưới Ngọc Huy.

Đây là thứ mà thằng du côn ấy nói là nghệ thuật. Với trình độ như vậy, không ai quay lại lần thứ 2, khổ nổi đây là đám cưới nên cũng khó mà có lần thứ 2 trong đời, vậy nên cái tiệm chụp hình chợ búa này vẫn còn tồn tại.

Mình mới lấy hình ở Ngọc Huy về. Hình rửa ra tất cả đều là phông trắng. Thật sự là thất vọng tràn trề. Nhìn không khác gì lúc ban đầu chưa chỉnh sửa. Và không khác gì chụp bằng máy KTS. Mình gọi trực tiếp cho anh Huy thì nhận được câu trả lời: “Em mua VC chỉ có 75k + 50k rửa hình là 125k coi như là bằng chụp hình ở Đầm Sen rồi, nếu em muốn ghép font theo yêu cầu thì trả thêm 20k/tấm”. Vậy là sao? Nghĩa là anh Huy chụp cho mọi người theo giá của mình mua VC hả? Mình tính thử giá để được tấm hình như ý nhé: 75k/vc + 200k trang điểm + 200k chỉnh font + 50k rửa hình. Tổng cộng là 525k/10 tấm??? Đó là còn chưa kể đến thái độ của mọi người khi mình sử dụng vc nữa. Mình có hỏi chị quản lí trong đó nêu muốn rửa thêm tấm 30×45 bao nhiêu thì chị trả lời là 200k. Trong khi mình mới rửa 2 tấm, 30×45 ở một tiệm khác là 50k. Mà thái độ của chị trả lời cứ như là muốn đuổi mình về sớm vậy. Tức thật vì mình vẫn còn 2vc nữa không biết phải làm sao. Thà là bỏ còn hơn mang cái bệnh tức

Xem thêm: http://www.webtretho.com/forum/f3312/co-ban-nao-chup-hinh-cuoi-o-ngoc-huy-studio-roi-cho-minh-xin-y-kien-voi-520350/index2.html
Nguồn: Webtretho.com

Lập trình hướng đối tượng với Objective C

I. Thông tin chung:

– Các đối tượng là không thể thiếu trong lập trình hướng đối tượng hiện nay (OOP Object Oriented Programming). Đối tượng không chỉ giúp chúng ta quản lý những gì đang sử dụng trong chương trình một cách dễ dàng hơn mà còn có thể giảm lượng mã nguồn xuống cũng như tái sử dụng nó trong các chương trình khác.

II. Nội dung chính:

1. Tạo một đối tượng mới với Objective C (New Class):

Những điểm cần lưu ý:

– Một biến toàn cục (static) có thể được truy cập từ bất cứ lớp nào. (Tuy nhiên bạn vẫn phải include lớp đang chứa biến này nếu không thì dĩ nhiên là không được vì nó có biết biến này ra sao đâu mà sử dụng)

– Bạn có thể thể tạo một phương thức khởi tạo mới dành cho lớp và thêm những đoạn mã cần thiết vào để làm những gì bạn muốn mà không ảnh hưởng đến khả năng làm việc của lớp

* Sau đây là đoạn code mẫu dành cho việc tạo một lớp mới có thêm một số đoạn mã để xử lý trước khi khởi tạo lớp.

2. Phần giao diện (File .h):

– Một lớp cần có những thứ sau đây

#import <Foundation/Foundation.h>

@interface LKStar: NSObject

{

}

+ (LKStar *) lkAlloc;

+ (int) lkTotal;

@end

* Giải thích:

– Mọi lớp đều cần có kế thừa lớp NSObject trong C Object

– Trong lớp header sẽ có 2 phương thức toàn cục để khởi tạo và trả về số lượng các lớp đã được khởi tạo.

– Đây không phải là phương thức cục bộ (private) mà là phương thức toàn cục (public) để các class khác vẫn có thể truy cập vào trong lớp.

3. Phần thực hiện (file .m):

Mã nguồn

#import “LKStar.h”

static int lkNumOfStar = 0;

@implementation LKStar

+ (LKStar *) lkAlloc

{

lkNumOfStar++;

return [LKStar alloc];

}

+ (int) lkTotal

{

return lkNumOfStar ;

}

@end

* Giải thích:

– Tạo biến toàn cục lkNumOfStar để lưu trữ số lượng những đối tượng ở trong toàn chương trình.

– lkAlloc là phương thức khởi tạo. Phương thức sẽ cộng vào trong biến đếm trước khi khởi tạo đối tượng.

– lkTotal trả về số lượng đối tượng đã được khởi tạo

4. Cách sử dụng trong chương trình:

Mã nguồn:

LKStar *lkRedStar, *lkBlueStar, *lkYellowStar;

lkRedStar = [[LKStar lkAlloc] init];

lkBlueStar = [[LKStar lkAlloc] init];

lkYellowStar = [[LKStar lkAlloc] init];

Ngoài ra, ta có thể sử dụng lệnh để biết được có bao nhiêu đối tượng đã được tạo bằng cách gọi dòng lệnh sau

int lkCounting = [LKStar lkNumOfStar];

=> Chúng ta sẽ có đươc lkCounting = 3;

Đây là code đầy đủ cho các bạn kiểm tra

#include “LKStar.h”

int main (int argc, const char * argv[])

{

LKStar *lkRedStar, *lkBlueStar, *lkYellowStar;

lkRedStar = [[LKStar lkAlloc] init];

lkBlueStar = [[LKStar lkAlloc] init];

lkYellowStar = [[LKStar lkAlloc] init];

int lkCounting = [LKStar lkNumOfStar];

NSString *thongbao = [[NSString alloc] initWithFormat:@”Number of Star in Program: %i”, lkCounting];

lbllkThongBao.text = thongbao;

}

III. Kết luận:

– Đối tượng là phần không thể thiếu đối với lập trình OOP. Tuy nhiên không phải lúc nào bạn cũng chỉ dùng những lệnh cơ bản của Object C (Alloc) mà cần thêm những lệnh mới để có thể làm cho việc sử dụng những đối tượng được quản lý chặt chẽ hơn.

– Đây là phần nên nghiên cứu và sử dụng để dễ dàng hơn cho việc lập trình với Object C.

Chương 1a: Iphone Programming – Bắt đầu với lập trình Iphone

Bài này sẽ tóm gọn cách để học lập trình ios theo từng bước và hướng dẫn chi tiết các bước để học lập trình ios một cách chi tiết nhất.

 

Câu đầu tiên bạn phải nhớ và hiểu rằng: ”Lập trình trên IOS là dễ dàng, chỉ có điều nó khác biệt so với những thức chúng ta đã làm nên nó trở nên khó”. Tất cả các ngôn ngữ đều có thể học nhưng chỉ có những ngôn ngữ được hỗ trợ tốt nhất mới thực sự dễ dàng.

Những người thấy lập trình IOS khó là do sự tiết kiệm không mua máy tính Mac, xài phần mềm lậu lâu ngày quen tay. Thử hỏi, nếu phải trả tiền để có các công cụ thì các lập trình viên sẽ phải bỏ ra bao nhiêu tiền cho mỗi ngôn ngữ? Những lỗi hay không làm việc được chỉ là so sự cố trong lúc làm việc với Hackintos.

* IOS là miễn phí sau khi mua máy Mac (iMac, Macbook, Macbook Pro,…)

* .Net là hơn 10.000 $ vì phải tính tới đủ các thứ như hệ điều hành, IDE (Visual Studio), các phần phụ trợ (DevExpress)

* PHP cũng phải tốn mấy trăm đô mua Dreamweaver hay bất cứ thứ gì giúp các bạn bắt đầu với lập trình

 

=> Vậy với một thứ miễn phí và một cái chi phí cao ngất, bạn thích cái nào?

* Thông tin chung về hệ sinh thái Apple:

– Làm việc với Apple hay chính xác hơn vơi IOS thì số tlượng những sản phẩm chúng ta cần nhắm tới rất nhỏ. Bao gồm:

+ Ipod

+ Iphone

+ Ipad

=> Số lượng những sản phẩm khá là nhỏ le

 

1. Bước chuẩn bị ban đầu

Cách học thì theo tôi cách học từ đầu là bạn hãy tập trung làm những cái đơn giản nhất:

* Đầu tiên hãy ghi lại những ý tưởng và mục tiêu lại trên một tài liệu nào đó trong quá trình bạn học nhưng khoan hãy bắt tay và làm nó vội

=> Những ý tưởng này của bạn sẽ chính là mục tiêu của bạn sau khi đọc và thực hành xong eBook.

Vì thực tế có một điểm mà ít ai biết được ngay từ đầu là các cuốn eBook không đưa ra đầy đủ những kiến thức cần thiết mà chứa tất cả những kiến thức cơ bản nhất mà từ đó bạn có thể hoàn thành được ý tưởng của bạn.

 

– Hầu hết mọi người sau khi hoàn tất một cuốn eBook sẽ không biết phải làm gì tiếp nữa. Đợi đến lúc đó mới nghĩ ra ý tưởng thì hứng thú sẽ cạn kiệt dần trừ phi hứng thú quá cao thì ý tưởng ra xong trước khi nó giảm hết có thể tìm ra được ý tưởng để phát triển tiếp được.

– Cho nên, quá trình làm việc của tôi đi kèm theo việc suy nghĩ ra ý tưởng theo kèm ngay từ lúc bắt đầu. Sau khi bạn có đủ kiến thức là bạn có thể bắt đầu luôn.

 

2. Luyện căn bản với Ebook:

– Cầm một cuốn eBook ra để luyện trước

+ Theo kinh nghiệm thì nên sử dụng sách của Apress vì các hướng dẫn rất đầy đủ chi tiết và tác giả không ngại việc nhắc lại những kiến thức cũ và bổ sung thêm khi bạn tới những cột mốc như vậy

+ Sách của Apress còn có thêm mã nguồn rất đầy đủ và chi tiết

=> Hãy luyện hết một cuốn (Chừng 24 chương cho những phần căn bản nhất) (Sách thì bên phần eBook của website)

=> Lúc này bạn đã có đầy đủ kiến thức cơ bản để hiểu được một chương trình viết gì, đây là lúc tham khảo 1 chương trình thực tế

– Tuy nhiên, sách của Apress có kuyết điểm là không chỉ cách tạo database (Array, pList) nên việc sử dụng nó hầu như bạn phải sử dụng đúng database của Apress mới chạy được

 

3. Khởi động với chương trình tương tự:

– Sau đó hãy kiếm một chương trình trên Internet có cấu trúc gần giống nhất với chương trình bạn muốn viết

– Dựa vào cấu trúc đó viết lại chương trình bạn muốn

– Sau đó phát triển nó lên

=> Cách làm này giúp bạn có kiến thức và sản phẩm theo kèm rất nhanh chóng

=> Sau khi được chừng 3 chương trình thì đó là lúc bạn đã đầy đủ kiến thức có thể chiến ở bất cứ nơi đâu

 

– Chương trình này có thể sẽ là chương trình chính của bạn trong tương lai, hãy làm nó cho thật tốt vì lợi ích của nó là rất lớn. Những gì cần tham khảo thường sẽ tới từ chương trình này.

– Ngoài ra, nếu bạn muốn xin việc ở một công ty chuyên về App thì việc show ra các chương trình kiểu mẫu thế này sẽ được điểm rất cao.

 

4. Phát triển chương trình căn bản:

– Mỗi chương trình luôn có phần chính là chức năng nòng cốt. Chức năng này cần làm tốt trước tiên. Sau đó mới tính tới những phần phụ theo kèm:

+ Giao diện

+ Hiệu ứng trong chương trình

+ Hình ảnh mô tả

+ Luồng đi hợp lý.

– Chức năng chính của chương trình luôn luôn phải chạy tốt, nếu không chạy tốt thì bạn sẽ gặp rắc rối lớn và giảm uy tín rất nhiều.

– Chính vì vậy đầu tiên, bạn cần phát triển chương trình làm tốt nhất chức năng chính của nó.

 

5. Nâng cấp chương trình:

– Đầu tiên phải lưu ý đến phần giao diện

+ Intro View là thứ đầu tiên bạn cần quan tâm vì đây là screen đầu tiên mà người sử dụng nhìn thấy và là ấn tượng ban đầu để họ có tiếp tục sử dụng hay không?

+ Những chức năng mới nên làm trên những view mới còn vẫn muốn update trên view chính thì việc bạn nên chắc chắn là tạo một bản sao lưu ở chỗ khác hoặc tạo một ảnh bản sao (SnapShot) của chương trình để có thể quay ngược trở lại phiên bản làm việc được gần nhất.

+ Lưu ý: Lới khuyên là nên sử dụng chức năng SnapShot của Xcode. Chức năng này rất mạnh và chạy cực nhanh không tốn quá nhiều thời gian lại có thể điều khiển (control) được những bản sao lưu và có thể trở lại bất cứ lúc nào. Đây là một điểm vượt trội của  Xcode so với những IDE khác.

*Lời kết:

Đây là phần chuẩn bị để bắt đầu lập trình với Iphone.

Phần này còn cung cấp cho bạn một cái nhìn tổng quát và những mục tiêu trong tương lai sau khi đọc xong cuốn eBook này

 

* Nhận xét chung về lập trình IOS:

– Lập trình IOS chỉ lạ chứ không khó, việclàm quen mới tốn thời gian chứ việc lập trình với IOS thì được hỗ trợ đến tận răng. Các framework hầu hết đều của chính Apple thêm vào và được chứng nhận. Những cập nhật được thêm vào liên tục và theo kịp với sự phát triển của hệ sinh thái Apple.

– Các tài liệu lập trình của Apple cũng được cập nhật rất đầy đủ và chi tiết. Có những lọat bài về phát triển của Apress rất đáng để tham khảo

Làm thế nào để gia nhập vào lập trình game di động?

Mỗi người khi bước vào lập trình game đều có mong muốn tạo ra một game lớn với rất nhiều chức năng và hình ảnh đẹp. Tuy nhiên, nếu bạn làm quá lâu mà không thể xuất bản ra bất cứ một game nào thì cảm giác chán nản sẽ đến rất nhanh và bạn cũng chả biết mình đang hướng tới cái gì. Đây là quá trình phát triển game của LapKan cho các bạn tham khảo.

I. Giai đoạn bắt đầu:

Bạn chưa có bất cứ kinh nghiệm nào để viết game. Hãy bắt đầu bằng một game nhỏ mà bạn dự tính có thể viết trong vòng 15 phút (hay thậm chí bạn nghĩ rằng có thể hoàn thành trong vòng 5 phút), bạn sẽ thấy bạn hoàn thành nó trong vòng 1 tháng với những ý tưởng thêm.

* Game trong giai đoạn này chỉ cần:

– Menu vào game (tiêu đề game, biểu tượng game, nút bắt đầu)

– Phần chơi game (Phần chơi chính, điểm số và thời gian)

– Phần kết thúc (Thống kê điểm, nút restart, nút quay lại Menu)

– Phần phụ (Âm thanh, nhạc nề)

=> Xong những thứ này là Apple đã coi đó là một game nhỏ và sẵn sàng cho bạn bán trên AppStore. Hãy làm đúng những thứ này và đưa lên AppStore bạn sẽ có nhiều kinh nghiệm hơn đấy.

II. Giai đoạn bổ sung:

– Thêm vào các phần phụ để làm game hoàn chỉnh

– Một game thực sự có rất nhiều thứ ngoại trừ gameplay của nó ra:

+ Mạng xã hội (Facebook, Tweeter, …) luôn là nơi giúp cho game của bạn có thê vươn ra xa hơi tới những người bạn của người chơi.

+ Game Center (Leaderboard và Archivement) là nơi mà người chơi ghi lại những kỉ lục của bản thân và mục tiêu hướng tới của người chơi

+ In App Purchase là thứ để bạn kiếm ra tiền, làm game mà không chú ý đến vấn đề tài chính thì nó không thể lâu dài và có được sự quan tâm của bạn khi bạn mải đi kiếm tiền ở nghề khác

+ Ad Banner nếu game bạn miễn phí và không bán vật phẩm thì thứ duy nhất bạn kiếm được chính là quảng cáo, có rất nhiều công ty quảng cáo uy tính như Google với Admob và Revmob + rất nhiều công ty khác. Việc thêm banner quảng cáo cũng không có gì khó khăn và kiếm được thêm tiền. Hãy add quảng cáo và thêm phần remove bằng cash như thế sẽ giúp bạn có thểm doanh thu từ game của bạn mà không tốn thêm bao nhiêu thời gian.

III. Giai đoạn phát triển:

– Bạn đã có đầy đủ mọi công cụ trong tay từ hình ảnh để âm thanh do đã làm các game trước đó. Đây là lúc bạn khởi động một dự án game thật sự. Với những chương trình trước đó giờ là lúc bạn tận dụng. Quảng cáo chéo luôn là một lựa chọn tốt khi bạn không tốn thêm chi phí (game của chính bạn mà) lại có thể tận dụng được những thứ đã có trước đó.

– Với những thuật toán và logic bạn đã làm lúc trước, game mới ra chỉ cần hoàn thành thêm 20 % còn lại có thể lấy tài nguyên và chức năng của những game cũ của bạn.

– Hãy cẩn thận 20 % của một game lớn cũng rất là chua đấy.

IV. Tạo đế chế của riêng bạn:
– Game bạn dù hay thể nào thu hút được bao nhiêu người nhưng bạn vẫn đang chịu sự quản lý của Apple. Những gì quý giá nhất của game vẫn đang nằm trong tay của Apple, đó là người dùng và ngay cả chính game đó.

– Bạn cần biến nó thành của mình, hãy xây dựng server và cho người dùng đăng nhập bằng chính nickname của họ (hay email) như vậy bạn đang có thông tin người dùng, thứ có giá trị nhất trong thời đại công nghệ thông tin.

– Cái thừ hai chính là game, game của bạn nằm trong tay Apple như hàng triệu game khác, điều đó nghĩa là sự sống chết của bạn đang nằm trong tay của Apple, một ngày đẹp trời nào đó Apple không thích bạn thì game của bạn có thể mất tích hoàn toàn trên AppStore. Hãy đưa nó tới những platform khác và port nó qua Android để có thế đứng vững vàng hơn.

– Hãy tạo ra một game Việt và làm cho những lập trình viên game như chúng tôi tự hào vì có những nhân tài kiệt xuất nào.