Tải bản đầy đủ (.doc) (59 trang)

Xây dựng hệ thống tìm kiếm chỗ sửa xe trên hệ điều hành iOS

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.53 MB, 59 trang )

MỤC LỤC
MỞ ĐẦU.................................................................................................................8
CHƯƠNG 1. CƠ SỞ LÝ THUYẾT........................................................................9
1.1. HỆ ĐIỀU HÀNH iOS.....................................................................................10
1.1.1. Giới thiệu...............................................................................................10
1.1.2. Kiến trúc hệ điều hành iOS...................................................................11
1.1.3. Kiến trúc của một ứng dụng iOS..........................................................15
1.1.4. Vòng đời của một UIView....................................................................18
1.2. GIỚI THIỆU CÔNG NGHỆ WEB SERVICE...............................................20
1.2.1. Giới thiệu WebService?........................................................................20
1.2.2. Đặc điểm dịch vụ WebService.............................................................20
1.2.3. Ưu, Nhược điểm của dịch vụ WebService...........................................21
1.2.3.1. Ưu điểm............................................................................................21
1.2.3.2. Nhược điểm......................................................................................21
1.2.4. Kiểu dữ liệu JSON................................................................................21
1.2.4.1. Tổng quan.........................................................................................21
1.2.4.2. Cấu trúc chuỗi JSON........................................................................22
1.2.4.3. Ưu điểm của JSON...........................................................................24
1.3. KẾT LUẬN CHƯƠNG..................................................................................24
CHƯƠNG 2. PHÂN TÍCH THIẾT KẾ HỆ THỐNG.........................................24
2.1. PHƯƠNG PHÁP CÔNG CỤ.........................................................................25
2.1.1. Phương pháp..........................................................................................25
2.1.2. Công cụ..................................................................................................25
2.2. PHÂN TÍCH....................................................................................................25
2.2.1. Đặc tả yêu cầu.......................................................................................25
2.2.1.1. Yêu cầu chức năng...........................................................................25
2.2.1.2. Yêu cầu phi chức năng.....................................................................26
2.2.2. Biểu đồ ca sử dụng hệ thống.................................................................27
2.2.3. Đặc tả chi tiết các chức năng điển hình................................................27
2.2.3.1. Ca sử dụng xem chia sẽ trạng thái của bạn bè................................27
2.2.3.2. Ca sử dụng quản lý cá nhân.............................................................28


2.2.3.3. Ca sử dụng chia sẽ trạng thái...........................................................29
2.2.3.4. Ca sử dụng tìm kiếm bạn bè, câu lạc bộ, trung tâm anh ngữ.........30
2.2.3.5. Ca sử dụng tra từ..............................................................................31
2.2.3.6. Ca sử dụng quản lý kho audio video...............................................32
2.2.3.7. Ca sử dụng quản lý câu lạc bộ, trung tâm anh ngữ.........................32


2.2.3.8. Ca sử dụng quản lý người dùng.......................................................33
2.2.3.9. Ca sử dụng quản lý thông tin...........................................................34
2.2.3.10. Ca sử dụng báo cáo........................................................................34
2.2.3.11. Ca sử dụng quản lý nội dung.........................................................35
2.2.3.12. Phác thảo giao diện ứng dụng........................................................35
2.2.4. Biểu đồ liên kết các màn hình..............................................................38
2.2.5. Biểu đồ hoạt động.................................................................................39
2.2.5.1. Biểu đồ hoạt động của chức năng đăng kí.......................................39
2.2.5.2. Biểu đồ hoạt động của chức năng đăng nhập..................................40
2.2.5.3. Biểu đồ hoạt động của chức năng chia sẽ trạng thái.......................41
2.2.5.4. Biểu đồ hoạt động của chức năng bình luận bài viết......................42
2.2.5.5. Biểu đồ hoạt động của chức năng tìm kiếm....................................43
2.2.5.6. Biểu đồ hoạt động của chức năng cập nhật thông tin.....................43
2.2.5.7. Biểu đồ hoạt động của chức năng đổi ảnh bìa................................44
2.2.5.8. Biểu đồ hoạt động chức năng đổi ảnh đại diện...............................45
2.2.6. Biểu đồ lớp............................................................................................46
2.2.7. Biểu đồ tuần tự......................................................................................46
2.2.7.1. Biểu đồ tuần tự của chức năng đăng nhập.......................................47
2.2.7.2. Biểu đồ tuần tự của chức năng đăng ký..........................................47
2.2.7.3. Biểu đồ tuần tự của chức năng chia sẽ trạng thái...........................48
2.2.7.4. Biểu đồ tuần tự của chức năng bình luận bài viết...........................48
2.2.7.5. Biểu đồ tuần tự của chức năng cập nhật ảnh đại diện....................49
2.2.7.6. Biểu đồ tuần tự của chức năng cập nhật ảnh bìa............................49

2.2.7.7. Biểu đồ tuần tự của chức năng cập nhật thông tin..........................50
2.2.7.8. Biểu đồ tuần tự của chức năng tìm kiếm bạn bè quanh đây...........50
2.2.7.9. Biểu đồ tuần tự của chức năng tìm kiếm câu lạc bộ, trung tâm anh
ngữ
51
2.2.7.10. Biểu đồ tuần tự của chức năng nghe phát âm...............................51
2.2.7.11. Biểu đồ tuần tự chức năng tra từ điển...........................................52
2.2.7.12. Biểu đồ tuần tự của chức năng tạo trung tâm anh ngữ.................52
CHƯƠNG 3. TRIỂN KHAI CHƯƠNG TRÌNH.................................................53
3.1. MÔI TRƯỜNG VÀ CÔNG CỤ CÀI ĐẶT....................................................53
3.2. TRIỂN KHAI CHƯƠNG TRÌNH..................................................................53
3.2.1. Thanh điều hướng trong ứng dụng.......................................................53
3.2.2. Chức năng đăng nhập, đăng kí..............................................................54
3.2.3. Xem chia sẽ bạn bè...............................................................................54
3.2.4. Nghe phát âm từ ngữ.............................................................................55
3.2.5. Chia sẽ trạng thái..................................................................................56

ii


KẾT LUẬN...........................................................................................................57

iii


DANH SÁCH HÌNH VẼ
HÌNH 1.1 HỆ ĐIỀU HÀNH IOS 8.......................................................................11
HÌNH 1.2 KIẾN TRÚC HỆ ĐIỀU HÀNH IOS 8................................................11
HÌNH 1.3 DANH SÁCH LỚP TRONG CÁC TẦNG HỆ ĐIỀU HÀNH IOS...14
HÌNH 1.4 KIẾN TRÚC CHI TIẾT HỆ ĐIỀU HÀNH IOS................................14

HÌNH 1.5 KIẾN TRÚC CHI TIẾT HỆ ĐIỀU HÀNH IOS................................15
HÌNH 1.6 SO SÁNH HOẠT ĐỘNG CỦA MỘT VIEW GIỮA ANDROID VÀ
IOS.......................................................................................................................... 16
HÌNH 1.7 CẤU TRÚC LAYER TRONG IOS....................................................17
HÌNH 1.8 CÁC THÀNH PHẦN CỦA LỚP UIVIEW........................................18
HÌNH 1.9 VÒNG ĐỜI CỦA MỘT ỨNG DỤNG IOS.........................................19
HÌNH 1.10. BIỂU DIỄN ĐỐI TƯỢNG TRONG JSON.....................................22
HÌNH 1.11. BIỂU DIỄN MẢNG TRONG JSON................................................22
HÌNH 1.12. BIỂU DIỄN GIÁ TRỊ TRONG JSON.............................................23
HÌNH 1.13. BIỂU DIỄN CHUỖI TRONG JSON...............................................23
HÌNH 1.14. BIỂU DIỄN SỐ TRONG JSON.......................................................24
HÌNH 2.15. BIỂU ĐỒ CA SỬ DỤNG HỆ THỐNG............................................27
HÌNH 2.16. BIỂU ĐỒ CA SỬ DỤNG XEM CHIA SẼ TRẠNG THÁI BẠN BÈ
................................................................................................................................. 27
HÌNH 2.17. BIỂU ĐỒ CA SỬ DỤNG QUẢN LÝ CÁ NHÂN...........................28
HÌNH 2.18. BIỂU ĐỒ CA SỬ DỤNG CHIA SẼ TRẠNG THÁI......................29
HÌNH 2.19. BIỂU ĐỒ CA SỬ DỤNG TÌM KIẾM............................................30
HÌNH 2.20. BIỂU ĐỒ CA SỬ DỤNG TRA TỪ.................................................31
HÌNH 2.21. BIỂU ĐỒ CA SỬ DỤNG QUẢN LÝ KHO AUDIO VIDEO........32
HÌNH 2.22. BIỂU ĐỒ CA SỬ DỤNG QUẢN LÝ CÂU LẠC BỘ, TRUNG
TÂM ANH NGỮ....................................................................................................32
HÌNH 2.23. BIỂU ĐỒ CA SỬ DỤNG QUẢN LÝ NGƯỜI DÙNG...................33
HÌNH 2.24. BIỂU ĐỒ CA SỬ DỤNG BÁO CÁO..............................................34
HÌNH 2.25. BIỂU ĐỒ CA SỬ DỤNG QUẢN LÝ NỘI DUNG.........................35
HÌNH 2.26 PHÁC THẢO GIAO DIỆN ĐĂNG KÍ ĐĂNG NHẬP....................36
iv


HÌNH 2.27. PHÁC THAO GIAO DIỆN CHÍNH CỦA ỨNG DỤNG................36
HÌNH 2.28. PHÁC THẢO GIAO DIỆN TRANG CÁ NHÂN............................37

HÌNH 2.29 PHÁC THẢO GIAO DIỆN TÌM KIẾM..........................................37
HÌNH 2.30. BIỂU ĐỒ THỂ HIỆN SỰ LIÊN KẾT GIỮA CÁC MÀN HÌNH. .38
HÌNH 2.31. BIỂU ĐỒ HOẠT ĐỘNG CỦA CHỨC NĂNG ĐĂNG KÍ.............39
HÌNH 2.32. BIỂU ĐỒ HOẠT ĐỘNG CỦA CHỨC NĂNG ĐĂNG NHẬP.......40
HÌNH 2.33. BIỂU ĐỒ HOẠT ĐỘNG CỦA CHỨC NĂNG CHIA SẼ TRẠNG
THÁI....................................................................................................................... 41
HÌNH 2.34. BIỂU ĐỒ HOẠT ĐỘNG CỦA CHỨC NĂNG BÌNH LUẬN BÀI
VIẾT.......................................................................................................................42
HÌNH 2.35. BIỂU ĐỒ HOẠT ĐỘNG CỦA CHỨC NĂNG TÌM KIẾM...........43
HÌNH 2.36. BIỂU ĐỒ HOẠT ĐỘNG CỦA CHỨC NĂNG CẬP NHẬT
THÔNG TIN..........................................................................................................43
HÌNH 2.37. BIỂU ĐỒ HOẠT ĐỘNG CỦA CHỨC NĂNG ĐỔI ẢNH BÌA.....44
HÌNH 2.38. BIỂU ĐỒ HOẠT ĐỘNG CỦA CHỨC NĂNG ĐỔI ẢNH ĐẠI
DIỆN.......................................................................................................................45
HÌNH 2.39. BIỂU ĐỒ LỚP...................................................................................46
HÌNH 2.40. BIỂU ĐỒ TUẦN TỰ CỦA CHỨC NĂNG ĐĂNG NHẬP.............47
HÌNH 2.41. BIỂU ĐỒ TUẦN TỰ CỦA CHỨC NĂNG ĐĂNG KÝ..................47
HÌNH 2.42. BIỂU ĐỒ TUẦN TỰ CỦA CHỨC NĂNG CHIA SẼ TRẠNG
THÁI....................................................................................................................... 48
HÌNH 2.43. BIỂU ĐỒ TUẦN TỰ CỦA CHỨC NĂNG BÌNH LUẬN BÀI VIẾT
................................................................................................................................. 48
HÌNH 2.44. BIỂU ĐỒ TUẦN TỰ CỦA CHỨC NĂNG CẬP NHẬT ẢNH ĐẠI
DIỆN.......................................................................................................................49
HÌNH 2.45. BIỂU ĐỒ TUẦN TỰ CỦA CHỨC NĂNG CẬP NHẬT ẢNH BÌA
................................................................................................................................. 49
HÌNH 2.46. BIỂU ĐỒ TUẦN TỰ CỦA CHỨC NĂNG CẬP NHẬT THÔNG
TIN.......................................................................................................................... 50
HÌNH 2.47. BIỂU ĐỒ TUẦN TỰ CỦA CHỨC NĂNG TÌM KIẾM BẠN BÈ
QUANH ĐÂY........................................................................................................50


v


HÌNH 2.48. BIỂU ĐỒ TUẦN TỰ CỦA CHỨC NĂNG TÌM KIẾM CÂU LẠC
BỘ, TRUNG TÂM ANH NGỮ.............................................................................51
HÌNH 2.49. BIỂU ĐỒ TUẦN TỰ CỦA CHỨC NĂNG NGHE PHÁT ÂM......51
HÌNH 2.50. BIỂU ĐỒ TUẦN TỰ CỦA CHỨC NĂNG TRA TỪ ĐIỂN...........52
HÌNH 2.51. BIỂU ĐỒ TUẦN TỰ CỦA CHỨC NĂNG TẠO TRUNG TÂM
ANH NGỮ..............................................................................................................52
HÌNH 3.52 ĐIỀU HƯỚNG TRONG ỨNG DỤNG.............................................53
HÌNH 3.53 ĐĂNG NHẬP ĐĂNG KÍ...................................................................54
HÌNH 3.54 XEM CHIA SẼ TRẠNG THÁI CỦA MỌI NGƯỜI.......................55
HÌNH 3.55 NGHE PHÁT ÂM TỪ........................................................................55
HÌNH 3.56 CHIA SẼ TRẠNG THÁI...................................................................56

vi


DANH SÁCH BẢNG BIỂU
BẢNG 1. ĐẶC TẢ CA SỬ DỤNG XEM CHIA SẼ TRẠNG THÁI BẠN BÈ. 28
BẢNG 2. ĐẶC TẢ CA SỬ DỤNG QUẢN LÝ CÁ NHÂN................................28
BẢNG 3. ĐẶC TẢ CA SỬ DỤNG CHIA SẼ TRẠNG THÁI...........................29
BẢNG 4. ĐẶC TẢ CA SỬ DỤNG TÌM KIẾM BẠN BÈ, CÂU LẠC BỘ,
TRUNG TÂM ANH NGỮ.....................................................................................30
BẢNG 5. ĐẶC TẢ CA SỬ DỤNG TRA TỪ.......................................................31
BẢNG 6. ĐẶC TẢ CA SỬ DỤNG THÊM KHUNG HÌNH..............................32
BẢNG 7. ĐẶC TẢ CA SỬ DỤNG QUẢN LÝ CÂU LẠC BỘ, TRUNG TÂM
ANH NGỮ..............................................................................................................32
BẢNG 8. ĐẶC TẢ CA SỬ DỤNG QUẢN LÝ NGƯỜI DÙNG........................33
BẢNG 9. ĐẶC TẢ CA SỬ DỤNG QUẢN LÝ THÔNG TIN............................34

BẢNG 10. ĐẶC TẢ CA SỬ DỤNG BÁO CÁO.................................................34
BẢNG 11. ĐẶC TẢ CA SỬ DỤNG QUẢN LÝ NỘI DUNG............................35

vii


MỞ ĐẦU
I.

Bối cảnh thực hiện đề tài
Ngày nay, cả thế giới đang chứng kiến sự bùng nổ của cuộc cách mạng công
nghệ thông tin đặc biệt là trong lĩnh vực di động. Với sự gia tăng không ngừng về
lượng và chất của điện thoại thông minh dẫn đến hệ quả số người sử dụng điện
thoại thông minh đang ngày càng tăng lên theo thời gian. Đồng nghĩa rằng nhu cầu
về ứng dụng di động cũng đang ngày càng lớn và lập trình di động trước đây còn
mới mẻ với thị trường Việt Nam nay dần trở thành mảnh đất màu mỡ cho các lập
trình viên.
Có được thành công đó không thể không nhắc đến sự đóng góp to lớn của các
kho ứng dụng như App Store, Play Store hay Windows Phone Store. Sự xuất hiện
của các chợ ứng dụng này không những tạo thuận tiện cho người dùng khi tìm
kiếm và cài đặt ứng dụng cho điện thoại thông minh hay máy tính bảng phù hợp
với nhu cầu sử dụng mà còn là một kênh phân phối hiệu quả cho các nhà phát triển
phần mềm khi muốn sản phẩm của mình được người dùng biết tới.
Với sự phát triển mạnh mẽ đó, ngày nay trên một thiết bị điện thoại thông minh
nào ta cũng sẽ thấy có một hoặc rất nhiều ứng dụng mạng xã hội. Nhu cầu kết nối
chia sẽ thông tin của mọi người và đặc biệt là giới trẻ là rất nhiều. Nhu cầu kết nối
làm quen kết bạn là rất lớn và nếu tạo ra được một môi trường kết nối để để giúp
mọi người trao đổi học tập Tiếng Anh thì đó sẽ là một việc thiết thực trong việc cải
thiển vốn tiếng anh của mọi người. Tinh thần học tập và sự nỗ lực sẽ mạnh mẽ lên
nhiều lần nếu như chúng ta có những người bạn sát cánh cùng nhau để học tập và

làm việc nên em đã chọn đề tài “Xây dựng mạng xã hội học tiếng anh trên hệ
điều hành iOS” giúp cho việc kết nối chia sẽ giữa mọi người và trung tâm được tốt
hơn.
II. Mục tiêu
- Nắm bắt được cấu trúc cũng như cách viết ứng dụng trên nền tảng iOS.
- Tìm hiểu và sử dụng thư viện Nokia Imaging SDK.
- Xây dựng chức năng thêm các khung ảnh.
- Xây dựng chức năng thêm các phụ kiện vào bức ảnh
- Xây dựng các bộ lọc để xử lý hiệu ứng cho bức ảnh.
- Xây dựng chức năng sắp xếp nhiều hình ảnh vào khung.
- Giao diện thân thiện với người dùng.
III. Phương pháp nghiên cứu
Đề tài này sẽ kết hợp hai phương pháp nghiên cứu:
• Phương pháp nghiên cứu lý thuyết
-

Nghiên cứu tài liệu, ngôn ngữ và công nghệ có liên quan.
Tổng hợp các tài liệu.
Phân tích và thiết kế hệ thống.


-

Phân tích và thiết kế giao diện.

• Phương pháp nghiên cứu thực nghiệm
-

Phân tích yêu cầu thực tế của bài toán và xây dựng các bước phân tích
hệ thống để hỗ trợ việc lập trình, xây dựng ứng dụng.

Đánh giá kết quả đạt được.

Dự kiến kết quả đạt được
Xây dựng, hoàn thiện và đưa vào sử dụng các chức năng thành phần cơ bản của
một mạng mã hội trên nền tảng iOS 8 giúp cho người dùng có thể sử dụng và kết
nối với mọi người gần mình, đồng thời cũng góp phần kết nối các trung tâm anh
ngữ với người dùng.
IV. Bố cục luận văn
GIỚI THIỆU TỔNG QUAN
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1. Hệ điều hành iOS.
1.2. Giới thiệu công nghệ WebService.
1.3. Kết luận chương.
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
2.1. Phương pháp, công cụ tài liệu tham khảo.
2.2. Thiết kế hệ thống.
CHƯƠNG 3: TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ
3.1. Các công cụ.
3.2. Triển khai các chức năng của chương trình.
3.3. Đánh giá kết quả.
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Chương 1.

CƠ SỞ LÝ THUYẾT

Trong chương này, nội dung chính sẽ được trình bày là giới thiệu cơ bản về hệ
điều hành iOS 8 và ngôn ngữ Object-C như kiến trúc, vòng đời của ứng dụng, cách
cài đặt, môi trường, cách sử dụng…



1.1. HỆ ĐIỀU HÀNH iOS
1.1.1.

Giới thiệu

iOS là hệ điều hành trên các thiết bị di động của Apple. Ban đầu hệ điều hành
này chỉ được phát triển để chạy trên iPhone (họi là iPhone OS), nhưng sau đó đã
được mở rộng để chạy trên các thiết bị của Apple như iPod touch, iPad và Apple
TV.
Hệ điều hành này được tiết lộ tại Hội nghị và triển lãm Macworld diễn ra vào
tháng 1 năm 2007 và được phát hành vào tháng 9 năm đó. Khi đó hệ điều hành này
chưa có tên riêng, nên chỉ đơn giản được gọi là “iPhone chạy OS X”.
Ngày 6 tháng 3 năm 2008, Apple đã phát hành bản dùng thử đầu tiên, cùng với
một cái tên cho hệ điều hành đó – “iPhone OS”.
Tháng 6 năm 2010, Apple đổi tên iPhone OS thành iOS. Phiên bản mới nhất
của iOS là phiên bản 7.0.6, dành cho tất cả các thiết bị kể từ iPhone 4, iPod 5, iPad
2 trở lên.
Ngày 31 tháng 5,2011, App Store của Apple chứa khoảng 500 000 ứng dụng
iOS, và được tải về tổng cộng khoảng 15 tỷ lần.
Năm 2013 iOS 7 được ra đời đánh dấu sự thay đổi về đồ họa một cách triệt để
của Apple và người đứng đầu sự thay đổi này là Sir Jony Ive. Giao diện mới này
không còn những icon theo thiết kế mô phỏng skeuormophic (phong cách thiết kế
trực quan chi tiết), thay vào loạt icon phẳng, sắc nét, rực rỡ, và một loạt điểm nhấn
không còn thực sự cầu kì chi tiết như trước. Phiên bản hệ điều hành này được ra
mắt cùng với bộ đôi iPhone 5 và 5c.
Các tính năng nổi bật của iOS 7, bao gồm: Ứng dụng nhạc, AirPlay, Khóa, kèm
các đường tắt tới các ứng dụng Clock, Caculator, Camera, wifi settings, airplane
mode, bluetooth và chế độ đừng làm phiền. Siri được nâng cấp lên cả giọng nam
và nữ, và thiết kế lại để hiểu thêm tiếng Pháp và tiếng Đức. Với phong cách chụp

ảnh của Instagram, iOS 7 cho phép người dùng chụp ảnh vuông và sử dụng nhiều
bộ lọc tạo màu sắc khác nhau. Ngoài ra Apple đã chuyển ứng dụng Airdrop sang
nền tảng di động. Đây là tính năng thú vị và tiện dụng, không cần đến NFC, người
dùng chỉ cần chung kết nối mạng thì có thể dễ dàng chia sẻ dữ liệu qua lại với
nhau khá dễ dàng.
Hệ điều hành iOS 8 được công bố tại hội nghị WWDC 2014 hồi tháng 6, iOS 8
sẽ là một bước tiến nhảy vọt của Apple trong lĩnh vực chăm sóc sức khoẻ trên di
động.


Hình 1.1 Hệ điều hành iOS 8

1.1.2.

Kiến trúc hệ điều hành iOS

Hệ điều hành iOS bao gồm một số tầng phần mềm, mỗi tầng cung cấp các
programming framework giúp cho việc phát triển các ứng dụng chạy trên nó.
Trong kiến trúc của iOS, ở cấp độ cao nhất, iOS hoạt động như một trung gian
giữa phần cứng cơ bản và các ứng dụng xuất hiện trên màn hình thiết bị di động
iOS. Tại các tầng thấp hơn của hệ thống là các dịch vụ cơ bản mà các ứng dụng
cấp cao hơn sử dụng để hoạt động.

Hình 1.2 Kiến trúc hệ điều hành iOS 8

• Cocoa Touch
Tầng Cocoa Touch chứa các key framework cho việc xây dựng các ứng dụng
iOS. Các framework này định nghĩa việc xuất hiện cho ứng dụng của bạn.



Chúng cũng cung cấp kiến trúc ứng dụng cơ bản và hỗ trợ các công nghệ như
multitasking, touch-based input, push notification, và nhiều dịch vụ hệ thống mức
cao khác.
Khi thiết kế ứng dụng, bạn nên tìm hiểu các công nghệ trong tầng này để thấy
được cách mà chúng đáp ứng các yêu cầu của bạn.
− Các tính năng mức cao của lớp này bao gồm:
+ AirDrop: cho phép người dùng chia sẻ photos, documents, URLs, và các
loại dữ liệu khác với các thiết bị gần đó.
+ Text Kit: tập hợp đầy đủ tính năng của các lớp xử lý text và typography.
+ Multitasking: Mô hình đa nhiệm trong iOS được thiết kế để tối ưu hóa
tuổi thọ pin khi đưa cho các ứng dụng thời gian cần thiết để chúng thực
hiện các công việc quan trọng.
+ Apple Push Notification Service: thông báo người dùng các thông tin, sự
kiện mới khi ứng dụng không chạy trên màn hình.
+ Local Notifications, AutoLayout, Gesture Recognizers …
− Lớp này bao gồm các framework chính sau :
+ Address Book UI Framework
+ Event Kit UI Framework
+ Game Kit Framework
+ iAd Framework
+ Map Kit Framework
+ Message UI Framework
+ Twitter Framework
+ UIKit Framework: cung cấp kiến trúc hạ tầng quan trọng cho việc thực
hiện đồ họa, các ứng dụng hướng sự kiện.
• Media services
Tầng Media services bao gồm các công nghệ đồ họa, âm thanh, và video mà
bạn sử dụng để xử lý các vấn đề đa phương tiện trong ứng dụng.
Các framework trong tầng này bao gồm:
UIKit graphics

Core Graphics framework
Core Animation
Core Image
OpenGL ES and GLKit
Text Kit and Core Text
Image I/O
Assets Library
• Core services


Tầng Core Serivce bao gồm các dịch vụ hệ thống cơ bản cho các ứng dụng.
Quan trọng nhất trong tầng này là Core Foundation, và Foundation framework,
trong đó xác định các kiểu cơ bản mà tất cả các ứng dụng đều sử dụng. Tầng này
còn cung cấp các công nghệ hỗ trợ như location, iCloud, social media, và
networking.
Tầng này bao gồm các framework sau:
Account Framework
Ad Support Framework
CFNetwork Framework
Core Data Framework
Core Foundation Framework
Core Location Framework
Core Media Framework

• Core OS
Tầng Core OS bao gồm các chức năng mức thấp (low-level features) mà hầu
hết các công nghệ khác được xây dựng trên nó. Các vấn đề về bảo vệ an ninh bảo
mật cũng được thực hiện tại tầng này.
Tầng này bao gồm các framework sau:
Accelerate Framework: Bao gồm các interface để thực hiện xử lý tín hiệu số

(DSP), đại số tuyến tính, và tính toán xử lý ảnh.
Core Bluetooth Framework.
External Accessory Framework: hỗ trợ giao tiếp với các phụ kiện phần cứng
trên thiết bị iOS.
Generic Security Serives Framework: cung cấp một bộ tiêu chuẩn các dịch
vụ bảo mật trên ứng dụng iOS.
Security Framework
System: Networking, File-system access, Standard I/O …
64-Bit Support: hỗ trợ trên iOS7.


Hình 1.3 Danh sách lớp trong các tầng hệ điều hành iOS

Hình 1.4 Kiến trúc chi tiết hệ điều hành iOS


1.1.3.

Kiến trúc của một ứng dụng iOS

Hình 1.5 Kiến trúc chi tiết hệ điều hành iOS

• Kiến trúc
Khi user tap vào icon của ứng dụng, hệ thống sẽ launch ứng dụng bằng việc gọi
phương thức main() của nó, đây chính là entry point của ứng dụng.
Mỗi ứng dụng iOS đều có một thể hiện duy nhất của lớp UIApplication, lớp này
cung cấp một điểm tập trung để kiểm soát và điều phối các ứng dụng chạy trên các
thiết bị iOS. Trong phương thức main() sẽ tạp ra một autorelease pool (được sử
dụng để quản lý bộ nhớ) và thực hiện lời gọi phương thức UIApplicationMain của
lớp UIApplication.

Phương thức UIApplicationMain này sẽ tạo ra một thể hiện Singleton của lớp
UIApplication, trong ứng dụng, ta có thể truy xuất thể hiện này qua phương thức
shareApplication.
Trách nhiệm quản lý các hành vi mức cao của ứng dụng được lớp
UIApplication giao lại cho đối tượng UIApplicationDelegate, đây thực chất là một
protocol cung cấp các phương thức xử lý các sự kiện cơ bản của ứng dụng: khi ứng
dụng được launch, ứng dụng chuyển xuống background, ứng dụng thoát, bộ nhớ
không đủ…


Hình 1.6 So sánh hoạt động của một view giữa android và ios

• Lớp UIWindow và UIView
iOS sử dụng các window và view để hiển thị nội dung đồ họa trên màn hình.
Mặc dù có nhiều điểm tương tự giữa window và view nhưng vai trò của chúng có
khác nhau.
− Vai trò của UIWindow
+ Một ứng dụng iOS thường chỉ có duy nhất một window, được đại
diện bởi một thể hiện của lớp UIWindow. Ứng dụng tạo window
này tại thời điểm launch ứng dụng, thêm một hoặc nhiều view và
nó sẽ hiển thị. Sau đó, ta hiếm khi cần sử dụng lại window này.
+ Trong iOS một đối tượng window không có các đối tượng “trang
sức” mang tính trực quan như nút đóng, thanh tiêu đề và nó
không thể bị đóng trực tiếp bởi người dùng.
− Vai trò của UIView
+ Một view, thể hiện của một UIView, định nghĩa một vùng trên
màn hình. Trong ứng dụng iOS view đóng vai trò hiển thị giao
diện và đáp ứng các tương tác của người dùng với giao diện đó.
Một đối tượng view có vai trò render nội dung và đáp ứng các sự
kiện touch trong vùng đó.



+ Ngoài trách nhiệm đó view còn quản lý một hoặc nhiều view con
của nó.

Hình 1.7 Cấu trúc layer trong ios

• Các lớp UIKit View
Lớp UIView chỉ định nghĩa các thuộc tính của một view nhưng không có
các thể hiện mang tính trực quan. Thay vào đó, UIKit sử dụng các lớp con để
định nghĩa cho các control chuẩn như text field, button, toolbar, progress view

Khi xây dựng một ứng dụng, chúng ta sẽ thao tác trực tiếp với các đối tượng
UIKit View này.


Hình 1.8 Các thành phần của lớp UIView

1.1.4.

Vòng đời của một UIView

Thường thì mỗi màn hình trong ứng dụng iOS là một UIViewController. Đây là
đối tượng cơ bản, và các ViewController khác đều phải kế thừa nó. Mỗi
UIViewController quản lý một View và các subviews của nó. Vòng đời của
UIViewController như sau:


Hình 1.9 Vòng đời của một ứng dụng iOS


• loadView
Thường được sử dụng trong các ứng dụng trước iOS5. Từ iOS 5 trở đi, method
này thường không được sử dụng nữa.
• viewDidLoad
Được gọi một lần khi lần đầu tiên đối tượng UIViewController hiển thị.
• viewWillAppear
Có thể được gọi nhiều lần tuỳ theo view đó đã tồn tại hay chưa. Method này
được gọi trước khi view hiển thị trên màn hình.
• viewDidAppear
Tương tự viewWillAppear, có thể được gọi nhiều lần. Method này được gọi sau
khi view đã hiển thị.
− didReceivingMemoryWarning
Khi view đã hiển thị và bộ nhớ bị sử dụng quá nhiều, nó sẽ gọi hàm này để
cảnh báo. Ta có thể dùng hàm này để xoá dữ liệu dư thừa.
− viewWillDisappear/viewDidDisappear
Được gọi trước và sau khi view bị remove khỏi màn hình.
− viewDidUnload
Là method cuối cùng được gọi sau khi view đã biến mất khỏi màn hình.


1.2. GIỚI THIỆU CÔNG NGHỆ WEB SERVICE
1.2.1.

Giới thiệu WebService?

Theo định nghĩa của W3C (World Wide Web Consortium), dịch vụ Web là một
hệ thống phần mềm được thiết kế để hỗ trợ khả năng tương tác giữa các ứng dụng
trên các máy tính khác nhau thông qua mạng Internet, giao diện chung và sự gắn
kết của nó được mô tả bằng XML. Dịch vụ Web là tài nguyên phần mềm có thể
xác định bằng địa chỉ URL, thực hiện các chức năng và đưa ra các thông tin người

dùng yêu cầu. Một dịch vụ Web được tạo nên bằng cách lấy các chức năng và
đóng gói chúng sao cho các ứng dụng khác dễ dàng nhìn thấy và có thể truy cập
đến những dịch vụ mà nó thực hiện, đồng thời có thể yêu cầu thông tin từ dịch vụ
Web khác. Nó bao gồm các mô đun độc lập cho hoạt động của khách hàng và
doanh nghiệp và bản thân nó được thực thi trên server.
Trước hết, có thể nói rằng ứng dụng cơ bản của Dịch vụ Web là tích hợp các hệ
thống và là một trong những hoạt động chính khi phát triển hệ thống. Trong hệ
thống này, các ứng dụng cần được tích hợp với cơ sở dữ liệu (CSDL) và các ứng
dụng khác, người sử dụng sẽ giao tiếp với CSDL để tiến hành phân tích và lấy dữ
liệu. Trong thời gian gần đây, việc phát triển mạnh mẽ của thương mại điện tử và
B2B cũng đòi hỏi các hệ thống phải có khả năng tích hợp với CSDL của các đối tác
kinh doanh (nghĩa là tương tác với hệ thống bên ngoài – bên cạnh tương tác với
các thành phần bên trong của hệ thống trong doanh nghiệp).
1.2.2. Đặc điểm dịch vụ WebService
Dịch vụ Web cho phép client và server tương tác được với nhau ngay cả trong
những môi trường khác nhau.
Phần lớn kĩ thuật của Dịch vụ Web được xây dựng dựa trên mã nguồn mở và
được phát triển từ các chuẩn đã được công nhận, ví dụ như XML.
Một Dịch vụ Web bao gồm có nhiều mô-đun và có thể công bố lên mạng
Internet.
Là sự kết hợp của việc phát triển theo hướng từng thành phần với những lĩnh
vực cụ thể và cơ sở hạ tầng Web, đưa ra những lợi ích cho cả doanh nghiệp, khách
hàng, những nhà cung cấp khác và cả những cá nhân thông qua mạng Internet.
Một ứng dụng khi được triển khai sẽ hoạt động theo mô hình client-server. Nó
có thể được triển khai bởi một phần mềm ứng dụng phía server ví dụ như PHP,
Oracle Application server hay Microsoft.Net…
Ngày nay dịch vụ Web đang rất phát triển, những lĩnh vực trong cuộc sống có
thể áp dụng và tích hợp dịch vụ Web là khá rộng lớn như dịch vụ chọn lọc và phân
loại tin tức (hệ thống thư viện có kết nối đến web portal để tìm kiếm các thông tin
cần thiết); ứng dụng cho các dịch vụ du lịch (cung cấp giá vé, thông tin về địa

điểm…), các đại lý bán hàng qua mạng, thông tin thương mại như giá cả, tỷ giá hối


đoái, đấu giá qua mạng…hay dịch vụ giao dịch trực tuyến (cho cả B2B và B2C)
như đặt vé máy bay, thông tin thuê xe…
Các ứng dụng có tích hợp dịch vụ Web đã không còn là xa lạ, đặc biệt trong
điều kiện thương mại điện tử đang bùng nổ và phát triển không ngừng cùng với sự
lớn mạnh của Internet.
1.2.3. Ưu, Nhược điểm của dịch vụ WebService
1.2.3.1.

Ưu điểm

Dịch vụ Web cung cấp khả năng hoạt động rộng lớn với các ứng dụng phần
mềm khác nhau chạy trên những nền tảng khác nhau.
Sử dụng các giao thức và chuẩn mở. Giao thức và định dạng dữ liệu dựa trên
văn bản (text), giúp các lập trình viên dễ dàng hiểu được.
Nâng cao khả năng tái sử dụng.
Thúc đẩy đầu tư các hệ thống phần mềm đã tồn tại bằng cách cho phép các tiến
trình/chức năng nghiệp vụ đóng gói trong giao diện dịch vụ Web.
Tạo mối quan hệ tương tác lẫn nhau và mềm dẻo giữa các thành phần trong hệ
thống, dễ dàng cho việc phát triển các ứng dụng phân tán.
Thúc đẩy hệ thống tích hợp, giảm sự phức tạp của hệ thống, hạ giá thành hoạt
động, phát triển hệ thống nhanh và tương tác hiệu quả với hệ thống của các doanh
nghiệp khác.
1.2.3.2. Nhược điểm
Những thiệt hại lớn sẽ xảy ra vào khoảng thời gian chết của Dịch vụ Web, giao
diện không thay đổi, có thể lỗi nếu một máy khách không được nâng cấp, thiếu các
giao thức cho việc vận hành.
Có quá nhiều chuẩn cho dịch vụ Web khiến người dùng khó nắm bắt.

Phải quan tâm nhiều hơn đến vấn đề an toàn và bảo mật.
1.2.4. Kiểu dữ liệu JSON
1.2.4.1.

Tổng quan

JavaScript Object Notation (thường được viết tắt là JSON) là một kiểu dữ liệu
trong JavaScript. Kiểu dữ liệu này bao gồm chủ yếu là text. Về cấu trúc, nó mô tả
một vật thể bằng cách gói những vật thể con trong vật thể lớn hơn trong dấu ngoặc
nhọn ({ }).
JSON là một kiểu dữ liệu trung gian, chủ yếu được dùng để vận chuyển thông
tin giữa các thành phần của một chương trình.
JSON có định dạng đơn giản, dễ dàng sử dụng và truy vấn hơn XML rất nhiều
nên tính ứng dụng của nó hiện nay rất là phổ biến, và trong tương lai tới trong các
ứng dụng sẽ sử dụng nó là đa số.


1.2.4.2.

Cấu trúc chuỗi JSON

Cấu trúc của JSON dựa trên các cặp Key/Value
− Key là một chuỗi
− Value JSON có thể là:
+ 1 số (nguyên (integer) hay số thực (floating point))
+ 1 chuỗi (nằm trong dấu nháy đôi “”)
+ 1 số luận lý (true or false)
+ 1 mảng (nằm trong dấu ngoặc vuông [])
+ 1 đối tượng (nằm trong dấu ngoặc nhọn {})
+ Kiểu null

JSON được xây dựng trên 2 cấu trúc:

Là tập hợp của các cặp tên và giá trị name-value. Trong những ngôn
ngữ khác nhau, đây được nhận thấy như là 1 đối tượng (object), sự ghi (record),
cấu trúc (struct), từ điển (dictionary), bảng băm (hash table), danh sách khoá
(keyed list), hay mảng liên hợp.

Là 1 tập hợp các giá trị đã được sắp xếp. Trong hầu hết các ngôn ngữ,
this được nhận thấy như là 1 mảng, véc tơ, tập hợp hay là 1 dãy sequence.
Trong JSON, chúng có những thứ trên các định dạng:
Một đối tượng là 1 hổn độn của các cặp tên và giá trị. 1 đối tượng bắt đầu
bởi dấu ngoặc đơn trái { và kết thúc với dấu ngoặc đơn phải }. Từng tên được
theo sao bởi dấu 2 chấm : và các cặp tên/giá trị được tách ra bởi dấu phẩy ,.

Hình 1.10. Biểu diễn đối tượng trong json

Một mảng là 1 tập hợp các giá trị đã được sắp xếp. 1 mảng bắt đầu bởi dấu
mở ngoặc vuông [ và kết thúc với dấu ngoặc vuông phải ]. Các giá trị được
cách nhau bởi dấu phẩy.

Hình 1.11. Biểu diễn mảng trong json


Một giá trị có thể là 1 chuỗi string trong những trích dẫn kép hay là 1 số,
hay true hay false hay null, hay là 1 đối tượng hay là 1 mảng. Những cấu trúc
này có thể đã được lồng vào nhau.

Hình 1.12. Biểu diễn giá trị trong json

Một chuỗi string là 1 tập hợp của zero hay ngay cả mẫu tự Unicode, được

bao bọc trong các dấu trích dẫn kép ("), dùng để thoát ra dấu chéo ngược. 1 ký
tự đã được hiển thị như là 1 chuỗi ký tự đơn độc. 1 chuỗi string rất giống như là
chuỗi string C hay là Java.

Hình 1.13. Biểu diễn chuỗi trong json

Một số rất giống 1 số C và Java, trừ định dạng bát phân và hex là không thể
dùng.


Hình 1.14. Biểu diễn số trong json

1.2.4.3.

Ưu điểm của JSON

Có thể đọc hiểu được (human-readability).
Là kiểu dữ liệu trên nền cơ sở Javascript nên dễ dàng tiếp cận.
Dữ liệu truyền tải ngắn gọn so với những định dạng dữ liệu khác như: XML,
HTML…
Dễ dàng chuyển đổi (parse) dữ liệu từ dạng chuỗi (nhận từ server) sang dữ liệu
có thể sử dụng được (thành Object, Number, Array).
Dễ truy cập nội dung.
Với những ứng dụng AJAX lấy và xử lý dữ liệu từ 1 web service nào đó khác
domain. Nếu nội dung trả về có dạng XML thì javascript từ trang web của chúng
ta không thể trực tiếp truy cập mà phải nhờ 1 proxy để đáp ứng yêu cầu của same
origin policy.Nhưng nếu là dạng JSON thì đó không là vấn đề.
1.3. KẾT LUẬN CHƯƠNG
Chương 1 đã giới thiệu một cách tổng quát về kiến trúc hệ điều hành iOS cũng
như công nghệ WebService, cấu trúc dữ liệu JSON giúp người lập trình dễ dàng

tiếp cận với hệ điều hành này cũng như xây dựng một ứng dụng theo mô hình
client – server và nhận dữ liệu từ server thông qua JSON.

Chương 2.PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Nội dung của chương này sẽ giới thiệu về công cụ, phương pháp thiết kế. Đặc
tả yêu cầu chức năng, yêu cầu phi chức năng và phân tích thiết kế hệ thống.


2.1. PHƯƠNG PHÁP CÔNG CỤ
2.1.1.

Phương pháp

Qua tìm hiểu các phương pháp, em đã chọn thực hiện theo phương pháp hướng
đối tượng. Đây là phương thức thực hiện thiết kế hướng đối tượng qua việc sử
dụng một ngôn ngữ lập trình có hỗ trợ các tính năng hướng đối tượng. Phương
pháp này có một số ưu điểm như:
- Đơn giản hóa độ phức tạp khi bảo trì.
- Giảm nhẹ các thao tác viết mã cho người lập trình.
- Phản ánh được quan hệ giữa các bảng có thực.
- Có tính đóng gói và che giấu thông tin.
- Tính đa hình.
- Tính kế thừa.
- Ngoài ra, đối với người mới học về lập trình thì phương pháp này dể tiếp
thu hơn so với những phương pháp trước đó.
2.1.2. Công cụ
Các công cụ hỗ trợ cho việc phân tích, thiết kế và lập trình được sử dụng là:
Star UML, Microsoft Word 2013, Xcode 6.1, Balsamiq Mockups.
2.2. PHÂN TÍCH
2.2.1.


Đặc tả yêu cầu

2.2.1.1. Yêu cầu chức năng
Ứng dụng English Social có các chức năng chính: kết bạn - theo dõi các chia sẽ
của bạn bè, chia sẽ trạng thái hình ảnh audio, bình luận các bài viết, tìm kiếm bạn
bè quanh đây, tìm kiếm trung tâm – câu lạc bộ xung quanh, quản lý cá nhân, quản
lý các trạng thái (các trạng thái đã chia sẽ), quản lý bạn bè (người dùng).
• Kết bạn – theo dõi các chia sẽ của bạn bè
-

-

Chức năng này cho phép người dùng tìm kiếm những người sử dụng ứng
dụng học tiếng anh xung quanh mình rồi kết bạn, hoặc có thể kết bạn
qua tên người dùng. Khi kết bạn các chia sẽ của bạn bè sẽ được người
dùng thấy xuất hiện trên bảng tin của mình.
Sau khi kết bạn xong sẽ được thêm và danh bạ.

• Chia sẽ trạng thái
-

-

Chức năng này cho phép người chia sẽ trạng thái của mình điều mình
đang nghĩ tới bạn bè, chia sẽ để cùng thảo luận một vấn đề nào đó về
việc học tiếng anh.
Người dùng có thể chia sẽ trạng thái đơn thuần đó là đoạn văn bản.
Người dùng chia sẽ một hoặc nhiều hình ảnh.
Chia sẽ một đoạn audio.



×