You are on page 1of 67

LẬP TRÌNH IOS

MobiPro.VN – Mobile Your Life

Tại sao nên theo ngành này?
2

Tháng 7/2008, Apple ra mắt AppStore. Đến nay, App Store đã có hơn 400,000 ứng dụng với 10 tỷ lượt tải về, dẫn đầu ngành về dịch vụ ứng dụng cho di động. Ovi Store của Nokia, Android Market của Google, App World của Blackberry , Huawei Technology.

Tại sao nên theo ngành này?
3

 


 

AppStore: 400,000 ứng dụng với 10 tỉ lượt tải về OviStore: 55,000 ứng dụng, 760 triệu download Android Market: 200,000 ứng dụng, 4,5 tỉ download App World: 30,000 ứng dụng, 3 triệu download/ngày Huawei Technology: 80.000 ứng dụng

$ = 7 tỷ USD >>> 30 tỷ USD trong 3 năm tới

3/10/2014

Các mobile os 4         iOS Android Tizen Windows Phone 7 Blackberry OS & Qnx WebOS MeeGo Symbian. 3/10/2014 .

Thống kê thị trường 5 3/10/2014 .

Thống kê lập trình viên 6 3/10/2014 .

Thống kê lập trình viên
7

3/10/2014

Android, iOS, Windows phone…
8

Vậy, Mobile OS nào là tốt nhất?

3/10/2014

Giao diện người dùng
9

Lấy ứng dụng làm trung tâm.

Mọi biểu tượng ứng dụng có thể di chuyển hoặc xóa được. Nổi bật với các Widget.
Notification bar…

3/10/2014

Màn hình thoáng đãng với các biểu tượng ứng dụng dàn ngay hàng thẳng lối rõ ràng. iOS.Android. Windows phone… 10 Sự kết hợp phần cứng và phần mềm hoàn hảo. Nâng cấp với Notification bar. 3/10/2014 . 11 màn hình chính.

Microsoft sử dụng khái niệm mới. Mỗi hub là một bộ sưu tập các ứng dụng cùng nhóm. Windows phone… 11 Thay vì lấy ứng dụng làm trung tâm. iOS.Android. gọi là hub (trung tâm). như với các nền tảng iOS và Android. để tổ chức nội dung trong Windows Phone 7. 2 màn hình chính. 3/10/2014 .

Ứng dụng và tính mở 12 3/10/2014 .

Khả năng tùy biến 13 3/10/2014 .

Khả năng tích hợp dữ liệu 14 3/10/2014 .

TẠI SAO NÊN CHỌN IOS? 250 TRIỆU THIẾT BỊ ĐANG SỬ DỤNG iOS .

000 lần download/ 1 ứng dụng .TẠI SAO NÊN CHỌN iOS? 18 TỈ LƯỢT DOWNLOAD 500.000 ỨNG DỤNG 36.

CHẤT LƯỢNG CỦA 1 ỨNG DỤNG Ý TƯỞNG CỦA RIÊNG MÌNH KHẢ NĂNG THÍCH ỨNG GIAO DIỆN THÂN THIỆN .

MỤC TIÊU CỦA BẠN .

QUY TRÌNH THIẾT KẾ MỘT ỨNG DỤNG .

QUY TRÌNH THIẾT KẾ MỘT ỨNG DỤNG .

CÁC LOẠI APPLICATION UTILITY APP SINGLE VIEW APP TABBED APP MASTERDETAIL APP PAGEBASED APP OPENGL GAME .

MÔI TRƯỜNG LÀM VIỆC MÁY TÍNH CÀI ĐẶT HĐH MAC OS hoặc CÔNG NGHỆ ẢO HÓA VMware XCODE https://developer.apple.com/xcode APPLE ID (FREE OR PAID) .

VẬY ĐỂ LẬP TRÌNH TRÊN iOS CẦN NGÔN NGỮ LẬP TRÌNH GÌ ? .

VẬY ĐỂ LẬP TRÌNH TRÊN iOS CẦN NGÔN NGỮ LẬP TRÌNH GÌ ? + .

trình Hợp Ngữ (Assembly) được gọi là chương trình hệ thống  Có các trình biên dịch dành cho hầu hết các loại hệ thống PC . trình soạn thảo (Editors).Ngôn ngữ lập trình C   C được dùng để lập trình hệ thống Một chương trình hệ thống làm thành một phần hệ điều hành hoặc các tiện ích hỗ trợ của hệ điều hành  Hệ điều hành (Operating Systems). trình thông dịch (Interpreters).

Ngôn ngữ có cấu trúc  C cho phép tổng hợp mã lệnh và dữ liệu  Nó có khả năng tập hợp và ẩn đi tất cả thông tin. . lệnh khỏi phần còn lại của chương trình để dùng cho những tác vụ riêng  Chương trình C có thể được chia nhỏ thành những hàm (functions) hay những khối mã (code blocks).

: } . chữ hoa. i=100.Đặc điểm của C  C có 32 từ khóa  Những từ khóa này kết hợp với cú pháp của C hình thành ngôn ngữ C  Các quy tắc được áp dụng cho các chương trình C • Tất cả từ khóa là chữ thường • Ðoạn mã trong chương trình C có phân biệt chữ thường. j=200. do while khác DO WHILE •Từ khóa không thể dùng đặt tên biến (variable name) hoặc tên hàm (function name) main() { /* This is a sample Program*/ int i.j.

 Theo sau tên hàm là dấu ngoặc đơn  Dấu ngoặc đơn có thể có chứa hay không chứa những tham số . Hệ điều hành luôn trao quyền điều khiển cho hàm main() khi một chương trình C được thực thi.Cấu trúc chương trình C main()  Chương trình C được chia nhỏ thành những đơn vị gọi là hàm  Không kể có bao nhiêu hàm trong chương trình.

Cấu trúc chương trình C (tt. dấu ngoặc xoắn đóng } sau câu lệnh cuối cùng trong hàm chỉ ra điểm kết thúc của hàm .) Dấu phân cách {…}  Sau phần đầu hàm là dấu ngoặc xoắn mở {  Nó cho biết việc thi hành lệnh trong hàm bắt đầu  Tương tự.

 Trình biên dịch C không hiểu việc xuống dòng. khoảng trắng hay tab  Một câu lệnh không kết thúc bằng dấu chấm phẩy sẽ được xem như dòng lệnh lỗi trong C .  Một câu lệnh trong C được kết thúc bằng dấu chấm phẩy .Cấu trúc chương trình C (tt.) Dấu kết thúc câu lệnh … .

Cấu trúc chương trình C (tt. một hàm hay toàn bộ chương trình  Trình biên dịch sẽ bỏ qua phần chú thích  Trong trường hợp chú thích nhiều dòng. nó sẽ bắt đầu bằng ký hiệu /* và kết thúc là */ .) /*Dòng chú thích*/  Những chú thích thường được viết để mô tả công việc của một lệnh đặc biệt.

Thư viện C  Tất cả trình biên dịch C đều chứa một thư viện hàm chuẩn  Một hàm được viết bởi lập trình viên có thể được đặt trong thư viện và được dùng khi cần thiết  Một số trình biên dịch cho phép thêm hàm vào thư viện chuẩn  Một số trình biên dịch yêu cầu tạo một thư viện riêng .

Biên dịch và thi hành chương trình .

Thí dụ sau đây mô tả một giải thuật Ðến cầu thang Phòng học Rời phòng học Xuống tầng hầm Ði đến quán ăn tự phục vụ Cafeteria Ðây là các bước thực hiên khi một người muốn đi đến quán ăn tự phục vụ từ phòng học .Các bước lập trình giải quyết vấn đề Giải thuật gồm một tập hợp các bước thực hiện nhằm giải quyết một vấn đề.

Giải quyết một vấn đề Ðể giải quyết một vấn đề Hiểu vấn đề rõ ràng Thu thập thông tin thích hợp Xử lý thông tin Ðạt được kết quả .

Một phương pháp viết giải thuật sử dụng một tập hợp các từ tương tự mã thật BEGIN DISPLAY ‘Hello World !’ END Mỗi đoạn mã giả phải bắt đầu với một từ BEGIN Ðể hiển thị giá trị nào đó. từ DISPLAY được dùng Mã giả kết thúc với từ END .Mã giả (Pseudocode) Không là mã thật.

Lưu đồ (Flowcharts) Lưu đồ là một hình ảnh minh hoạ cho giải thuật START DISPLAY ‘Hello World !’ STOP .

Biểu tượng trong lưu đồ .

Lưu đồ cộng hai số .

Cấu trúc IF S TAR T BEGIN INPUT num r = num MOD 2 IF r=0 Display “Number is even” END IF END IN P U T n u m r = n u m M OD 2 r =0 Yes No D IS P L AY "N u m b e r i s E ve n " S TOP .

Cấu trúc IF…ELSE S TA RT BEGIN INPUT num r=num MOD 2 IF r=0 DISPLAY “Even Number” ELSE DISPLAY “Odd Number” END IF END INP UT num r = num M O D 2 Yes r=0 No DIS P LAY "Num ber is E ven" DIS PLA Y "Num ber is O dd" S TOP .

Ða điều kiện sử dụng AND/OR BEGIN INPUT yearsWithUs INPUT bizDone IF yearsWithUs >= 10 AND bizDone >=5000000 DISPLAY “Classified as an MVS” ELSE DISPLAY “A little more effort required!” END IF END .

Cấu trúc IF lồng nhau BEGIN INPUT yearsWithUs INPUT bizDone IF yearsWithUs >= 10 IF bizDone >=5000000 DISPLAY “Classified as an MVS” ELSE DISPLAY “A little more effort required!” END IF ELSE DISPLAY “A little more effort required!” END IF END .

) START INPUT YearsWithUs INPUT bizDone YES YearsWithUs >= 10 NO DISPLAY “A Little more effort required” NO bizDone > 5000000 YES DISPLAY “A Little more effort required” DISPLAY “Classified as an MVS” STOP .Cấu trúc IF lồng nhau (tt.

Vòng lặp S TA R T BEGIN cnt=0 WHILE (cnt < 1000) DO DISPLAY “Scooby” cnt=cnt+1 END DO END cn t= 0 No cn t < 1 0 0 0 Yes D IS PL A Y " Sc o ob y " cn t= c n t+ 1 S TOP .

Biến và Kiểu Dữ Liệu .

Biến Bộ nhớ Dữ liệu 15 15 Dữ liệu trong bộ nhớ Mỗi vị trí trong bộ nhớ là duy nhất Biến cho phép cung cấp một tên có ý nghĩa cho mỗi vị trí nhớ .

B C =A+ B DISPLAY C END • A. B và C là các biến trong đoạn mã giả trên • Tên biến giúp chúng ta truy cập vào bộ nhớ mà không cần dùng địa chỉ của chúng • Hệ điều hành đảm nhiệm việc cấp bộ nhớ còn trống cho những biến này • Ðể tham chiếu đến một giá trị cụ thể trong bộ nhớ. chúng ta chỉ cần dùng tên của biến .Ví dụ BEGIN DISPlAY ‘Enter 2 numbers’ INPUT A.

3 số / hằng số thực  ‘Black’ Hằng chuỗi  ‘C’ Hằng ký tự  Biến lưu giữ các giá trị hằng  .Hằng Một hằng (constant) là một giá trị không bao giờ thay đổi  Các ví dụ 5 số / hằng số nguyên  5.

các nhãn (labels) và các đối tượng khác nhau do người dùng định nghĩa gọi là định danh  Ví dụ về các định danh đúng  arena  s_count  marks40  class_one  . các hàm (functions).Định danh Tên của các biến (variables).

nhưng số ký tự trong một biến được nhận diện bởi trình biên dịch thì thay đổi theo trình biên dịch  Các định danh trong C có phân biệt chữ hoa và chữ thường  .. end  Các định danh có thể có bất cứ chiều dài nào theo quy ước.Định danh Ví dụ về các định danh sai  1sttest  oh!god Không hợp lệ !  start..

Các nguyên tắc đặt tên định danh Tên biến phải bắt đầu bằng một ký tự alphabet Theo sau ký tự đầu có thể là các ký tự chữ. số … Nên tránh đặt tên biến trùng tên các từ khoá Tên biến nên mô tả được ý nghĩa của nó Tránh dùng các ký tự gây lầm lẫn Nên áp dụng các quy ước đặt tên biến chuẩn khi lập trình .

Ví dụ từ integer cho tên biến thì hoàn toàn hợp lệ ngay cả khi mà từ khóa là int  .Từ khóa Từ khóa: Tất cả các ngôn ngữ dành một số từ nhất định cho mục đích riêng  Những từ này có một ý nghĩa đặc biệt trong ngữ cảnh của một ngôn ngữ cụ thể  Sẽ không có xung đột nếu từ khóa và tên biến khác nhau.

nguyên. 15. Ví dụ : 10 hay 178993455  Số thực.22 hay 15463452.25  Số dương  Số âm Ví dụ : Y hay N .Kiểu dữ liệu  Các kiểu dữ liệu khác nhau được lưu trữ trong biến là:  Số (Numbers)  Số Ví dụ : John  Giá trị luận lý :  Tên. Ví dụ.

)  Kiểu dữ liệu mô tả loại dữ liệu sẽ được lưu trong biến  Tên biến đặt sau kiểu dữ liệu  Ví dụ : tên biến “varName” đứng sau kiểu dữ liệu “int” kiểu dữ liệu tên biến int varName .Kiểu dữ liệu (tt.

Kiểu dữ liệu cơ bản Kiểu dữ liệu cơ bản int float double char void .

Kiểu số nguyên (int) Lưu trữ dữ liệu số int num. -232  .  Không thể lưu trữ bất cứ kiểu dữ liệu nào khác như “Alan” hoặc “abc”  Chiếm 16 bits (2 bytes) bộ nhớ  Biểu diễn các số nguyên trong phạm vi 32768 tới 32767  Ví dụ : 12322. 0.

Kiểu số thực (float) Lưu trữ dữ liệu số chứa phần thập phân float num.05.  Có độ chính xác tới 6 con số  Chiếm 32 bits (4 bytes) bộ nhớ  Ví dụ : 23.5. 32  . 56.

32  .Kiểu số thực (double) Lưu trữ dữ liệu số chứa phần thập phân double num. 56.5.  Có độ chính xác tới 10 con số  Chiếm 64 bits (8 bytes) bộ nhớ  Ví dụ : 23.05.

‘$’ ‘%’ . gender='M'. Chiếm 8 bits (1 byte) bộ nhớ Ví dụ: ‘a’.Kiểu ký tự (char )    Lưu trữ một ký tự đơn char gender. ’5’ . ‘m’. ‘1’.

Kiểu void   Không lưu bất cứ dữ liệu gì Báo cho trình biên dịch không có giá trị trả về .

Những kiểu dữ liệu dẫn xuất Bộ bổ từ (Modifiers) kiểu dữ liệu Kiểu dữ liệu cơ bản Kiểu dữ liệu dẫn xuất unsigned int unsigned int (chỉ là số dương) short int short int (chiếm ít bộ nhớ hơn int) Long int /longdouble (chiếm nhiều bộ nhớ hơn int/double) long int/double .

Các kiểu dữ liệu signed và unsigned     Kiểu unsigned chỉ rõ rằng một biến chỉ có thể nhận giá trị dương unsigned int varNum. varNum được cấp phát 2 bytes Bổ từ unsigned có thể được dùng với kiểu dữ liệu int và float Kiểu unsigned int hỗ trợ dữ liệu trong phạm vi từ 0 đến 65535 . varNum=23123.

648 và  long double chiếm 128 bits (16 bytes) .483.647  long int chiếm giữ 32 bits (4 bytes)  -2.483.Những kiểu dữ liệu long (dài) và short (ngắn)  short int chiếm giữ 8 bits (1 byte)  Cho phép số có phạm vi từ -128 tới 127 2.147.147.

Kiểu dữ liệu & phạm vi giá trị Kiểu Dung lượng tính bằng bit Phạm vi char Unsigned char signed char int unsigned int signed int short int unsigned short int 8 8 8 16 16 16 16 16 -128 tới 127 0 tới 255 -128 tới 127 -32. 535 .768 tới 32.535 Giống như kiểu int Giống như kiểu int 0 tới 65.767 0 tới 65.

294.147.483.) Kiểu Dung lượng tính bằng bit Phạm vi signed short int long int signed long int unsigned long int float double long double 16 32 32 32 32 64 128 Giống như kiểu short int -2.483.295 Giống như kiểu long int 6 con số thập phân 10 con số thập phân 10 con số thập phân Lập trình cơ bản C/Chương 2/ 66 of 22 .647 0 tới 4.147.967.Kiểu dữ liệu & phạm vi giá trị (tt.648 tới 2.

float length. } /*abc of type character */ /*xyz of type integer */ /*length of type float */ /*area of type double */ /*liteyrs of type long int */ /*arm of type short integer*/ . long liteyrs. short arm.Ví dụ về cách khai báo biến main () { char abc. int xyz. double area.