Hiển thị các bài đăng có nhãn objective-c. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn objective-c. Hiển thị tất cả bài đăng

Thứ Sáu, 2 tháng 10, 2015

Tự học lập trình IOS bắt đầu với lập trình iOS với ngôn ngữ Swift

Tự học lập trình IOS thì bắt đầu từ đâu? Đây cũng là câu hỏi của nhiều lập trình viên trên thế giới muốn thử sức khám khá với lập trình IOS và ngôn ngữ Object-C, Swift...
Tự học lập trình IOS bắt đầu với lập trình iOS với ngôn ngữ Swift
Tự học lập trình IOS bắt đầu với lập trình iOS với ngôn ngữ Swift

Tự học lập trình IOS - Nếu bạn là một lập trình viên iOS mới

Bạn chưa từng học lập trình hoặc bạn đã học lập trình với một ngôn ngữ nào đó trước đây thì tài liệu này sẽ giúp bạn có cái nhìn tổng quan cũng như dễ dàng nhất để bắt đầu trên hành trình nghiên cứu về ngôn ngữ Swift và tự học lập trình ứng dụng cho hệ điều hành iOS. 

Tự học lập trình IOS đầu tiên bạn sẽ được tiếp cận với ngôn ngữ Swift, sau đó bạn sẽ được giới thiệu về các thao tác lập trình bao gồm: thiết kế giao diện người dùng, liên kết giao diện người dùng với các đoạn mã điều khiển, viết các đoạn mã xử lý đối tượng, hiển thị kết quả. Không những thế, bạn còn được giới thiệu một cách chi tiết về những đối tượng cơ bản cần thiết như: Button, Label, TexField, TableView, AlertView, ActionSheet, ... cùng với String, Array, khai báo biến,... giúp bạn có đầy đủ nền tảng cơ sở để tự xây dựng một ứng dụng cho bản thân. 

Ngoài ra bạn sẽ được biết đến những phần nâng cao như: xử lý tập tin, xử lý các thao tác nhập/xuất dữ liệu từ người dùng, quản lý cơ sở dữ liệu, xử lý hình ảnh, quản lý vị trí, tích hợp facebook, gửi tin nhắn, gửi email, ... 

Mục đích của tài liệu này là giúp bạn có những kỹ năng cần thiết để xây dựng một ứng dụng iOS của riêng bạn. Chỉ cần có ý tưởng... và đừng chần chừ gì nữa, chúng ta bắt đầu!

Tự học lập trình IOS - Nếu bạn là lập trình viên cũ

Nếu bạn đã viết được các ứng dụng trên hệ điều hành iOS thì đây là một tài liệu mang tính củng cố và nâng cao, giúp bạn có được các kiến thức mới về ngôn ngữ Swift cũng như sự thay đổi giữa hệ điều hành cũ đối với hệ điều hành mới, song song với đó là sự thay đổi giữa Xcode cũ và Xcode mới, bao gồm:
  1. Ngôn ngữ chủ yếu được sử dụng để viết mã là Swift chứ không phải Objective-C 
  2. Thay đổi về giao diện, các đối tượng mới 
  3. Các lớp (class) được viết lại và thêm mới nhiều chức năng

Tự học lập trình IOS cho dù bạn là ai thì bắt đầu một ngôn ngữ lập trình sẽ có nhiều khó khăn cho bạn, tôi tin rằng bằng thực sự vượt qua bằng sự đam mê lập trình và có những ứng dụng tuyệt vời cho chúng tôi...

Thứ Năm, 27 tháng 6, 2013

LẬP TRÌNH OBJECTIVE-C - part 3

4.  Class, objects, method cơ bản

a. Class:


-          File .h (Header File) là file quản lý các khai báo liên quan, cung cấp cho chúng ta cái nhìn về mặt tổng quan của code. Về lớp, loại, chức năng, khai báo hằng số, thuộc tính
-           File .m (Source File ) là file mở rộng được thừa kế từ header file, chứa nội dung chính bao gồm code ojective-C
* File .h (Header File)
@interface SimpleClass : NSObject
@end

-          Tại lớp này chúng ta khai báo lớp có tên là SimpleClass, được kế thừa NSObject.
@interface Person : NSObject
@property NSString *firstName;
@property NSString *lastName;
@end

-          Đối tượng Person có 2 thuộc tính : firstName, lastName đều là biến con trỏ (*) thuộc kiểu chuỗi NSString, kết thúc dòng code bằng dấu (;). Lớp Person thêm 1 thuộc tính mới yearOfBirth là chữ số
@end
@property NSNumber *yearOfBirth;
//Or
@property int yearOfBirth;

* File .m (Source File )
-          Chúng ta có file XYZPerson.h
@interface XYZPerson : NSObject
@property (readonly) NSString *firstName;
@property (readonly) NSString *lastName;
- (void)sayHello;
@end

-          Class kế thừa class “XYZPerson.h”
#import "XYZPerson.h"
@implementation XYZPerson
- (void)sayHello {
NSLog(@"Hello, World!");
}
@end

b. Method
Hàm cơ bản
-          Hàm trong C:
void SomeFunction();
-          Hàm trong Objective-C
- (void)someMethod;

- (void)someMethod {
NSString *myString = // get a string from somewhere...
}

Hàm có tham số truyền vào
-          Hàm trong C:
void SomeFunction(SomeType value);

-          Hàm trong Objective-C
- (void)someMethodWithValue:(SomeType)value;

- (void)someMethodWithValue:( NSString *)value {
NSLog(@"%@",value);
}

-          Tương tự với nhiều tham số
- (void)someMethodWithFirstValue:(SomeType)value1 secondValue:(AnotherType)value2;

Hàm số trả về
-          Trong C
int magicNumber {
return 42;
}

-          Trong Objective-C
- (int) magicNumber {
return 42;
}

-          Hàm gọi nhau trong cùng class
@implementation XYZPerson
- (void)sayHello {
[self saySomething:@"Hello, world!"];
}
- (void)saySomething:(NSString *)greeting {
NSLog(@"%@", greeting);
}
@end

c. Object
-          Khởi tạo object mới
NSString* myString = [NSString string];
NSString* myString = [[NSString alloc] init];
NSNumber* value = [[NSNumber alloc] initWithFloat:1.0];
// string1 will be released automatically
NSString* string1 = [NSString string];
// must release this when done
NSString *someString = @"Hello, World!";
NSString *someString = [NSString stringWithCString:"Hello, World!"
encoding:NSUTF8StringEncoding];
NSString* string2 = [[NSString alloc] init];
[string2 release];

-        Tạo đối tượng động:
-       hàm này trả về là id, đây là từ khóa đặc biết trong Objective-C (http://developer.apple.com định nghĩa là “some kind of object”). Theo tôi hiểu rằng đây là 1 dạng đối tượng đặc biệt giống với NSObject * nhưng nó không có dấu *
+ (id)alloc;
//or
- (id)init;

-          alloc (xem phần 7 – quản lý bộ nhớ) : nó gọi tới hàm init
NSObject *newObject = [[NSObject alloc] init];
tài liệu tham khảo

Thứ Ba, 25 tháng 6, 2013

LẬP TRÌNH OBJECTIVE-C - part 1

Đặc điểm cơ bản của Objective-C.

- Là ngôn ngữ hướng đối tượng
- Mở rộng từ C
- Nhẹ nhàng (không VM - không quá thực tạp với friend virtuals với template với ....)
- Mềm dẻo (mở rộng từ C nên bạn có thể dùng C thuần cấu trúc ngoài ra đây là ngôn ngữ run-time)
- Reflection (có hỗ chợ)
- nil thay thế cho NULL trong C, bởi vì bạn có thể gửi thông điệp cho nil, nhưng không thể làm như vậy với NULL.
- BOOL có 2 giá trị là YES và NO chứ không phải là true và false nữa.
- Khái niệm methods và message đc sử dụng mang ý nghĩa như nhau đối với ObC theo đó message có những thuộc tính đặc biệt. Mọto message có thể chuyền động từ obj tới một obj khác. Việc gọi thông điệp trên một obj không có nghĩa là obj đó sẽ thực hiện message nó có thể chuyển tiếp tới một obj khác chưa biết trước tóm lại có khả năng đáp trả thông điệp không trực tiệp thì gián tiếp.

-          Biến trong C:
int   variable1   = 2;
float variable2   = 1.618;
char  variable3   = 'A';


float variable2  = 1.618;
variable2        = 3.921;
variable2        = 4.212;

Loại
Mô tả
Ví dụ
int
Số tự nhiên bao gồm cả số âm
0, 78, -1400
unsigned int
Số tự nhiên không âm
0, 46, 900
float
Số thập phân
0.0, 1.618, -1.4
char
Ký tự
'a', 'D', '?'

-          Toán tử
int someInteger = 42;
someInteger++; // someInteger == 43
someInteger--; // someInteger == 42
someInteger *= 2; // someInteger == 84

-          Chuỗi sdụng lớp NSString
NSString *firstString = [[NSString alloc] initWithCString:"Hello World!"
encoding:NSUTF8StringEncoding];
NSString *secondString = [NSString stringWithCString:"Hello World!"
encoding:NSUTF8StringEncoding];
NSString *thirdString = @"Hello World!";

-          Số sử dụng lớp NSNumber
NSNumber *magicNumber = [[NSNumber alloc] initWithInt:42];
NSNumber *unsignedNumber = [[NSNumber alloc] initWithUnsignedInt:42u];
NSNumber *longNumber = [[NSNumber alloc] initWithLong:42l];
NSNumber *boolNumber = [[NSNumber alloc] initWithBOOL:YES];
NSNumber *simpleFloat = [NSNumber numberWithFloat:3.14f];
NSNumber *betterDouble = [NSNumber numberWithDouble:3.1415926535];
NSNumber *someChar = [NSNumber numberWithChar:'T'];

Tương tự
NSNumber *magicNumber = @42;
NSNumber *unsignedNumber = @42u;
NSNumber *longNumber = @42l;
NSNumber *boolNumber = @YES;
NSNumber *simpleFloat = @3.14f;
NSNumber *betterDouble = @3.1415926535;
NSNumber *someChar = @'T';

-          Sdụng toán tử trong hàm
Toán tử
Phép toán
Mô tả
+
cộng
-
trừ
*
nhân
/
Chia
%
Chia hết

File XYZCalculator.h
@interface XYZCalculator : NSObject
@property double currentValue;
@end

File XYZCalculator.m
@implementation XYZCalculator
- (void)increment {
self.currentValue++;
}
- (void)decrement {
self.currentValue--;
}
- (void)multiplyBy:(double)factor {
self.currentValue *= factor;
}
@end

-          Định dạng chuỗi:
PHP :
$var1 = 3;
$var2 = 8;
print ("First value: $var1 second value: $var2");

Objective-C:
int var1 = 3;
int var2 = 8;
printf ("First value: %i second value: %i", var1, var2);
Bản định dạng
int
%i / %d
unsigned int
%u
float
%f
char
%c


Giới thiệu về Xcode - part 3

3.     Debug trong Xcode

-       Sau khi viết 1 ng dng demo đơn gin như sau :

-       Bước 1 bn chn 1 dòng code mà bn mun bt đu debug
-       Bước 2 nhp chut vào run button
-       Bước 3 nhp các nút đthc hin thao tác debug, ý nghĩa thtcác button ttrái sang :
+ n khu vc debug
+ dng thao tác debug khi đang chy
+ step over : đi ngang qua các method
+ step into : đi sâu vào tng method
+ step out : kết thúc quá trình debug
- chy theo tng dòng code đến bước 4
-       Bước 4 hin thkết qu log trên console và giá trca các biến mà debug đi ngang qua, nếu chưa kết thúc debug thì quay li bước 3.

4.     Emulator

-       ứng dụng IOS Simulator, đã có sẵn trong Xcode, nó trình bày các giao diện người dùng iPhone hoặc iPad trong một cửa sổ trên máy tính MacIOS của bạn. Bạn tương tác với iOS Simulator bằng cách sử dụng bàn phím và chuột để sử dụng các thao tác lập.
-       Chương trình này giúp cho bạn có thể dễ dàng thao tác hành động của người trên ứng dụng Iphone một cách giả lập không nhất thiết phải chạy trên Iphone thật.
-       Có hai cách khác nhau để truy cập iOS Simulator thông qua Xcode:
+ Cách thứ nhất là để chạy ứng dụng của bạn trong IOS Simulator.
+ Cách thứ hai là để khởi động IOS Simulator mà không cần chạy một ứng dụng.

-       Khi chạy một ứng dụng trong IOS Simulator, tự động khởi động và chạy ứng dụng của bạn trong IOS Simulator trực tiếp từ dự án Xcode của bạn.