xây dựng 1 phần thành phần server trong hệ thống mobile portal - Pdf 24

HÀ NỘI 05-2011
PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
1. Thông tin về sinh viên
Họ và tên sinh viên: Nguyễn Quốc Huy
Điện thoại liên lạc : 01692348486 Email:
Lớp: CNPM Hệ đào tạo: Đại học chính quy
Đồ án tốt nghiệp được thực hiện tại: Đại học Bách Khoa – Hà Nội
Thời gian làm ĐATN: Từ ngày 28 / 02 /2011 đến 28 / 05 /2011
2. Mục đích nội dung của ĐATN
• Tìm hiểu môi trường lập trình trên điện thoại iPhone
• Xây dựng ứng dụng cung cấp dịch vụ thông tin , hỗ trợ người dùng trên đi thoại di
động iPhone (phía client)
• Xây dựng Server cung cấp cổng thông tin phục vụ ứng dụng phía client
3. Các nhiệm vụ cụ thể của ĐATN
Từ các mục đích nội dụng, các nhiệm vụ cụ thể của đồ án sẽ thực hiện
• Tim hiểu về lập trình trên điện thoại di động
• Tìm hiểu về iPhone
• Tìm hiểu về công cụ, ngôn ngữ , nền tảng lập trình cho điện thoại iPhone
• Tìm hiểu về thiết kế và lập trình Server , mô hình hệ thống Mobile Portal
• Thiết kế và xây dựng ứng dụng cung cấp dịch vụ thông tin trên điện thoại iPhone
4. Lời cam đoan của sinh viên:
Tôi – Nguyễn Quốc Huy - cam kết ĐATN là công trình nghiên cứu của bản thân tôi dưới sự
hướng dẫn của ThS Lương Mạnh Bá và ThS Nguyễn Tiến Thành
Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của bất kỳ
công trình nào khác.
Hà Nội, ngày tháng năm
Tác giả ĐATN
Nguyễn Quốc Huy
Sinh viên thực hiện: Nguyễn Quốc Huy - 20061391 Khóa K51 Lớp Công nghệ phần mềm Page 1
5. Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN và cho phép bảo
vệ:

Sinh viên thực hiện: Nguyễn Quốc Huy - 20061391 Khóa K51 Lớp Công nghệ phần mềm Page 3
Lời nói đầu
Đồ án tốt nghiệp này đã được hoàn thành sau một thời tìm hiểu, xây dựng tại Công ty
Cổ phần dịch vụ công nghệ thông tin Naiscorp. Ngoài sự cố gắng và nỗ lực của bản
thân, còn có sự giúp đỡ của nhiều người để em có thể hoàn thành được đồ án như ngày
nay.
Trước hết, em xin được gửi lời cảm ơn sâu sắc đến ThS Lương Mạnh Bá và ThS
Nguyễn Tiến Thành - Bộ môn Công nghệ phần mềm, Viện Công nghệ Thông tin và
Truyền thông, trường Đại học Bách Khoa Hà Nội đã hết lòng giúp đỡ, định hướng và chỉ
dạy tận tình giúp em vượt qua những khó khăn trong quá trình em làm đồ án tốt nghiệp.
Em xin được gửi lời cảm ơn tới các thầy cô giáo trong trường Đại học Bách Khoa Hà
Nội nói chung và các thầy cô trong viện Công nghệ Thông tin và Truyền thông, Bộ môn
Công nghệ phần mềm nói riêng đã tận tình giảng dạy, truyền đạt cho em những kiến thức,
những kinh nghiệm quý báu trong suốt 5 năm học tập và rèn luyện tại trường Đại học Bách
Khoa Hà Nội.
Ngoài ra, em cũng xin gửi lời cảm ơn đến chị An Thị Hồng , anh Mai Đình Thắng và
các anh chị em công ty Naiscorp đã tạo điều kiện để em có thể hoàn thành sản phẩm và
cũng là đồ án của mình.
Nguyễn Quốc Huy
Sinh viên thực hiện: Nguyễn Quốc Huy - 20061391 Khóa K51 Lớp Công nghệ phần mềm Page 4
Phần 1 : Nền tảng công nghệ
1. Chương 1 : Tìm hiểu môi trường lập trình trên iPhone
1.1. Tổng quan về lập trình trên di động

1.1.1. Thị trường lập trình trên di động :
Số lượng thiết bị di động ngày càng tăng ở Việt Nam, nhiều người đã coi điện thọai
di động như một vật không thể thiếu trong cuộc sống hằng ngày. Cùng với sự phát triển
mạnh mẽ của công nghệ thông tin trong thời đại mới, người sử dụng di động bắt đầu
hướng tới những nhu cầu cao cấp hơn. Không chỉ nghe-gọi, nhắn tin mà giờ đây họ
còn muốn sở hữu một chiếc điện thoại có khả năng truy cập mạng và thực hiện

Sinh viên thực hiện: Nguyễn Quốc Huy - 20061391 Khóa K51 Lớp Công nghệ phần mềm Page 6
Nhu cầu người dùng tăng cao , khiến cho sự phát triển của các nền tảng di động
tăng trưởng 1 cách mạnh mẽ , đặc biệt được dự đoán sẽ bùng nổ trong năm 2011 , đã
thu hút một lượng lớn các lập trình viên chuyển từ các lĩnh vực khác sang . Nó gián
tiếp tạo ra 1 cộng đồng lớn , mà trong đó có sự giúp đỡ , hỗ trợ lẫn nhau ; tạo ra 1 cộng
đồng thư viện lập trình API rộng rãi khiến cho việc lập trình trở nên đơn giản hơn .
Sự hỗ trở của các hãng lớn cho các nền tảng phát triển của mình tạo điều kiện thuận
lợi cho các lập trình viên trong việc thiết kế, xây dựng cũng như quảng bá sản phẩm tới
mọi đối tượng người dùng .
2. Những ưu điểm , thuận lợi :
Tuy phần cứng di dộng ngày càng phát triển nhưng nó cũng không thể hoàn toàn
thay thế được những chiêc PC bởi hạn chế về kích thước cũng như công nghệ phát triển
. So với chiếc máy tính để bàn hay laptop, chỉ với bộ nhớ trong vài GB, RAM cao nhất
là 256 MB, bộ nhớ của chiếc điện thoại di động quả là quá nhỏ. Hơn nữa, một phần bộ
nhớ này lại đã được sử dụng để chạy hệ điều hành, xử lý đồ họa… Do đó khi viết ứng
dụng, lập trình viên phải chú ý nhiều đến bộ nhớ. Có thể nói rằng lập trình cho di động
giống như việc đẩy các lập trình viên về với thời kỳ đầu của lập trình cho máy tính cá
nhân, phải tiết kiệm từng KB bộ nhớ một nếu không muốn xảy ra tình trạng tràn bộ
nhớ.
Người sử dụng ứng dụng trên di động đòi hỏi tốc độ phải nhanh, ví như mở một
game, người ta không thể ngồi chờ cả chục phút để game load xong. Do đó, quá trình
đóng, mở ứng dụng phải diễn ra nhanh chóng. Hơn nữa, dù có thông minh đến mấy,
nhiều chức năng đến mấy, chiếc điện thoại di động cũng phải là “chiếc điện thoại”
trước đã. Vậy khi đang chạy ứng dụng, bất thình lình có một tin nhắn hay một cuộc gọi
đến thì sao? Ứng dụng phải được đóng tạm thời một cách nhanh chóng, lưu trữ lại
trạng thái trước khi đóng, cho người dùng nhận tin nhắn, cuộc gọi (nếu người dùng lựa
chọn nhận), sau đó lại cho phép người dùng trở lại ứng dụng với trạng thái trước đó.
Sức hấp dẫn của Internet là không thể chối cãi. Người dùng muốn truy cập internet
mọi lúc mọi nơi, người lập trình thì muốn tạo ra các ứng dụng có khả năng khai thác
nguồn tài nguyên vô tận của internet. Tuy nhiên không phải thiết bị di động nào cũng

Có thể nói iPhone là nền tảng đem lại lợi nhuận cao nhất cho lập trình viên cũng
như các hãng cung cấp dịch vụ . Sự thay đổi về đa nhiệm ở các phiên bản mới ( 4.x ) so
với các phiên bản trước đó là sự cải tiến đáng kể nhất . Sự thành công của iPhone
không chỉ bởi nền tảng có giao diện đơn giản, những chiếc di động thiết kế đẹp, mà
Apple đã xây dựng một "hệ sinh thái" với vô số ứng dụng trong App Store.
• Symbian
Sự thay đổi chậm chạp khiến cho nền tảng này của Nokia đang mất đi vị thế độc
tôn vốn có trước đây của nó . Sức thu hút lập trình viên cũng không còn được như
trước . Tuy nhiên nó vẫn giữ được thị phần trong mảng điện thoại phổ thông bởi tính
đơn giản và nhẹ nhàng của nó .
• WindowsPhone 7
WindowsPhone 7 là sự thay đổi thực sự chứ không phải là 1 bản cải tiến của
Windows Mobile 6.5 trước đó . Microsoft hứa hẹn sẽ mang lại những trải nghiệm mới
Sinh viên thực hiện: Nguyễn Quốc Huy - 20061391 Khóa K51 Lớp Công nghệ phần mềm Page 8
cho người dùng và lập trình viên , đơn giản , dễ dùng . Mới ra đời nên Microsoft cũng
đang tích cực phát triển gian ứng dụng Market Place và hoàn thiện các công cụ lập
trình liên quan . Hi vọng đây cũng sẽ là nền tảng thành công giống như Windows 7 của
Microsoft .
• Blackberry OS
Cho ra mắt liền 2 phiên bản OS 6 và 7 trong khoảng thời gian ngắn , RIM cho thấy
vòng đời của các hệ điều hành ngày càng rút ngắn dần , điều này tích cực mang lại sự
phong phú cho người dùng và lập trình viên . Hệ điều hành này của RIM có khả năng
tướng thích với HTML 5 và hỗ trợ đa điểm tốt hơn .
• Samsung Bada
Samsung từng sản xuất di động chạy Windows Mobile, Android Bada là nền tảng
của hãng phát triển riêng, với giao diện có nhiều đường nét của TouchWiz. Bada dành
cho màn hình cảm ứng, nhấn mạnh vào các yếu tố như giải trí, kết nối. Samsung Wave
S8500 là model đầu tiên chạy nền tảng này, máy sẽ bán ra trong quý này.
Hiện tại, Bada đang được Samsung hoàn thiện, hãng cũng đã giới thiệu công cụ lập
trình, các nhà phát triển có thể viết các ứng dụng về giao diện Flash, điều khiển web,

iPhone phân tích các cú gõ để đề nghị các từ mà người dùng gõ vào, và học được
những từ người dùng thường hay gõ nhất – kể cả tên riêng và thông tin trong sổ liên lạc
(contact list) của họ.
Nhấn và giữ nút Home để mở chế độ Voice Control (Điều Khiển Bằng Khẩu Lệnh),
rồi đọc vào tên hay số điện thoại của một người liên lạc để gọi điện. iPhone cũng mở
nhạc và tạo ra các danh mục mở (playlist), bằng cách chỉ việc dùng khẩu lệnh. Đây là
một trong các tính năng mới được thêm vào sau này của iPhone .
iPhone 3GS được chuẩn hóa bằng các tính năng tiếp cận sử dụng (accessibility) hỗ
trợ cho người khuyết tật.
iPhone cung cấp các dữ liệu vị trí để tìm đến các ứng dụng cài đặt sẵn và Cửa
Hàng Ứng Dụng (App Store). Khi chụp ảnh bằng camera iPhone có thể gắn thẻ địa lý
(geotag), ghi các thông tin về địa điểm GPS (Hệ Thống Định Vị Toàn Cầu) cho nó.
Nhờ vậy, khi người dùng chia sẻ hình ảnh trên mạng, bạn bè và gia đình có thể biết
được địa điểm của hình chụp.
2. Hạn chế của iPhone :
Cũng như các thiết bị di động khác, iPhone cũng có những hạn chế nhất định mang
tính đặc thù chung cũng như riêng cho thiết bị di động
Bộ nhớ và tốc độ xử lý : Bộ nhớ ít so với các thiết bị PC . Tốc độ xử lí đạt mức PC
ở các thế hệ trước .
Sinh viên thực hiện: Nguyễn Quốc Huy - 20061391 Khóa K51 Lớp Công nghệ phần mềm Page 10
Màn hình nhỏ : màn hình của iPhone có độ phân giải 480 x 320 pixel . Không có
nhiều không gian để làm việc cùng. Kích thước màn hình nhỏ cũng dẫn tới việc chỉ có
duy nhất 1 cửa sổ có thể hiển thị tại một thời điểm . Tuy nhiên màn hình của iPhone
vẫn được coi là có số điểm anh cao trong các thiết bị hiện nay .
Bảo mật : chỉ có thể đọc và ghi vào thư mục là một phần của gói ứng dụng. Vùng
có thể truy nhập trong một ứng dụng được gọi là sandbox. Không thể đọc file được tạo
bởi ứng dụng khác. Không thể ghi vào bất cứ nơi nào ngoài sandbox của ứng dụng.
Ứng dụng có vòng đời ngắn : các ứng dụng iPhone không thể thường trú trong bộ
nhớ. Các ứng dụng thường trú trong bộ nhớ là ứng dụng có thể chạy ẩn trong khi người
dùng chạy ứng dụng khác. iPhone chỉ cho phép 1 chương trình chạy tại một thời điểm

Tab bar application Cung cấp một controller đặc biệt hiển thị một nút bên dưới
màn hình. Đây là template thích hợp cho các ứng dụng kiểu
cho iPod hay là Mobile Phone.
Window-based
application
Framework cơ bản nhất. Áp dụng với những ứng dụng
không thích hợp với bất kỳ template nào ở trên
Bảng 1.3 : các Template thường dùng
Sinh viên thực hiện: Nguyễn Quốc Huy - 20061391 Khóa K51 Lớp Công nghệ phần mềm Page 13
• Sự bố trí của 1 project trong Xcode :
Sau khi tạo một project mới, màn hình project sẽ mở ra:
Hình 1.4 : Xcode Editor
Một project đóng gói nguồn, framework và các tài nguyên của ứng dụng. Trong
một project bao gồm:
• Classes : Chứa các lớp Objective-C mà ứng dụng cần sử dụng: đối tượng
delegate, view controller, và các đối tượng khác người dùng tạo ra. Khi
muốn thêm một lớp mới vào ứng dụng của mình, lập trình viên sẽ thêm lớp
mới của mình vào đây
• Other sources: các nguồn khác được biên dịch vào ứng dụng. Mặc định,
Other sources sẽ chứa các header tiền biên dịch và hàm main.
• Resources: Các tài nguyên của ứng dụng mà không được biên dịch vào
trong source code nhưng được sao chép vào thư mục chương trình khi ứng
dụng build lên. Các tài nguyên này bao gồm: ảnh, âm thanh, game level hay
các file quan trọng khác.
Sinh viên thực hiện: Nguyễn Quốc Huy - 20061391 Khóa K51 Lớp Công nghệ phần mềm Page 14
• Frameworks: chứa các framework mà ứng dụng có liên kết. Các thư viện
này được liên kết lúc build.
• Products: build target cho ứng dụng
2. Thành phần Interface builder :
Cũng giống các SDK lập trình cao cấp hiện nay, nền tảng iPhone cũng hỗ trợ lập

dụng
View Tạo một file để thiết kế view cho ứng dụng
iPad
Window Dùng dể thiết kế một cửa sổ cho ứng dụng
iPad
Empty
Mac OS
X
Cocoa Application Tạo một file giao diện sử dụng để thiết kế giao
diện cho ứng dụng Cocoa. File giao diện này
chứa 1 cửa sổ.
Main Menu Tạo tài liệu để thiết kế thanh thực đơn cho ứng
dụng Cocoa
View Dùng để thiết kế một view trong ưng dụng
Cocoa
Window Dùng để thiết kế một cửa sổ trong ứng dụng
Cocoa
Empty Tạo một file rỗng mà người dùng có thể tùy ý
thêm các đối tượng
Carrbon Application Tạo một file giao diện sử dụng để thiết kế giao
diện cho ứng dụng Carbon. File giao diện này
chứa 1 cửa sổ.
Dialog Tạo tài liệu để thiết kế hộp thoại cho ứng dụng
Carbon
Main Menu Tạo tài liệu để thiết kế thanh thực đơn cho ứng
Sinh viên thực hiện: Nguyễn Quốc Huy - 20061391 Khóa K51 Lớp Công nghệ phần mềm Page 16
dụng Carbon
Window Dùng để thiết kế một cửa sổ trong ứng dụng
Carbon
Empty Tạo một file rỗng mà người dùng có thể tùy ý

o Cửa sổ Inspector: Cửa sổ Inspector giúp dễ dàng hiển thị và điều
chỉnh các cài đặt cho đối tượng hiện đang được chọn. Sử dụng các
biểu tượng chế độ dọc theo phía trên cửa sổ để lựa chọn một pane và
hiển thị các cài đặt tương ứng. Hình sau cho thấy cửa sổ thuộc tính
cho một nút Cocoa .
Sinh viên thực hiện: Nguyễn Quốc Huy - 20061391 Khóa K51 Lớp Công nghệ phần mềm Page 18
Hình 1.9 : cửa sổ thuộc tính Interface Builder
o Bảng điều khiển kết nối: Một kết nối là cách để các thành phần giao
diện kết hợp với mã nguồn. Đối với tài liệu được sử dụng nền tảng
Cocoa và Cocoa Touch, bảng điều khiển kết nối là một cách nhanh
chóng để tạo và quản lý các kết nối cho một đối tượng cụ thể.
Sinh viên thực hiện: Nguyễn Quốc Huy - 20061391 Khóa K51 Lớp Công nghệ phần mềm Page 19
Hình 1.9 : Bảng kết nối của Interface Builder
Sinh viên thực hiện: Nguyễn Quốc Huy - 20061391 Khóa K51 Lớp Công nghệ phần mềm Page 20
3. Thành phần iPhone Simulator :
iPhone Simulator là giả lập của iPhone cho phép người dùng triền khai và kiểm thử
các ứng dụng iPhone trên máy tính để bàn. Simulator cung cấp môi trường giống với
iPhone với tùy chọn menu để giả lập khóa, xoay màn hình… Tuy nhiên nó cũng có một
số giới hạn nhất định do desktop không có các phần cứng cần thiết để thực hiện các tác
vụ đó.
Một số chức năng quan trọng không có trong simulator:
Không có API đo gia tốc
Chỉ giới hạn với một số cử chỉ tương tác với màn hình cảm ứng, và không hỗ trợ
nhiều hơn 2 ngón tương tác lên màn hình cảm ứng.
Ứng dụng sẽ không nhận điện thoại gọi đến.
Không thể truy nhập mạng EDGE/3G
Không có chức năng ghi hình và ghi âm.
Chỉ có sẵn một số ứng dụng của iPhone: Contacts, Safari, Photos và Settings.
Không thể thấy tác động của ứng dụng lên CPU và bộ nhớ của iPhone bởi máy
desktop có nhiều tài nguyên hơn để chạy ứng dụng. Đồ họa chậm hay các vấn đề khác

a) Runtime :
Ngôn ngữ Objective-C giảm nhẹ tới mức tối thiểu những việc cần làm tại thời gian
biên dịch (compile time) và liên kết (link time) để đẩy hết cho lúc chạy (runtime). Bất
cứ khi nào có thể, nó tự động thực hiện các hoạt động như tạo các đối tượng và xác
định xem sẽ gọi phương thức nào. Điều này có nghĩa rằng ngôn ngữ không chỉ đòi hỏi
Sinh viên thực hiện: Nguyễn Quốc Huy - 20061391 Khóa K51 Lớp Công nghệ phần mềm Page 22
một trình biên dịch, mà còn cần một runtime system để thực thi mã biên dịch. Runtime
system hoạt động như một loại hệ điều hành cho ngôn ngữ Objective-C vì nhờ nó mà
ngôn ngữ này mới có thể làm việc. Tuy nhiên, các lập trình viên không nhất thiết phải
tương tác trực tiếp với runtime.
b) Đối tượng
Khái niệm đối tượng trong Objective-C không khác so với trong các ngôn ngữ lập
trình hướng đối tượng khác như là Java , C++ hay C#. Đối tượng bao gồm các thuộc
tính và các phương thức.
• id: Trong Objective-C, định danh của đối tượng là một loại dữ liệu đặc biệt:
id. Đây là kiểu chung cho bất kỳ loại đối tượng nào kể cả lớp. (Nó có thể
được sử dụng cho cả thể hiện của lớp và chính bản thân đối tượng lớp) . id
là con trỏ tới cấu trúc dữ liệu đối tượng:
typedef struct objc_object {
Class isa;
} *id;
Do đó, tất cả các đối tượng đều chứa biến thành phần isa để xác định xem
nó là thể hiện của lớp nào.
Giống như một hàm hay màng của C, một đối tượng được xác định bởi địa
chỉ của nó. Tất cả các đối tượng, bất kể biến và phương thức thành phần của
nó là gì, đều thuộc loại id.
id anObject;
• Xác định kiểu dữ liệu động: Kiểu dữ liệu id có thể đại diện cho tất cả các
đối tượng tuy nhiên bản thân nó lại không chứa bất kỳ thông tin nào về đối
tượng, ngoài việc chỉ ra rằng đó là một đối tượng. Nhưng các đối tượng

Trong mã nguồn, thông điệp chính là tên của một phương thức và các tham
số được truyền vào cho nó. Khi một thông điệp được gửi đi, runtime
system lựa chọn phương thức thích hợp từ các phương thức của đối tượng
nhận và chạy nó.
Tên phương thức trong một thông điệp dùng để chọn phương thức thực thi.
Vì lý do này, tên phương thức trong thông điệp còn được gọi là “selector”.
Các phương thức có thể nhận số tham số truyền vào tùy ý, cách nhau bởi
dấu “:”. Và để tránh nhầm lẫn có thể đặt tên cho các tham số.
Ví dụ:
[myRectangle setOriginX: 30.0 y: 50.0]
Một thông điệp có thể được lồng trong thông điệp khác. Ví dụ :
[myRectangle setPrimaryColor:[otherRect primaryColor]];
Sinh viên thực hiện: Nguyễn Quốc Huy - 20061391 Khóa K51 Lớp Công nghệ phần mềm Page 24
• Gửi thông điệp tới đối tượng nil: trong Objective-C, điều này hoàn toàn
hợp lệ, nó chỉ đơn giản không gây hiệu ứng gì trong khi chạy.
• Ràng buộc động (Dynamic Binding): Một khác biệt quan trọng giữa lời
gọi hàm và thông điệp là một hàm và các tham số của nó được liên kết với
nhau trong mã biên dịch, nhưng thông điệp và đối tượng tiếp nhận không
thống nhất cho đến khi chương trình đang chạy và tin nhắn được gửi đi. Vì
vậy, phương thức chính xác được gọi để trả lời một phương thức chỉ có thể
được xác định tại thời gian chạy, không phải khi mã được biên dịch.
Phương thức chính xác mà một thông điệp gọi sẽ phụ thuộc vào đối tượng
nhận. Các đối tượng khác nhau có thể có các phương thức khác nhau thực
thi cùng một lời gọi hàm (tính đa hình). Đối với trình biên dịch, để tìm ra
phương thức thực thi đúng thông điệp, nó cần phải biết đối tượng đó thuộc
lớp nào. Những thông tin này chỉ được đối tượng tiết lộ tại thời gian chạy
khi nó nhận được thông điệp (xác định kiểu động).
Việc lựa chọn một phương thức thực hiện sẽ xảy ra khi chạy. Khi một thông
điệp được gửi, một runtime messaging rountine sẽ tìm kiếm đối tượng nhận
và phương thức có tên trong thông điệp.


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status