ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN Tel. (84-511) 736 949, Fax. (84-511) 842 771 Website: itf.ud.edu.vn, E-mail: cntt@edu.ud.vn
LUẬN VĂN TỐT NGHIỆP KỸ SƯ NGÀNH CÔNG NGHỆ THÔNG TIN MÃ NGÀNH : 05115
ĐỀ TÀI :
XÂY DỰNG HỆ THỐNG TRỢ GIÚP ẨM THỰC
TRÊN ĐIỆN THOẠI DI ĐỘNG
Mã số : 09T3 - 121
Ngày bảo vệ : 18-20/06/2014
SINH VIÊN : NGUYỄN THỦY LỘC LỚP : CBHD :
09T3 ThS. VÕ ĐỨC HOÀNG
ĐÀ NẴNG, 06/2014
LỜI CẢM ƠN
Em xin chân thành cám ơn thầy ThS. Võ Đức Hoàng đã tận tình hướng
dẫn và giúp đỡ em trong suốt quá trình thực hiện đồ án tốt nghiệp này. Em
cũng xin gởi lời cám ơn chân thành đến toàn thể quý thầy cô trường Đại học
Bách khoa Đà Nẵng, đặc biệt là các thầy cô trong khoa Công nghệ Thông
Tin trường Đại Học Bách Khoa – Đại Học Đà Nẵng đã tận tình giảng dạy,
truyền đạt những kiến thức, kinh nghiệm quý báu trong suốt quá trình học
tập vừa qua.
Trong suốt quá trình làm đồ án tốt nghiệp chắc chắn không tránh khỏi
những thiếu sót, em rất mong sự giúp đỡ và góp ý của quý thầy cô để em
hoàn thiện hơn đề tài của mình.
Một lần nữa, em xin chân thành cám ơn.
Đà Nẵng, ngày 30 tháng 05 năm 2014
Sinh viên,
Nguyễn Thủy Lộc – 09T3
Trang i
LỜI CAM ĐOAN
Tôi xin cam đoan :
- Những nội dung trong luận văn này là do tôi thực hiện dưới sự
hướng dẫn trực tiếp của thầy ThS. Võ Đức Hoàng.
- Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên
tác giả, tên công trình, thời gian, địa điểm công bố.
- Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi
xin chịu hoàn toàn trách nhiệm.
Sinh viên,
Nguyễn Thủy Lộc – 09T3
Trang ii
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
………………………………………………………………………………………………….
………………………………………………………………………………………………….
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
………………….………………………………………………………………………………
………………….………………………………………………………………………………
………………….………………………………………………………………………………
………………….………………………………………………………………………………
………………….………………………………………………………………………………
………………….………………………………………………………………………………
Trang iii
………………….………………………………………………………………………………
NHẬN XÉT CỦA HỘI ĐỒNG PHẢN BIỆN
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
Trang iv
………………………………………………………………………………………………
MỤC LỤC
1.3.2.1 1.3.2.2
1.3.4
1.3.3.1
1.3.4.1 1.3.4.2
1.3.7.1 1.3.7.2
MỞ ĐẦU .......................................................................................................... 1 1.1 GIỚI THIỆU .................................................................................................. 1 1.1.1 Bối cảnh đề tài ........................................................................................ 1 1.1.2 Mục đích ................................................................................................. 1 1.1.3 Ý nghĩa .................................................................................................... 2 1.2 PHẠM VI ĐỀ TÀI ......................................................................................... 2 1.3 TRIỂN KHAI ĐỀ TÀI ................................................................................... 2 1.3.1 Các bước thực hiện ................................................................................. 2 1.3.2 Mục tiêu cần đạt được ............................................................................. 3 1.4 KẾT QUẢ DỰ KIẾN ..................................................................................... 3 CHƯƠNG 1. CƠ SỞ LÝ THUYẾT ............................................................ 4 1.1 GIỚI THIỆU CÁC NỀN TẢNG DI ĐỘNG .................................................. 4 1.1.1 Ios ............................................................................................................ 4 1.1.2 Android ................................................................................................... 5 1.1.3 Windowphone ......................................................................................... 5 1.1.4 BlackBerry .............................................................................................. 6 1.2 GIỚI THIỆU HỆ ĐIỀU HÀNH ANDROID .................................................. 6 1.2.1 Giới thiệu ................................................................................................ 6 1.2.2 Lịch sử phát triển .................................................................................... 7 1.2.3 Kiến trúc của hệ điều hành Android ....................................................... 8 1.3 LẬP TRÌNH ỨNG DỤNG TRONG ANDROID ......................................... 10 1.3.1 Công cụ hỗ trợ ...................................................................................... 10 1.3.2 Các thành phần chính trong android project ......................................... 10 Các thành phần chính trong android ..................................................... 10 AndroidManifest ..................................................................................... 10 1.3.3 Activity ................................................................................................. 11 Các phương thức trong chu kỳ sống của một activity ............................ 12 Intent ..................................................................................................... 13 Các thuộc tính của một đối tượng intent ................................................ 14 Sử dụng Intent ......................................................................................... 14 1.3.5 Adapter trong andoid ............................................................................ 15 1.3.6 Lưu trữ dữ liệu trong android ............................................................... 15 1.3.7 Giao diện trong android ........................................................................ 15 View ........................................................................................................ 15 ViewGroup .............................................................................................. 16 1.4 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQLITE ................................................. 19 1.4.1 Giới thiệu .............................................................................................. 19 1.4.2 Đặc điểm ............................................................................................... 19 Phiên bản ............................................................................................... 20 1.4.3 1.5 WEB SERVICE ............................................................................................... 20 1.5.1 Giới thiệu .............................................................................................. 20
Trang v
1.6.2
1.5.2.1 1.5.2.2
1.7
1.6.2.1 1.6.2.2 1.6.2.3
2.1.3
2.1.2.1 2.1.2.2
2.2.1
2.1.3.1 2.1.3.2
2.2.2
2.2.1.1 2.2.1.2 2.2.1.3 2.2.1.4 2.2.1.5
1.5.2 Đặc điểm webservice ............................................................................ 20 Ưu điểm .................................................................................................. 21 Nhược điểm ............................................................................................. 22 1.6 RESTFUL WEB SERVICE ......................................................................... 22 1.6.1 Khái niệm .............................................................................................. 22 REST ....................................................................................................... 22 1.6.1.1 Kiến trúc ................................................................................................. 22 1.6.1.2 RESTFul Web Service ............................................................................. 23 1.6.1.3 1.6.1.4 Cơ chế hoạt động .................................................................................... 23 1.6.1.5 Một số thành phần của RESTful Web Service ........................................ 24 Json và Gson ......................................................................................... 25 Sơ lược về json ........................................................................................ 25 So sánh với XML..................................................................................... 25 Sơ lược về Gson ...................................................................................... 27 JSP VÀ SERVLET ...................................................................................... 28 JSP ........................................................................................................ 28 1.7.1 SERVLET ............................................................................................. 28 1.7.2 1.7.3 MÔ HÌNH MVC TRONG JAVA WEB JSP SERVLET ..................... 29 1.7.3.1 Khái niệm cơ bản về mô hình MVC ........................................................ 29 1.7.3.2 Mô hình MVC trong ứng dụng web với JSP Servlet ............................... 29 CHƯƠNG 2. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG....................... 30 2.1 PHÂN TÍCH YÊU CẦU .............................................................................. 30 2.1.1 Mô tả bài toán ....................................................................................... 30 Phân tích hiện trạng ẩm thực Việt Nam ................................................ 31 2.1.2 Giới thiệu sơ lược về ẩm thực Việt Nam ................................................ 31 Đặc điểm ................................................................................................. 31 Phân tích yêu cầu bài toán .................................................................... 32 Yêu cầu chức năng .................................................................................. 32 Yêu cầu phi chức năng ........................................................................... 33 Phân tích tính khả thi ............................................................................ 33 2.1.4 2.1.5 Công nghệ ............................................................................................. 33 2.2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG .................................................. 34 Phân tích và thiết kế ứng dụng di động Android ................................. 34 Usecase ................................................................................................... 34 Biểu đồ hoạt động ................................................................................... 42 Biểu đồ tuần tự ....................................................................................... 49 Biểu đồ lớp .............................................................................................. 54 Thiết kế cơ sở dữ liệu .............................................................................. 54 Phân tích và thiết kế Web Server .......................................................... 58 2.2.2.1 Web admin .............................................................................................. 58 Sơ đồ lớp ................................................................................................. 65 2.2.2.2 Thiết kế cơ sở dữ liệu .............................................................................. 65 2.2.2.3 CHƯƠNG 3. TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ ....................... 67 3.1 KẾT QUẢ .................................................................................................... 67 3.1.1 Kết quả triển khai Web Service ............................................................ 67
Trang vi
3.2.1.1 3.2.1.2
3.2.2.1 3.2.2.2
3.1.2 Kết quả triển khai Web Admin ............................................................. 67 3.1.3 Kết quả triển khai ứng dụng trên di động ............................................. 78 3.2 ĐÁNH GIÁ .................................................................................................. 85 3.2.1 Bảng đánh giá kết quả thực hiện ........................................................... 85 Ứng dụng trên điện thoại di động .......................................................... 85 Hệ thống Server ...................................................................................... 85 3.2.2 Những điều đạt được............................................................................. 85 Hệ thống Web server .............................................................................. 86 Ứng dụng trên điện thoại di động .......................................................... 86 3.2.3 Những điều chưa đạt được .................................................................... 86 3.3 HƯỚNG PHÁT TRIỂN ............................................................................... 86 TÀI LIỆU THAM KHẢO ............................................................................ 87 TÓM TẮT LUẬN VĂN TỐT NGHIỆP ...................................................... 88 PHỤ LỤC ......................................................................................................... 1
Trang vii
DANH SÁCH HÌNH VẼ
Hình 1: Giới thiệu mobile ..................................................................................................... 4 Hình 2: Giới thiệu android .................................................................................................... 6 Hình 3: Kiến trúc hệ điều hành android ................................................................................ 8 Hình 4: Sơ đồ hoạt động activity trong android ................................................................. 11 Hình 5: Sơ đồ Intent ............................................................................................................ 13 Hình 6: Sơ đồ giao diện trong android................................................................................ 16 Hình 7: Framelayout android .............................................................................................. 17 Hình 8: Relativelayout android ........................................................................................... 18 Hình 9; Tablelayout android ............................................................................................... 18 Hình 10: Quản trị SQLite .................................................................................................... 19 Hình 11: Kiến trúc REST .................................................................................................... 22 Hình 12: Cơ chế hoạt động của REST ................................................................................ 23 Hình 13: Use case của ứng dụng android ........................................................................... 34 Hình 14: Biểu đồ hoạt động xem văn hóa ẩm thực............................................................. 42 Hình 15: Biểu đồ hoạt động cập nhật dữ liệu ..................................................................... 42 Hình 16: Biểu đồ hoạt động tìm kiếm món ăn .................................................................... 43 Hình 17: Biểu đồ hoạt động gửip hản hồi cho từng món ăn ............................................... 43 Hình 18: Biểu đồ hoạt động tạo ghi chú cho từng món ăn ................................................. 44 Hình 19: Biểu đồ hoạt động chỉnh sửa ghi chú cho từng món ăn ....................................... 44 Hình 20: Biểu đồ hoạt động chia sẻ món ăn trên facebook ................................................ 45 Hình 21: Biểu đồ hoạt động xem danh sách món ăn .......................................................... 45 Hình 22: Biểu đồ hoạt động thêm món ăn yêu thích .......................................................... 46 Hình 23: Biểu đồ hoạt động xóa món ăn yêu thích ............................................................ 46 Hình 24: Biểu đồ hoạt động chỉnh sửa hẹn giờ .................................................................. 47 Hình 25: Biểu đồ hoạt động đặt giờ .................................................................................... 47 Hình 26: Biểu đồ hoạt động xóa hẹn giờ ............................................................................ 48 Hình 27: Biểu đồ hoạt động gửi phản hồi cho ứng dụng .................................................... 48 Hình 28: Biểu đồ tuần tự xem văn hóa ẩm thực ................................................................. 49 Hình 29: Biểu đồ tuần tự cập nhật dữ liệu .......................................................................... 49 Hình 30: Biểu đồ tuần tự tìm kiếm món ăn ........................................................................ 49 Hình 31: Biểu đồ tuần tự xem danh sách món ăn ............................................................... 50 Hình 32: Biểu đồ tuần tự gửi phản hồi cho từng món ăn.................................................... 50 Hình 33: Biểu đồ tuần tự tạo ghi chú cho từng món ăn ...................................................... 50 Hình 34: Biểu đồ tuần tự chỉnh sửa chi chú cho từng món ăn ............................................ 51 Hình 35: Biểu đồ tuần tự chia sẻ món ăn trên facebook ..................................................... 51 Hình 36: Biểu đồ tuần tự thêm món ăn yêu thích ............................................................... 51 Hình 37: Biểu đồ tuần tự xem món ăn yêu thích ................................................................ 52 Hình 38: Biểu đồ tuần tự chỉnh sửa hẹn giờ ....................................................................... 52 Hình 39: Biểu đồ tuần tự thêm hẹn giờ ............................................................................... 52 Hình 40: Biểu đồ tuần tự xóa hẹn giờ ................................................................................. 53 Hình 41: Biểu đồ tuần tự gửi phản hồi cho ứng dụng ........................................................ 53 Hình 42: Biểu đồ lớp ........................................................................................................... 54 Hình 43: Biểu đồ lớp chi tiết............................................................................................... 54 Hình 44: Quan hệ giữa các bảng trong cơ sở dữ liệu .......................................................... 55 Hình 45: Sơ đồ usecase web admin .................................................................................... 58
Trang viii
Trang ix
Hình 46: Biểu đồ hoạt động đăng nhập .............................................................................. 61 Hình 47: Biểu đồ hoạt động xem dữ liệu ........................................................................... 61 Hình 48: Biểu đồ hoạt động thêm dữ liệu .......................................................................... 62 Hình 49: Biểu đồ hoạt động sửa dữ liệu ............................................................................ 62 Hình 50: Biểu đồ hoạt động xóa dữ liệu ............................................................................. 63 Hình 51: Biểu đồ tuần tự đăng nhập ................................................................................... 63 Hình 52: Biểu đồ tuần tự xem dữ liệu ................................................................................. 63 Hình 53: Biểu đồ tuần tự thêm dữ liệu ............................................................................... 64 Hình 54: Biểu đồ tuần tự xóa dữ liệu .................................................................................. 64 Hình 55: Biểu đồ tuần tự sửa dữ liệu ................................................................................. 64 Hình 56: Sơ đồ lớp web admin ........................................................................................... 65 Hình 57: Sơ đồ lớp chi tiết web admin ............................................................................... 65 Hình 58: Dữ liệu Json trả về từ Web Service ..................................................................... 67 Hình 59: Đăng nhập ............................................................................................................ 67 Hình 60: Quản lý món ăn .................................................................................................... 68 Hình 61: Thêm món ăn ....................................................................................................... 68 Hình 62: Xem, sửa món ăn ................................................................................................. 69 Hình 63: Xóa món ăn .......................................................................................................... 69 Hình 64: Quản lý loại món ăn ............................................................................................. 70 Hình 65: Thêm mới loại món ăn ......................................................................................... 70 Hình 66: Xem và sửa loại món ăn ...................................................................................... 71 Hình 67: Xóa loại món ăn ................................................................................................... 71 Hình 68: Quản lý vùng ........................................................................................................ 72 Hình 69: Thêm mới vùng .................................................................................................... 72 Hình 70: Xem và sửa vùng ................................................................................................. 73 Hình 71: Quản lý xuất xứ.................................................................................................... 73 Hình 72: Thêm mới xuất xứ ................................................................................................ 74 Hình 73: Xem và sửa xuất xứ ............................................................................................. 74 Hình 74: Xóa xuất xứ .......................................................................................................... 75 Hình 75: Quản lý nguyên liệu ............................................................................................. 75 Hình 76: Thêm mới nguyên liệu ......................................................................................... 76 Hình 77: Xem và sửa nguyên liệu....................................................................................... 76 Hình 78: Xóa nguyên liệu ................................................................................................... 77 Hình 79: Quản lý bình luận ................................................................................................. 77 Hình 80: Màn hình main ..................................................................................................... 78 Hình 81: Màn hình văn hóa ẩm thực .................................................................................. 78 Hình 82: Màn hình dialog chọn vùng ................................................................................. 79 Hình 83: Màn hình dialog chọn xuất xứ ............................................................................. 79 Hình 84: Màn hình danh sách món ăn ................................................................................ 80 Hình 85: Màn hình chi tiết món ăn ..................................................................................... 80 Hình 86: Màn hình chi tiết công thức món ăn .................................................................... 81 Hình 87: Màn hình ghi chú món ăn .................................................................................... 81 Hình 88: Màn hình bình luận món ăn ................................................................................. 82 Hình 89: Màn hình hẹn giờ nấu ăn ..................................................................................... 82 Hình 90: Màn hình danh sách yêu thích ............................................................................. 83 Hình 91: Màn hình danh sách hẹn giờ ................................................................................ 83
DANH SÁCH BẢNG BIỂU
Bảng 1: Các thuộc tính của đối tượng intent ...................................................................... 14 Bảng 2: Các hàm thực thi Activity ..................................................................................... 14 Bảng 3: Các method của HTTP được hỗ trợ....................................................................... 24 Bảng 4: Đối tượng Json ...................................................................................................... 26 Bảng 5: Mảng Json ............................................................................................................. 26 Bảng 6: Ví dụ sử dụng Gson ............................................................................................... 27 Bảng 7: Mô tả usecase xem văn hóa ẩm thực ..................................................................... 34 Bảng 8: Mô tả usecase cập nhật dữ liệu .............................................................................. 35 Bảng 9: Mô tả usecase tìm kiếm món ăn ............................................................................ 35 Bảng 10: Mô tả usecase xem chi tiết món ăn ..................................................................... 36 Bảng 11: Mô tả usecase gửi phản hồi cho từng món ăn ..................................................... 36 Bảng 12: Mô tả usecase tạo ghi chú cho món ăn ................................................................ 37 Bảng 13: Mô tả usecase chỉnh sửa ghi chú món ăn ............................................................ 37 Bảng 14: Mô tả usecase chia sẻ món ăn trên facebook ...................................................... 38 Bảng 15: Mô tả usecase xem danh sách món ăn ................................................................. 38 Bảng 16: Mô tả usecase thêm món ăn yêu thích ................................................................. 39 Bảng 17: Mô tả usecase xóa món ăn yêu thích ................................................................... 39 Bảng 18: Mô tả usecase chỉnh sửa hẹn giờ ......................................................................... 40 Bảng 19: Mô tả usecase xóa hẹn giờ .................................................................................. 40 Bảng 20: Mô tả usecase đặt giờ .......................................................................................... 41 Bảng 21: Mô tả usecase gửi phản hồi cho ứng dụng .......................................................... 41 Bảng 22: Bảng định mức .................................................................................................... 55 Bảng 23: Loại món ăn ......................................................................................................... 56 Bảng 24: Bảng Vùng ........................................................................................................... 56 Bảng 25: Xuất xứ ................................................................................................................ 56 Bảng 26: Nguyên liệu ......................................................................................................... 56 Bảng 27: Món ăn ................................................................................................................. 57 Bảng 28: Món ăn Nguyên liệu ............................................................................................ 57 Bảng 29: Hẹn giờ ................................................................................................................ 57 Bảng 30: Mô tả usecase đăng nhập ..................................................................................... 58 Bảng 31: Mô tả usecase thêm dữ liệu ................................................................................. 59 Bảng 32: Mô tả usecase sửa dữ liệu .................................................................................... 59 Bảng 33: Mô tả usecase xóa dữ liệu ................................................................................... 60 Bảng 34: Mô tả usecase xem dữ liệu .................................................................................. 60 Bảng 35: user ...................................................................................................................... 66 Bảng 36: RateAndBinhLuan ............................................................................................... 66 Bảng 37: Bảng đánh giá kết quả thục hiện trên điện thoại di động .................................... 85 Bảng 38: Bảng đánh giá kết quả thực hiện trên hệ thống server ........................................ 85
Trang x
Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động
MỞ ĐẦU
1.1 GIỚI THIỆU
1.1.1 Bối cảnh đề tài
Trong bối cảnh xã hội ngày càng phát triển, chất lượng cuộc sống của con người ngày càng được cải thiện, đi liền với đó là vấn để ăn uống ngày càng được nâng cao, từ chỗ đủ cái ăn, chúng ta hướng đến là làm thế nào để có thể có món ăn ngon, bổ dưỡng. Tất bật với cuộc sống mưu sinh, với nhịp sống nhộn nhịp của xã hội, quỹ thời gian của chúng ta ngày càng eo hẹp đi. Thật khó để có thể dành được một lượng thời gian lân la các quán sách tìm hiểu về các món ăn, hay lang thang Internet tìm hiểu về các chương trình dạy nấu ăn. Từ đó nảy sinh vấn đề làm thế nào để có được một công cụ như một cuốn sổ tay mini chỉ dẫn về nấu ăn, về nghệ thuật ẩm thực có thể mang theo mọi lúc, tiện lợi giúp chúng ta có thể tự mình nấu những món ăn ngon cho chính mình, cho bạn bè, người thân hay gia đình thưởng thức sau những giờ làm việc hút thể lực và chất xám.
Đi kèm với đó, sự phát triển của khoa học công nghệ ngày càng nhanh chóng. Điện thoại di động không còn đơn thuần là thiết bị liên lạc, mà trở thành một công cụ giải trí đa phương tiện và một vật không thể thiếu của mọi người. Chính sự phát triển và phổ biến mạnh mẽ của di động nên ngày càng có nhiều ứng dụng cho di động được phát triển. Chính vì những ưu thế trên của điện thoại thông minh, ý tưởng kết hợp sổ tay nấu ăn truyền thống và điện thoại thông minh được nghĩ đến. Một ứng dụng trên điện thoại thông minh có chức năng như một cuốn sổ tay mini hướng dẫn về ẩm thực, gọn nhẹ và dễ mang theo gần như mọi lúc mọi nơi giúp mọi người có thể dễ dàng chế biến các món ăn ngon, đa dạng mà không phải mất nhiều công sức, thì giờ tìm hiểu.
Vì những lý do đó tôi quyết định đưa ra ý tưởng làm một cuốn sổ tay mini giới
thiệu về ẩm thực Việt Nam trên thiết bị di động để nghiên cứu và triển khai.
1.1.2 Mục đích
Tạo ra một ứng dụng giống như một cuốn sổ tay mini về ẩm thực trên điện thoại di động, một ứng dụng tiện lợi, nhỏ gọn có thể bỏ túi mang theo, có thể đem ra dùng trong nhiều trường hợp. Giúp bạn có thể chế biến được những món ăn ngon khi cần thiết hoặc nâng cao trình độ nấu ăn, hiểu biết về văn hóa ẩm thực mà không cần phải bỏ ra nhiều công sức tìm kiếm bên đống sách vở dạy nấu ăn hay những chương trình dạy nấu ăn vốn tiêu tốn rất nhiều thời gian quý báu.
Ứng dụng sẽ cung cấp cho người dùng các thông tin về văn hóa ẩm thực các vùng miền, cách chế biến các món ăn hay là nguồn gốc, lịch sử ra đời của các món ăn cùng nhiều tính năng hữu ích khác.
Trang 1
Xây dựng một website quản lý dữ liệu về thông tin ẩm thực và một webservice
cung cấp thông tin về ẩm thực cho ứng dụng di động.
Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động
1.1.3 Ý nghĩa
- Cung cấp một ứng dụng hữu ích hỗ trợ người dùng về vấn đề ẩm thực, tiết
kiệm thời gian, công sức và chi phí mà vẫn có thể dễ dàng chế biến được những
món ăn ngon như ý.
- Tạo được một website quản lý thông tin dữ liệu ẩm thực và một webservice
cung cấp dữ liệu về ẩm thực.
- Thông qua quá trình xây dựng ứng dụng, em có thể tổng hợp lại những kiến
thức mà mình đã được tích lũy trong thời gian học tập tại trường.
- Tích lũy thêm được nhiều kinh nghiệm thực tế, học thêm được nhiều công
nghệ mới.
1.2 PHẠM VI ĐỀ TÀI
Ứng dụng di động được xây dựng dựa trên nền tảng hệ điều hành di động Android. Ứng dụng có thể cập nhật sữ liệu từ webservice và lưu về bộ nhớ cục bộ trên thiết bị.
Kho dữ liệu ẩm thực được xây dựng và phát triển trên mạng Internet, cung cấp web service và các phương thức để sử dụng và khai thác dữ liệu từ kho dữ liệu ẩm thực.
1.3 TRIỂN KHAI ĐỀ TÀI
1.3.1 Các bước thực hiện
- Đọc hiểu đề tài, tìm kiếm các tài liệu liên quan.
- Phân tích yêu cầu.
- Phân tích và thiết kế hệ thống.
- Xây dựng cơ sở dữ liệu
- Xây dựng Web admin quản lý cơ sỡ dữ liệu
- Xây dựng Web service cung cấp dữ liệu
- Xây dựng ứng dụng trên thiết bị di động Android
- Triển khai hoạt động cho kho dữ liệu và ứng dụng, đồng thời tiến hành kiểm
thử đảm bảo chất lượng sản phẩm.
- Viết báo cáo tổng kết đề tài và đề ra hướng phát triển.
Trang 2
Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động
1.3.2 Mục tiêu cần đạt được
- Xây dựng thành công Web admin và Web service cho kho dữ liệu ẩm thực.
- Xây dựng thành công ứng dụng trên điện thoại di động Android.
- Triển khai ứng dụng, phối hợp trao đổi dữ liệu giữa ứng dụng di động và ứng
dụng web thành công.
1.4 KẾT QUẢ DỰ KIẾN
Với mục đích đề ra thì kết quả cần đạt được trong đề tài luận văn tốt nghiệp này: - Tìm hiểu nền tảng di động Android. - Tìm hiểu Web service. - Phân tích yêu cầu người dùng và thiết kế hệ thống. - Xây dựng và triển khai hệ thống trong thực tế.
Trang 3
Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động
CHƯƠNG 1.
CƠ SỞ LÝ THUYẾT
1.1 GIỚI THIỆU CÁC NỀN TẢNG DI ĐỘNG
Ngày này, thị trường di động đang phát triển mạnh mẽ chưa từng thấy với vô vàn các nhãn hiệu, kiểu dáng, tính năng...Đã biến chiếc điện thoại thành một thiết bị giải trí đa phương tiện không thể thiếu. Với lợi thế nhỏ gọn, được mọi người sử dụng đem theo mọi lúc mọi nơi, nhưng cũng vì nhỏ gọn như vậy cũng là một bất lợi về xử lý và tốc độ. Để đảm bảo một chiếc điện thoại thông minh hoạt động tốt thì nó cần có một hệ điều hành quản lý thiết bị.
Hình 1: Giới thiệu mobile
Đi kèm với sự phát triển phần cứng trên thiết bị động thì cuộc chiến của các nhà phát triển các hệ điều hành trên điện thoại di động cũng diễn ra hết sức khốc liệt. Hiện nay, các nền tảng di động lớn được biết đến như sau
1.1.1 Ios
Nền tảng di động iOS với điện thoại di động thông minh iPhone, với thiết kế đẹp, thời trang, cảm ứng mượt mà, màn hình đẹp và sắc nét cùng với tài năng của "thánh" Steve Jobs đã khiến cho iPhone trở thành hiện tượng trên mọi thị trường, đặc biệt là ở Mỹ. Doanh số bán ra của iPhone tăng dần qua các năm, và dần dần thống lĩnh thị trường của nhiều nước. iPhone dù mỗi năm chỉ ra một phiên bản mới nhưng sức nóng đủ lan tỏa khắp làng di động, do đó, iOS vẫn chưa bao giờ "già".
iOS là hệ điều hành "đóng" hoạt động trên iPhone, iPad, iPod. iOS đã quyết định rất nhiều đối với sự thành công của Apple, với giao diện bóng bẩy, đẹp mắt, và dễ sử dụng. Tất cả chỉ là chạm và vuốt để thực thi. Cùng với chính sách hợp lý để thu hút các lập trình viên viết ứng dụng, kho ứng dụng Appstore ngày càng lớn khiến cho người dùng càng thêm thích thú, mọi nhu cầu của từng người đều có thể được đáp ứng. Cũng như việc Apple cũng tung ra cập nhật, vá các lỗi liên tục khi phát hiện, khiến cho iOS ngày càng trở nên "thông minh" hơn, an toàn hơn.
Nhưng nếu gọi iOS là thống trị năm 2012 thì điều đó cũng là chưa thể. Vì iOS chỉ được cài giới hạn trên thiết bị của Apple gồm những thiết bị như iPhone, iPad, iPod... Thị phần của thiết bị Apple trên thế giới nói chung là không lớn, số liệu các bạn thấy trên các báo đa số chỉ thống kê tại Mỹ, nhưng đã gọi là thống trị thì phải là thống trị trên thị trường di động toàn thế giới.
Trang 4
Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động
1.1.2 Android
Mặc dù sinh sau đẻ muộn, nhưng Android đang có những bước tiến thần tốc, trong thời gian ngắn đã đạt được nhiều điều khiến mọi hệ điều hành di động mơ ước: khoảng 700.000 điện thoại Android được kích hoạt mỗi ngày.
Khi mà iOS ngày càng bành trướng mà Symbian lại không đủ sức để cạnh tranh. Các lập trình viên, các nhà sản xuất điện thoại chú ý đến Android. Hệ điều hành di động mở được Google phát triển dựa trên nền tảng Linux.
Android ngày càng lớn mạnh về số lượng và chất lượng bởi sự linh hoạt từ nền tảng Google, phù hợp với cả smartphone tầm thấp lẫn giá cao. Hàng loạt các nhà sản xuất điện thoại di động sử dụng Android làm hệ điều hành chính cho các sản phẩm của mình. Như HTC, Samsung, LG, Motorola, Sony Ericsson... Từ điện thoại, cho đến máy tính bảng của các hãng này đều dùng hệ điều hành Android. Các nhà lập trình viết ứng dụng ngày càng nhiều trên Android Market. Kho ứng dụng đang cạnh tranh trực tiếp với AppStore của Apple. Chính vì điều này mà đã khiến Android ngày càng bành trướng trên thị trường khắp các châu lục, và dần dần Android sẽ là hệ điều hành thống trị.
Nhưng các bạn có thể thấy, dường như Android đang ở trên đỉnh cao của mình. Chính vì có quá nhiều thiết bị, mỗi thiết bị có cấu hình riêng, nhà sản xuất tùy biến riêng và việc có quá nhiều ứng dụng, nhưng lại không theo một chuẩn cụ thể nào. Khiến Android ngày càng bị phân mảnh và rời rạc.
Android được cập nhật quá thường xuyên, dẫn đến tình trạng trên thị trường có nhiều phiên bản cùng tồn tại, được phát hành song song với nhau. Google đang dần muốn kiểm soát và hạn chế sự phân mảnh, nhưng đồng thời cũng làm mất dần tính "mở" vốn là triết lý cơ bản của Android.
1.1.3 Windowphone
Windows Phone là hệ điều hành của Microsoft dành cho smartphone kế tục nền tảng Windows Mobile, mặc dù chúng không tương thích với nhau. Khác với Windows Mobile, Windows Phone tập trung vào sự phát triển của Marketplace - nơi các nhà phát triển có thể cung cấp sản phẩm (miễn phí hoặc có phí) tới người dùng. Windows Phone được bán vào tháng 10 năm 2010 và đầu năm 2011 tại Châu Á.
Phiên bản mới nhất hiện tại là Windows Phone 8.1 (Tên mã Blue) tiếp nối Windows Phone 8 (Apollo), hiện vẫn ở phiên bản thử nghiệm cho nhà phát triển (Preview for Developers). Với Windows Phone, Microsoft đã phát triển giao diện người dùng mới mang tên Modern (trước đây tên là Metro) - tích hợp khả năng liên kết với các phần cứng và phần mềm của hãng thứ ba một cách dễ dàng.
Trang 5
Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động
1.1.4 BlackBerry
Là dòng máy Smartphone cao cấp và nổi tiếng trên thế giới do hãng Research In Motion cung cấp. Ngoài những tính năng thông thường, điểm tạo nên sự khác biệt của máy BlackBerry là kiểu thiết kế rất đặc trưng; pin tốt và hơn cả là dịch vụ Push Mail nổi tiếng và thương hiệu BlackBerry được xây dựng rất thành công.
BlackBery OS 6 được RIM công bố tại sự kiện Wireless Enterprise Symposium (diễn ra từ 27 đến 29/4 tại Mỹ). RIM chưa đưa ra chi tiết về hệ điều hành mới, ngoài một đoạn video quảng cáo khá ấn tượng. Theo những thông tin đầu tiên, nhiều cải tiến từ giao diện, màn hình Home mới, menu pop-up, khả năng chuyển dịch, trình duyệt web mới dựa trên nền tảng WebKit tương thích HTML5. Ngoài ra, BlackBerry OS 6 hỗ trợ khả năng điều khiển trên màn hình cảm ứng đa điểm tốt hơn.
1.2 GIỚI THIỆU HỆ ĐIỀU HÀNH ANDROID
1.2.1 Giới thiệu
Hình 2: Giới thiệu android
Android là hệ điều hành trên điện thoại di động phát triển bởi Google và dựa trên nền tảng Linux. Trước đây, Android được phát triển bởi công ty liên hợp Android (sau đó được Google mua lại vào năm 2005). Theo nghiên cứu của công ty nghiên cứu thị trường NPD (National Purchase Diary), thiết bị di động sử dụng hệ điều hành android bán được tại Mỹ trong quý I năm 2012 xếp vị trí đầu tiên với 51%, thứ 2 là iOS ở vị trí với 30.7%. Android có một cộng đồng những nhà phát triển rất lớn viết các ứng dụng cho hệ điều hành của mình, điều này khiến Android trở thành hệ điều hành di động có môi trường phát triển cực kì rộng lớn. Các nhà phát triển viết ứng dụng cho Android dựa trên ngôn ngữ Java. Sự ra mắt của Android vào ngày 5 tháng 11 năm 2007 gắn với sự thành lập của liên minh thiết bị cầm tay mã nguồn mở, bao gồm 78 công ty phần cứng, phần mềm và viễn thông nhằm mục đính tạo nên một chuẩn mở cho điện thoại di động trong tương lai. Google công bố hầu hết các mã nguồn của Android theo bản cấp phép Apache.
Trang 6
Android được xây dựng để cho phép các nhà phát triển tạo ra các ứng dụng di động hấp dẫn tận dụng tất cả chức năng một chiếc điện thoại đã cung cấp. Nó được xây dựng để thực sự mở. Ví dụ, một ứng dụng có thể kêu gọi bất kỳ chức năng lõi của điện thoại như thực hiện cuộc gọi, gửi tin nhắn văn bản hoặc bằng cách sử dụng máy ảnh, cho phép các nhà phát triển tạo ra nhiều phong cách khác nhau.
Android được xây dựng trên hệ điều hành mở Linux. Vì thế, nền tảng Android
luôn được cộng đồng quan tâm và phát triển liên tục.
Android không phân biệt giữa các ứng dụng lõi của điện thoại và các ứng dụng của bên thứ ba. Tất cả các ứng dụng đều có thể giao tiếp được với nhau, và sử dụng một cách tối đa nhờ vào khả năng của nhà phát triển
Android đang dần phá bỏ rào cản để xây dựng các ứng dụng mới và sáng tạo. Ví dụ, một nhà phát triển có thể kết hợp thông tin từ các trang web với dữ liệu trên điện thoại di động của cá nhân, hoặc chỉ ra địa chỉ hiện tại của một người nào đó khi họ nằm trong một phạm vi cố định…
Android cung cấp một loạt các thư viện công cụ hữu ích và có thể được sử dụng
xây dựng các ứng dụng phong phú.
Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động
1.2.2 Lịch sử phát triển
- Tháng 10-2003: Android, inc được thành lập tại Palo Alto, California bởi
Andy Rubin, Rich Miners, Nick Sears và Chris White.
- Tháng 8-2005: Google mua lại Android inc.
- Tháng 11-2007: Phát hành Android beta SDK (Software Development Kit).
- Tháng 9-2008: Chiếc điện thoại chạy trên hệ điều hành Android lần đầu tiên
được giới thiệu, chiếc HTC Dream(G1) chạy Android 1.0.
- Tháng 2-2009: Phát hành bản cập nhật Android 1.1 dành riêng cho T-Mobile
G1.
- Tháng 4-2009: Phát hành bản cập nhật Android 1.5(Cupcake) dựa trên nhân
linux 2.6.27.
- Tháng 9-2009: Phát hành bộ SDK dành cho Android 1.6 (Donut) dựa trên nhân
Linux 2.6.29.
- Tháng 10-2009: Phát hành bộ SDK dành cho Android 2.0(Eclair) dựa trên
nhân Linux 2.6.29.
- Tháng 12-2009: Phát hành bộ SDK 2.0.1.
- Tháng 1-2010: Phát hành bộ SDK 2.1.
- Tháng 5-2010: Phát hành bộ SDK Android 2.2 (Froyo).
Trang 7
- Tháng 12-2010: Phát hành bộ SDK Android 2.3 (Gingerbread).
- Tháng 2-2011: Phát hành Android 2.3.3 dựa trên nhân Linux 2.6.35.
- Tháng 2-2011: Phát hành SDK Android 3.0 dành cho tablet được phát hành
dựa trên nhân linux 2.6.36.
- Tháng 5-2011: Phát hành bộ SDK Android 3.1.
- Tháng 7-2011: Phát hành bộ SDK Android 3.2.
- Tháng 12-2011: Phát hành bộ SDK Android 4.0 (Ice Cream Sandwich) .
- Tháng 7-2012: Phát hành bộ SDK Android 4.1 (Jelly Bean).
- Tháng 12-2012: Phát hành bộ SDK Android 4.2 (Vẫn là Jelly Bean)
- Tháng 6-2013: Phát hành bộ SDK Android 4.3 (Vẫn là Jelly Bean)
- Tháng 10-2013: Phát hành bộ SDK Android 4.4 (KitKat)
Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động
1.2.3 Kiến trúc của hệ điều hành Android
Hình 3: Kiến trúc hệ điều hành android
Có 5 tầng cơ bản trong hệ điều hành Android: Application, Framework, Android Runtime, Native Libraries, Linux Kernel. Mỗi tầng làm việc đều nhờ sự giúp đỡ của tầng dưới.
Trang 8
Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động
Tầng Application: bao gồm tất cả các ứng dụng có trong thiết bị chạy Android như: phone, contact, game, browser,… và một số ứng dụng chạy ngầm.Người dùng có quyền gỡ bỏ hay cài đặt các ứng dụng tùy thích ở tầng này. Tất cả các ứng dụng được viết bằng cách sử dụng ngôn ngữ lập trình Java.
Tầng Application Framework: tầng Google xây dựng cho các nhà phát triển xây dựng ứng dụng của họ trên Android,bằng cách gọi các API có sẵn mà Google đã viết để sử dụng các tính năng của phần cứng mà không cần hiểu cấu trúc bên dưới.
Tầng Native Libraries: Android bao gồm một bộ thư viện C/C++, được sử dụng bởi các thành phần khác nhau của hệ thống Android. Những khả năng tiếp xúc với các nhà phát triển thông qua các khuôn khổ ứng dụng Android. Một số các thư viện lõi được liệt kê dưới đây:
System C library: thực hiện các hệ thống thư viện chuẩn C (LIBC – Library C),
điều chỉnh cho nhúng dựa trên Linux các thiết bị
Media Libraries: dựa trên OpenCORE PacketVideo's; sự hỗ trợ các thư viện phát lại và ghi âm của âm thanh và phổ biến nhiều định dạng video, cũng như các tập tin hình ảnh tĩnh, bao gồm MPEG4, H.264, MP3, AAC, AMR, JPG, và PNG
Surface Manager: quản lý quyền truy cập vào hệ thống con hiển thị và hoàn toàn
phù hợp chất 2D và 3D lớp từ nhiều ứng dụng đồ họa
LibWebCore: một trình duyệt web hiện đại, động cơ có quyền hạn cả hai trình
duyệt web của Android và một xem nhúng
SGL: các công cụ đồ họa 2D tiềm ẩn
3D libraries:một việc thực hiện dựa trên OpenGL ES 1,0 API; các thư viện, hoặc sử dụng phần cứng tăng tốc 3D (nếu có) hoặc bao gồm, cao tối ưu rasterizer phần mềm 3D
SQLite: một quan hệ cơ sở dữ liệu mạnh mẽ và nhẹ có sẵn cho tất cả các ứng dụng
Tầng Runtime: Android bao gồm một tập hợp các thư viện cơ bản mà cung cấp hầu hết các chức năng có sẵn trong các thư viện lõi của ngôn ngữ lập trình Java. Tất cả các ứng dụng Android đều chạy trong tiến trình riêng. Máy ảo Dalvik đã được viết để cho một thiết bị có thể chạy nhiều máy ảo hiệu quả. Các VM Dalvik thực thi các tập tin thực thi Dalvik (dex). Định dạng được tối ưu hóa cho bộ nhớ tối thiểu. VM là dựa trên register-based, và chạy các lớp đã được biên dịch bởi một trình biên dịch Java để chuyển đổi thành các định dạng dex. Các VM Dalvik dựa vào nhân Linux cho các chức năng cơ bản như luồng và quản lý bộ nhớ thấp.
Tầng Linux Kernel: đây là nhân của hệ điều hành Android, mọi xử lý hệ thống đều phải thông qua tầng này. Linux Kernel cung cấp các trình điều khiển thiết bị phần cứng như: camera, USB, bluetooth… Kernel hoạt động như một lớp trừu tượng giữa phần cứng và phần mềm còn lại của hệ thống.
Trang 9
Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động
1.3 LẬP TRÌNH ỨNG DỤNG TRONG ANDROID
1.3.1 Công cụ hỗ trợ
- Bộ Android SDK của Google
- Bộ JDK 5 trở lên
- IDE: eclipse hoặc netBean…
1.3.2 Các thành phần chính trong android project
1.3.2.1 Các thành phần chính trong android
Một ứng dụng android được xây dựng từ các thành phần cơ bản sau:
- Activity: hiểu một cách đơn giản thì Activity là nền của 1 ứng dụng. Khi khởi
động 1 ứng dụng Android nào đó thì bao giờ cũng có 1 main Activity được gọi, hiển
thị màn hình giao diện của ứng dụng cho phép người dùng tương tác.
- Service: thành phần chạy ẩn trong Android. Service sử dụng để update dữ liệu,
đưa ra các cảnh báo (Notification) và không bao giờ hiển thị cho người dùng thấy.
- Content Provider: kho dữ liệu chia sẻ. Content Provider được sử dụng để
quản lý và chia sẻ dữ liệu giữa các ứng dụng.
- Intent: nền tảng để truyền tải các thông báo. Intent được sử dụng để gửi các
thông báo đi nhằm khởi tạo 1 Activity hay Service để thực hiện công việc bạn mong
muốn.
- Broadcast Receiver: thành phần thu nhận các Intent bên ngoài gửi tới.
- Notification: đưa ra các cảnh báo mà không làm cho các Activity phải ngừng
hoạt động.
Activity, Service, Broadcast Receiver và Content Provider mới là những thành phần chính cấu thành nên ứng dụng Android, bắt buộc phải khai báo trong AndroidManifest
1.3.2.2 AndroidManifest
Trong bất kì một project Android nào khi tạo ra đều có một file AndroidManifest.xml, file này được dùng để định nghĩa các screen sử dụng, các permission cũng như các theme cho ứng dụng. Đồng thời nó cũng chứa thông tin về phiên bản SDK cũng như main activity sẽ chạy đầu tiên. File này được tự động sinh ra khi tạo một Android project. Trong file manifest bao giờ cũng có 3 thành phần chính đó là: application, permission và version.
Trang 10
- Application: bên trong thẻ này chứa các thuộc tính được định nghĩa cho ứng
dụng Android như:
android:icon = “drawable resource” : Ở đây đặt đường dẫn đến file icon của ứng
dụng khi cài đặt.
android:name = “string” : thuộc tính này để đặt tên cho ứng dụng Android.
Tên này sẽ được hiển thị lên màn hình sau khi cài đặt ứng dụng.
android:theme = “drawable theme” : thuộc tính này để đặt theme cho ứng dụng.
Các theme là các cách để hiển thị giao diện ứng dụng.
Ngoài ra còn nhiều thuộc tính khác…
- Permission: Bao gồm các thuộc tính chỉ định quyền truy xuất và sử
dụng tài nguyên của ứng dụng. Đây là cơ chế bảo mật của android, mặc định ứng
dụng android không được cấp quyền nào, để cấp quyền cho ứng dụng ta sử dụng
thuộc
tính
sau: android:name="string" />. Trong đó: android:name dùng xác định tên quyền hạn. - SDK version: chỉ ra phiên bản SDK nhỏ nhất và chuẩn nhất mà ứng dụng hiện đang sử dụng. Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Actitvity là thành phần quan trọng nhất và đóng vai trò chính trong xây dựng ứng dụng Android. Hệ điều hành Android quản lý Activity theo dạng stack: khi một Activity mới
được khởi tạo, nó sẽ được xếp lên đầu của stack và trở thành running activity, các
Activity trước đó sẽ bị tạm dừng và chỉ hoạt động trở lại khi Activity mới được giải
phóng. Trang 11 Các trạng thái trong Activity: - Running: Activity đang hiển thị trên màn hình (foreground). - Paused: Activity vẫn hiển thị (visible) nhưng không thể tương tác (lost focus) - Stop: Activity bị thay thế hoàn toàn bởi Activity mới sẽ tiến đến trạng thái stop. - Killed: Khi hệ thống bị thiếu bộ nhớ, nó sẽ giải phóng các tiến trình theo
nguyên tắc ưu tiên. Các Activity ở trạng thái stop hoặc paused cũng có thể bị
giải phóng và khi nó được hiển thị lại thì các Activity này phải khởi động lại
hoàn toàn và phục hồi lại trạng thái trước đó. Vòng đời của một activity bao gồm 3 vòng chính: - Entire lifetime: từ phương thức onCreate() đến onDestroy(). - Visible lifetime: từ phương thức onStart() đến onStop(). - Foreground lifetime: từ phương thức onResume() đến onPause(). 1.3.3.1 Các phương thức trong chu kỳ sống của một activity - onCreate() Được gọi khi activity lần đầu tiên được tạo Đây là nơi ta nên thực hiện khởi tạo tĩnh thông thường — tạo giao diện người dùng (các view), nối dữ liệu với các danh sách, v.v.. Tham số được truyền một đối tượng Bundle chứa trạng thái cũ của activity, nếu như trạng thái đã được ghi lại. onStart() luôn được gọi sau đó. - onRestart() Được gọi ngay trước khi activity được khởi động lại sau khi đã bị dừng (stopped). onStart() luôn được gọi sau đó. - onResume() Được gọi ngay trước khi activity bắt đầu tương tác với người dùng. Tại thời điểm này, activity nằm trên đỉnh activity stack và nhận input của người dùng. Tiếp theo bao giờ cùng là onPause(). - onPause() Được gọi khi hệ thống chuẩn bị chuyển sang một activity khác. Trang 12 Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Phương thức này thường dùng để ghi các thay đổi chưa được lưu, dừng hoạt hình và những công việc tốn CPU khác, v.v.. Nó nên làm công việc của mình thật nhanh vì activity tiếp theo phải đợi nó kết thúc thì mới resume được. Tiếp theo là onResume() nếu activity quay lại, hoặc onStop() nếu nó không còn được hiển thị đối với người dùng. Activity trong trạng thái này có thể bị hệ thống kill. - onStop() Được gọi khi activity không còn hiển thị đối với người dùng. Việc này có thể xảy ra khi nó bị hủy (destroyed), hoặc do một activity khác (cũ hoặc mới) đã được resume và che nó. Tiếp theo là onRestart() nếu activity tương tác trở lại với người dùng, hoặc onDestroy() nếu nó không quay lại. Hệ thống có thể kill activity trong trạng thái này. - onDestroy() Được gọi trước khi activity bị hủy. Đây là lời gọi hàm cuối cùng mà activity nhận được. Nó có thể được gọi vì activity đang kết thúc (hàm finish() của activity được gọi),
hoặc vì hệ thống đang tạm thời hủy thực thể hiện tại của activity để tiết kiệm không
gian bộ nhớ. Ta có thể phân biệt hai tình huống trên bằng cách dùng phương thức isFinishing(). Hệ thống có thể kill activity trong trạng thái này. Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Intent là một cấu trúc dữ liệu mô tả cách thức, đối tượng thực hiện một Activity. Intent là cầu nối giữa các Activity trong ứng dụng. Intent chính là người đưa thư,
giúp chúng ta triệu gọi cũng như truyền dữ liệu cần thiết để thực hiện một Activity từ
một Activity khác Trang 13 Intent là một khái niệm then chốt và đặc trưng của Android Platform. Có thể nói lập trình Android chính là lập trình intent-base. Intent về cơ bản là một cấu trúc dữ liệu, được mô tả trong lớp android.content.Intent. 1.3.4.1 Các thuộc tính của một đối tượng intent Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Thuộc tính chính Thuộc tính phụ Action: tên(string) của action mà Intent sẽ
yêu cầu thực hiện, có thể là các action
được định nghĩa sẵn hoặc do người lập
trình tự định nghĩa.
Data: là dữ liệu mà Activity sẽ gọi xử lý,
định dạng Uri( thông qua hàm
Uri.parse(data)) 1.3.4.2 Sử dụng Intent Category:thông tin về nhóm các action
Type:định nghĩa kiểu dữ liệu. Thường
được tự động xác định
Component: chỉ định cụ thể lớp sẽ thực thi
activity
Extras:chứa tất cả các cặp (key, value) do
ứng dụng thêm vào để truyền qua Intent(
chứa cấu trúc Bundle) Tên hàm Mô tả startActivity(intent) Thực thi activity như mô tả trong intent
nhưng không lấy kết quả trả về. startActivityResult Thực thi activity như mô tả trong intent,
có kết quả trả về. sendBroadcast(intent) Chạy một service Intent tường minh: Intent có thể dùng các thuộc tính phụ component để chỉ định
đích danh tên lớp sẽ thực thi Activity. Để thực hiện điều này, lớp Intent cung cấp các
hàm đó là setComponent(ComponentName) và setClass(Context, Class) và
setClassName (Context, String) setClassName(String, String). Là intent được dùng
để gọi các Activity trong cùng một app Intent không tương minh: Intent không chỉ định một lớp cụ thể mà thay vào đó
dùng các dữ liệu khác (action, data, type..) để hệ thống tự quyết định xem lớp nào sẽ
thích hợp để đáp ứng intent đó. Thông tin action và category của activity trong một
app đáp ứng intent đó phải được khai báo trong Manifest của app dưới dạng Intent-
filter. Truyền nhận thông tin giữa các Activity sử dụng intent Trang 14 bindService(intent.ServiceConnection,int) Bind service Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Adapter là cầu nối để liên kết dữ liệu với giao diện người dùng. Một số Adapter cơ bản : - ArrayAdapter: là một lớp chung để gắn các Adapter Views vào một mảng đối tượng, theo mặc định thì ArrayAdapter liên kết cá giá trị toString của từng đối tượng ra TextView trong layout, chúng ta có thể thay thế TextView bằng các điều khiển khác phức tạp hơn bằng cách sử dụng kỹ thuật Overriding phương thức getView() - SimpleCursorAdapter: dùng để liên kết các View với con trỏ để trả về câu truy vấn cho Content Provider, nó được định nghĩa trong file XML layout và liên kết các giá trị ràng buộc bên trong mỗi cột kết quả với View trong layout. Các kỹ thuật duy trì dữ liệu trong Android nhanh chóng, gọn nhẹ, hiệu quả và mạnh mẽ: - Shared Preferences: Khi muốn lưu trữ UI state ,user preferences hay application setting, chúng ta muốn có một cơ chế gọn nhẹ để lưu trữ một tập hợp các giá trị được biết đến, Shared Preferences cho phép chúng ta lưu trữ nhóm của key/value của dữ liệu gốc. - SQLite Databases: quản lý cấu trúc dữ liệu là cách tốt nhất. Android cung cấp thư viện quan hệ cơ sở dữ liệu SQLite, mỗi ứng dụng có thể tạo ra một cơ sở dữ liệu của mình để nó kiểm soát hoàn toàn trên đó. - Content Providers: Thay vì theo cơ chế lưu trữ riêng ,Content Providers cung cấp nội dung cho phép đưa ra một giao diện để sử dụng và chia sẻ dữ liệu cá nhân. Chúng ta có thể truy cập Content Providers để sử dụng hệ thống được phép. 1.3.7.1 View Trong một ứng dụng Android, giao diện người dùng được xây dựng từ các đối
tượng View và ViewGroup. Có nhiều kiểu View và ViewGroup. Mỗi một kiểu là một
hậu duệ của class View và tất cả các kiểu đó được gọi là các Widget. Tất cả mọi
widget đều có chung các thuộc tính cơ bản như là cách trình bày vị trí, background, Trang 15 kích thước, lề,… Tất cả những thuộc tính chung này được thể hiện hết ở trong đối
tượng View. Trong Android Platform, các screen luôn được bố trí theo một kiểu cấu trúc phân
cấp như hình dưới. Một screen là một tập hợp các Layout và các widget được bố trí
có thứ tự. Để thể hiện một screen thì trong hàm onCreate của mỗi Activity cần phải
được gọi một hàm là setContentView(R.layout.main); hàm này sẽ load giao diện từ
file XML lên để phân tích thành mã bytecode. Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động 1.3.7.2 ViewGroup ViewGroup thực ra chính là View hay nói đúng hơn thì ViewGroup chính là các
widget Layout được dùng để bố trí các đối tượng khác trong một screen. Có một số
loại ViewGroup như sau: - LinearLayout: với LinearLayout, các view bên trong nó được đặt cạnh nhau theo hàng ngang hoặc hàng dọc. LinearLayout làm cho các thành phần trong nó không bị phụ thuộc vào kích thước của màn hình. Các thành phần trong LinearLayout được dàn theo những tỷ lệ cân xứng dựa vào các ràng buộc giữa các thành phần. - FrameLayout: FrameLayout được dùng để bố trí các đối tượng theo kiểu giống như là các Layer trong Photoshop. Những đối tượng nào thuộc Layer bên dưới thì sẽ bị che khuất bởi các đối tượng thuộc Layer nằm trên. FrameLayer thường được sử dụng khi muốn tạo ra các đối tượng có khung hình bên ngoài chẳng hạn như contact image button. Trang 16 Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động - AbsoluteLayout: Layout này được sử dụng để bố trí các widget vào một vị trí bất kì trong layout dựa vào 2 thuộc tính toạ độ x, y. Tuy nhiên, kiểu layout này rất ít khi được dùng bởi vì toạ độ của các đối tượng luôn cố định và sẽ không tự điều chỉnh được tỷ lệ khoảng cách giữa các đối tượng. Khi chuyển ứng dụng sang một màn hình có kích thước với màn hình thiết kế ban đầu thì vị trí của các đối tượng sẽ không còn được chính xác như ban đầu. - RetaliveLayout: Layout này cho phép bố trí các widget theo một trục đối xứng ngang hoặc dọc. Để đặt được đúng vị trí thì các widget cần được xác định một mối ràng buộc nào đó với các widget khác. Các ràng buộc này là các ràng buộc trái, phải, trên, dưới so với một widget hoặc so với layout parent. Dựa vào những mối ràng buộc đó mà RetaliveLayout cũng không phụ thuộc vào kích thước của screen thiết bị. Ngoài ra, nó còn có ưu điểm là giúp tiết kiệm layout sử dụng nhằm mục đích giảm lượng tài nguyên sử dụng khi load đồng thời đẩy nhanh quá trình xử lý. Trang 17 Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động - TableLayout: Layout này được sử dụng khi cần thiết kế một table chứa dữ liệu hoặc cần bố trí các widget theo các row và column. Chẳng hạn như, giao diện của một chiếc máy tính đơn giản hoặc một danh sách dữ liệu. Trang 18 Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động 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 người sử dụng, 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à là sự
lưa chọn phù hợp cho những người bắt đầu học database. - 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ã UTF-8. - 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í. Trang 19 Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động 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 Web Services là một cách chuẩn để tích hợp các ứng dụng trên nền web (Web-
based applications). Các ứng dụng có thể sử dụng các thành phần khác nhau để tạo
thành một dịch vụ, ví dụ như máy chủ chạy một trang web thương mại điện tử kết nối
với cổng thanh toán điện tử qua một API - Application Programming Interface ( tạo
bởi công nghệ .NET thì web service chính là nền máy chủ (IIS - Internet Information
Services), và các thành phần thanh toán, các thành phần .NET được coi là component
(các thành phần bên ngoài). Các thành phần này được gọi bởi phương thức SOAP
(Khác phương thức POST, GET) nên không bị gặp phải firewall khi truy xuất các
thành phần bên ngoài máy chủ. Và toàn bộ các thành phần đó gọi là một Web
Services. Các Web Services cho phép các tổ chức thực hiện truyền thông dữ liệu mà không
cần phải có kiến thức về hệ thống IT phía sau tường lửa. Một số Web Services hiện
nay có sẵn miễn phí và càng ngày càng hướng dần vào các doanh nghiệp. Một ví dụ về Web Service sẵn có là dịch vụ được cung cấp bởi PayPal cho phép
những người có tài khoản có thể thanh toán hoặc trả một phần hoặc thực hiện các
giao dịch tìm kiếm, và lấy lại các thông tin của từng giao dịch cụ thể. Ngày này, web service được phát triển trên hầu hết các nên tảng web server hiện tại, như là : - Apache với PHP - Tomcat với JSP, Java - IIS với .Net, ASP - ... - Độc lập về ngôn ngữ, nền tảng: 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. Đó là vì web service sử dụng XML, một chuẩn mở đã được công nhận và có thể được hiểu bởi bất kỳ ngôn ngữ lập trình nào. Trang 20 - Khả năng tự mô tả: giao diện của dịch vụ web được xuất bản thông qua tài liệu WSDL. Tài liệu này định nghĩa cấu trúc thông điệp trao đổi và cấu trúc dữ liệu sử dụng trong thông điệp đó. - Tách biệt giữa mô tả và nội dung: đây là một trong những đặc tính then chốt làm nên thành công cho Web Services. - Web service không đòi hỏi phía client phải cài đặt bất cứ một thành phần mới nào. Còn ở phía server, để triển khai Web service thì chỉ cần có Servlet engine, Apache hoặc .NET Runtime,… Khi đã được triển khai thì client có thể sử dụng ngay các dịch vụ. Điều này khác với các công nghệ khác như DCOM hay RMI, khi mà client phải cài đặt Client stub để có thể truy cập dịch vụ. - Dựa trên các chuẩn mở: XML, SOAP, WSDL, UDDI. - Truy cập thông qua môi trường Web: web services được phát hành, xác định và gọi đều thông qua môi trường Web. Trong đó các mô tả về dịch vụ được xuất bản sử dụng WSDL, người dùng tìm kiếm và xác định dịch vụ nhờ sự trợ giúp của UDDI và yêu cầu dịch vụ bằng SOAP. Tất cả các giao thức này đều dựa trên Web. 1.5.2.1 Ưu điểm - Web service 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 Web service. - 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. Trang 21 Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động 1.5.2.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 Web service, 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 Web service 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. Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động 1.6.1.1 REST REST viết tắt của chữ Representational State Transfer – theo nghĩa cho phép
người dùng truy cập tài nguyên – resources (có thể là dữ liệu trước và sau xử lý hay
chức năng của ứng dụng) - của ứng dụng trên web services thông qua uri. Thực hiện cơ chế nói chuyện giữa server và client là điểm điểm – point to point. Dữ liệu được truyền trực tiếp trên HTTP và được truy cập thông qua HTTP theo
đúng định dạng MIME mà không cần thông qua dạng SOAP – giảm bớt sự phức tạp
– vì đơn giản chúng ta sẽ coi dữ liệu và chức năng như là tham số truyền hay dữ liệu
đính kèm trong HTTP. Cho phép thao tác dữ liệu dưới 4/7 phương thức được định nghĩa trong HTTP đó
là GET, POST, PUT, DELETE để qui định rõ cách thao tác dữ liệu trên server, cái
nào được truy cập, các nào được sửa đổi, cái nào được hiển thị và dấu ẩn … 1.6.1.2 Kiến trúc Trang 22 - Client-Server: Phân tách giao diện của client ra khỏi dữ liệu. Cho phép mỗi thành phần phát triển độc lập. Hỗ trợ đa nền. - Stateless: Mỗi yêu cầu của client phải đầy đủ thông tin cần thiết để server có thể hiểu được mà không cần phải lưu trữ thêm thông tin nào trước đó. - Cache: Dữ liệu phản hồi từ yêu cầu gán nhãn rõ ràng ngầm định được dùng lại hoặc không. - Uniform interface: Tất cả các tài nguyên được truy cập qua một interface thống nhất. - Layered System: Cho phép thêm các lớp (proxy server, cache server, gateway,…) - Code on Deman : Cho phép client mở rộng chức năng bằng cách tải mã nguồn theo dạng applet hoặc script. 1.6.1.3 RESTFul Web Service Là một web service đơn giản dùng HTTP và tính chất của REST. Là một tập tài nguyên giữa các thành phần được định nghĩa: - URI gốc cho web service. - MIME type hỗ trợ bởi web service. - Tập hỗ trợ hành động sử dụng HTTP method (GET,PUT,POST,DELETE). 1.6.1.4 Cơ chế hoạt động Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Trang 23 Client gửi request yêu cầu resources thông qua HTTP Web services dựa trên request để đáp ứng yêu cầu và response kết quả trả về Response được trả về theo đúng định dạng yêu cầu của client Client xử lý kết quả từ response để đáp ứng yêu cầu của mình 1.6.1.5 Một số thành phần của RESTful Web Service - Resources: có thể là chuỗi, hình ảnh, xml, tập tin … - JAX-RS: Cung cấp chức năng và API cho việc xây dựng ứng dụng với RESTful Web Services. - JAX-RS API: o Một API của JavaEE o Sử dụng tạo web service với các hàm API với annotations o Định nghĩa Java class như là một Resource class o Định nghĩa 02 loại resources: root resource và sub resource thông qua @Path. Trong đó, sub resource được truy cập thông qua root o Root resource thông thường là được khai báo ở đầu class o Sub resource được khai báo trên các method, nghĩa là các method được truy cập thông qua root theo đường dẫn trên server o Cú pháp của @Path: @Path(“resourcePath/{param1}/…/{paramN}”) o Package chứa các thành phần là javax.ws.rs o Các method của HTTP được hỗ trợ thông qua các khai báo annotations Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Annotation Mô tả @GET Dùng cho HTTP GET method @POST Dùng cho HTTP POST method @PUT Dùng cho HTTP PUT method Trang 24 @DELETE Dùng cho HTTP DELETE method Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động 1.6.2.1 Sơ lược về json JSON là cú pháp để lưu trữ và trao đổi thông tin văn bản. Cũng giống như XML. JSON là nhỏ hơn so với XML, và nhanh hơn và dễ dàng hơn để phân tích (parse) JSON sử dụng cú pháp JavaScript để mô tả đối tượng dữ liệu, nhưng JSON là
ngôn ngữ và nền tảng độc lập. Trình phân tích cú pháp(parsers) JSON và các thư viện
JSON tồn tại cho nhiều ngôn ngữ lập trình khác nhau. - JSON là viết tắt của JavaScript Object Notation. - JSON là định dạng trao đổi dữ liệu văn bản dung lượng nhẹ. - JSON là ngôn ngữ độc lập . - JSON được "tự mô tả" và dễ hiểu. 1.6.2.2 So sánh với XML - Giống nhau : o JSON là văn bản trơn (không có định dạng(màu sắc, cỡ chữ,…)) o JSON là "tự mô tả" (người dùng có thể hiểu được) o JSON là phân cấp (có cấu trúc cây) o JSON có thể được phân tích cú pháp (parse) bởi JavaScript o Dữ liệu JSON có thể được truyền đi bằng AJAX - Khác nhau : o Không có thẻ kết thúc o Ngắn hơn o Nhanh hơn để đọc và ghi o Sử dụng mảng (Array) đối tượng JavaScript. - Dữ liệu là các cặp tên/giá trị (name/values) - Dữ liệu được phân cách bằng dấu phẩy - Đối tượng nằm trong cặp ngoặc nhọn ‘{}’ - Dấu ngoặc vuông giữ mảng ‘[]’ Trang 25 - Cặp Tên/Giá trị của JSON : Một cặp Tên/Giá trị chứa tên 1 trường (trong dấu nháy đôi “”), theo sau là dấu phẩy, cuối cùng là giá trị: Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động - Các kiểu giá trị của JSON: o Kiểu số nguyên (int) hay số thực (float) o Kiểu chuỗi (String) o Kiểu Boolean (true or false) o Kiểu mảng (nằm trong dấu ngoặc vuông []) o Kiểu đối tượng (được đặt trong dấu ngoặc nhọn {}) o Kiểu null - Các đối tượng JSON : Các đối tượng được đặt trong dấu ngoặc nhọn {}. Đối tượng có thể chứa nhiều cặp Tên/Giá trị (Name/Values): "firstName" : "John" - Mảng của JSON : Mảng JSON nằm trong dấu ngoặc vuông []. - Mảng có thể chứa nhiều đối tượng: { "firstName":"John" , "lastName":"Doe" } { "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" } {
"employees": [
] Trích xuất thông tin từ JSON : Trong Android hỗ trợ 2 kỹ thuật trích xuất thông tin và thấy thông tin về từ webservice lưu theo kiểu JSON. Trang 26 } Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Thiết lập 1 kiểu key/value. Key phải là duy nhất và không được null. Value của
JSONObject, JSONArray phải là 1 trong các kiểu cơ bản sau : String, Boolean,
Integer, Long, Double, NULL. Application làm việc với file JSON. 1.6.2.3 Sơ lược về Gson GSON là 1 thư viện được viết bằng ngôn ngữ Java được sử dụng để chuyển đổi
đối tượng Java vào trong file JSON và chuyển đổi chuối JSON thành đối tượng Java.
JSON là mã nguồn mở được cung cấp tại địa chỉ : http://code.google.com/p/google-
gson. Mục đính của GSON: Cung cấp dễ dàng sử dụng các phương thức như toString() và các phương thức chuyển đổi giữa đối trượng trong Java và JSON và ngược lại. Tạo đối tượng trong GSON : Có thể sử dụng câu lệnh sau : Và dùng đối tượng gson vừa tạo ra gọi các phương thức của nó. Ví dụ đơn giản như sau : Gson gson = new Gson(); Gson gson = new Gson(); // Chuyển giá trị sang chuỗi
gson.toJson(1); ==> in ra 1
gson.toJson("abcd"); ==> in ra "abcd"
gson.toJson(new Long(10)); ==> in ra 10
int[] values = { 1 };
gson.toJson(values); ==> in ra [1]
// Chuyển chuỗi sang giá trị có kiểu tương ứng
int one = gson.fromJson("1", int.class);
Integer one = gson.fromJson("1", Integer.class);
Long one = gson.fromJson("1", Long.class);
Boolean false = gson.fromJson("false", Boolean.class); Trang 27 String str = gson.fromJson("\"abc\"", String.class);
String anotherStr = gson.fromJson("[\"abc\"]", String.class); Lấy giá trị của lớp. Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động class DemoJson {
private int value1 = 1;
private String value2 = "abc";
DemoJson () {
} }
DemoJson obj = new DemoJson ();
Gson gson = new Gson();
String json = gson.toJson(obj);
==> Chuỗi Json là {"value1":1,"value2":"abc"} JSP (viết tắt của tiếng Anh Java Server Pages) còn được biết đến với một cái tên
khác là Java Scripting Preprocessor - tạm dịch là "Bộ tiền xử lý văn lệnh Java" - là
một công nghệ Java cho phép các nhà phát triển tạo nội dung HTML, XML hay một
số định dạng khác của trang web một cách năng động, trong khi hồi âm yêu cầu của
trình khách. Công nghệ này cho phép người ta nhúng mã Java và một số hành động
xử lý đã được định trước (pre-defined actions) vào trong nội dung tĩnh của trang. Cú pháp của JSP cho thêm các thẻ XML mới, gọi là JSP actions - hành động JSP.
Những "hành động JSP" này được dùng để khởi động chức năng sẵn có, là những
chức năng đã được xây dựng trước. Cộng thêm vào đó, công nghệ còn cho phép chúng
ta tạo ra các thư viện thẻ JSP (JSP tag libraries), là những cái đóng vai trò vào việc
mở rộng các thẻ HTML hay XML tiêu chuẩn. Thư viện thẻ (Tag libraries) là phương
pháp mở rộng khả năng của một máy chủ web trong khi những mở rộng đó không
phụ thuộc vào hệ nền (về cả cấu trúc máy cũng như hệ điều hành được dùng). Trước khi hiển thị ra trình duyệt, tập tin JSP phải được biên dịch thành Servlet,
dùng bộ biên dịch JSP (JSP compiler). Bộ biên dịch JSP có thể tạo servlet thành mã
nguồn Java trước, rồi biên dịch mã nguồn ra tập tin .class dùng bộ biên dịch Java,
hoặc có thể trực tiếp tạo mã byte code cho servlet từ trang JSP. thuật Java Servlet API cho phép nhà phát triển phần mềm thêm những nội dung động
vào Web server sử dụng Java platform. Nó phát sinh nội dung thông thường
là HTML, đôi khi cũng có thể là các ngôn ngữ khác như XML. Servlets là bản sao
Java của các kỹ
trình bày nội dung Web động khác như
là PHP, CGI và ASP.NET. Servlets có thể duy trì tình trạng thông qua các giao dịch Trang 28 của máy chủ bằng việc sử dụng HTTP cookies, các giá trị session hoặc URL
rewriting. Servlet API, được chứa trong gói Java kế thừa từ Bản mẫu:Javadoc, định nghĩa
những tương tác cần thiết giữa một Web container và một servlet. A Web container là
một thành phần cơ bản và cần thiết của Web Server để tương tác với các Servlet. The
Web container chịu trách nhiệm quản lý vòng đời của các Servlet, ánh xạ đường dẫn
đến một Servlet cụ thể và đảm bảo rằng có thể truy cập vào. Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động 1.7.3.1 Khái niệm cơ bản về mô hình MVC Tên gọi Mô hình MVC xuất phát từ tên gọi của mô hình này. Tên đầy đủ của mô hình này là: Mô hình (Model – View – Controller). Trong đó: người dùng 1.7.3.2 Mô hình MVC trong ứng dụng web với JSP Servlet Trong lập trình Web với Java, với những dự án lớn hay Web site lớn người ta sử
dụng mô hình MVC để việc phân chia module, phân chia công việc, thiết kế giao
diện, chỉnh sửa và bảo trì nâng cấp được thuận tiện hơn. Trong đó: Web Service) Trang 29 Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động - Đối tượng: Những người có nhu cầu tìm hiểu, nghiên cứu về đời sống văn hóa ẩm thực Việt Nam. - Mục đích: o Cung cấp một ứng dụng giống như sổ tay mini về nấu ăn trên điện thoại di động. Là một công cụ hữa ích cho việc tìm hiểu về nét đặc trưng của văn hóa ẩm thực từng vùng miền, tra cứu cách chế biến các món ăn. Thông qua việc sử dụng ứng dụng, người dùng sẽ nâng tầm hiểu biết của mình về ẩm thực, chế biến được nhiều món ăn ngon, bổ dưỡng phù hợp với khẩu vị của mỗi người. o Tạo một Web Service cung cấp thông tin cho ứng dụng, ứng dụng có thể cập nhật những thay đổi từ Web Service. Một Web Admin cho phép nhập, chỉnh sửa dữ liệu và tổng hợp các ý kiến phản hổi từ khách hàng về các món ăn như: chấm điểm, bình luận. Từ đó sẽ là một nguồn tham khảo bổ ích cho những người nội trợ và bất kỳ ai muốn tự tay vào bếp chế biến các món ăn yêu thích. - Nguồn cung cấp cơ sở dữ liệu: o Dữ liệu sẽ được quản lý bởi một Web admin, ứng dụng sẽ truy xuất dữ liệu thông qua một Web service. Khi lần đầu tiên khởi chạy ứng dụng, dữ liệu sẽ được cập nhật tự động, vì vậy cần phải có kết nối mạng cho lần khởi chạy đầu tiên. Từ lần thứ hai sử dụng, người sử dụng có thể tùy chọn cập nhật dữ liệu từ bên trong ứng dụng. - Triển khai: o Một Web admin cung cấp dữ liệu và giao diện cho phép nhập, chỉnh sửa dữ liệu. o Một Web service lấy dữ liệu từ Web admin và trả về định dạng phù hợp cho ứng dụng trên điện thoại di động có thể truy xuất. Trang 30 o Một ứng dụng đi động được xây dựng dựa trên nền tảng Android, cho phép lấy dữ liệu từ Web service trả về và hiển thị một cách trực quan cho người sử dụng có thể dễ dàng tìm hiểu. Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động 2.1.2.1 Giới thiệu sơ lược về ẩm thực Việt Nam Việt Nam – đất nước với hơn 4000 năm văn hiến không chỉ tự hào bởi những
chiến tích hào hùng của cha ông, dãy đất thanh bình được quá nhiều ưu đãi từ thiên
nhiên, mà còn hãnh diện bởi nền ẩm thực truyền thống Việt Nam phong phú, đa dạng
đã ghi sâu vào tâm thức của bạn bè quốc tế. Với đặc điểm địa lý là một nước nông nghiệp thuộc vùng nhiệt đới gió mùa, lãnh
thổ Việt Nam được chia thành ba vùng rõ rệt: Bắc – Trung – Nam. Chính vì thế, ẩm
thực Việt cũng chịu ảnh hưởng ít nhiều từ đặc trưng văn hóa của mỗi vùng miền, để
từ đó kết tinh thành hương vị rất riêng, mang đến ẩm thực truyền thống Việt Nam
ngày càng phong phú, đặc sắc. 2.1.2.2 Đặc điểm Việt Nam là một nước nông nghiệp thuộc về xứ nóng, vùng nhiệt đới gió mùa.
Ngoài ra lãnh thổ Việt Nam được chia ra ba miền rõ rệt là Bắc, Trung, Nam. Chính
các đặc điểm về địa lý, văn hóa, dân tộc, khí hậu đã quy định những đặc điểm riêng
của ẩm thực từng vùng - miền. Mỗi miền có một nét, khẩu vị đặc trưng. Điều đó góp
phần làm ẩm thực Việt Nam phong phú, đa dạng. Đây là một văn hóa ăn uống sử
dụng rất nhiều loại rau (luộc, xào, làm dưa, ăn sống); nhiều loại nước canh đặc biệt
là canh chua, trong khi đó số lượng các món ăn có dinh dưỡng từ động vật thường ít
hơn. Những loại thịt được dùng phổ biến nhất là thịt lợn, bò, gà, ngan, vịt, các
loại tôm, cá, cua, ốc, hến, trai, sò v.v. Những món ăn chế biến từ những loại thịt ít
thông dụng hơn như thịt chó, thịt dê, thịt rùa, thịt rắn, thịt ba ba... thường không phải
là nguồn thịt chính, nhiều khi được coi là đặc sản và chỉ được sử dụng trong một dịp
liên hoan nào đó với rượu uống kèm. Người Việt cũng có một số món ăn
chay theo đạo Phật được chế biến từ các loại thực vật, không có nguồn thực phẩm
từ động vật. Tuy nhiên, trong cộng đồng thì lại có rất ít người ăn chay trường, chỉ có
các sư sãi trong các chùa hoặc người bị bệnh nặng buộc phải ăn kiêng. Một đặc điểm ít nhiều cũng phân biệt ẩm thực Việt Nam với một số nước khác:
ẩm thực Việt Nam chú trọng ăn ngon tuy đôi khi không đặt mục tiêu hàng đầu là ăn
bổ. Bởi vậy trong hệ thống ẩm thực người Việt ít có những món hết sức cầu kỳ, hầm
nhừ ninh kỹ như ẩm thực Trung Hoa, cũng không thiên về bày biện có tính thẩm mỹ
cao độ như ẩm thực Nhật Bản, mà thiên về phối trộn gia vị một cách tinh tế để món
ăn được ngon, hoặc sử dụng những nguyên liệu dai, giòn thưởng thức rất thú vị dù
không thực sự bổ béo (ví dụ như các món măng, chân cánh gà, phủ tạng động vật ...). Trang 31 Trong thực tế nhiều người nhận thấy, một cách cảm tính, đặc trưng ẩm thực Việt
Nam toát lộ trong sự đối sánh với các nền văn hóa ẩm thực khác trên thế giới: món
ăn Trung Hoa ăn bổ dưỡng, món ăn Việt ăn ngon miệng, món ăn Nhật nhìn thích mắt.
Tuy nhiên, đặc điểm này ngày càng phai nhòa trong thời hội nhập. Theo ý kiến của tiến sĩ sử học Hãn Nguyên Nguyễn Nhã, cho rằng ẩm thực Việt Nam có 9 đặc trưng: - Tính hoà đồng hay đa dạng - Tính ít mỡ. - Tính đậm đà hương vị - Tính tổng hoà nhiều chất, nhiều vị. - Tính ngon và lành - Tính dùng đũa. - Tính cộng đồng hay tính tập thể - Tính hiếu khách - Tính dọn thành mâm. Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động 2.1.3.1 Yêu cầu chức năng Hệ thống được xây dựng phục vụ cho những người dùng quan tâm đến ẩm thực,
có nhu cầu tìm hiểu về ẩm thực Việt Nam. Hệ thống được xây dựng gồm 3 phần chính
là: Ứng dụng chạy trên nền điện thoại di động Android, một web server gồm web
admin và web service. Các chứng năng chính của mỗi phần gồm có: - Ứng dụng trên nền điện thoại di động android o Hiển thị văn hóa ẩm thực theo từng vùng. o Hiển thị danh sách món ăn theo khu vực. o Tìm kiếm món ăn theo nhiều tiêu chí. o Hiển thị chi tiết món ăn. o Đánh dấu món ăn, tào và chỉnh sửa danh sách món ăn yêu thích. o Tạo ghi chú cho từng món ăn. o Hẹn giờ nấu ăn. o Chia sẻ món ăn trên mạng xã hội facebook. o Gửi phản hồi về món ăn. o Gửi phản hồi về ứng dụng Trang 32 - Web service o Cung cấp các phương thức để trao đổi dữ liệu giữa web admin và ứng dụng trên điện thoại di động. - Web admin o Cung cấp giao diện để admin có thể nhập, chỉnh sửa dữ liệu trực tiếp. 2.1.3.2 Yêu cầu phi chức năng o Giao diện thân thiện, dễ sử dụng, bố trí hợp lý để có thể hiển thị tốt thông tin trên màn hình di động. o Hệ thống có thể chạy được trên các máy điện thoại android mà không đòi hỏi cấu hình cao. o Dễ sửa chửa, cập nhật, bảo trì.
o Hệ thống hoạt động ổn định, nhanh chóng.
o Không hao tổn nhiều tài nguyên hệ thống. Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Trong cuộc sống bộn bề tất bật với nhiều công việc, thật khó để bạn có thể làm
chu toàn mọi việc. Ứng dụng ra đời như là một cuốn sổ ghi nhớ về ẩm thực, một công
cụ có thể giúp bạn dễ dàng chế biến các món ăn mà không cần phải dành thời gian để
học hỏi, tìm hiểu cách nấu các món ăn. Với xu thế điện thoại thông minh ngày càng phát triển, đem lại nhiều giá trị thiết
thực trong cuộc sống. Ứng dụng được xây dựng trên nền tảng hệ điều hành di động
android, một hề điều hành đang rất phổ biến hiện nay, nên hoàn toàn có thể triển khai
trên thực tế. Công nghệ để xây dựng ứng dụng gồm 2 phần chính: - Ứng dụng trên nền điện thoại di động android. o Ngôn ngữ lập trình Java.
o Công cụ IDE eclipse, SDK.
o Quản lý cơ sở dữ liệu Sqlite Manager. - Phần Web service và Web admin o Ngôn ngữ Java, Jsp, Servlet.
o Công cụ IDE Eclipse J2EE.
o Hệ quản trị cơ sở dữ liệu MS SQL Server 2012. - Một số công cụ hỗ trợ như MS Visio dùng để phân tích và thiết kế hệ thống, photoshop dùng để thiết kế giao diện. Trang 33 Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động 2.2.1.1 Usecase a) Use case tổng quát của ứng dụng android b) Đặc tả usecase Thuộc tính Mô tả Tác nhân Người dùng Điều kiện trước Điều kiện sau Hiển thị văn hóa ẩm thực ương ứng. Mô tả Người dùng chọn vùng, xuất xứ. Hệ thống hiển thị ra văn hóa ẩm thực
của vùng miền tương ứng. Kịch bản Hành động của tác nhân Hành động của hệ thống Hệ thống sẽ chuyển sang trang xem văn
hóa ẩm thực. Người dùng click vào button
[Văn hóa ẩm thực] trên giao
diện màn hình chính Trang 34 Chọn vùng, xuất xứ Hiển thị ra văn hóa ẩm thực tương ứng Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Thuộc tính Mô tả Tác nhân Người dùng Điều kiện trước Ứng dụng chạy lần đầu hoặc người dùng click vào button [Cập nhật] Điều kiện sau Hiển thị thông báo, cập nhật cơ sở dữ liệu vào ứng dụng Mô tả Khi ứng dụng chạy lần đầu hoặc người dùng click vào button [Cập
nhật]. Ứng dụng sẽ kiểm tra kết nối mạng. Nếu có kết nối mạng thì tải
dữ liệu từ Server và cập nhật vào cơ sở dữ liệu. Kịch bản Hành động của tác nhân Hành động của hệ thống Chạy ứng dụng lần đầu hoặc
click vào button [Cập nhật] Kiểm tra kết nối mạng, gửi yêu cầu đến
server Nếu thành công thì hiển thị thông báo
“Cập nhật dữ liệu thành công” và cập
nhật vào cơ sở dữ liệu.
Nếu không thành công thì hiển thị thông
báo “Cập nhật dữ liệu thất bại” Thuộc tính Mô tả Tác nhân Người dùng Điều kiện trước Điều kiện sau Hiển thị danh sách món ăn. Mô tả Người dùng chọn tiêu chí tìm kiếm, điền từ khóa để tìm kiếm, click
button [search]. Hệ thống hiển thị kết quả là danh sách món ăn cần tìm Kịch bản Hành động của tác nhân Hành động của hệ thống Người dung click vào button [Tìm
kiếm] Hệ thống chuyển đến giao
diện tìm kiếm Chọn tiêu chí tìm kiếm, điền từ khóa để
tìm kiếm, click button [Tìm kiếm]. Trang 35 Thực hiện truy vấn và trả về
danh sách kết quả tìm kiếm
tương ứng với từ khóa tìm
kiếm. Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Thuộc tính Mô tả Tác nhân Người dùng Điều kiện trước Điều kiện sau Hiển thị chi tiết món ăn. Mô tả Từ danh sách món ăn, người dùng chọn món ăn bất kỳ. Hệ thống
hiển thị thông tin chi tiết của món ăn đó. Kịch bản Hành động của hệ thống Hành động của tác
nhân Chọn món ăn từ danh
sách món ăn Hiển thị thông tin chi tiết của món ăn
theo một giao diện trực quan. Thuộc tính Mô tả Tác nhân Người dùng Điều kiện trước Người dùng đang ở trang xem chi tiết một món ăn, thiết bị phải có
kết nối mạng. Điều kiện sau Mô tả Từ giao diện trang xem chi tiết món ăn, người dùng click vào tab
gửi phản hồi, sau đó click vào button [Gửi], phản hồi của người
dùng sẽ được tổng hợp trên server và được duyệt bởi admin Kịch bản Hành động của hệ thống Hành động của tác
nhân Chọn món ăn từ danh
sách món ăn Hiển thị thông tin chi tiết của món ăn
theo một giao diện trực quan. Viết phản hồi cho món
ăn, sau đó click vào
button [Gửi] Trang 36 Hệ thống sẽ kiểm tra kết nội mạng và
yêu cầu gửi đi của người dùng. Nếu
thành công hệ thống sẽ hiển thị thông
báo [Phản hồi thành công] và dữ liệu
người dùng gửi sẽ được tổng hợp lại ở
server. Nếu thất bại hệ thống sẽ hiển thị
thông báo [Phản hồi thất bại]. Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Thuộc tính Mô tả Tác nhân Người dùng Điều kiện trước Đang ở màn hình chi tiết món ăn, món ăn chưa có bất kỳ ghi chú nào. Điều kiện sau Thêm ghi chú của món ăn vào cơ sở dữ liệu. Mô tả Người dùng nhập vào ghi chú của món ăn, click button [Lưu ghi chú].
Hệ thống lưu ghi chú của món ăn vào cơ sở dữ liệu Kịch bản Hành động của tác nhân Hành động của hệ thống Nhập vào ghi chú, click
button [Lưu ghi chú] Lưu ghi chú của món ăn vào cơ sở dữ
liệu và thông báo “Cập nhật ghi chú
thành công” nếu thành công. Thuộc tính Mô tả Tác nhân Người dùng Điều kiện trước Đang ở màn hình chi tiết món ăn Điều kiện sau Cập nhật ghi chú của món ăn vào cơ sở dữ liệu. Mô tả Người dùng chỉnh sửa ghi chú của món ăn, click button [Lưu]. Hệ thống
lưu ghi chú của món ăn vào cơ sở dữ liệu Kịch bản Hành động của tác nhân Hành động của hệ thống Trang 37 Chỉnh sửa ghi chú, click
button [Lưu ghi chú] Lưu ghi chú của món ăn vào cơ sở dữ
liệu và thông báo “Cập nhật ghi chú
thành công” nếu thành công Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Thuộc tính Mô tả Tác nhân Người dùng Điều kiện trước Đang ở màn hình chi tiết món ăn, người dùng cần có tài khoản facebook và kết nối mạng. Điều kiện sau Chia sẻ món ăn trên Facebook Mô tả Người dùng click vào button [Chia sẻ] hệ thống tiến hành lấy dữ liệu và
chia sẽ dữ liệu về chi tiết món ăn lên trang facebook của người dùng. Kịch bản Hành động của tác nhân Hành động của hệ thống Click vào button [Chia sẻ] Hệ thống tiến hành kiểm tra kết nối
mạng và tài khoản facebook của người
dùng sau đó sẽ đẩy thông tin về chi tiết
món ăn mà người dùng muốn chia sẻ lên
trang facebook của người dùng nếu thành
công. Nếu không sẽ hiển thị thông báo
[Chia sẻ thất bại]. Thuộc tính Mô tả Tác nhân Người dùng Điều kiện trước Đã cập nhật cơ sở dữ liệu nếu lần đầu chạy ứng dụng. Điều kiện sau Hiển thị danh sách món ăn. Mô tả Người dùng chọn vùng, xuất xứ. Hệ thống hiển thị ra danh sách món
ăn tương ứng. Kịch bản Hành động của tác nhân Hành động của hệ thống Người dùng click vào
button [Danh sách món ăn]
trên giao diện Hệ thống sẽ chuyển đến trang xem
xem danh sách món ăn cho người dùng
lựa chọn. Trang 38 Chọn vùng, xuất xứ Hiển thị ra danh sách món ăn tương
ứng với lựa chọn của người dùng. Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Thuộc tính Mô tả Tác nhân Người dùng Điều kiện trước Đang ở màn hình chi tiết món ăn Điều kiện sau Thêm món ăn vào danh sách yêu thích nếu chưa có. Mô tả Người dùng click vào button [Yêu thích]. Hệ thống kiểm tra nếu món
ăn chưa có trong danh sách yêu thích thì thêm vào Kịch bản Hành động của tác nhân Hành động của hệ thống Click button [Yêu thích] Kiểm tra nếu món ăn chưa có trong danh
sách yêu thích thì thêm vào Thuộc tính Mô tả Tác nhân Người dùng Điều kiện trước Đang ở màn hình danh sách món ăn yêu thích Điều kiện sau Xóa món ăn khỏi danh sách yêu thích Mô tả Người dùng click button [Xóa] tại dòng của món ăn yêu thích cần xóa.
Hệ thống xóa món ăn yêu thích khỏi cơ sở dữ liệu Kịch bản Hành động của tác nhân Hành động của hệ thống Click button [Xóa] tại dòng của
món ăn yêu thích Xóa món ăn yêu thích khỏi cơ sở dữ
liệu Trang 39 Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Thuộc tính Mô tả Tác nhân Người dùng Điều kiện trước Đang ở màn hình danh sách hẹn giờ Điều kiện sau Hệ thống chỉnh sửa hẹn giờ vào cơ sở dữ liệu và thời gian. Mô tả Người dùng click vào lịch hẹn bất kỳ ở danh sách hẹn giờ. Chỉnh sửa
thông tin ngày, giờ. Click button [Lưu]. Hệ thống chỉnh sửa hẹn giờ
vào cơ sở dữ liệu và thời gian hiển thị thông báo. Kịch bản Hành động của tác nhân Hành động của hệ thống Hiển thị màn hình chỉnh sửa hẹn giờ Click vào dòng bất kỳ ở danh
sách lịch hẹn. Chỉnh sửa thông tin ngày, giờ Kiểm tra thông tin chỉnh sửa nêu đúng thì tiến hành chỉnh sửa hẹn giờ vào cơ sở
dữ liệu và thời gian hiển thị thông báo.
Thông báo “Cập nhật thành công”. Nếu
không hiển thị thông báo “Cập nhật thất
bại”. Thuộc tính Mô tả Tác nhân Người dùng Điều kiện trước Đang ở màn hình danh sách nhắc nhở Điều kiện sau Hệ thống xóa hẹn giờ khỏi cơ sở dữ liệu và tháo bỏ hẹn giờ. Mô tả Người dùng click vào button [Xóa] tại dòng của hẹn giờ muốn xóa. Hệ
thống xóa hẹn giờ khỏi cơ sở dữ liệu và tháo bỏ hẹn giờ. Kịch bản Hành động của tác nhân Hành động của hệ thống Click vao button [Hẹn giờ] Chuyển sang giao diện cho phép người
dùng xem danh sách hẹn giờ Click vào button [Xóa] của
hẹn giờ cần xóa Trang 40 Xóa hẹn giờ khỏi cơ sở dữ liệu, tháo bỏ
hẹn giờ của nhắc nhở tại dòng tương
ứng. Thông báo “Xóa hẹn giờ thành
công” nếu thành công, hoặc “Xóa hẹn
giờ thất bại” nếu thất bại. Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Thuộc tính Mô tả Tác nhân Người dùng Điều kiện trước Đang ở màn hình chi tiết món ăn Điều kiện sau Thêm hẹn giờ vào cơ sở dữ liệu và hẹn giờ thông báo nấu ăn Mô tả Người dùng click vào button [Hẹn giờ]. Điền vào thông tin ngày, giờ,
nội dung thông báo. Hệ thống lưu hẹn giờ vào cơ sở dữ liệu. Đồng thời
kích hoạt một tác vụ hẹn giờ để hiển thị thông báo hẹn giờ nấu món ăn
tương ứng. Kịch bản Hành động của tác nhân Hành động của hệ thống Lưu hẹn giờ vào cơ sở dữ liệu. Click vào button [Hẹn giờ].
Điền vào thông tin ngày,
giờ, nội dung hẹn giờ. c) Gửi phản hồi cho ứng dụng Kích hoạt một tác vụ hẹn giờ để hiển thị
thông báo hẹn giờ nấu món ăn tương
ứng. Thuộc tính Mô tả Tác nhân Người dùng Điều kiện trước Người dùng đang ở trang chính của ứng dụng, thiết bị phải có kết nối mạng. Điều kiện sau Mô tả Từ giao diện trang chính của ứng dụng người dùng click vào tab gửi phản hồi,
sau đó click vào button [Gửi], phản hồi của người dùng sẽ được tổng hợp trên
server và được duyệt bởi admin Kịch bản Hành động của tác nhân Hành động của hệ thống Chọn gửi phản hồi từ màn hình
giao diện chính của ứng dụng Hiển thị giao diện để người dùng viết phản
hồi. Viết phản hồi cho món ăn, sau đó
click vào button [Gửi] Trang 41 Hệ thống sẽ kiểm tra kết nội mạng và yêu
cầu gửi đi của người dùng. Nếu thành công
hệ thống sẽ hiển thị thông báo [Phản hồi
thành công]. Nếu thất bại hệ thống sẽ hiển
thị thông báo [Phản hồi thất bại]. 2.2.1.2 Biểu đồ hoạt động a) Xem văn hóa ẩm thực. Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động b) Cập nhật dữ liệu. Trang 42 c) Tìm kiếm món ăn. Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động d) Xem chi tiết món ăn. - Gửi phản hồi cho từng món ăn. Trang 43 - Tạo ghi chú cho từng món ăn. Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động - Chỉnh sửa ghi chú cho từng món ăn. Trang 44 - Chia sẻ món ăn trên facebook. Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động - Xem danh sách món ăn. Trang 45 e) Quản lý danh sách món ăn yêu thích. - Thêm món ăn yêu thích Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động - Xóa món ăn yêu thích Trang 46 f) Hẹn giờ nấu ăn. - Chỉnh sửa hẹn giờ. Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động - Đặt giờ Trang 47 - Xóa hẹn giờ Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động g) Gửi phản hồi cho ứng dụng Trang 48 2.2.1.3 Biểu đồ tuần tự a) Xem văn hóa ẩm thực Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động b) Cập nhật dữ liệu c) Tìm kiếm món ăn Trang 49 d) Xem danh sách món ăn Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động e) Xem chi tiết món ăn - Gửi phàn hồi cho từng món ăn. - Tạo ghi chú cho từng món ăn Trang 50 - Chỉnh sửa ghi chú cho từng món ăn Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động - Chia sẻ món ăn trên facebook f) Quản lý danh sách món ăn yêu thích - Thêm món ăn yêu thích Trang 51 - Xóa món ăn yêu thích Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động g) Hẹn giờ nấu ăn - Chỉnh sửa hẹn giờ - Đặt giờ Trang 52 - Xóa hẹn giờ Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động h) Gửi phản hồi cho ứng dụng Trang 53 2.2.1.4 Biểu đồ lớp Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động 2.2.1.5 Thiết kế cơ sở dữ liệu a) Biểu đồ lớp chi tiết Trang 54 b) Quan hệ giữa các bảng cơ sở dữ liệu Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động c) Chi tiết các bảng - DinhMuc STT Tên Kiểu dữ liệu Chú thích Khóa 1 DinhMucID Int ID định mức Chính Trang 55 2 TenDinhMuc nvarchar(50) Tên định mức - LoaiMonAn Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động STT Tên Kiểu dữ liệu Chú thích Khóa LoaiMonAnID Int ID loại món ăn Chính 1 - Vung TenLoaiMonAn nvarchar(50) Tên loại món ăn 2 STT Tên Kiểu dữ liệu Chú thích Khóa VungID Int ID vùng Chính 1 TenVung nvarchar(50) Tên định mức 2 VanHoa Ntext Văn hóa ẩm thực 3 HinhAnh nvarchar(1000) Đường dẫn hình ảnh 4 - XuatXu STT Tên Kiểu dữ liệu Chú thích Khóa XuatXuID Int ID xuất xứ Chính 1 VungID Int ID vùng 2 TenXuatXu nvarchar(50) Tên xuất xứ 3 VanHoa ntext Văn hóa ẩm thực 4 - NguyenLieu HinhAnh nvarchar(1000) Đường dẫn hình 5 ảnh STT Tên Kiểu dữ liệu Chú thích Khóa NguyenLieuID int ID nguyên liệu Chính 1 Trang 56 TenNguyenLieu nvarchar(50) Tên nguyên liệu 2 - MonAn Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động STT Tên Kiểu dữ liệu Chú thích Khóa MonAnID ID Món ăn Chính int 1 TenMonAn nvarchar(100) Tên món ăn 2 int XuatXuID ID xuất xứ 3 int LoaiMonAnID ID loại món ăn 4 int DinhMucID ID định mức 5 int SoNguoiAn Số người ăn 6 int ThoiGianChuanBi Thời gian chuẩn bị 7 int ThoiGianNau Thời gian nấu 8 ntext GioiThieu Giới thiệu 9 ntext CongThuc Công thức 10 ntext GhiChu Ghi chú 11 YeuThich boolean Yêu thích 12 - MonAn_NguyenLieu HinhAnh nvarchar(200) Hình ảnh 13 STT Tên Kiểu dữ liệu Chú thích Khóa MonAnID int ID món ăn Chính 1 - HenGio NguyenLieuID int ID nguyên liệu Chính 2 STT Tên Kiểu dữ liệu Chú thích Khóa HenGioID int ID nhắc nhở Chính 1 MonAnID int ID món ăn 2 ThoiGianHenGio nvarchar(50) Thời gian nhắc nhở 3 Trang 57 NoiDungHenGio Nvarchar(Max) 4 Nội dung hẹn giờ
nấu ăn Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động 2.2.2.1 Web admin a) Sơ đồ usecase b) Đặc tả usecase - Đăng nhập Thuộc tính Mô tả Tác nhân Admin Điều kiện trước Điều kiện sau Chuyển đến trang quản lý dữ liệu Mô tả Admin nhập UserName & Password, click button [Login]. Hệ thống
kiểm tra nếu UserName & Password hợp lệ thì chuyển đến trang quản
lý dữ liệu. Nếu sai hiển thị thông báo Kịch bản Hành động của tác nhân Hành động của hệ thống Kiểm tra UserName & Password Nhập UserName &
Password, click button
[Login] Trang 58 Nếu hợp lệ thì chuyển đến trang quản lý
dữ liệu. Nếu sai hiển thị thông báo - Thêm dữ liệu Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Thuộc tính Mô tả Tác nhân Admin Điều kiện trước Đăng nhập thành công Điều kiện sau Thêm dữ liệu vào cơ sở dữ liệu Mô tả Admin nhập thông tin cho dữ liệu muốn thêm, click button [Thêm]. Hệ
thống kiểm tra nếu thông tin hợp lệ thì thêm vào cơ sở dữ liệu, hiển thị
thông báo nếu dữ liệu không hợp lệ Kịch bản Hành động của tác nhân Hành động của hệ thống Kiểm tra thông tin nhập vào Nhập thông tin cho dữ liệu
muốn thêm, click button
[Thêm] - Sửa dữ liệu Nếu thông tin hợp lệ thì thêm vào cơ sở
dữ liệu, hiển thị thông báo nếu dữ liệu
không hợp lệ Thuộc tính Mô tả Tác nhân Admin Điều kiện trước Đăng nhập thành công Điều kiện sau Lưu dữ liệu đã chỉnh sửa vào cơ sở dữ liệu Mô tả Admin chọn dữ liệu muốn chỉnh sửa. Điền thông tin, click button [Sửa].
Hệ thống kiểm tra nếu thông tin hợp lệ thì thêm vào cơ sở dữ liệu, hiển
thị thông báo nếu dữ liệu không hợp lệ Kịch bản Hành động của tác nhân Hành động của hệ thống Chọn dữ liệu muốn chỉnh sửa Hiển thị thông tin của dữ liệu Trang 59 Chỉnh sửa thông tin, click
button [Sửa] Nếu thông tin hợp lệ thì cập nhật vào cơ
sở dữ liệu, hiển thị thông báo nếu dữ liệu
không hợp lệ - Xóa dữ liệu Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Thuộc tính Mô tả Tác nhân Admin Điều kiện trước Đăng nhập thành công Điều kiện sau Xóa dữ liệu khỏi cơ sở dữ liệu Mô tả Admin chọn dữ liệu cần xóa, click button [Xóa]. Hệ thống xóa dữ liệu
khỏi cơ sở dữ liệu Kịch bản Hành động của tác nhân Hành động của hệ thống - Xem dữ liệu Xóa dữ liệu khỏi cơ sở dữ liệu Chọn dữ liệu cần xóa, click
button [Xóa] Thuộc tính Mô tả Tác nhân Admin Điều kiện trước Đăng nhập thành công Điều kiện sau Xem dữ liệu được load lên từ cơ sở dữ liệu Mô tả Admin chọn dữ liệu cần xem, click vào dữ liệu cần xem. Hệ thống sẽ
load dữ liệu người dùng muốn xem từ cơ sở dữ liệu lên và hiển thị ra
màn hình. Kịch bản Hành động của tác nhân Hành động của hệ thống c) Biểu đồ hoạt động Trang 60 Click vào dữ liệu cần xem Load thông tin người dùng muốn xem từ
cơ sở dữ liệu lên và hiển thị ra màn hình. - Đăng nhập Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động - Xem dữ liệu Trang 61 - Thêm dữ liệu Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động - Sửa dữ liệu Trang 62 - Xóa dữ liệu Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động d) Sơ đồ tuần tự - Đăng nhập - Xem dữ liệu Trang 63 - Thêm dữ liệu Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động - Xóa dữ liệu - Sửa dữ liệu Trang 64 2.2.2.2 Sơ đồ lớp Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động 2.2.2.3 Thiết kế cơ sở dữ liệu a) Sơ đồ lớp chi tiết Trang 65 b) Thiết kế các bảng cơ sở dữ liệu Cơ sở dữ liệu của Web server giống với cơ sở dữ liệu của ứng dụng android, ngoài
ra có thêm 2 bảng: bảng User và bảng RateAndBinhLuan, bảng User để chứa tài
khoản của người dùng quản trị website và bảng RateAndBinhLuan để chứa phản hồi
từ phía người dùng. - Bảng User Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động STT Tên Kiểu dữ liệu Chú thích Khóa UserID int ID User Chính 1 UserName nvarchar(50) Tên đăng nhập 2 - RateAndBinhLuan Password nvarchar(50) Mật khẩu 3 STT Tên Kiểu dữ liệu Chú thích Khóa RateID int ID món ăn Chính 1 MonAnID int ID nguyên liệu Ngoại 2 SoDiemRate int 3 Số điểm người dùng
chấm Bảng 1: Bảng RateAndBinhLuan Trang 66 BinhLuan Nvarchar(Max) 4 Lời bình luận của
người dùng Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Trang 67 Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Trang 68 Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Trang 69 Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Trang 70 Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Trang 71 Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Trang 72 Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Trang 73 Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Trang 74 Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Trang 75 Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Trang 76 Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Trang 77 Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Trang 78 Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Trang 79 Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Trang 80 Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Trang 81 Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Trang 82 Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Trang 83 Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Trang 84 Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động 3.2.1.1 Ứng dụng trên điện thoại di động Chức năng Tình trạng Mô tả Xem văn hóa ẩm thực Hoàn thành Cập nhật dữ liệu Hoàn thành Tìm kiếm món ăn Hoàn thành Xem chi tiết món ăn Hoàn thành Gửi phản hồi cho từng món ăn Hoàn thành Tạo ghi chú cho từng món ăn Hoàn thành Chỉnh sửa ghi chú cho từng món ăn Hoàn thành Chia sẻ món ăn trên facebook Hoàn thành Xem danh sách món ăn Hoàn thành Thêm món ăn yêu thích Hoàn thành Xóa món ăn yêu thích Hoàn thành Hẹn giờ nấu ăn Hoàn thành Chỉnh sửa hẹn giờ nấu ăn Hoàn thành Xóa hẹn giờ nấu ăn Hoàn thành 3.2.1.2 Hệ thống Server Gửi phản hồi về ứng dụng Hoàn thành Chức năng Mô tả Tình trạng Cơ sở dữ liệu Hoàn thành Hoàn thành Web service cung cấp phương thức cho ứng dụng
khai thác cập nhật cơ sở dữ liệu Trang Web Admin quản lý hệ thống Hoàn thành Qua quá trình làm đồ án, em nhận được nhiều sự giúp đỡ từ giáo viên hướng dẫn,
gia đình, bạn bè, không những tổng hợp lại được nhiều kiến thức quý báu mà còn học
hỏi thêm được nhiều kiến thức mới có ích cho công việc sau này Trang 85 3.2.2.1 Hệ thống Web server - Thiết kế cơ sở dữ liệu. - Xây dựng được nguồn cơ sở dữ liệu ẩm thực. - Xây dựng thành công web service cung cấp dữ liệu cho ứng dụng hoạt động. 3.2.2.2 Ứng dụng trên điện thoại di động - Tìm hiểu cấu trúc và viết ứng dụng trên nền tảng di động android. - Các chức năng kết nối server hoạt động tốt. - Các chức năng hoạt động ổn định, đáp ứng yêu cầu đề ra. - Triển khai ứng dụng trên thiệt bị thật hoạt động tốt. Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động - Giao diện còn đơn giản, chưa hỗ trợ được nhiều loại màn hình. - Ứng dụng chỉ trên một nền tảng di động. - Nguồn dữ liệu ban đầu còn hạn chế. - Chưa triển khai được web service trên thực tế. Kế thừa những kết quả đã đạt được, trong các phiên bản tiếp theo em sẽ khắc phục
các nhược điểm hiện tại và cung cấp thêm một số tính năng nhằm hoàn thiện ứng
dụng. - Cải thiện giao diện thân thiện, bắt mắt hơn. - Xây dựng kho cơ sở dữ liệu về món ăn phong phú hơn. - Ứng dụng có thể tương thích với nhiều loại màn hình thiết bị. - Cung cấp địa điểm và tích hợp thêm google map cho phép xem địa điểm nguồn gốc của món ăn cho những người dùng có nhu cầu tìm hiểu thực tế. - Từ Web service đã có, tiến hành phát triển ứng dụng trên các nền tảng khác như Window phone, Ios. - Triển khai web service trên môi trường thực tế. Trang 86 Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động [1]. Grant Allen - Beginning Android 4. 575 trang [2]. Wei Meng Lee - Beginning Android Application Development 428 trang [3]. Mark L. Murphy - The Busy Coders Guide to Android Development(2011). 698 trang Jason Morris - Android User Interface Development(2011). 304 trang [4]. [5]. Trang web: http://www.vietnamandroid.com/ [6]. Trang web: http://www.codeproject.com/ [7]. Trang web: http://amthucbonmua.vn / [8]. Trang web: http://www.tapchiamthuc.vn/ [9]. Trang web: http://monngonvietnam.vn/ [10]. Trang web: http://vi.wikipedia.org/ Trang 87 Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Tóm tăt nội dung luận văn tốt nghiệp: - Bối cảnh: Nhằm phục vụ nhu cầu muốn tìm hiểu thêm về văn hóa ẩm thực của người dùng. Tận dụng sự ngày càng phổ biến và tiện dụng của các điện thoại thông minh ngày nay. - Mục đích: Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động, một Web service để cập nhật dữ liệu cho ứng dụng và một Web admin để nhập cơ sở dữ liệu giúp cho dữ liệu ngày càng phong phú. - Nhiệm vụ: Xây dựng ứng dụng trên điện thoại di động Android. Web service bằng Java và Web admin được xây dựng bằng JSP Servlet Giải quyết vấn đề: - Tìm hiểu nhu cầu người dùng, tham khảo các trang web ẩm thực để đưa ra cơ sở dữ liệu hợp lý. - Tìm hiểu lập trình di động trên nền tảng Android. - Xây dựng Web server gồm Web service và Web admin. - Xây dựng ứng dụng trên điện thoại di động. Trang 88 Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động Các công cụ phát triển - Yêu cầu phần cứng STT Tên Mô tả Hệ điều hành máy tính Windows có cài jdk 1 - Yêu cầu phần mềm Hệ điều hành di động Android 2.3 trở lên 2 STT Tên Mô tả 1 Eclipse tích hợp Android
SDK Lập trình Android
application Eclipse J2EE 2 Lập trình Web service và
Web admin MS SQL Server 2008 Quản trị cơ sở dữ liệu 3 Microsoft Visio Phân tích thiết kế 4 Adobe Photoshop Chỉnh sửa ảnh 5 SQLite Manager 7 Quản trị cơ sở dữ liệu trên
Android1.3.3 Activity
Hình 4: Sơ đồ hoạt động activity trong android
1.3.4 Intent
Hình 5: Sơ đồ Intent
Bảng 1: Các thuộc tính của đối tượng intent
Các hàm thực thi Activity
Bảng 2: Các hàm thực thi Activity
1.3.5 Adapter trong andoid
1.3.6 Lưu trữ dữ liệu trong android
Files: Android cho phép tạo và tải các tập tin trên thiết bị di động.
1.3.7 Giao diện trong android
Hình 6: Sơ đồ giao diện trong android
Hình 7: Framelayout android
Hình 8: Relativelayout android
Hình 9; Tablelayout android
1.4 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQLITE
1.4.1 Giới thiệu
Hình 10: Quản trị SQLite
1.4.2 Đặc điểm
1.4.3 Phiên bản
1.5 Web service
1.5.1 Giới thiệu
1.5.2 Đặc điểm webservice
1.6 RESTFUL WEB SERVICE
1.6.1 Khái niệm
Hình 11: Kiến trúc REST
Hình 12: Cơ chế hoạt động của REST
Bảng 3: Các method của HTTP được hỗ trợ
1.6.2 Json và Gson
Cú pháp JSON : Cú pháp JSON là một tập hợp con của cú pháp JavaScript
Các quy luật cú pháp JSON : Cú pháp JSON là một tập hợp con của cú pháp
Bảng 4: Đối tượng Json
Bảng 5: Mảng Json
Cách 1 : Sử dụng đối tượng JSONObject.
Cách 2 : Sử dụng đối tượng GSON. Được cung cấp và sử dụng khi Android
Bảng 6: Ví dụ sử dụng Gson
1.7 JSP VÀ SERVLET
1.7.1 JSP
1.7.2 SERVLET
1.7.3 MÔ HÌNH MVC TRONG JAVA WEB JSP SERVLET
Model: Là thành phần hỗ trợ việc ánh xạ dữ liệu vật lý lên bộ nhớ, lưu trữ dữ liệu
tạm thời trên bộ nhớ, hỗ trợ cấc cách thức xử lý dữ liệu, hỗ trợ khả năng giao tiếp và
trao đổi dữ liệu giữa các đối tượng khác trong bộ nhớ và cơ sở dữ liệu.
View: Là thành phần hỗ trợ trình bày kết xuất ra màn hình, hỗ trợ thao tác vơi
Controller: Là thành phần hỗ trợ kết nối người dùng, server, đón nhập yêu cầu
người dùng, thực hiện chuyển xử lý, lựa chọn và cập nhật model và view tương ứng
để view trình bày về phía người dùng.
Model: Thành phần JavaBeans đảm nhiệm ( lớn hơn có Enterprise JavaBeans hay
View: các trang jsp
Controller : sử dụng servlet
CHƯƠNG 2.
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
2.1 PHÂN TÍCH YÊU CẦU
2.1.1 Mô tả bài toán
2.1.2 Phân tích hiện trạng ẩm thực Việt Nam
2.1.3 Phân tích yêu cầu bài toán
2.1.4 Phân tích tính khả thi
2.1.5 Công nghệ
2.2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
2.2.1 Phân tích và thiết kế ứng dụng di động Android
Hình 13: Use case của ứng dụng android
- Xem văn hóa ẩm thực
Bảng 7: Mô tả usecase xem văn hóa ẩm thực
- Cập nhật dữ liệu
Bảng 8: Mô tả usecase cập nhật dữ liệu
- Tìm kiếm món ăn
Bảng 9: Mô tả usecase tìm kiếm món ăn
- Xem chi tiết món ăn
Bảng 10: Mô tả usecase xem chi tiết món ăn
- Gửi phản hồi cho từng món ăn
Bảng 11: Mô tả usecase gửi phản hồi cho từng món ăn
- Tạo ghi chú cho từng món ăn
Bảng 12: Mô tả usecase tạo ghi chú cho món ăn
- Chỉnh sửa ghi chú cho từng món ăn
Bảng 13: Mô tả usecase chỉnh sửa ghi chú món ăn
- Chia sẻ món ăn trên facebook
Bảng 14: Mô tả usecase chia sẻ món ăn trên facebook
- Xem danh sách món ăn
Bảng 15: Mô tả usecase xem danh sách món ăn
- Quản lý danh sách món yêu thích
o Thêm món ăn yêu thích.
Bảng 16: Mô tả usecase thêm món ăn yêu thích
o Xóa món ăn yêu thích.
Bảng 17: Mô tả usecase xóa món ăn yêu thích
- Hẹn giờ nấu ăn
o Chỉnh sửa hẹn giờ
Bảng 18: Mô tả usecase chỉnh sửa hẹn giờ
o Xóa hẹn giờ
Bảng 19: Mô tả usecase xóa hẹn giờ
o Đặt giờ
Bảng 20: Mô tả usecase đặt giờ
Bảng 21: Mô tả usecase gửi phản hồi cho ứng dụng
Hình 14: Biểu đồ hoạt động xem văn hóa ẩm thực
Hình 15: Biểu đồ hoạt động cập nhật dữ liệu
Hình 16: Biểu đồ hoạt động tìm kiếm món ăn
Hình 17: Biểu đồ hoạt động gửip hản hồi cho từng món ăn
Hình 18: Biểu đồ hoạt động tạo ghi chú cho từng món ăn
Hình 19: Biểu đồ hoạt động chỉnh sửa ghi chú cho từng món ăn
Hình 20: Biểu đồ hoạt động chia sẻ món ăn trên facebook
Hình 21: Biểu đồ hoạt động xem danh sách món ăn
Hình 22: Biểu đồ hoạt động thêm món ăn yêu thích
Hình 23: Biểu đồ hoạt động xóa món ăn yêu thích
Hình 24: Biểu đồ hoạt động chỉnh sửa hẹn giờ
Hình 25: Biểu đồ hoạt động đặt giờ
Hình 26: Biểu đồ hoạt động xóa hẹn giờ
Hình 27: Biểu đồ hoạt động gửi phản hồi cho ứng dụng
Hình 28: Biểu đồ tuần tự xem văn hóa ẩm thực
Hình 29: Biểu đồ tuần tự cập nhật dữ liệu
Hình 30: Biểu đồ tuần tự tìm kiếm món ăn
Hình 31: Biểu đồ tuần tự xem danh sách món ăn
Hình 32: Biểu đồ tuần tự gửi phản hồi cho từng món ăn
Hình 33: Biểu đồ tuần tự tạo ghi chú cho từng món ăn
Hình 34: Biểu đồ tuần tự chỉnh sửa chi chú cho từng món ăn
Hình 35: Biểu đồ tuần tự chia sẻ món ăn trên facebook
Hình 36: Biểu đồ tuần tự thêm món ăn yêu thích
Hình 37: Biểu đồ tuần tự xem món ăn yêu thích
Hình 38: Biểu đồ tuần tự chỉnh sửa hẹn giờ
Hình 39: Biểu đồ tuần tự thêm hẹn giờ
Hình 40: Biểu đồ tuần tự xóa hẹn giờ
Hình 41: Biểu đồ tuần tự gửi phản hồi cho ứng dụng
Hình 42: Biểu đồ lớp
Hình 43: Biểu đồ lớp chi tiết
Hình 44: Quan hệ giữa các bảng trong cơ sở dữ liệu
Bảng 22: Bảng định mức
Bảng 23: Loại món ăn
Bảng 24: Bảng Vùng
Bảng 25: Xuất xứ
Bảng 26: Nguyên liệu
Bảng 27: Món ăn
Bảng 28: Món ăn Nguyên liệu
Bảng 29: Hẹn giờ
2.2.2 Phân tích và thiết kế Web Server
Hình 45: Sơ đồ usecase web admin
Bảng 30: Mô tả usecase đăng nhập
Bảng 31: Mô tả usecase thêm dữ liệu
Bảng 32: Mô tả usecase sửa dữ liệu
Bảng 33: Mô tả usecase xóa dữ liệu
Bảng 34: Mô tả usecase xem dữ liệu
Hình 46: Biểu đồ hoạt động đăng nhập
Hình 47: Biểu đồ hoạt động xem dữ liệu
Hình 48: Biểu đồ hoạt động thêm dữ liệu
Hình 49: Biểu đồ hoạt động sửa dữ liệu
Hình 50: Biểu đồ hoạt động xóa dữ liệu
Hình 51: Biểu đồ tuần tự đăng nhập
Hình 52: Biểu đồ tuần tự xem dữ liệu
Hình 53: Biểu đồ tuần tự thêm dữ liệu
Hình 54: Biểu đồ tuần tự xóa dữ liệu
Hình 55: Biểu đồ tuần tự sửa dữ liệu
Hình 56: Sơ đồ lớp web admin
Hình 57: Sơ đồ lớp chi tiết web admin
Bảng 35: user
Bảng 36: RateAndBinhLuan
CHƯƠNG 3.
TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ
3.1 KẾT QUẢ
3.1.1 Kết quả triển khai Web Service
Hình 58: Dữ liệu Json trả về từ Web Service
3.1.2 Kết quả triển khai Web Admin
Hình 59: Đăng nhập
Hình 60: Quản lý món ăn
Hình 61: Thêm món ăn
Hình 62: Xem, sửa món ăn
Hình 63: Xóa món ăn
Hình 64: Quản lý loại món ăn
Hình 65: Thêm mới loại món ăn
Hình 66: Xem và sửa loại món ăn
Hình 67: Xóa loại món ăn
Hình 68: Quản lý vùng
Hình 69: Thêm mới vùng
Hình 70: Xem và sửa vùng
Hình 71: Quản lý xuất xứ
Hình 72: Thêm mới xuất xứ
Hình 73: Xem và sửa xuất xứ
Hình 74: Xóa xuất xứ
Hình 75: Quản lý nguyên liệu
Hình 76: Thêm mới nguyên liệu
Hình 77: Xem và sửa nguyên liệu
Hình 78: Xóa nguyên liệu
Hình 79: Quản lý bình luận
3.1.3 Kết quả triển khai ứng dụng trên di động
Hình 80: Màn hình main
Hình 81: Màn hình văn hóa ẩm thực
Hình 82: Màn hình dialog chọn vùng
Hình 83: Màn hình dialog chọn xuất xứ
Hình 84: Màn hình danh sách món ăn
Hình 85: Màn hình chi tiết món ăn
Hình 86: Màn hình chi tiết công thức món ăn
Hình 87: Màn hình ghi chú món ăn
Hình 88: Màn hình bình luận món ăn
Hình 89: Màn hình hẹn giờ nấu ăn
Hình 90: Màn hình danh sách yêu thích
Hình 91: Màn hình danh sách hẹn giờ
Hình 92: Màn hình bình luận ứng dụng
Hình 93: Màn hình tìm kiếm món ăn
3.2 ĐÁNH GIÁ
3.2.1 Bảng đánh giá kết quả thực hiện
Bảng 37: Bảng đánh giá kết quả thục hiện trên điện thoại di động
Bảng 38: Bảng đánh giá kết quả thực hiện trên hệ thống server
3.2.2 Những điều đạt được
3.2.3 Những điều chưa đạt được
3.3 HƯỚNG PHÁT TRIỂN
TÀI LIỆU THAM KHẢO
TÓM TẮT LUẬN VĂN TỐT NGHIỆP
Tên đề tài: Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động
PHỤ LỤC

