Mẫu báo cáo đồ án tốt nghiệp



tải về 0.51 Mb.
trang2/6
Chuyển đổi dữ liệu24.12.2018
Kích0.51 Mb.
1   2   3   4   5   6

TỔNG QUAN VỀ ĐỀ TÀI


    1. Giới thiệu chung

Cùng với sự phát triển của các thiết bị di động và với xu thế di động hóa của con người thì lập trình di động đang là một mảng rất phát triển trên thế giới với các nền tảng như Symbian, Rim, Window Mobile hay mới đây là Android và iOS.

Một chiếc điện thoại bây giờ không chỉ là “Nghe – Gọi” mà nó cnf có thể lướt Web, Game 3D, Chat, Email, ứng dụng văn phòng, quản lý từ xa,… Có thể nói gần như tất cả các tiện ích trên máy tính điện tử đang dần tích hợp trên thiết bị di động.

Và một tương lai không xa việc tìm ra sự khác biệt của một thiết bị di động thong minh và chiếc máy tính thông thường sẽ trở nên không còn ý nghĩa.


    1. Định hướng về công nghệ

Với bài toán đặt ra như trên, chúng tôi đã đưa ra được định hướng về công nghệ và từ đó lập ra kế hoạch nghiên cứu và giả pháp phát triển ứng dụng.

  • Về công nghệ :

  • Tìm hiểu hệ điều hành MAC-OS và iOS

  • Objective-C và lập trình iPhone

  • Lý thuyết về nền tảng, kiến trúc.

  • Cài đặt môi trường.

  • Các bước xây dựng ứng dụng hoàn chỉnh.

  • Tìm hiểu SQLite

  • Webservice, Aspx và LinQ trong Visual Studio 2008

  • Lý thuyết về Webservice, Aspx.

  • Môi trường và công cụ.

  • Các bước xây dụng 1 Webservice.

  • Cách kết hợp giữa ứng dụng trong Iphone và Webservice.

  • Tìm hiểu XML

  • SOAP và các phương thức truyền dữ liệu qua mạng.

  • Về hệ thống :

  • Tìm hiểu và phân tích các nhu cầu của người dùng.

  • Phân tích và thiết kế hệ thống nghiệp vụ phù hợp.

  • Đáp ứng được yêu cầu quản lý cơ bản.

  • Đáp ứng được cách thức của một tài liệu về nấu ăn.

  • Có thể cập nhật, nâng cấp hệ thống.

  • Đánh giá khả năng ứng dụng và mở rộng cho sản phẩm.

  • Yêu cầu khi cài đặt.

  • Đánh giá tính khả thi

  • Đánh giá khả năng mở rộng cho sản phẩm.

  • Về quy trình sản xuất và ứng dụng:

  • Áp dụng quy trình sản xuất phần mềm theo chuẩn CMMi5

    1. Định hướng và kế hoạch nghiên cứu

      1. Định hướng nghiên cứu

Nhằm mục đích nghiên cứu, tìm hiểu về công nghệ lập trình di động,web service và một số công nghệ khác,chúng tôi đã xây dựng ứng dụng sổ tay nấu ăn trên iphone với mong muốn tạo ra một sản phẩm hoàn chỉnh từ những công nghệ mà mình đã nghiên cứu được đem lại sự tiện lợi cho người sử dụng.

Với mục tiêu hướng đến người dùng là những bạn trẻ, năng động, thích nấu ăn, chúng tôi đã xây dựng giao diện ứng dụng thân thiện với người dùng với những tính năng cơ bản và hữu ích nhất



  • Quản lý món ăn theo từng danh mục, nhóm.

  • Tạo thực đơn.

  • Thêm món ăn mới vào sổ tay.

  • Cập nhật món ăn mới.

  • Tìm kiếm và lựa chọn món ăn ưa thích.

  • Cập nhật tin tức hằng ngày.

  • Các mẹo vặt, bí quyết khi nấu ăn.

  • Giới thiệu các món đặc sản, nhà hàng.

  • Quảng cáo.

      III.2. Kế hoạch nghiên cứu

Với yêu cầu và mục đích như trên, chúng em triển khai nghiên cứu đề tài theo kế hoạch sau:



Hình 1: Kế hoạch nghiên cứu đề tài.



CHƯƠNG II

CƠ SỞ LÝ THUYẾT

.IGiới thiệu các nền tảng mobile


  • Windows Mobile

Windows Mobile là một hệ điều hành loại thu gọn kết hợp với một bộ các ứng dụng cơ bản cho các thiết bị di động dựa trên giao diện lập trình ứng dụng Win32 của Microsoft. Các thiết bị chạy Windows Mobile bao gồm Pocket PC, Smartphone, Portable Media Center và các máy tính lắp sẵn (on-board) cho một số loại ô tô.

  • Symbian

Symbian là hệ điều hành được viết và sử dụng cho một số điện thoại di động cao cấp của Nokia là chủ yếu.

  • Android

Là ngôi sao mới nổi, được phát triển bởi Google theo hướng mã nguồn mở. Android được xây dựng trên Linux Kernel, rất dễ phát triển và học lập trình khá nhanh. Ngôn ngữ nền tảng là Java, Android được dự đoán sẽ ngang với iOS và thâm chí hơn thế.

  • Samsung Bada

Được nhà sản xuất Samsung phát triển và sở hữu. Là một dòng flatform được đánh giá là thong minh. Nó sẽ cho phép người sử dụng cuối cùng để thưởng thức trải nghiệm di động thông qua tính năng tuyệt vời.

  • BlackBerry

BlackBerry là một dòng thiết bị gửi nhận email di động và điện thoại thông minh do công ty Research In Motion (RIM) của Canada phát triển và thiết kế trong hơn một thập kỷ. Có

  • IPhone

Được phát triển và cung cấp bởi Apple với kho ứng dụng đồ sộ có khả năng tự cập nhật. Chưa hết, iPhone cũng là dòng điện thoại di động dẫn đầu thế giới hiện nay về màn hình cảm ứng nổi bật, các ứng dụng đẹp mắt, khả năng định vi toàn cầu, …

.IIObjective-C và lập trình iPhone

.II.1.Giới thiệu về Objective-C

.II.1.1. Giới thiệu chung


Objective-C là ngôn ngữ lập trình đã xuất hiện từ rất lâu, nó được thiết kế và phát triển từ năm 1980. Hiện tại, Objective-C lại trở nên phổ biến vì nó được Apple chọn làm ngôn ngữ lập trình cho hệ thống Mac và iPhone.

Objective-C được thiết kế bởi Brad Cox khi ông làm việc cho công ty Stepstone vào đầu những năm 1980. Objective-C được thiết kế để phục vụ mục đích lập trình hướng đối tượng. Nó hoạt động giống như là một tập hợp các thành phần mở rộng rất mạnh mẽ của ngôn ngữ C. Objective-C kết hợp các đặc điểm ưu tú nhất của C và ngôn ngữ SmallTalk. Objective-C khá đơn giản để học và có đầy đủ các khả năng của một ngôn ngữ lập trình hướng đối tượng.

Objective-C đơn giản và nhỏ gọn nhưng lại là một thành phần mở rộng rất mạnh của ngôn ngữ chuẩn ANSI C. Objective-C cung cấp đầy đủ các khả năng lập trình hướng đối tượng nhưng lại được thực thi theo cách khá đơn giản và dễ dàng.

Hầu hết các ngôn ngữ lập trình hướng đối tượng cung cấp:



  • Một thư viện các đối tượng.

  • Các công cụ phát triển cần thiết.

  • Hỗ trợ hướng đối tượng và các thư viện liên quan.

Objective-C cung cấp đầy đủ các thành phần trên. Có thể sử dụng Objective-C để phát triển một phần mềm hoàn thiện. Apple đã chọn Objective-C làm ngôn ngữ lập trình chính cho hệ thống máy Mac và iphone.

Là ngôn ngữ hướng đối tượng nên Objective-C giải quyết các vấn đề lập trình dựa trên khái niệm các Object. Nó bao gồm 3 phần:



  • Interface: Interface của một lớp thông thường được định nghĩa trong file header với đuôi *.h. Nó chính là phần khai báo của một lớp.

  • Implementation: Mã nguồn của chương trình được viết trong phần implementation của lớp và được định nghĩa trong một file có đuôi *.m. Đây là phần định nghĩa của lớp.

  • Instantiation: Sau khi khai báo và định nghĩa một lớp, chúng ta có thể thục thể hóa lớp này bằng việc cấp phát bộ nhớ cho new object của lớp đó.

Tóm lại: Objective là:

  • Thành phần mở rộng của ngôn ngữ lập trình C.

  • Là ngôn ngữ lập trình hướng đói tượng đơn giản nhưng mạnh mẽ.

  • Là ngôn ngữ được Apple sử dụng để phát triển các ứng dụng cho hệ thống máy Mac và Iphone.

.II.1.2.Lý do sử dụng Objective-C


Ngôn ngữ lập trình Objective-C được chọn cho Cocoa framework vì một số lý do dưới đây:

  • Nó là ngôn ngữ lập trình hướng đối tượng và các chức năng cung cấp bởi Cocoa framework chỉ có thể được mang lại bởi các kỹ thuật hướng đối tượng.

  • Nó là thành phần mở rộng của chuẩn ANSI C vì vậy các chương trình viết bằng C của framework này sẽ không bị mất đi tính năng nào và người dùng được hưởng các lợi thế của ngôn ngữ C. Với ngôn ngữ này, người dùng có thể lựa chọn cả lập trình hướng đối tượng và lập trình thủ tục khi cần thiết.

  • Nó đơn giản và dễ học bởi cú pháp khá ngắn gọn giúp cho lập trình viên đạt được hiệu quả mong muốn mà không gặp nhiều khó khăn.

  • Nó rất năng động so với các ngôn ngữ mở rộng khác dựa trên C. Trình biên dịch đóng vai trò rất quan trọng trong việc bảo vệ thông tin liên quan đến các đối tượng để sử dụng lúc run time.

  • Nó là một ngôn ngữ mạnh bởi vì các quyết định có thể đưa ra lúc biên dịch sẽ được trì hoãn cho tới khi chương trình chạy.

  • Sự năng động của Objective-C cũng có lợi thế đáng kể:

  • Nó hỗ trợ ràng buộc đóng và mở tạo ra một cấu trúc đơn giản đối với giao diện tương tác người dùng.

  • Nó cho phép phát triển các công cụ phát triển phức tạp. Một giao diện cho hệ thống run time tạo điều kiện cho việc tiếp cận các thông tin lúc run time giúp cho việc monitor ứng dụng viết bằng Objective-C.


.II.1.3.Các từ khóa trong Objective-C


Objective-C là ngôn ngữ mở rộng của ngôn ngữ lập trình C, do đó chương trình được viết bằng C hay C++ hoàn toàn có thể được biên dịch như Objective-C. Ngoài các từ khóa dùng trong C và C++, Objective-C cung cấp thêm một số từ khóa khác. Để tránh xung đột với từ khóa của ngôn ngữ khác, Objective-C dùng “@” đứng trước mỗi từ khóa. Những từ khóa này được gọi là Compiler Directives.

Các lệnh chỉ thị được sử dụng để khai báo, định nghĩa các lớp, các thể loại, các phương thức:

Lệnh chỉ thị

Mô tả

@interface

Sử dụng để khai báo một lớp (class) hay một giao diện (interface).

@implementation

Dùng để định nghĩa một lớp (class) hay một thể loại (category).

@protocol


Sử dụng để khai báo một thủ tục hình thức (formal protocol).

@end

Kết thúc khai báo, định nghĩa thể loại (category) hoặc phương thức (protocol).

Bảng 1: Các lệnh sử dụng để khai báo trong Objective-C

Các lệnh chỉ thị được sử dụng để xác định khả năng truy cập của các thực thể.

(Mặc định là @protected).



Lệnh chỉ thị

Mô tả

@private

Giới hạn phạm vi truy cập của một biến thực thể chỉ trong lớp mà nó được khai báo.

@protected

Giới hạn phạm vi truy cập của một biến thực thể chỉ trong lớp khai báo nó và các lớp khác kế thừa lớp này.

@public

Không giới hạn phạm vi truy cập của biến này.

Bảng 2: Các lệnh xác định khả năng truy cập trong Objective-C


Các lệnh chỉ thị liên quan đến việc xử lý ngoại lệ (Exception handling)

Lệnh chỉ thị

Mô tả

@try

Định nghĩa một khối mã lệnh mà trong khối này có thể phát sinh ngoại lệ.

@throw

Đưa ra một ngoại lệ.

@catch

Bắt khối lệnh được thực thi nếu ngoại lệ phát sinh (ngoại lệ bên trong khối mã lệnh @try ngay trước đó)

@finally

Một khối mã lệnh sẽ được thực thi không cần biết có ngoại lệ xảy ra trong @try hay không

Bảng 3: Các lệnh sử dụng để xử lý ngoại lệ trong Objective-C

.II.2.Lập trình iPhone

.II.2.1.Giới thiệu chung

.II.2.1.1.Mac-OS

Hình 2: Hệ điều hành MAC OS.

Mac OS X là một hệ điều hành có lõi là Unix, giao diện đồ họa được công ty Apple tạo ra.Từ năm 2002 Mac OS X đựơc đính kèm trong tất cả các máy tính Macintosh. Nó thừa kế từ hệ điều hành Mac OS 9, hệ điều hành chính thức của Apple ra đời năm 1999. Mac OS X là một hệ điều hành Unix sử dụng giao diện đồ họa được xây dựng trên công nghệ phát triển bởi NeXT vào nửa cuối năm 1980, sau đó được Apple mua lại năm 1996. Từ phiên bản thứ 6 của Mac OS X Leopard 10.6.5 trở đi mỗi phiên bản của Mac đều được chứng nhận tiêu chuẩn Unix 03 – chạy trên hệ thống phần cứng intel. Phiên bản cho server đầu tiên Mac OS X Server 1.0 được đưa ra năm 1999 cùng với phiên bản cho máy tính để bàn Mac OS X 10.0 “Cheetah” theo sau vào ngày 24 tháng 3 năm 2001. Bản phát hành của Mac OS X được đặt tên big-cats ( những họ mèo lớn). Ví dụ: Mac OS X 10.6 được đặt tên là “Snow Leopard”. Phiên bản cho server Mac OS X server có kiến trúc tuơng tự như máy tính để bàn bao gồm các công cụ quản lý người dùng, cung cấp dịch vụ truy cập mạng. Các công cụ được nạp sẵn như thư điện tử, máy chủ Samba, máy chủ LADP, tên miền máy chủ…, và những công cụ khác. Nó có sẵn trong hệ thống phần cứng máy chủ XServer của Apple, tuy nhiên có thể hoạt động trong hầu hết các mẫu đựợc bán trên thị trường của Apple.

Mac OS X xây dựng trên lõi Macintosh (Macintosh kernel), chứa các thành phần của FreeBSD và NetBSD, là bổ sung của Unix được đưa vào NeXTSTEP tạo nên cốt lõi của hệ điều hành Mac OS X. NeXTSTEP làm hệ điều hành hướng đối tượng được Steve Jobs của công ty NeXTSTEP phát triển, sau đó ông rời Apple năm 1985. Trong khi Steve Jobs tạm rời Apple, Apple đã cố gắng tạo ra thế hệ OS tiếp theo thông qua Taligent, Copland với dự án Gershwin với một chút thành công.

Cuối cùng, NeXTSTEP được gọi là OPENSTEP được lựa chọn là nền tảng cho hệ điều hành tiếp theo của Apple, Apple đã mua đứt NeXT. Steve Jobs trở lại Apple đảm nhiệm vị trí CEO tạm thời và chính thức sau này, ông theo dõi sự chuyển đổi lập trình thân thiện OPENSTEP vào trong một hệ thống có thể được chấp nhận bởi thị trường người dùng cá nhân và chuyên gia của Apple. Dự án này đầu tiên được gọi là Rhapsody sau đó đổi tên thành Mac OS X.

.II.2.1.2. iPhone-OS

  1. Giới thiệu về iPhone- OS

iOS là hệ điều hành cho thiết bị di động của Apple. Ban đầu nó được phát triển cho iPhone, về sau nó hỗ trợ hầu hết các thiết bị di động của Apple như: iPod Touch, iPad, Apple TV. iOS được giới thiệu với iPhone vào 9/01/2007 tại Macworld Conference & Expo. Apple không bán bản quyền iOS cho bất kỳ nhà phát triển phần cứng nào khác.

Tính đến 14/11/2010, kho ứng dụng của iOS trên Apple Store có khoảng 300.000 ứng dụng và kho ứng dụng này luôn liên tục được cập nhật.





  1. Kiến trúc iPhone-OS


Hình 3: Kiến trúc iOS.



  • Cocoa Touch

  • Multi-Touch UI Framework: Gói thư viện xử lý việc tương tác giao diện với người dùng.

  • Core Motion Framework: Gói thư viện xử lý việc và xử lý dữ liệu từ các thiết bị

  • View Hierarchy Framework: Gói thư viện xử lý việc lấy nội dung văn bản.

  • Localization Framework: Gói thư viện dùng để xác định tên quốc gia có sử dụng các thiết bị di động trên nền tản iOS.

  • Controls Framework: Gói thư viện quản lý các control trên iOS.

  • Alets Framework: Gói thư viện xử lý các sự kiện cảnh báo cho iOS.

  • Web View UI Framework: Gói thư viện xử lý các vấn đề về Web.

  • Map kit Framework: Gói thư viện về bản đồ.

  • Image Picker UI Framework: Gói thư viện hỗ trợ xử lý đối tượng Picker .

  • Camera Framework: Gói thư viện hỗ trợ tương tác thiết bị camera và iOS.

  • Media

  • Core Audio Framework: Gói thư viện quản lý,cung cấp dịch vụ về audio cho iOS.

  • OpenAL Framework: Gói thư viện audio cho game, website trên iOS.

  • Audio Mixing Framework: Gói thư viện audio cho các ứng dụng xử lý âm thanh trên iOS.

  • Audio Recording Framwork: Gói thư viện hỗ trợ việc ghi âm cho iOS

  • Video playback Framwork: Gói thư viện hỗ trợ chơi game, xem film toàn trên iOS.

  • JPEG, PNG, TIFF: Các định dạng tập ảnh được hỗ trợ trên iOS.

  • PDF: Hỗ trợ đọc các tập tin có đuôi định dạng “*.pdf”.

  • Quartz(2D) Framwork: Gói thư viện cung cấp các API cho các ứng dụng xử lý đồ họa 2D.

  • Core Animation Framwork: Gói thư viện hỗ trợ giao diện lập trình đồ họa 2D, 3D.

  • OpenGL ES Framwork: Cung cấp API để lập trình đồ họa, xử lý dữ liệu đồ họa 2D, 3D.

  • Core Service

  • Address Book UI Framework: Hỗ trợ các thư viện để thiết kế ứng dụng liên quan đến Address Book.

  • Networking Framework: Gói thư viện hỗ trợ xử lý mạng, lập trình các ứng dụng về mạng trên iOS.

  • File Access Framework: Gói thư viện hỗ trợ xử lý tập tin trên iOS.

  • SQLite Framework: Gói thư viện hỗ trợ, xử lý dữ liệu với SQLite.

  • Net Services Framework: Gói thư viện hỗ trợ các dịch vụ mạng trên iOS

  • Threading Framework: Gói thư viện hỗ trợ xử lý luồng trên iOS.

  • Message UI Framework: Gói thư viện hỗ trợ gởi thư điện tử.

  • Core OS

  • Sockets Framework: Gói thư viện hỗ trợ việc giao tiếp mạng internet và iOS

  • Security Framework: Gói thư viện xử lý việc mã hóa, bảo mật trên iOS

  • Power Management: Tiện ích hỗ trợ quản lý nguồn điện đối với các thiết bị di động sử dụng công nghệ iOS.

  • Keychain Access: là một tiện ích cho phép người sử dụng xem các mật khẩu, các giấy chứng nhận, các dữ liệu trong bộ chìa khóa họ tạo ra.

  • Certificates: Dùng để xác nhận,đánh giá chứng nhận kỹ thuật số của thiết bị.

  • File System Framework: Gói thư viện dùng đề quản lý các tập tin hệ thống trên iOS.
.II.2.1.3.Hệ quản trị cơ sở dữ liệu SQlite

  1. Giới thiệu

SQLite là phần mềm quản lý cơ sở dữ liệu (DBMS) tương tự như Mysql, PostgreSQL... Đặc điểm của SQLite là gọn, nhẹ, đơn giản. Chương trình gồm 1 file duy nhất vỏn vẹn chưa đến 500kB, không cần cài đặt, không cần cấu hình hay khởi động mà có thể sử dụng ngay. Dữ liệu database cũng được lưu ở một file duy nhất. Không có khái niệm user, password hay quyền hạn trong SQLite database.

SQLite không thích hợp với những hệ thống lớn nhưng ở quy mô vừa tầm thì SQLite phát huy uy lực và không hề yếu kém về mặt chức năng hay tốc độ. Với các đặc điểm trên SQLite được sử dụng nhiều trong việc phát triển, thử nghiệm v..v.. và là sự lưa chọn phù hợp cho những người bắt đầu học database.



  1. Đặc điểm

  • Cơ sở dữ liệu dạng quan hệ (RDBMS), hỗ trợ chuẩn SQL-92

  • Sử dụng dưới dạng thư viện nhúng, không chạy ở theo kiểu server độc lập

  • Hỗ trợ các ngôn ngữ phổ biến: C, C++, C#, Basic, Python, PHP, Java ...

  • Không cần chỉ định kiểu dữ liệu (SQLite is typeless)

  • Hỗ trợ mã UTF8.

  • Hỗ trợ dòng lệnh.

  • Hỗ trợ giao dịch.

  • Hỗ trợ hiển thị.

  • Hỗ trợ C extensions.

  • Có các công cụ quản lý bằng đồ hoạ.

  • Download & sử dụng miễn phí.

  1. Phiên bản

Hiện tại SQLite có 2 nhánh khác nhau là version 2.x và version 3.x, do cấu tạo dữ liệu nội bộ khác nhau nên tên lệnh và tên thư viện của từng nhánh khác nhau. Lệnh sqlite làcủa version 2.x, sqlite3 là lệnh của version 3.x. Địa chỉ trang chủ http://sqlite.org.

.II.2.2. Các công cụ và môi trường lập trình iPhone



II.2.2.1. Môi trường yêu cầu

  • Hệ điều hành Mac OS version 10.x

  • iOS SDK version 3.x trở lên.

  • Các tool cần thiết khác như : Xcode,Interface Builder,Instrument Memory Leak,iPhone Simulator,SQLite Manager.

II.2.2.2. Các tool cần thiết
  1. Xcode

Hình 4 : Công cụ lập trình Xcode.


Xcode là một tập hợp các công cụ để phát triển phần mềm trên Mac OS, xcode được phát triển bởi Apple. Phiên bản mới nhất là 3.2, được đóng gói trong phiên bản Mac OS 10.6, tuy nhiên nó không mặc định cài sẵn mà có thể cài từ DVD hoặc tải xuống từ trang chủ Apple. Phiên bản hiện tại là 3.2.5 bao gồm iOS SDK 4.2.Bộ công cụ Xcode, giống như Mac OS X nó có nguồn gốc từ NeXT. Trước ngày 23 tháng 10 năm 2003 phát hành cho Mac OS 10.3, Apple đã giới thiệu bộ công cụ này là công cụ phát triển.

Các thành phần: Ứng dụng chính của bộ IDE này là Xcode, Xcode chứ hầu hết các tài liệu phát triển của Apple, và Interface Builder một công cụ phát triển giao diện đồ hoạ thân thiện. Bộ Xcode bao gồm phiên bảo đã chỉnh sửa của phần mềm miễn phí GCC. xCode hỗ trợ các ngôn ngữ lập trình: C, C++, Objective-C, Java, AppleScript, Python và Ruby với một khối các mẫu lập trình. Phần mềm của hãng thứ 3 được thêm vào có thể hỗ trợ GNU Pascal, Free Pascal, Ada, Per, C#, Haskell và D.

Hình 5: Giao diện chính của Xcode 3.2.5


  1. Interface Builder

Công cụ hỗ trợ thiết kế giao diện cho các ứng dụng iOS với các control trực quan.

Hình 6: Interface Builder.


c. Instrument Memory Leak

Công cụ kiểm soát và tối ưu hóa bộ nhớ khi phát triển một ứng dụng trên iphone trước khi đưa lên sử dụng trên máy thật.

Hình 7: Instrument Memory Leak.


  1. SQlite Manager

SQLite Manager là một plug-in của firefox quản lý database ngay trên trình duyệt Firefox.Có thể thực hiện được nhiều lệnh cơ bản giống như các hệ quản trị cơ sở dữ liệu khác.

Hình 8: SQLite Manager.


  1. iPhone Simulator

Công cụ giả lập điện thoại iPhone trên Mac OS dùng để test ứng dụng trong quá trình phát triển trước khi đưa lên test trên máy thật.iPhone Simulator hỗ trợ khá đầy đủ các chức năng của một điện thoại thật như : kết nối internet,trình duyệt web safari…

Hình 9: iPhone Simulator.


.II.2.3.Các bước xây dựng một ứng dụng cho iPhone

.II.2.3.1.Mô hình MVC

    1. Giới thiệu mô hình MVC

Phương pháp thiết kế MVC bắt nguồn từ việc phát triển giao diện người dùng trong ngôn ngữ lập trình Smalltalk, đây là một trong những phương pháp thiết kế thành công nhất trong các phương pháp thiết kế hướng đối tượng. Hiện nay, MVC được dùng rộng rãi trong nhiều hệ thống phần mềm hướng đối tượng, bất kể được viết bằng ngôn ngữ hướng đối tượng nào.

MVC là viết tắt của Model-View-Controller. Phương pháp thiết kế MVC (MVC Design Pattern) là phương pháp chia nhỏ một ứng dụng nhiều lớp hoặc chia nhỏ phần giao diện người dùng (user interface) của một ứng dụng thành ba thành phần chính là Model, View và Controller.

- Model : Là một đối tượng hoặc tập hợp các đối tượng biểu diễn cho phần dữ liệu của chương trình, ví dụ các dữ liệu được lưu trong cơ sở dữ liệu (CSDL) hay từ các hệ thống ứng dụng khác (như mail...).
- View : Là phần giao diện với người dùng, bao gồm việc hiện dữ liệu ra màn hình, cung cấp các menu, nút bấm, hộp đối thoại, chọn lựa..., để người dùng có thể thêm, xóa, sửa, tìm kiếm và làm các thao tác khác đối với dữ liệu trong hệ thống.
- Controller :Là phần điều khiển toàn bộ logic về hoạt động của giao diện, tương tác với thao tác của người dùng (từ chuột, bàn phím và các thiết bị ngoại vi khác) và cập nhật, thao tác trên dữ liệu theo đầu vào nhận được và điều khiển việc chọn phần “Hiển thị” thích hợp để truyền dữ liệu tới người dùng.

Với phương pháp thiết kế này, các chức năng hiển thị, chức năng logic điều khiển và chức năng truy cập dữ liệu của chương trình được chia làm các phần tách biệt.

Ưu điểm của mô hình này là ứng dụng được phát triển một cách độc lập, không bị phụ thuộc giữa các thành phần, nên việc thêm hoặc xóa một module trong ứng dụng này khá dễ dàng và nhẹ nhàng hơn so với việc phát triển ứng dụng theo mô hình cũ.

b. Mô hình MVC trong lập trình ứng dụng iPhone



Hình 10: Mô hình MCV trong lập trình iOS.

Mô hình MCV là mô hình chính được sử dụng trong lập trình iOS.Trong thực tế,một ứng dụng có thể bao gồm nhiều đối tượng Model,đối tượng View và đối tượng Controller khác nhau.Một đối tượng controller sẽ tương tác với đối tượng Model thông qua các methods và properties giao tiếp của đối tượng Model.Việc giao tiếp trong mô hình MVC được thực hiện thông qua Target-Action,Outlet và Actions.


.II.2.3.2.Xây dựng giao diện người dùng với Interface Builder

  1. Các thành phần cơ bản

  • Interface Builder gồm có 4 thành phần cơ bản : View,Library,Nib document browser và Inspector.

  • View : là nơi tạo giao diện chính chứa các component được kéo thả từ Library.

  • Library: chứa các item cần thiết dể xây dựng giao diện như : label,button,textfield…

  • Inspector: hiển thị tất cả các thuộc tính của item được chọn và cho phép chỉnh sứa chúng.

  • Nib document browser: cho phép xem danh sách và chỉnh sửa các item đã được sử dụng trong file Nib.

  • Interface Builder tương tác với source code thông qua Outlet và Action.

  • Outlet: kết nối giữa các item trên View với source code tương ứng, được khai báo trong source code như sau:

@property(nonatomic, retain)IBOutlet id someElement;  

  • Action: liên kết item với hành động tương ứng được khai báo trong source code.

-(Action)someAction:(id)sender; 

  1. Các bước xây dựng giao diện

  • Tạo một project mới từ Xcode

Mở Xcode và chọn File >> New Project và chọn View Based Project đặt tên là SampleProject.

Hình 11: Tạo một project mới từ Xcode.

Sau khi tạo project sẽ có được 3 file mới SampleProject.h, SampleProject.m và SampleProject.xib.


  • Tạo Outlet và Action

Mở file SampleProject.h và sửa lại như sau:

#import

@interface SampleProject : UIViewController {

UILabel* sampleLabel;

}

@property(nonatomic, retain) IBOutlet UILabel* sampleLabel;



- (IBAction)add:(UIButton*)sender;

@end


Mở file SampleProject.m thêm vào như sau:

#import "SampleProject.h"

@implementation SampleProject

@synthesize sampleLabel;

- (IBAction)add:(UIButton*)sender{

//Xử lý sự kiện nào đó

}

- (void)dealloc {



[sampleLabel release];

[super dealloc];

}

@end


- Tạo giao diện và liên kết với source code

Mở file SampleProject.xib sẽ hiển thị màn hình Interface Builder.



Hình 12: Tạo giao diện.



  • Kéo thả vào 1 Button trên View và liên kết với Outlet với source code

Hình 13: Liên kết đối tượng và Outlet



  • Gán sự kiện vào button

Hình 14: Gán sự kiện vào button



.II.2.3.3.Xử lý sự kiện trên iPhone

Trong lập trình iPhone,việc xử lý sự kiện được thực thi bởi lớp UIControl,nhờ đó chúng ta có thể sử dụng nhiều phương thức quan trọng trong iOS SDK thông qua lớp này. UIControl là lớp con của UIView,chứa các đối tượng User interface control quan trọng như UIButton,UISlider,UISwitch,UISegmentedControl…và các thuộc tính cơ bản của nó như: enabled,hightlighted,selected…

Ngoài ra khi sử dụng lớp UIControl chúng ta có thể truy cập trực tiếp đến các sự kiện touch events thông qua các phương thức : beginTrackingWithTouch:withEvent:, continueTrackingWithTouch:withEvent, endTrackingWithTouch:withEvent…và xử lý các sự kiện khác bằng cách gọi các phương thức Action hoặc Target.



  • Sử dụng phương thức addTarget:Action:forControlEvents:

Phương thức này được sử dụng khi khai báo và khởi tạo một đối tượng trong Xcode bằng code hoặc bằng cách sử dụng Interface Builder nhưng muốn thay đổi xử lý trong quá trình chạy ứng dụng.Việc sử dụng các phương thức [init] hoặc [itemWithType] sẽ cho phép khởi tạo và tùy chỉnh một đối tượng mà không cần sử dụng Interface Builder và khai báo Outlet cho đối tượng đó.

Bên cạnh đó việc gắn kết xử lý sự kiện cho đối tượng được thực hiện đơn giản qua code mà không cần phải khai báo (IBAction) cho mỗi hàm và thực hiện tham chiếu từ Interface Builder.Cách sử dụng phương thức addTarget:Action:forControlEvents: khá đơn giản và thuận tiện cho việc chỉnh sửa,bổ sung sau này.

Cách sử dụng để gọi một action:

UIButton *sampleButton = [ [UIButton alloc] init];

[sampleButton addTarget:self

action:@selector(sampleButtonPressed:)

forControlEvents:UIControlEventTouchUpInside];

Đoạn code trên sẽ gọi hàm xử lý –(void)sampleButtonPressed khi nhận sự kiện button sampleButton được chọn (UIControlEventTouchUpInside sự kiện khi nhấn vào một button).



  • Sử dụng một IBAction

Đây là phương pháp được sử dụng một khi đối tượng đã được tạo trong Interface Builder và theo đó chúng ta không thể thay đổi phương thức xử lý trong quá trình chạy ứng dụng.Việc kết nối giữa sự kiện của một đối tượng với một phương thức xử lý được thực hiện trên giao diện trực quan của Interface Builder.

Đối với một đối tượng ngoài việc phải tạo trên Interface Builder thì cần phải khai báo Outlet cho đối tượng đó trong source code.

Ví dụ :

UIButton *sampleButton;

@propertise (nonatomic, retain) IBOutlet UIButton *sampleButton;

Việc khai báo IBOutlet là rất quan trọng,giúp Interface Builder có thể nhận diện được đối tượng được khai báo trong source code.

Để liên kết một sự kiện của đối tượng với một hàm xử lý trong source thì phải khai báo IBAction cho hàm tương ứng.

Ví dụ : -(IBAction) sampleButtonPressed: (id)sender;

Từ Interface Builder chúng ta có thể tùy chọn kết nối sự kiện của đối tượng với một IBAction bằng cách kéo thả trực quan.

Hình 15: Kết nối một sự kiện của đối tượng với một phương thức



.II.2.3.4.Làm việc với SQLite

SQLite là một hệ quản trị cơ sở dữ liệu không lệ thuộc máy chủ.Cơ sở dữ liệu SQLite được chứa trong một tập tin *.sqlite .Với tính chất gọn nhẹ này, SQLite rất phù hợp với các chương trình vừa hoặc nhỏ,những chương trình chạy trên thiết bị đòi hỏi sự tối ưu về bộ nhớ như điện thoại di động,máy tính bảng,Pocket PC…. Khi phân phối sản phẩm, nhà phát triển không cần phải cài đặt hệ quản trị cơ sở dữ liệu lên máy người sử dụng, mà chỉ việc đóng gói tập tin *.sqlite kèm theo chương trình.

Việc cài đặt SQLite được thực hiện một cách đơn giản,chỉ cần cài đặt plug-in

Sqlite Manager của Firefox.Tạo một database mới,cách thao tác giống như trong các hệ quản trị cơ sở dữ liệu khác.

Cách sử dụng Sqlite trong lập trình iphone


  • Add thư viện Sqlite từ /usr/lib vào thư mục framework của project.

  • Import vào lớp thao tác trực tiếp với database.

  • Kết nối với sqlite

sqlite3 *database;

NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentsDirectory = [paths objectAtIndex:0];

NSString *path = [documentsDirectory stringByAppendingPathComponent:@"database.sqlite"];

//kết nối database

sqlite3_open([path UTF8String], &database) == SQLITE_OK)


  • Tạo đối tượng

Giả sử có 1 một table tb_Area


NO

Field name

Type

1

AreaID

Integer

2

AreaName

TEXT

Tạo một đối tượng ứng với tb_Area với các thuộc tính tương ứng với các trường trong table.

//AreaObject.h

#import

@interface AreaObject : NSObject {

NSString *areaName;

NSInteger areaID;

}

@property (nonatomic, retain) NSString *areaName;



@property (nonatomic) NSInteger areaID;

//Methods

-(void) setAreaName:(NSString *)str;

@end


//AreaObject.m

#import "AreaObject.h"

@implementation AreaObject

@synthesize areaID;

@synthesize areaName;

-(void) setAreaName:(NSString *)str

{

[areaName release];



areaName = nil;

areaName = [str copy];

}

@end


  • Khởi tạo đối tượng

AreaObject *areaObj = [[AreaObject alloc] init];

  • Thực thi câu lệnh sql

if (sqlite3_prepare_v2(database, [query UTF8String], -1, &statement, nil) == SQLITE_OK) {

//thực thi câu lệnh query

while (sqlite3_step(statement) == SQLITE_ROW) {

//kiểm tra row có tồn tại hay không

if (sqlite3_column_text(statement, 1) != NULL) {

//Thực hiện xử lý set giá trị cho Object

[areaObj setAreaName:[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)]];

}

}



  • Hủy đối tượng

[areaObj release];

  • Đóng kết nối

sqlite3_finalize(statement);

sqlite3_close(database);




Поделитесь с Вашими друзьями:
1   2   3   4   5   6


Cơ sở dữ liệu được bảo vệ bởi bản quyền ©tieuluan.info 2019
được sử dụng cho việc quản lý

    Quê hương