M Ụ C L Ụ C L Ờ I C ẢM ƠN 1 PH Ầ N 1 M Ở ĐẦ U 1 1 Lý do ch ọn đề tài 1 2 M ụ c tiêu c ủa đề tài 2 3 Đối tƣợ ng và ph ạ m vi nghiên c ứ u 2 4 Phƣơng pháp n ghiên c ứ u 2 5 C ấu trúc đề tài 3 PH Ầ N 2 N Ộ I DUNG NGHIÊN C Ứ U 4 CHƢƠNG 1: CƠ SỞ LÝ THUY Ế T 4 1 1 Gi ớ i thi ệ u h ệ điề u hành android 4 1 1 1 H ệ điề u hành 4 1 1 2 H ệ điề u hành Android 4 1 2 S ự ra đờ i và l ị ch s ử phát tri ể n 6 1 2 1 S ự ra đờ i c ủ a Android 6 1 2 2 L ị ch s ử phát tri ể n c ủ a Android 6 1 3 Sơ lƣợ c v ề Android Studio 7 1 4 Tìm hi ể u chung v ề Java 8 1 5 T ổ ng quan v ề Firebase 11 1 5 1 Khái ni ệ m 11 1 5 2 L ị ch s ử phát tri ể n c ủ a Firebase 12 1 5 3 Ưu nhược điể m c ủ a Firebase 12 1 5 4 D ị ch v ụ Firebase 13 1 5 5 D ị ch v ụ Firebase Analytics 13 1 5 6 Các d ị ch v ụ phát tri ể n và ki ể m th ử ứ ng d ụ ng 14 1 5 7 Các d ị ch v ụ tăng trưởng và thu hút ngườ i dùng 15 CHƢƠNG 2: PHẦ N TÍCH VÀ THI Ế T K Ế Ứ NG D Ụ NG 18 2 1 Mô t ả bài toán 18 2 2 Phân tích h ệ th ố ng 18 2 2 1 Xác đị nh yêu c ầ u c ủ a h ệ th ố ng 18 2 2 2 Bi ểu đồ Use case 19 2 2 3 Bi ểu đồ tu ầ n t ự 24 2 2 4 Bi ểu đồ l ớ p 29 2 3 Phân tích và thi ế t k ế d ữ li ệ u 30 2 3 1 Mô hình công ngh ệ ứ ng d ụ ng 30 2 3 2 Mô hình d ữ li ệ u 30 2 3 3 Các b ả ng d ữ li ệ u 30 CHƢƠNG 3: TRIỂ N KHAI H Ệ TH Ố NG 33 3 1 Cài đặ t d ữ li ệ u 33 3 2 Các giao di ệ n chính c ủ a App 34 3 2 1 Giao di ệ n App Admin 34 3 2 2 Giao di ệ n App User 39 PH Ầ N 3: K Ế T LU Ậ N 42 1 Điể m m ạ nh: 42 2 Điể m y ế u: 42 3 Hƣớ ng phát tri ể n: 42 TÀI LI Ệ U THAM KH Ả O 43 L Ờ I C ẢM ƠN Để hoàn thành khoá lu ậ n t ố t nghi ệ p này, l ời đầ u tiên em xin chân thành c ảm ơn đế n toàn th ể th ầ y cô trong trong Khoa Toán - Tin nh ững người đã tậ n tình hướ ng d ẫ n, d ạ y d ỗ và trang b ị cho em ki ế n thúc b ổ ích trong 4 năm vừ a qua Đặ c bi ệ t xin chân thành g ử i l ờ i c ảm ơn sâu sắc đế n cô Tr ầ n Th ị Di ệ u Hi ề n , người đã tận tình hướ ng d ẫ n, tr ự c ti ế p ch ỉ b ả o và t ạ o m ọi điề u ki ệ n giúp đỡ em trong su ố t quá trình làm khoá lu ậ n t ố t nghi ệ p Sau cùng em xin g ử i l ờ i c ảm ơn chân thành tới gia đình, bạn bè đã độ ng viên, c ổ vũ và đóng góp ý kiế n trong quá trình h ọ c t ậ p, nghiên c ứu cũng như quá trình làm khoá lu ậ n t ố t nghi ệ p này Em xin chân thành c ảm ơn! 1 PH Ầ N 1 M Ở ĐẦ U 1 Lý do ch ọn đề tài Công vi ệc kinh doanh buôn bán đã xuấ t hi ệ n t ừ r ấ t lâu, trãi qua m ọ i giai đoạ n l ị ch s ử nó mang hình th ức đặc thù riêng Trướ c kia, khi các công c ụ h ổ tr ợ công vi ệc mua bán chưa phát triể n m ạnh, thì ngườ i kinh doanh mua bán ch ỉ di ễ n ra dướ i hình th ứ c mua bán tr ự c ti ế p T ừ khi khoa h ọ c công ngh ệ phát tri ển, nó đã t ạ o ra phát tri ể n các lo ạ i hình th ứ c mua bán m ới, điể n hình là mua bán tr ự c tuy ế n Hình th ứ c mua bán tr ự c tuy ế n h ổ tr ợ đắ c l ực cho ngườ i kinh doanh ti ế p xúc v ới đượ c nhi ề u khách hàng, còn khách hàng thì công vi ệc mua bán đượ c di ễ n ra nhanh chóng, thu ậ n l ợ i, ti ế t ki ệm đượ c th ời gian, … Hi ện nay, Thương mại điệ n t ử (TMĐT) đang đượ c nhi ề u qu ố c gia quan tâm, coi là m ộ t trong nh ững độ ng l ự c phát tri ể n ch ủ y ế u c ủ a n ề n kinh t ế TMĐT đem lạ i nh ữ ng l ợ i ích ti ề m tàng, giúp doanh nghi ệp thu đượ c thông tin phong phú v ề th ị trường và đố i tác, gi ả m phí ti ế p th ị và giao d ị ch, t ạ o d ự ng và c ủ ng c ố quan h ệ b ạ n hàng Vi ệ c mua hàng qua m ạ ng ch ỉ v ớ i th ủ t ục đăng ký mua sắm đơn giả n nhưng đem lạ i nhi ề u l ợ i ích: ti ế t ki ệ m và ch ủ độ ng v ề th ờ i gian, tránh kh ỏ i nh ữ ng phi ề n ph ứ c khó ch ị u V ậ y nên vi ệ c mua bán hàng qua m ạng đang rấ t đượ c m ọi ngườ i quan tâm Tr ên cơ sở các ki ế n th ức đượ c h ọc trong nhà trườ ng và quá trình tìm hi ể u các website trong th ự c t ế, em đã quyết đị nh ch ọn đề tài: “Xây dự ng ứ ng d ụ ng đặt đồ ăn qua mạ ng trên n ề n t ảng Android” - Ph ụ c v ụ t ốt hơn nhu cầ u c ủ a khách hàng và qu ả n lý c ủ a nhà hàng trong ho ạt độ ng kinh doanh - Khách hàng ch ỉ c ần các thao tác đơn giản trên điệ n tho ại di độ ng là có th ể đặt hàng đượ c ngay 2 2 M ụ c tiêu c ủa đề tài Ứ ng d ụng đặt đồ ăn qua mạ ng ch ạ y trên n ề n t ảng Android đượ c th ự c hi ệ n d ự a trên hai m ục đích chính sau: + Th ứ nh ấ t, là nghiên c ứ u các công ngh ệ l ập trình như: lậ p trình ứ ng d ụ ng v ớ i Android + Th ứ hai, là phát tri ể n ứ ng d ụ ng có tính th ự c ti ễ n cao, có kh ả năng triể n khai ứ ng d ụ ng vào th ự c t ế , giúp nh ững ngườ i có nhu c ầ u mua bán th ức ăn có th ể thao tác d ễ dàng và ti ệ n l ợ i Em hy v ọ ng d ự a trên n ề n t ả ng lý thuy ết đã đượ c th ầ y cô truy ề n th ụ l ạ i, k ế t h ợ p v ớ i s ự tìm hi ể u công ngh ệ c ủ a cá nhân, khoá lu ậ n t ố t nghi ệ p c ủ a em s ẽ đạ t đượ c m ục đích mong đợ i 3 Đối tƣợ ng và ph ạ m vi nghiên c ứ u Xây d ự ng ứ ng d ụng đặt đồ ăn qua mạ ng Trong th ời đạ i thương mại điệ n t ử đang ngày càng phát triể n, vi ệ c ứ ng d ụ ng vào ho ạt động “Ứ ng d ụ ng bán hàng tr ự c tuy ến” đã mang lạ i nhi ều ý nghĩa như: - Đỡ t ố n nhi ề u th ời gian cho người tiêu dùng cũng như nhà quả n lý trong vi ệ c tham gia vào ho ạt độ ng mua bán hàng - Giúp người tiêu dùng có đượ c giá c ả và hình ả nh m ặ t hàng m ộ t cách chính xác - Nhà qu ả n lý có th ể th ố ng kê các s ả n ph ẩ m bán ch ạ y m ộ t cách nhanh nh ấ t giúp cho ho ạt độ ng s ả n xu ấ t kinh doanh c ủ a mình tr ở nên t ốt hơn 4 Phƣơng pháp nghiên cứ u - V ề m ặ t lý thuy ế t Đề tài “Xây dự ng ứ ng d ụng đặt đồ ăn qua mạ ng trên n ề n t ảng Android” là m ộ t ứ ng d ụ ng ch ạy trên điệ n tho ạ i s ử d ụ ng h ệ điề u hành Android Ứ ng d ụ ng g ồ m: 3 Ph ầ n ứ ng d ụ ng ch ạy trên điệ n tho ại đượ c phát tri ể n trên n ề n Android SDK Ph ầ m m ề m qu ản lý cho phép ngườ i qu ả n lý có th ể xoá c ậ p nh ật món ăn, x ử lý các thông tin t ừ ứ ng d ụ ng Android g ở i v ề Dưới đây là nhữ ng ch ức năng chính mà em dự đị nh phát triên ở phiên b ả n đầ u tiên c ủ a ứ ng d ụ ng này: • Tìm hi ể u các ho ạt độ ng kinh doanh ứ ng d ụ ng trên Android • Tìm hi ể u các th ứ c xây d ự ng m ộ t ứ ng d ụ ng trên Android • Xây d ự ng thành công ứ ng d ụng đặt đồ ăn qua mạ ng trên Android • Xây d ự ng ph ầ n m ề m qu ả n lý • Tìm hi ể u cách th ứ c xây d ự ng ứ ng d ụ ng bán hàng • Tìm hi ể u b ộ Android Development Tool - V ề m ặ t l ậ p trình • Chương trình thự c hi ện đượ c các yêu c ầu đề ra c ủa đề tài • Ứ ng d ụng đặt đồ ăn đã phầ n nào xây d ựng và đáp ứ ng m ộ t s ố ch ứ c năng chính • Qu ả n lý vi ệc đặ t hàng, x ử lý gi ỏ hàng, … • X ử lý th ố ng kê theo yêu c ầu như: Đơn hàng, hoá đơn • Cho phép tìm ki ế m thông tin trong h ệ th ống, … • Giao di ệ n thân thi ệ n d ễ s ử d ụ ng - V ề m ặ t ho ạt độ ng • Chương trình chỉ th ự c hi ện đầy đủ các ch ức năng ở ph ạ m vi thành ph ố 5 C ấu trúc đề tài PH Ầ N 1 M Ở ĐẦ U PH Ầ N 2 N Ộ I DUNG NGHIÊN C Ứ U Chương 1: Cơ sở lý thuy ế t Chương 2: Phân tích và thi ế t k ế ứ ng d ụ ng Chương 3: Tri ể n khai h ệ th ố ng 4 PH Ầ N 3 K Ế T LU Ậ N TÀI LI Ệ U THAM KH Ả O PH Ầ N 2 N Ộ I DUNG NGHIÊN C Ứ U CHƢƠNG 1: CƠ SỞ LÝ THUY Ế T 1 1 Gi ớ i thi ệ u h ệ điề u hành android 1 1 1 H ệ điề u hành H ệ điề u hành là m ộ t ph ầ n m ềm dùng để điề u hành, qu ả n lý các thi ế t b ị ph ầ n c ứ ng và các tài nguyên ph ầ n m ề m H ệ điều hành đóng vai trò trung g ian trong vi ệ c giao ti ế p gi ữa ngườ i s ử d ụ ng và ph ầ n c ứ ng c ủ a máy, cung c ấ p m ộ t môi trường cho phép ngườ i s ử d ụ ng phát tri ể n và th ự c hi ệ n các ứ ng d ụ ng c ủ a h ọ m ộ t cách d ễ dàng 1 1 2 H ệ điề u hành Android Android là h ệ điều hành trên điệ n tho ại di độ ng có màn hình c ả m ứng như điệ n tho ạ i thông minh, máy tính b ả ng và trên m ộ t s ố đầ u phát HD, HD Player, TV Đượ c 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 Các n hà phát tri ể n vi ế t ừ ng d ụ ng b ằ n cho Android b ằ ng ngôn ng ữ Java Android ra m ắ t l ần đầu tiên vào ngày 5 tháng 11 năm 2007 và tuyên bố thành l ậ p Liên minh thi ế t b ị c ầ m tay m ở M ộ t hi ệ p hi ệ p h ội đượ c thành l ậ p v ớ i các công ty ph ầ n c ứ ng, ph ầ n m ề m và vi ễ n thông v ớ i m ục đích tạ o nên m ộ t chu ẩ n m ở cho điệ n tho ại thông minh trong tương lai Android là h ệ điề u hành mã ngu ồ n m ở cùng v ớ i vi ệ c phát hành mã ngu ồ n m ở theo gi ấ y phép Apache c ủ a Google Apache là là m ộ t gi ấ y phép không có nhi ề u ràng bu ộ c cùng v ớ i mã ngu ồ n m ở đã cho phép các nhà phát triể n thi ế t b ị di,các nhà m ạ ng và các l ậ p trình viên nhanh chóng ti ế p c ận điể u ch ỉ nh và phân ph ố i Android m ộ t cách t ự do M ộ t s ố lượ ng l ớ n l ậ p trình viên chuyên vi ế t các 5 ứ ng d ụ ng m ở r ộ ng ch ức năng củ a các thi ế t b ị , b ằ ng ngôn ng ữ l ậ p trình Java có s ửa đổ i Nh ờ y ế u t ố m ở và m ộ t gi ấ y phép không có nhi ề u ràng bu ộ c, Android ngày nay đã trở thành m ộ t trong nh ữ ng n ề n t ả ng d ị độ ng n ổ i ti ế ng kh ắ p th ế gi ớ i B ằ ng ch ứ ng là v ớ i b ả n ch ất “mở” của mình thì Android đã thu hút đượ c m ộ t c ộng đồ ng l ậ p trình viên, chuyên viên phát tri ể n ứ ng d ụ ng, theo thông kê tháng 10 năm 2012 đã xuấ t hi ệ n kho ả ng 700 000 ứ ng d ụ ng Android và s ố lượ ng t ả i t ừ Google Play, c ử a hàng ứ ng d ụ ng chính c ủa Android được ướ c tính vào kho ả ng 25 t ỷ lượ t V ề m ặ t thi ế t b ị thì n ề n t ả ng này liên t ục đượ c các nhà s ả n xu ấ t thi ế t b ị l ự a ch ọ n khi mà Android h ộ i t ụ quá nhi ều ưu điểm như: vậ n hành nh ẹ nhàng, có kh ả năng tinh chỉ nh t ố t và ti ế t ki ệm chi phí để ch ạ y trên các thi ế t b ị công ngh ệ cao c ủ a mình Hình 1 Kho ứ ng d ụ ng Android Vào th ời điểm quý II năm 2017 Android đã chiế m 87,7% th ị ph ầ n smartphone trên toàn th ế gi ớ i v ớ i t ổ ng c ộ ng 2 t ỷ thi ế t b ị đượ c kích ho ạ t và 1,3 tri ệu lượ t kích ho ạ t m ỗi ngày Đây có thể đượ c xem là m ộ t d ấ u ấ n m ạ nh m ẽ nh ấ t trong công cu ộ c kh ẳng đị nh v ị th ế c ủ a Android trên th ị trườ ng qu ố c t ế 6 1 2 S ự ra đờ i và l ị ch s ử phát tri ể n 1 2 1 S ự ra đờ i c ủ a Android Cha đẻ c ủ a Android: h ệ điều hành Android đượ c l ấ y tên t ừ Android, Inc công ty khai sinh ra nó Công ty này đượ c thành l ậ p t ạ i Palo Alto, California vào tháng 10 năm 200 3 b ở i Andy Rubin, Rich Miner, và Chris White M ặ c dù nh ữ ng ngườ i sáng l ậ p và nhân viên c ủa công ty đề u là nh ững ngườ i có ti ếng tăm, Android Inc v ẫ n ho ạt độ ng m ộ t cách âm th ầ m, ch ỉ ti ế t l ộ r ằ ng h ọ đang làm phầ n m ềm cho điệ n tho ại di độ ng Cu ối năm 2003, Rub in c ạ n v ố n B ạ n thân c ủ a ông Steve Perlman, đã hùn vốn 10 ngàn USD nhưng từ ch ố i tham gia vào công ty 1 2 2 L ị ch s ử phát tri ể n c ủ a Android Tr ở thành m ộ t ph ầ n c ủ a Google: ngày 17/08/2005 Google mua l ạ i Android Inc, bi ế n nó thành m ộ t ph ầ n tr ự c thu ộ c c ủ a Google Nh ữ ng nhân viên ch ủ ch ố t c ủ a t ổ ng công ty Android v ẫ n là Rubin, Miner và While v ẫ n ti ế p t ụ c ở l ạ i phát tri ể n h ệ điề u hành c ủ a h ọ Quy ết định này đưa ra để s ử d ụ ng Linux làm làm n ề n t ả ng cho h ệ điều hành Android và điều đó cũng có nghĩa là Android sẽ đượ c cung c ấ p mi ễ n phí cho các nhà s ả n xu ất điệ n tho ại di độ ng c ủ a bên th ứ ba Google và nhóm Android c ả m th ấ y công ty có th ể ki ế m ti ề n v ớ i các d ị ch v ụ khác s ử d ụ ng h ệ điề u hành, bao g ồ m c ả ứ ng d ụ ng T ại Google, nhóm do Rubin đứng đầu đã phát triể n m ộ t n ề n t ả ng thi ế t b ị di độ ng d ựa trên nhân Linux, đượ c h ọ ti ế p th ị đế n các nhà s ả n xu ấ t thi ế t b ị c ầ m và các nhà m ạ ng trên nh ữ ng ti ền đề v ề vi ệ c cung c ấ p m ộ t h ệ th ố ng m ề m d ẻ o, có kh ả năng nâng cấ p m ở r ộ ng cao M ộ t s ố ngu ồ n tin cho bi ết trước đó Google đã lên danh sách các thành ph ầ n ph ầ n c ứng và các đố i tác ph ầ n m ềm, đồ ng th ờ i ra hi ệ u v ớ i các nhà m ạ ng r ằ ng h ọ s ẵ n sàng h ợ p tác ở nhi ề u c ấp độ khác nhau Ngày càng nhi ều suy đoán rằ ng Google s ẽ tham gia th ị trường điệ n tho ại di độ ng xu ấ t hi ện trong tháng 12 năm 2006 Tin tứ c c ủ a BBC và Nh ậ t báo ph ố Wall chú thích r ằ ng Google mu ốn đưa công nghệ tìm ki ế m và các ứ ng d ụ ng c ủ a h ọ vào điệ n tho ại di độ ng và h ọ đang nỗ l ự c làm vi ệc để th ự c hi ện điều này Các phương tiệ n 7 truy ền thông in và online cũng sớ m có bài vi ế t v ề nh ững tin đồ n cho r ằ ng Google đang phát triể n m ộ t thi ế t b ị c ầm tay mang thương hiệ u c ủ a Google Càng có nhi ều suy đoán sau bài viế t v ề vi ệc Google đang định nghĩa các đặ c t ả công ngh ệ và trình di ễ n các m ẫ u th ử v ớ i các nhà s ả n xu ất điệ n tho ại di độ ng và nhà m ạ ng Android liên t ục đượ c phát tri ể n, m ỗ i b ả n c ậ p nh ậ t t ừ Google là m ỗ i l ầ n Android đượ c t ối ưu hóa hoạt độ ng t ốt hơn, nhanh và ổn định hơn, hỗ tr ợ thêm công ngh ệ m ớ i Ch ẳ ng h ạn theo đanh giá thì Android phiên bả n 2 2 ho ạt độ ng nhanh hơn bả n 2 1 t ớ i 450% Hi ệ n nay, phiên b ả n m ớ i nh ấ t c ủ a Android là phiên b ả n Android Q 1 3 Sơ lƣợ c v ề Android Studio Có nhi ề u công c ụ để phát tri ển Android nhưng đế n nay công c ụ chính th ứ c và m ạ nh m ẽ nh ất là Android Studio Đây là Môi trườ ng phát tri ể n tích h ợ p (IDE) chính th ứ c cho n ề n t ả ng A ndroid, đượ c phát tri ể n b ởi Google và đượ c s ử d ụng để t ạ o ph ầ n l ớ n các ứ ng d ụ ng có th ể s ử d ụ ng hàng ngày Android Studio l ần đầu tiên đượ c công b ố t ạ i h ộ i ngh ị Google I/O vào (năm 2013 và được phát hành cho công chúng vào năm 2014 sau nhiề u phiên b ả n beta khác nhau Trước khi đượ c phát hành, các nhà phát tri ể n Android thườ ng s ử d ụ ng các công c ụ như Eclipse IDE, một IDE Java chung cũng hỗ tr ợ nhi ề u ngôn ng ữ l ậ p trình khác Android Studio là m ộ t ph ầ m m ề m bao g ồ m các b ộ công c ụ khác nhau dùng để phát tri ể n ứ ng d ụ ng ch ạ y trên thi ế t b ị s ử d ụ ng h ệ điề u hành Android như các loại điệ n tho ại smartphone, các tablet Android Studio được đóng gói v ớ i m ộ t b ộ code editor, debugger, các công c ụ performance tool và m ộ t h ệ th ố ng build/deploy (trong đó có trình giả l ậ p simu lator để gi ả l ập môi trườ ng c ủ a thi ế t b ị điệ n tho ạ i ho ặ c tablet trên máy tính) cho phép các l ậ p trình viên có th ể nhanh chóng phát tri ể n các ứ ng d ụ ng t ừ đơn giả n t ớ i ph ứ c t ạ p 8 1 4 Tìm hi ể u chung v ề Java Java là m ộ t ngôn ng ữ l ập trình đượ c Sun Microsystems gi ớ i thi ệ u vào tháng 6 năm 1995 Từ đó, nó đã trở thành m ộ t công c ụ l ậ p trình c ủ a các l ậ p trình viên chuyên nghi ệp Java đượ c xây d ự ng trên n ề n t ả ng c ủ a C và C++ Do v ậ y nó s ử d ụ ng các cú pháp c ủa C và đặc trưng hướng đối tượ ng c ủ a C++ Vào năm 1991, mộ t nhóm kyc sư của Sun Microsystems có ý đị nh thi ế t k ế m ộ t ngôn ng ữ l ập trình để điề u khi ể n các thi ế t b ị điệ n t ử như tivi, máy giặ t, lò nướng, … Mặ c dù C và C++ có kh ả năng làm việc này nhưng trình biên dị ch l ạ i ph ụ thu ộ c vào t ừ ng lo ạ i CPU Trình biên d ịch thườ ng ph ả i t ố n nhi ề u th ời gian để xây d ự ng nên r ất đắ t Vì v ậy để m ỗ i lo ạ i CPU có m ộ t trình biên d ị ch riêng là r ấ t t ốn kém Do đó nhu c ầ u th ự c t ế đòi hỏ i m ộ t ngôn ng ữ ch ạ y nhanh, g ọ n hi ệ u qu ả và độ c l ậ p thi ế t b ị t ứ c là có th ể ch ạ y trên nhi ề u lo ạ i CPU khác nhau, dưới các môi trườ ng khác nhau “Oak” đã ra đời và vào năm 1995 được đổ i tên thành Java M ặ c dù m ụ c tiêu ban đầ u không ph ải cho Internet nhưng do đặc trưng không phụ thu ộ c thi ế t b ị nên Java đã trở thành ngôn ng ữ l ậ p trình cho Internet Java là m ộ t công ngh ệ xây d ự ng các ứ ng d ụ ng ph ầ n m ề m có v ị trí r ấ t l ớ n trong nh ững năm cuố i th ế k ỉ 20, đầ u th ế k ỉ 21 Nó đượ c coi là công ngh ệ mang tính cách m ạ ng và kh ả thi nh ấ t trong vi ệ c t ạ o ra các ứ ng d ụ ng có kh ả năng chạ y th ố ng nh ấ t trên nhi ề u n ề n t ả ng mà ch ỉ c ầ n biên d ị ch m ộ t l ầ n Ngày nay, Java là m ộ t n ề n t ả ng t ấ t y ế u c ủ a các ứ ng d ụ ng quy mô l ớ n c ủ a các doanh nghi ệ p nh ờ vào kh ả năng mở r ộng cũng như nhữ ng n ề n t ả ng vô cùng phong phú mà nó cung c ấp Java đã trải 3 bướ c phát tri ể n quan tr ọ ng: Java 1 0 g ắ n li ề n v ớ i b ả n JDF đầ u tiên, Java 2 g ắ n v ớ i JDK 1 2 và Java 5 g ắ n v ớ i J2SDK 1 5 Đố i v ới Java ngườ i ta không còn nh ắc đến thư là 1 ngôn ngữ l ậ p tình mà nh ắc đế n m ộ t công ngh ệ hay n ề n t ả ng phát tri ể n, nó bao g ồ m các b ộ ph ậ n: - Máy ả o Java: JVM 9 - B ộ công c ụ phát tri ể n: J2SDK - Các đặ t t ả chi thi ết kĩ thuậ t (specifications) - Ngô ng ữ l ậ p tình (programming language) - Các công ngh ệ đi kèm như: JSP, Servlet, EJB, JDBC, JNDI, JMX, RMI,… và Framework như: Struts, Spring, JSF, Hibermate,JavaFX,, … * Nh ững ưu điể m c ủ a Java: • Đơn gi ả n (Simple): Java đươn gi ả n vì m ặ c dù d ự a trên cơ s ở C++ nhưng Sun đã cârn th ậ n lư ợ c b ỏ các tính năng khó nh ấ t c ủ a C++ đ ể làm cho ngôn ng ữ này d ễ s ử d ụ ng hơn Là m ộ t ngôn ng ữ l ậ p trình hoàn toàn m ớ i, nó bu ộ c ph ả i có dáng v ẻ và s ự c ả m nh ậ n tương t ự như các ng ôn ng ữ ph ổ bi ế n hi ệ n hành đ ồ ng th ờ i đòi h ỏ i kho ả ng th ờ i gian hu ấ n luy ệ n l ạ i t ố i thi ể u và thân thi ệ n hơn v ớ i ngư ờ i dùng Do đơn gi ả n, ngôn ng ữ này cũng r ấ t khó – nên nh ớ r ằ ng t ừ đ ầ u nó đã đư ợ c xây d ự ng đ ể dùng cho đi ệ n t ử dân d ụ ng như đ ầ u ch ạ y b ằ ng video và h ộ p đi ề u khi ể n t ừ xa, nh ữ ng thi ế t b ị có không gian lưu tr ữ r ấ t h ạ n ch ế • Hư ớ ng đ ố i tư ợ ng (Object Oriented): Hư ớ ng đ ố i tư ợ ng trong Java tương t ự như C++ nhưng Java là m ộ t ngôn ng ữ l ậ p trình hư ớ ng đ ố i tư ợ ng hoàn toàn T ấ t c ả m ọ i th ứ đ ề c ậ p đ ế n trong Java đ ề u liên quan đ ế n các đ ố i tư ợ ng đư ợ c đ ị nh nghĩa trư ớ c, th ậ m chí hàm chính c ủ a m ộ t chương trình vi ế t b ằ ng Java (đó là hàm main) cũng ph ả i đ ặ t bên trong m ộ t l ớ p Hư ớ ng đ ố i tư ợ ng trong Java không có tính đa k ế th ừ a (multi inheritance) như trong C++ mà thay vào đ ó Java đưa ra khái ni ệ m interface đ ể h ỗ tr ợ tính đa k ế th ừ a • Hi ể u m ạ ng (Network - savvy): Java đư ợ c l ậ p ra đ ể ho ạ t đ ộ ng trên m ạ ng và có các th ủ t ụ c đ ể có th ể qu ả n lý các giao th ứ c m ạ ng như TCP/IP, FTP và HTTP Nói cách khác, Java đư ợ c xây d ự ng đ ể th ự c hi ệ n h oàn toàn thích h ợ p trên Internet Chương trình Java th ậ m chí có th ể xâm nh ậ p vào các đ ố i tư ợ ng khác thông qua Internet b ằ ng cách s ử d ụ ng URL (đ ị a ch ỉ Web) đ ể đ ị nh v ị chúng 10 • M ạ nh m ẽ (Robust): Kh ả năng m ạ nh ph ả i phù h ợ p v ớ i thi ế t k ế c ủ a ngôn ng ữ , và hư ớ ng nó vào vi ệ c kh ắ c ph ụ c nh ữ ng hư h ỏ ng b ộ nh ớ và đ ả m b ả o tính toàn v ẹ n d ữ li ệ u Ví d ụ , Java có tính năng “Automatic Garbage Collection” (t ự đ ộ ng thu gom rác) – có nghĩa là b ộ nh ớ đư ợ c gi ả i phóng m ộ t cách t ự đ ộ ng – nên l ậ p trình viên không ph ả i b ậ n tâm v ề vi ệ c q u ả n lý b ộ nh ớ và nh ờ đó ít có xu hư ớ ng làm nh ữ ng vi ệ c gây h ỏ ng b ộ nh ớ • An toàn (Secure): Kh ả năng hư ớ ng m ạ ng c ủ a Java t ự đ ộ ng đưa ra yêu c ầ u v ề an toàn Đ ặ c tính ân toàn c ủ a ngôn ng ữ l ậ p trình này b ắ t ngu ồ n t ừ vi ệ c nó có nh ữ ng ph ầ n h ạ n ch ế đư ợ c cài s ẵ n nh ằ m đ ề phòng các chương trình Java th ự c hi ệ n nh ữ ng ch ứ c năng như ghi vào ổ c ứ ng c ủ a ngư ờ i dùng hay cho phép virus t ừ m ạ ng ho ặ c t ừ môi trư ờ ng phân tán xâm nh ậ p vào • Đ ộ c l ậ p v ớ i c ấ u trúc (Architecture neutral): Đây là thu ộ c tính đ ặ c s ắ c nh ấ t c ủ a Java Java đư ợ c t ạ o ra v ớ i tiêu chí “Vi ế t (code) m ộ t l ầ n, th ự c thi kh ắ p nơi” (“Write Once, Run Anywhere” (WORA)) Tính năng biên d ị ch m ộ t l ầ n và ch ạ y nhi ề u n ề n có th ể đ ạ t đư ợ c nh ờ just - in - time compiler (JIT), chuy ể n mã bytecode c ủ a Java sang mã máy khi chương trình đang ch ạ y Chương trình ph ầ n m ề m vi ế t b ằ ng Java có th ể ch ạ y trên m ọ i n ề n t ả ng (platform) khác nhau thông qua m ộ t môi trư ờ ng th ự c thi v ớ i đi ề u ki ệ n có máy ả o java thích h ợ p h ỗ tr ợ n ề n t ả ng đó Môi trư ờ ng th ự c thi c ủ a Sun Microsystems hi ệ n h ỗ tr ợ Sun Solaris, Li nux, Mac OS, FreeBSD, Windows và nhi ề u h ệ th ố ng cài đ ặ t trên các thi ế t b ị di đ ộ ng • Di đ ộ ng (Portable): Đ ố i v ớ i m ộ t ph ạ m vi r ộ ng, Java là lo ạ i có th ể di chuy ể n nh ờ kh ả năng đ ộ c l ậ p v ớ i h ệ máy Đ ồ ng th ờ i, các lo ạ i d ữ li ệ u, giao di ệ n, cũng như dáng v ẻ và c ả m nh ậ n c ủ a Java đ ề u gi ố ng nhau trên m ọ i h ệ máy H ệ th ố ng các thành ph ầ n c ủ a java cũng có tính di đ ộ ng cao – nó đư ợ c vi ế t b ằ ng Java • Thông d ị ch (Interpreter): Java là m ộ t ngôn ng ữ l ậ p trình v ừ a biên d ị ch v ừ a thông d ị ch Chương trình ngu ồ n vi ế t b ằ ng ngôn ng ữ l ậ p trình Java có đuôi * java đ ầ u tiên đư ợ c biên d ị ch thành t ậ p tin có đuôi * class và sau đó s ẽ đư ợ c trình thông d ị ch thông d ị ch thành mã máy Đ ể ch ạ y Java bytecode, c ầ n cài đ ặ t 11 JRE (Java Runtime Environment) JRE cung c ấp các thư viện cơ bả n, Java Virtual Machine, plugin cho trình duy ệ t, và nh ữ ng th ứ khác • T ố c đ ộ cao (High perfprmance): Khi Sun Microsystems mô t ả Java có t ố c đ ộ cao, có l ẽ h ọ mu ố n nói v ề mã bytecode đư ợ c thông d ị ch hi ệ u qu ả như th ế nào (Java thư ờ ng ch ạ y nhanh hơn nh ữ ng ngôn ng ữ l ậ p trình th ông d ị ch khác như Python, Perl, PHP, …) V ề t ố c đ ộ các applet hay chương trình Java thì nói chung đ ề u ch ậ m hơn các chương trình đư ợ c biên d ị ch vi ế t b ằ ng C++, vì chương trihf này đã đư ợ c t ố i ưu hoá t ừ trư ớ c cho h ệ máy nh ấ t đ ị nh Java đã ph ả i tr ả giá v ề hi ệ u su ấ t cho tính không ph ụ thu ộ c h ệ th ố ng c ủ a nó • Đa lu ồ ng (Multithreaded): Đa lu ồ ng có nghĩa là ngôn ng ữ Java cho phép xây d ự ng tình ứ ng d ụ ng Trong đó, nhi ề u quá trình có th ể x ả y ra đ ồ ng th ờ i Tính đa lu ồ ng cho phép các nhà l ậ p trình có th ể biên so ạ n ph ầ n m ề m đáp ứ ng t ố t hơn, tương tác t ố t hơn, và th ự c hi ệ n theo th ờ i gian th ự c • Tính đ ộ ng (Dynamic): Java đ ộ ng vì nó đư ợ c thi ế t k ế đ ể đáp ứ ng v ớ i môi trư ờ ng tác nghi ệ p luôn trong tình tr ạ ng thay đ ổ i Khi có yêu c ầ u m ớ i xu ấ t hi ệ n trên th ị trư ờ ng, các lo ạ i đ ố i tư ợ ng m ớ i có th ể đư ợ c b ổ sung vào ngay 1 5 T ổ ng quan v ề Firebase 1 5 1 Khái ni ệ m Có nhi ề u cách hi ể u v ề Firebase khi đứng trên các quan điể m khác nhau, sau đây là 2 khái niệm cơ bả n Firebase là m ộ t n ề n t ảng di động giúp ngườ i dùng nhanh chóng phát tri ể n các ứ ng d ụ ng ch ất lượ ng cao, phát tri ể n ứ ng d ụng cho ngườ i dùng quy mô l ớ n và ki ếm đượ c nhi ề u ti ền hơn Firebase là m ộ t d ị ch v ụ h ế th ống backend đượ c Google cung c ấ p s ẵ n cho ứ ng d ụ ng Mobile, v ới Firebase ngườ i dùng có th ể rút ng ắ n th ờ i gian phát tri ể n, tri ể n khai và th ờ i gian m ở r ộ ng quy mô c ủ a ứ ng d ụng mobile mình đang phát tri ể n H ỗ tr ợ c ả 2 n ề n t ả ng Android và IOS, Firebase m ạ nh m ẽ, đa năng, bả o m ậ t 12 và là d ị ch v ụ c ầ n thi ết đâu tiên để xây d ự ng ứ ng d ụ ng v ớ i hàng tri ệu ngườ i s ử d ụ ng 1 5 2 L ị ch s ử phát tri ể n c ủ a Firebase Firebase có ti ền thân là Envolve Đây là dị ch v ụ cung c ấ p nh ững API để ngườ i dùng d ễ dàng tích h ợp tính năng chat vào trang web Điề u thú v ị là ngườ i dùng Envolve s ử d ụ ng d ị ch v ụ để truy ề n d ữ li ệ u ch ứ không đơn thuầ n cho ứ ng d ụ ng chat H ọ s ử d ụng Envolve để đồ ng b ộ d ữ li ệ u c ủ a nh ữ ng ứ ng d ụng như game online, danh b ạ , l ịch… Nhậ n bi ết được điề u này, CEO c ủa Envolve đã tách bi ệ t h ệ th ống chat và đồ ng b ộ d ữ li ệ u th ờ i gian th ự c thành 2 m ả ng riêng bi ệt Đến năm 2012, Firebase đượ c thành l ập như mộ t công ty cung c ấ p d ị ch v ụ Backend-as-a-Service theo th ờ i gian th ự c Ng ử i th ấ y mùi ti ềm năng, năm 2014, Google l ậ p t ứ c mua l ạ i Firebase v ới giá không đượ c ti ế t l ộ Và gi ờ Google phát tri ể n Firebase thành m ộ t d ị ch v ụ đồ s ộ 1 5 3 Ưu nhược điể m c ủ a Firebase 1 5 3 1 Ưu điể m Xây d ự ng nhanh chóng mà không t ố n th ờ i gian, nhân l ực để qu ả n lý h ệ th ống và cơ sở h ạ t ầ ng phía sau: Firebase cung c ấp cho ngườ i dùng ch ức năng như phân tích, cơ sở d ữ li ệ u, báo cáo ho ạt độ ng và báo cáo các s ự c ỗ l ỗi để d ễ dàng phát tri ển, định hướ ng ứ ng d ụ ng c ủa mình vào ngườ i s ử d ụ ng nh ằm đem l ạ i các tr ả i nghi ệ m t ố t nh ấ t cho h ọ Uy tín ch ất lượ ng đả m b ả o t ừ Google: Firebase đượ c google h ỗ tr ợ và cung c ấ p trên n ề n t ả ng ph ầ n c ứ ng v ớ i quy mô r ộ ng kh ắ p th ế gi ới, đượ c các t ập đoàn lớ n và các ứ ng d ụ ng v ớ i tri ệu lượ t s ử d ụ ng t ừ ngườ i dùng Qu ả n lý c ấ u hình và tr ả i nghi ệ m các ứ ng d ụ ng c ủ a Firebase t ậ p trung trong m ộ t giao di ện website đơn giả n, các ứ ng d ụ ng này ho ạt động độ c l ập nhưng liên kế t d ữ li ệ u phân tích ch ặ t ch ẽ 1 5 3 2 Nhược điể m 13 Điể m duy nh ấ t c ủ a Firebase chính là ph ần Realtime Database, mà đúng hơn chỉ là ph ần Database Cơ sở d ữ li ệ u c ủ a Realtime Databa se đượ c t ổ ch ứ c theo ki ể u cây không ph ả i là ki ể u b ả ng nên nh ững ai đang quen vớ i SQL có th ể g ặp khó khăn đôi chút bước đầ u 1 5 4 D ị ch v ụ Firebase Firebase cung c ấp cho ngườ i dùng công c ụ Firebase Analytics và 2 nhóm s ả n ph ẩ m chính t ập trung vào 2 đối tượ ng là: - Develop & test your app: phát tri ể n và ki ể m th ử các ứ ng d ụng đượ c thi ế t k ế - Grow & engage your audience: Phân tích d ữ li ệ u và t ối ưu hóa trả i nghi ệm đố i v ới ngườ i dùng Hình 2 Các d ị ch v ụ c ủ a Firebase 1 5 5 D ị ch v ụ Firebase Analytics Là m ộ t gi ả i pháp mi ễ n phí và phân tích không gi ớ i h ạ n Qu ả n lý hành vi ngườ i dùng và cá bi ệ n pháp t ừ m ộ t b ảng điề u khi ể n duy nh ấ t Phân thích thu ộ c tính và hành vi c ủa ngườ i dùng trong b ảng điề u khi ển đơn để đưa ra các quyế t đị nh sáng su ố t v ề l ộ trình s ả n ph ẩ m Nh ậ n thông tin chi ti ế t v ề th ờ i gian th ự c t ừ 14 báo cáo ho ặ c xu ấ t d ữ li ệ u thô s ự ki ệ n c ủa ngườ i dùng t ới Google BigQuery để phân tích tùy ch ỉ nh 1 5 6 Các d ị ch v ụ phát tri ể n và ki ể m th ử ứ ng d ụ ng Realtime Database : Lưu trữ và đồ ng b ộ d ữ li ệu ngườ i dùng th ờ i gian th ự c, các ứ ng d ụ ng h ỗ tr ợ tính năng này có thể lưu trữ d ữ d ữ li ệ u máy ch ủ trong tích t ắ c Các d ữ li ệu được lưu trữ trong h ệ th ống cơ sở d ữ li ệ u h ỗ tr ợ NoSQL và được đặ t trên n ề n t ả ng máy ch ủ Cloud, d ữ li ệu được ghi và đọ c v ớ i th ờ i gian th ấ p nh ấ t tình b ằ ng mili giây N ề n t ả ng này h ỗ tr ợ đồ ng b ộ hóa d ữ li ệ u c ủ a ngườ i dùng k ể c ả khi không có k ế t n ố i m ạ ng, t ạ o lên tr ả i nghi ệ m xuyên su ố t b ấ t ch ấ p tình tr ạ ng k ế t n ố i internet c ủa ngườ i s ử d ụ ng Reatime Database c ủ a Firebase h ỗ tr ợ : Android, IOS, Web, C++, Unity, và c ả Xamarin Crashlytics : H ệ th ống theo dõi và lưu trữ thông tin l ỗ i c ủ a ứ ng d ụng đang ch ạy trên máy ngườ i dùng Các thông tin l ỗi này đượ c thu th ậ p toàn di ệ n và ngay t ứ c th ờ i Cách trình bày h ợ p lý v ớ i t ừ ng chu trình ho ạt động đế n x ả y ra l ỗ i, Các báo cáo tr ực quan giúp ngườ i phát tri ể n có th ể n ắ m b ắ t và x ử lý k ị p th ờ i các l ỗ i chính c ủ a ứ ng d ụ ng Cloud Firestore : Lưu trữ và đồ ng b ộ d ữ li ệ u gi ữa ngườ i dùng và thi ế t b ị ở quy bô toàn c ầ u s ử d ụng cơ sở d ữ li ệu noSQL được lưu trữ trên h ạ t ầ ng cloud Cloud Firestore cung c ấp tính năng đồ ng b ộ hóa tr ự c tuy ế n và ngo ạ i tuy ế n cùng v ớ i các truy v ấ n d ữ li ệ u hi ệ u qu ả Tích h ợ p v ớ i các s ả n ph ẩ m Firebase khác cho phép xây d ự ng các ứ ng d ụ ng th ự c s ự ngay c ả khi k ế t n ố i internet b ị gián đoạ n Authentication : Qu ản lý ngườ i dùng m ột cách đơn giả n và an toàn Firebase Auth cung c ấ p nhi ều phương pháp xác thự c, bao g ồ m email và m ậ t kh ẩ u, các nhà cung c ấ p bên th ứ ba như Google hay Facebook, và sử d ụ ng tr ự c ti ế p h ệ th ố ng tài kho ả n hi ệ n t ạ i c ủa ngườ i dùng Xây d ự ng giao di ệ n riêng ho ặ c t ậ n d ụ ng l ợ i th ế c ủ a mã ngu ồ n m ở , giao di ện ngườ i dùng tùy bi ế n hoàn toàn Cloud Functions : M ở r ộ ng ứ ng d ụ ng b ằ ng mx ph ụ tr ợ tùy ch ỉ nh mà không c ầ n qu ả n lý và quy mô các máy ch ủ c ủ a riêng b ạ n Các ch ức năng có thể 15 đượ c kích ho ạt bơi các sự ki ện, đượ c phát sinh ra b ở i các s ả n ph ẩ m Firebase, d ị ch v ụ Google Cloud ho ặ c các bên th ứ ba có s ử d ụ ng webhooks Cloud Storage : Lưu trữ và chia s ẻ n ội dung do ngườ i dùng t ạo ra như hình ả nh, âm thanh và video v ớ i b ố nh ớ đối tượ ng m ạ nh m ẽ, đơn giả n và ti ế t ki ệ m chi phí đượ c xây d ự ng cho quy mô c ủ a Google Các Firebase SDK cho Cloud Storage thêm tính n ắ ng b ả o m ậ t c ủa Google để t ả i lên và t ả i t ệ p cho các ứ ng d ụ ng Firebase c ủa ngườ i dùng, b ấ t k ể ch ất lượ ng m ạ ng Hosting : Đơn giản hóa lưu trữ web c ủa ngườ i dùng v ớ i các công c ụ đượ c th ự c hi ệ n c ụ th ể cho các ứ ng d ụ ng web hi ện đạ i Khi t ả i lên n ộ i dung web, h ệ th ố ng s ẽ t ự động đẩy chúng đế n CDN toàn c ầ u c ủ a h ệ th ố ng và cung c ấ p cho h ọ ch ứ ng ch ỉ SSL mi ễn phí để người dùng có đượ c tr ả i nghi ệm an toàn, đáng tin c ậy, độ tr ễ th ấ p dù h ọ ở đâu Test Lab : ch ạ y th ử nghi ệ m t ự độ ng và tùy ch ỉ nh cho ứ ng d ụ ng trên các thi ế t b ị ả o và v ậ t lý do Google cung c ấ p S ử d ụ ng Firebase Test Lab trong su ố t vòng đờ i phát tri ển để khám phá l ỗ i và s ử d ụ ng không nh ất quán để có th ể cung c ấ p m ộ t tr ả i nghi ệ m tuy ệ t v ờ i trên nhi ề u thi ế t b ị Performance Monitoring : Ch ẩn đoán các vấn đề v ề hi ệ u su ấ t ứ ng d ụ ng x ả y ra trên các thi ế t b ị c ủa ngườ i dùng S ử d ụ ng d ấ u v ết để theo dõi hi ệ u su ấ t c ủ a các ph ầ n c ụ th ể trong ứ ng d ụ ng và xem ch ế độ xem t ổ ng h ợ p trong b ả ng điề u khi ể n Firebase Luôn c ậ p nh ậ t th ờ i gian kh ời độ ng c ủ a ứ ng d ụ ng và theo dõi các yêu c ầ u HTTP mà không c ầ n vi ế t b ấ t k ỳ mã nào 1 5 7 Các d ị ch v ụ tăng trưởng và thu hút ngườ i dùng Google Analytics : Phân tích thu ộ c tính và hành vi c ủa ngườ i s ử d ụ ng trong m ộ t b ảng điề u khi ển đơn để đưa ra các quyết đị nh sáng su ố t v ề l ộ trình s ả n ph ẩ m Nh ậ n thông tin chi ti ế t v ề th ờ i gian th ự c t ừ báo cáo ho ặ c xu ấ t d ữ li ệ u s ự ki ệ n thô t ới Google BigQuery để phân tích tùy ch ỉ nh 16 Cloud Messaging : G ử i tin nh ắ n v ả thông báo cho ngườ i dùng qua các n ề n t ả ng Android, IOS và web m ộ t cách mi ễn phí Ngườ i dùng có th ể g ử i tin nh ắ n đế n các thi ế t b ị , nhóm thi ế t b ị ho ặ c các ch ủ để ho ặc phân đoạn ngườ i d ụ ng c ụ th ể Nh ắn tin đám mây Firebase (FCM) thậ m chí là các ứ ng d ụ ng l ớ n nh ấ t, cung c ấp hàng trăm tỷ thư m ỗ i ngày Predictions : Firebase Predictions áp d ụ ng deep learning máy h ọ c v ớ i d ữ li ệ u phân tích c ủa người dùng để t ạo các nhóm người dùng năng độ ng d ự a trên hành vi d ự đoán Các nhóm ngườ i dùng này có th ể đượ c s ử d ụng để nh ằ m m ụ c tiêu trong các s ả n ph ẩ m n hư thông báo, cấ u hình t ừ xa và nhi ều hơn nữ a Dynamic Links : S ử d ụ ng liên k ết động để cung c ấ p tr ả i nghi ệm ngườ i dùng tùy ch ỉnh cho iOS, Android và web Ngườ i dùng có th ể s ử d ụng chúng để h ỗ tr ợ web di độ ng k ể thúc đẩ y chuy ển đổ i ứ ng d ụ ng g ốc, ngườ i dùng chia s ẻ ngườ i dùng, các chi ế n d ị ch xã h ộ và ti ế p th ị và hơn thế n ữ a Dynamic Links cung c ấp cho ngườ i dùng các thu ộc tính ngườ i dùng c ần để hi ểu rõ hơn về tăng trưởng di độ ng c ủa người dùng Đây là dị ch v ụ thay th ế c ủ a Google Remote Config : Tùy ch ỉ nh cách ứ ng d ụ ng c ủa ngườ i dùng hi ể n th ị cho m ỗi người dùng Thay đổ i giao di ệ n, tri ển khai các tính năng dầ n d ầ n, ch ạ y th ử nghi ệ m A/B, cung c ấ p n ộ i dung tùy ch ỉnh cho ngườ i dùng nh ất đị nh ho ặ c th ứ c hi ệ n các c ậ p nh ật khác giám sát tác độ ng c ủ a nh ững thay đổ i c ủ a ngườ i dùng và th ự c hi ện điề u ch ỉ nh ch ỉ trong vài phút Invites: Cho phép ngườ i dùng chia s ẻ t ấ t c ả các khía c ạ nh c ủ a ứ ng d ụ ng c ủ a nhà s ả n xu ấ t ứ ng d ụ ng, t ừ mã gi ớ i thi ệu đế n n ộ i dung yêu thích, qua email ho ặ c SMS Gi ả i pháp out-of-the-box này ho ạt độ ng c ủ a Google Analytics for Firebase, để nhà s ả n xu ấ t ứ ng d ụ ng bi ết khi ngườ i dùng m ở ho ặc cài đặ t m ộ t ứ ng d ụ ng qua l ờ i m ờ i App Indexing : Thu hút l ại ngườ i dùng b ằ ng các ứ ng d ụng đẵ cài đặ t c ủ a h ọ v ớ i tích h ợ p Google tìm ki ế m này N ếu ngườ i dùng có ứ ng d ụ ng c ủ a nhà s ả n xu ấ t ứ ng d ụ ng và h ọ tìm ki ế m n ộ i dung có liên quan, h ọ có th ể kh ở i ch ạ y nó 17 tr ự c ti ế p t ừ k ế t qu ả N ếu người dùng chưa có ứ ng d ụ ng c ủ a nhà s ả n xu ấ t, m ộ t th ẻ cài đặ t s ẽ xu ấ t hi ệ n khi h ọ tìm ki ế m các ứ ng d ụng tương tự AdMob : Ki ế m ti ề n b ằ ng cách hi ể n th ị qu ả ng cáo h ấ p d ẫ n cho khán gi ả toàn c ầ u AdMob có t ấ t c ả nh ữ ng ứng gi ngườ i dùng c ần để th ự c hi ệ n chi ến lượ c ki ế m ti ề n trên l ớ p b ậ c nh ất và để t ối đa hóa doanh thu nhỏ m ỗi ngườ i dùng t ạ o ra Nó có th ể được điề u ch ỉ nh cho ứ ng d ụ ng c ủ a chúng ta, và API c ủa nó đượ c xây d ựng để tích h ợp các đị nh d ạ ng qu ả ng cáo phong phú m ộ t cách d ễ dàng AdWords: Có đượ c thông tin và níu kéo l ại ngườ i dùng v ớ i kh ả năng củ a Google Chúng ta có th ể ch ạ y qu ả ng cáo trên Tìm Ki ế m, hi ể n th ị và video cũng như nhắ m m ụ c tiêu phân khúc ngườ i dùng c ụ th ể mà chúng ta xác đị nh trong Google Analytics for Firebase C ả i thi ệ n nh ằ m m ụ c tiêu qu ả ng cáo và t ối ưu hóa hi ệ u su ấ t chi ế n d ị ch Tóm l ạ i: hi ệ n project c ủ a mình ch ỉ tích h ợp tính năng Cloud Messaging g ử i tin nh ắn và thông báo cho ngườ i dùng qua các n ề n t ả ng Android, IOS Nên chúng ta s ẽ tìm hi ể u cách tích h ợ p Firebase vào project c ủ a mình 18 CHƢƠNG 2: PH Ầ N TÍCH VÀ THI Ế T K Ế Ứ NG D Ụ NG 2 1 Mô t ả bài toán - Đ ặ t món t ừ xa là m ộ t hình th ứ c đã đư ợ c áp d ụ ng ph ổ bi ế n t ạ i cái nhà hàng l ớ n t ạ i các qu ố c gia phát tri ể n như M ỹ , Nh ậ t B ả n, Hàn Qu ố c, Singapore, - Ưu đi ể m c ủ a vi ệ c này chính là gi ả m thi ể u t ố i đa vi ệ c ghi nh ớ đơn đ ặ t hàng trong quá trình v ậ n hành m ộ t nhà hàng, k ế t h ợ p v ớ i công ngh ệ m ớ i s ẽ mang l ạ i cho th ự c khách m ộ t tr ả i nghi ệ m hi ệ n đ ạ i, linh h o ạ t hơn, nó còn giúp cho nhà hàng v ậ n hành đư ợ c chính xác hơn Trên h ế t, trong tình hình d ị ch Covid - 19 đang hoành hành như hi ệ n nay, vi ệ c đ ặ t hàng tr ự c tuy ế n giúp m ọ i ngư ờ i tránh đư ợ c tình tr ạ ng t ụ t ậ p nơi đông ngư ờ i và lây lan d ị ch b ệ nh trong c ộ ng đ ồ ng - V ớ i hi ệ n tr ạ ng s ự phát tri ể n c ủ a các nhà hàng ngày càng nhi ề u và quy mô ngày l ớ n theo th ờ i gian và s ự phát tri ể n nhanh chóng c ủ a công ngh ệ đi ệ n tho ạ i thông minh, nên nhóm h ọ p và đưa ra ý tư ở ng v ề m ộ t ứ ng d ụ ng đ ặ t món ăn t ừ xa, ho ạ t đ ộ ng trên thi ế t b ị di đ ộ ng cá nhân đ ể có th ể giúp các nhà hàng linh ho ạ t hơn trong khâu v ậ n hành cho doanh nghi ệ p c ủ a mình 2 2 Phân tích h ệ th ố ng 2 2 1 Xác đị nh yêu c ầ u c ủ a h ệ th ố ng - Admin: • Đăng nhậ p v ớ i phân quy ề n Admin (S ố điệ n tho ạ i cá nhân, m ậ t kh ẩu) đượ c t ạ o s ẵ n trên h ệ th ố ng d ữ li ệ u Firebase • Ch ỉ nh s ử a thông tin Menu • Nh ận thông báo đơn hàng từ User (Push notification) • Xem thông tin các đơn đặ t hàng t ừ User • Thay đổ i tr ạng thái đơn đặt hàng (Đã đặ t hàng) ho ặc (Đang gử i th ức ăn) ho ặc (Đã gử i th ức ăn) - User: • Đăng ký và đăng nhậ p b ằ ng s ố điệ n tho ạ i cá nhân 19 • Nh ậ n OTP xác nh ậ n tài kho ản đăng nhậ p b ằ ng s ố điệ n tho ại đã đăng ký • Xem thông tin menu • Ch ức năng giỏ hàng cho phép ngườ i dùng ch ọn món ăn từ Menu và thêm vào gi ỏ hàng • Có ch ức năng thay đổ i ho ặc xoá đơn hàng khi khách muốn thay đổ i món ăn, thêm món ăn hoặc khi đặ t nh ầ m món (trong gi ỏ hàng) • Thêm đị a ch ỉ giao hàng • Xem l ạ i tr ạng thái đơn hàng • L ấ y l ạ i m ậ t kh ẩ u và thông tin User • Đăng xuấ t 2 2 2 Bi ểu đồ Use case 2 2 2 1 Bi ểu đồ Use case t ổ ng quát Hình 3 Sơ đồ usecase t ổ ng quát 20 2 2 2 2 Đặ c t ả các Use case Đặ c t ả Use case “Đăng Ký” Mã Usecase UC - DangKy Tên Usecase Usecase Đăng xu ấ t Tác nhân Ngư ờ i s ử d ụ ng Mô t ả Cho phép ngư ờ i dùng đăng ký vào h ệ th ố ng Đi ề u ki ệ n tiên quy ế t Ngư ờ i dùng chưa có tài kho ả n đăng nh ậ p Lu ồ ng s ự ki ệ n Tác nhân H ệ th ố ng ph ả n h ồ i 1 Truy c ậ p vào h ệ th ố ng 2 Nh ấ n nút đăng ký 3 Đưa ra giao di ệ n đăng ký 4 Nh ậ p s ố đi ệ n tho ạ i 5 Nh ấ n nút Sent OTP 6 G ở i mã OTP v ề s ố đi ệ n tho ạ i đăng ký 7 Nh ậ p thông tin 8 Nh ấ n nút đăng ký 9 H ệ th ố ng xác nh ậ n và lưu thông tin v ề databas e Lu ồ ng thay th ế Đi ề u ki ệ n thoát Khi ch ứ c năng th ự c hi ệ n thành công Đặ c t ả Use case “Đăng Nhập” Mã Usecase UC - DangNhap Tên Usecase Usecase Đăng nh ậ p Tác nhân Ngư ờ i s ử d ụ ng Mô t ả Cho phép ngư ờ i dùng đăng nh ậ p vào h ệ th ố ng Đi ề u ki ệ n tiên quy ế t Ng ư ờ i dùng đã có tài kho ả n đăng nh ậ p Lu ồ ng s ự ki ệ n Tác nhân H ệ th ố ng ph ả n h ồ i 1 Truy c ậ p vào h ệ th ố ng 2 Nh ấ n nút đăng nh ậ p 2 Đưa ra giao di ệ n đăng nh ậ p 3 Nh ậ p thông tin 21 4 Nh ấ n nút Đăng nh ậ p 5 H ệ thông xác nh ậ n thông tin, ti ế p nh ậ p thông tin và g ử i xu ố ng Database đ ể ki ể m tra N ế u h ợ p l ệ thì hi ể n th ị màn hình ch ứ c năng cho ngư ờ i s ử d ụ ng (Màn hình bán hàng) Lu ồ ng thay th ế N ế u d ữ li ệ u không h ợ p l ệ thì h ệ th ố ng đưa ra thông báo và yêu c ầ u nh ậ p l ạ i Đi ề u ki ệ n sau Đăng nh ậ p vào h ệ th ố ng Đi ề u ki ệ n t hoát - Khi ch ứ c năng th ự c hi ệ n thành công - Khi ngư ờ i dùng nh ấ n thoát Đặ c t ả Use case “Đăng Xuất” Mã Usecase UC - DangXuat Tên Usecase Usecase Đăng xu ấ t Tác nhân Ngư ờ i s ử d ụ ng Mô t ả Cho phép ngư ờ i dùng đăng xu ấ t kh ỏ i h ệ th ố ng Đi ề u ki ệ n tiên quy ế t Ngư ờ i dùn g đã có tài kho ả n và đã đăng nh ậ p vào h ệ th ố ng Lu ồ ng s ự ki ệ n Tác nhân H ệ th ố ng ph ả n h ồ i 1 Nh ấ n nút đăng xu ấ t 2 Thoát kh ỏ i giao di ệ n hi ệ n t ạ i 3 Đưa ra giao di ệ n đăng nh ậ p Lu ồ ng thay th ế Đi ề u ki ệ n thoát Khi ch ứ c năng th ự c hi ệ n thành công Đặ c t ả Use case “Mua Hàng” Mã Usecase UC - Muahang Tên Usecase Usecase Mua Hàng Tác nhân Ngư ờ i s ử d ụ ng Mô t ả Cho phép ngư ờ i dùng mua hàng h ệ th ố ng Đi ề u ki ệ n tiên quy ế t Ngư ờ i dùng đã có tài kho ả n và đã đăng nh ậ p vào h ệ th ố ng Lu ồ ng s ự ki ệ n Tác nhân H ệ th ố ng p h ả n h ồ i 1 Nh ấ n vào món mình mu ố n mua 22 2 Đưa t ớ i giao di ệ n c ủ a món ăn 3 Ch ọ n s ố lư ợ ng 4 Nh ấ n vào ô gi ỏ i hàng đ ể thêm vào gi ỏ hàng 5 Đưa ra thông báo thêm thành công 6 Thoát ra và vào m ụ c gi ỏ hàng 7 B ấ m nút đ ặ t hàng 8 Đưa ra giao di ệ n đ ặ t hàng 9 Nh ậ p đ ị a ch ỉ 10 Nh ấ n nút đ ồ ng ý 11 Đưa ra thông báo đ ặ t hàng thành công Đi ề u ki ệ n thoát - Khi ch ứ c năng th ự c hi ệ n thành công - Khi ngư ờ i dùng nh ấ n thoát Đặ c t ả Use case “Thêm món ăn” Mã Usecase UC - Them Tên Usecase Usecase Thêm món ăn Tác nhân Admin Mô t ả Cho phép Admin thêm món ăn và danh sách món ăn Đi ề u ki ệ n tiên quy ế t Đã có tài kho ả n Admin và đã đăng nh ậ p vào h ệ th ố ng Lu ồ ng s ự ki ệ n Tác nhân H ệ th ố ng ph ả n h ồ i 1 Nh ấ n nút thêm món ăn 2 Đưa ra giao di ệ n thêm m ớ i 3 Nh ậ p thông tin 4 Nh ấ n nút “Ch ọ n” 5 Đưa t ớ i thư vi ệ n đ ể ch ọ n hình ả nh cho món ăn 6 Nh ấ n nút “Có” 7 Hi ể n th ị thông báo thêm thành công Lu ồ ng thay th ế N ế u d ữ li ệ u không h ợ p l ệ h ệ th ố ng đưa ra thông báo th ấ t b ạ i Đi ề u ki ệ n sau G ử i d ữ li ệ u xu ố ng Database và update l ạ i thông tin Đặ c t ả Use case “Sửa món ăn” Mã Usecase UC - Sua 23 Tên Usecase Usecase S ử a món ăn Tác nhân Admin Mô t ả Cho phép Admin s ử a món ăn và danh sách món ăn Đi ề u ki ệ n tiên quy ế t Đã có tài kho ả n Admin và đã đăng nh ậ p vào h ệ th ố ng Lu ồ ng s ự ki ệ n T ác nhân H ệ th ố ng ph ả n h ồ i 1 Ch ọ n món ăn c ầ n ch ỉ nh s ử a 2 Nh ậ p tên 3 Nh ậ p mô t ả 4 Nh ậ p giá 5 Nh ậ p gi ả m giá 6 Nh ấ n Có 6 H ệ th ố ng xác nh ậ n thông tin 7 G ử i thông tin xu ố ng Dataabase sau đó load l ạ i danh sách món ăn 8 Hi ệ n thông báo thành côn g Lu ồ ng thay th ế N ế u d ữ li ệ u không h ợ p l ệ h ệ th ố ng đưa ra thông báo th ấ t b ạ i Đi ề u ki ệ n sau G ử i d ữ li ệ u xu ố ng Database và update l ạ i thông tin Đi ề u ki ệ n thoát Khi ch ứ c năng th ự c hi ệ n thành công Khi ngư ờ i dùng ch ọ n thoát Đặ c t ả Use case “Xoá món ăn” Mã Usecase UC - Xoa Tên Usecase Usecase Xóa món ăn Tác nhân Admin Mô t ả Cho phép Admin xóa món ăn và danh sách món ăn Đi ề u ki ệ n tiên quy ế t Đã có tài kho ả n Admin và đã đăng nh ậ p vào h ệ th ố ng Lu ồ ng s ự ki ệ n Tác nhân H ệ th ố ng ph ả n h ồ i 1 Ch ọ n đ ồ u ố ng c ầ n xóa 2 Nh ấ n nút Delete 3 H ệ th ố ng xác nh ậ n thông tin 4 G ử i thông tin xu ố ng Dataabase sau đó load l ạ i danh sách món ăn 5 Đưa ra thông báo thành công Lu ồ ng thay th ế N ế u d ữ li ệ u không h ợ p l ệ h ệ th ố ng đưa ra thông báo th ấ t 24 b ạ i Đi ề u ki ệ n sau G ử i d ữ li ệ u xu ố ng Database và update l ạ i thông tin Đi ề u ki ệ n thoát Khi ch ứ c năng th ự c hi ệ n thành công Khi ngư ờ i dùng ch ọ n thoát Đặ c t ả Use case “Xem đơn hàng” Mã Usecase UC - Xemdonhang Tên Usecase Usecase xem đơn hàng Tác nhân Admin Mô t ả Cho phép Admi n xem danh sách đơn hàng Đi ề u ki ệ n tiên quy ế t Đã có tài kho ả n Admin và đã đăng nh ậ p vào h ệ th ố ng Lu ồ ng s ự ki ệ n Tác nhân H ệ th ố ng ph ả n h ồ i 1 Nh ấ n nút order 2 Hi ể n th ị danh sách đơn hàng 3 Nh ấ n nút Update 4 Đưa ra giao di ệ n c ậ p nh ậ t đơn hàng 5 C ậ p nh ậ t tr ạ ng thái đơn hàng “Đã đ ặ t hàng”, “Đang g ử i th ứ c ăn”, “Đã g ử i th ứ c ăn” 6 Nh ấ n nút đ ồ ng ý 7 G ử i thông tin xu ố ng Dataabase sau đó load lo ạ i tr ạ ng thái đơn hàng Lu ồ ng thay th ế Đi ề u ki ệ n sau Đi ề u ki ệ n thoát Khi ch ứ c năng th ự c hi ệ n thành c ông Khi ngư ờ i dùng ch ọ n hu ỷ 2 2 3 Bi ểu đồ tu ầ n t ự 25 2 2 3 1 Bi ể u đ ồ tu ầ n t ự cho ca s ử d ụ ng Đăng Nh ậ p c ủ a User Hình 4 Bi ểu đồ tu ầ n t ự Đăng Nhậ p c ủ a User 2 2 3 2 Bi ể u đ ồ tu ầ n t ự cho ca s ử d ụ ng Đăng Ký c ủ a User Hình 5 Bi ểu đồ tu ầ n t ự Đăng Ký củ a User 26 2 2 3 3 Bi ể u đ ồ tu ầ n t ự cho ca s ử d ụ ng Gi ỏ Hàng c ủ a User a Thêm s ả n ph ẩ m Hình 6 Bi ểu đồ tu ầ n t ự Thêm s ả n ph ẩ m vào gi ỏ hàng c ủ a User b Xoá s ả n ph ẩ m Hình 7 Bi ểu đồ tu ầ n t ự Xoá s ả n ph ẩ m trong gi ỏ hàng c ủ a User 27 2 2 3 4 Bi ể u đ ồ tu ầ n t ự cho ca d ụ ng Đăng Nh ậ p c ủ a Admin Hình 8 Bi ểu đồ tu ầ n t ự Đăng Nhậ p c ủ a Admin 2 2 3 5 Bi ể u đ ồ tu ầ n t ự cho ca d ụ ng Qu ả n Lý S ả n Ph ẩ m a Thêm món ăn Hình 9 Bi ểu đồ tu ầ n t ự Thêm món ăn củ a Admin 28 b S ử a món ăn Hình 10 Bi ểu đồ tu ầ n t ự S ửa món ăn củ a Admin c Xoá món ăn Hình 11 Bi ểu đồ tu ầ n t ự Xoá món ăn củ a Admin 29 2 2 3 6 Bi ể u đ ồ tu ầ n t ự cho ca d ụ ng Qu ả n Lý Đơn Hàng Hình 12 Bi ểu đồ tu ầ n t ự Thay đổ i tình tr ạng đơn hàng củ a Admin 2 2 4 Bi ểu đồ l ớ p Hình 13 Bi ểu đồ l ớ p 30 2 3 Phân tích và thi ế t k ế d ữ li ệ u 2 3 1 Mô hình công ngh ệ ứ ng d ụ ng Server Firebase Client Android Database SQL, Firebase 2 3 2 Mô hình d ữ li ệ u Hình 14 Mô hình d ữ li ệ u 2 3 3 Các b ả ng d ữ li ệ u Admin: Tên cột Ý nghĩa Kiểu dữ liệu Ghi chú phone Số điện thoại ObjectId PR IMARY KEY name Tên Admin String FOREIGN KEY Password Mật khẩu String required IsStaff “true” = admin “false” = user Booolean 31 User: Tên cột Ý nghĩa Kiểu dữ liệu Ghi chú userPhone Số điện thoại ObjectId PRIMARY KEY name Tên Admin String FOREIGN KE Y Password Số điện thoại Number required IsStaff “true” = admin “false” = user Boolean Category: Tên cột Ý nghĩa Kiểu dữ liệu Ghi chú menuId ID danh mục món ăn ObjectId PRIMARY KEY name Tên sản phẩm String FOREIGN KEY image Hình ảnh String Defaul t: null Rating: Tên cột Ý nghĩa Kiểu dữ liệu Ghi chú userPhone Số điện thoại Number PRIMARY KEY foodID ID món ăn ObjectId FOREIGN KEY rateValue Mức độ đánh giá String Default: 0 comment Bình luận String Default: “” 32 Request: Tên cột Ý ngh ĩa Kiểu dữ liệu Ghi chú id ObjectId PRIMARY KEY userPhone Số điện thoại người dùng Number FOREIGN KEY userName Tên người dùng String FOREIGN KEY address Địa chỉ String Default: “” total Tổng giá Number foods Các món ăn String status Tình trạng đơn hàng String Default: true Foods: Tên cột Ý nghĩa Kiểu dữ liệu Ghi chú _id ObjectId PRIMARY KEY menuId ID danh mục món ăn String FOREIGN KEY name Tên món ăn String FOREIGN KEY image Hình ảnh String Default: “” description Mô tả String De fault: “” Price Giá Number Default: 0 discount Khuyến mãi Number Default: 0 33 CHƢƠNG 3: TRIỂ N KHAI H Ệ TH Ố NG 3 1 Cài đặ t d ữ li ệ u Hình 15 Cài đặ t d ữ li ệ u trên Firebase 34 3 2 Các giao di ệ n chính c ủ a App 3 2 1 Giao di ệ n App Admin 3 2 1 1 Giao di ệ n màn hình đăng nhậ p Hình 16 Màn hình đăng nhậ p 35 3 2 1 2 Giao di ện Thông tin đơn hàng Hình 17 Giao di ện Thông tin đơn hàng 36 3 2 1 3 Giao di ệ n thêm món ăn Hình 18 Giao di ện Thêm món ăn 37 3 2 1 4 Giao di ệ n S ử a m ón ăn Hình 19 Giao di ệ n S ửa món ăn 38 3 2 1 5 Màn hình nh ậ n thông báo t ừ đơn đặ t hàng c ủa ngườ i dùng Hình 20 Màn hình nh ậ n thông báo 39 3 2 2 Giao di ệ n App User 3 2 2 1 Giao di ệ n tin nh ắ n OTP g ử i v ề s ố điệ n tho ạ i Hình 21 Giao di ệ n tin nh ắ n OTP 40 3 2 2 2 Giao di ệ n Gi ỏ hàng Hình 22 Giao di ệ n Gi ỏ hàng 41 3 2 2 3 Giao di ệ n chi ti ết đơn đặ t Hình 23 Giao di ệ n Gi ỏ hàng 42 PH Ầ N 3: K Ế T LU Ậ N 1 Điể m m ạ nh: • Toàn b ộ h ệ th ố ng d ữ li ệu đượ c ch ạ y trên server Firebase, k ế t n ố i thu ậ n ti ệ n và không c ần cài đặ t nhi ều trong môi trườ ng local • Giao di ện được đơn giả n hoá nh ấ t có th ể để không gây b ố i r ối cho ngườ i dùng ngay c ả khi ít hi ể u bi ế t v ề công ngh ệ 2 Điể m y ế u: • C ầ n phát tri ển các tính năng bả o m ậ t trên ứ ng d ụ ng • Còn thi ế u sót v ề m ặt tính năng củ a c ả admin và ngườ i dùng n ế u khách hàng là doanh nghi ệ p l ớ n 3 Hƣớ ng phát tri ể n: • Mang ứ ng d ụng lên Google Play và App Store vì smartphone đang là xu th ế • Hoàn thi ệ n t ấ t c ả các ch ức năng đang có • Duy trì ngôn ng ữ thi ế t k ế t ố i gi ản để đả m b ảo tính mượ t mà và t ốc độ v ậ n hành c ủ a các lu ồ ng chính trong ứ ng d ụ ng • B ổ sung thêm m ộ t s ố ch ức năng kiể m tra d ữ li ệ u nh ập, thay đổ i m ậ t kh ẩ u truy c ậ p c ủa khách hàng cũng như nhà quả n tr ị 43 TÀI LI Ệ U THAM KH Ả O [1] Nguyễn Văn Ba, Phân tích và thiết kế hệ thống thông tin , NXB Đại Học Quốc Gia HN [2] Lê Tiến Vương, Nhập môn cơ sở dữ liệu quan hệ , NXB Thống Kê [3] Nguyễn Ngọc Bình Phương – Thái Thanh Phong, Các giải pháp lập trình C# , NXB Giao Thông Vận Tải, 2008 [4] Lê Thanh Trúc, Bài giảng phân tích hệ thống hướng đối tượng , Trường Đại học Tây Đô, 2006 [5] Nguyễn Hữu Vân Long, An toàn bảo mật thông tin mạng , NXB Trường Đại học Cần Thơ, 2010 [6] ThS Tr ầ n Th ị Di ệ u Hi ề n, Bài gi ả ng ngôn ng ữ l ậ p trình Java, Trường Đạ i h ọ c Qu ả ng Nam, 2020 [7] Ths Tr ầ n Th ị Di ệ u Hi ề n, Bài gi ả ng Phân tích và thi ế t k ế h ệ th ố ng thông tin , Trường Đạ i h ọ c Qu ả ng Nam, năm 2020 [8] Ts Nguy ễ n H ồng Phương, Phân tích và thi ế t k ế h ệ th ố ng thông tin (Phương pháp và ứ ng d ụ ng) , NXB Lao độ ng – Xã h ội, năm 2008 [9] Th ạc Bình Cườ ng, Phân tích và thi ế t k ế h ệ th ố ng thông tin , NXB Đạ i h ọ c sư phạm, năm 2006 44 PHI Ế U CH ẤM ĐIỂ M KHOÁ LU Ậ N PH Ầ N NH Ậ N XÉT C Ủ A TÁC GI Ả VÀ CÁN B Ộ HƢ Ớ NG D Ẫ N Cán b ộ hƣ ớ ng d ẫ n khoá lu ậ n (Ký và ghi rõ h ọ tên) ThS Tr ầ n Th ị Di ệ u Hi ề n Sinh viên th ự c hi ệ n đ ề tài (Ký và ghi rõ h ọ tên) Nguy ễ n Văn Anh Tú PH Ầ N CH Ấ M ĐI Ể M C Ủ A H Ộ I Đ Ồ NG B Ả O V Ệ KHOÁ LU Ậ N - Đi ể m th ố ng nh ấ t b ằ ng s ố : - Đi ể m b ằ ng ch ữ : …………………………………………………………… Cán b ộ ch ấ m 1 (Ký và ghi rõ h ọ tên) ……………………………………… Cán b ộ ch ấ m 2 (Ký và ghi rõ h ọ tên) ……………………………………… …………………… đi ể m
MỤC LỤC LỜI CẢM ƠN PHẦN MỞ ĐẦU 1 Lý chọn đề tài Mục tiêu đề tài Đối tƣợng phạm vi nghiên cứu Phƣơng pháp nghiên cứu Cấu trúc đề tài PHẦN NỘI DUNG NGHIÊN CỨU CHƢƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Giới thiệu hệ điều hành android 1.1.1 Hệ điều hành 1.1.2 Hệ điều hành Android 1.2 Sự đời lịch sử phát triển 1.2.1 Sự đời Android 1.2.2 Lịch sử phát triển Android 1.3 Sơ lƣợc Android Studio 1.4 Tìm hiểu chung Java 1.5 Tổng quan Firebase 11 1.5.1 Khái niệm 11 1.5.2 Lịch sử phát triển Firebase 12 1.5.3 Ưu nhược điểm Firebase 12 1.5.4 Dịch vụ Firebase 13 1.5.5 Dịch vụ Firebase Analytics 13 1.5.6 Các dịch vụ phát triển kiểm thử ứng dụng 14 1.5.7 Các dịch vụ tăng trưởng thu hút người dùng 15 CHƢƠNG 2: PHẦN TÍCH VÀ THIẾT KẾ ỨNG DỤNG 18 2.1.Mơ tả tốn 18 2.2.Phân tích hệ thống 18 2.2.1 Xác định yêu cầu hệ thống 18 2.2.2 Biểu đồ Use case 19 2.2.3 Biểu đồ 24 2.2.4 Biểu đồ lớp 29 2.3.Phân tích thiết kế liệu 30 2.3.1 Mơ hình công nghệ ứng dụng 30 2.3.2 Mơ hình liệu 30 2.3.3 Các bảng liệu 30 CHƢƠNG 3: TRIỂN KHAI HỆ THỐNG 33 3.1.Cài đặt liệu 33 3.2.Các giao diện App 34 3.2.1 Giao diện App Admin 34 3.2.2 Giao diện App User 39 PHẦN 3: KẾT LUẬN 42 Điểm mạnh: 42 Điểm yếu: 42 Hƣớng phát triển: 42 TÀI LIỆU THAM KHẢO 43 LỜI CẢM ƠN Để hồn thành khố luận tốt nghiệp này, lời em xin chân thành cảm ơn đến toàn thể thầy trong Khoa Tốn - Tin người tận tình hướng dẫn, dạy dỗ trang bị cho em kiến thúc bổ ích năm vừa qua Đặc biệt xin chân thành gửi lời cảm ơn sâu sắc đến cô Trần Thị Diệu Hiền, người tận tình hướng dẫn, trực tiếp bảo tạo điều kiện giúp đỡ em suốt q trình làm khố luận tốt nghiệp Sau em xin gửi lời cảm ơn chân thành tới gia đình, bạn bè động viên, cổ vũ đóng góp ý kiến q trình học tập, nghiên cứu q trình làm khố luận tốt nghiệp Em xin chân thành cảm ơn! PHẦN MỞ ĐẦU Lý chọn đề tài Công việc kinh doanh buôn bán xuất từ lâu, trãi qua giai đoạn lịch sử mang hình thức đặc thù riêng Trước kia, công cụ hổ trợ công việc mua bán chưa phát triển mạnh, người kinh doanh mua bán diễn hình thức mua bán trực tiếp Từ khoa học công nghệ phát triển, tạo phát triển loại hình thức mua bán mới, điển hình mua bán trực tuyến Hình thức mua bán trực tuyến hổ trợ đắc lực cho người kinh doanh tiếp xúc với nhiều khách hàng, cịn khách hàng cơng việc mua bán diễn nhanh chóng, thuận lợi, tiết kiệm thời gian, … Hiện nay, Thương mại điện tử (TMĐT) nhiều quốc gia quan tâm, coi động lực phát triển chủ yếu kinh tế TMĐT đem lại lợi ích tiềm tàng, giúp doanh nghiệp thu thông tin phong phú thị trường đối tác, giảm phí tiếp thị giao dịch, tạo dựng củng cố quan hệ bạn hàng Việc mua hàng qua mạng với thủ tục đăng ký mua sắm đơn giản đem lại nhiều lợi ích: tiết kiệm chủ động thời gian, tránh khỏi phiền phức khó chịu Vậy nên việc mua bán hàng qua mạng người quan tâm Trên sở kiến thức học nhà trường trình tìm hiểu website thực tế, em định chọn đề tài: “Xây dựng ứng dụng đặt đồ ăn qua mạng tảng Android” - Phục vụ tốt nhu cầu khách hàng quản lý nhà hàng hoạt động kinh doanh - Khách hàng cần thao tác đơn giản điện thoại di động đặt hàng Mục tiêu đề tài Ứng dụng đặt đồ ăn qua mạng chạy tảng Android thực dựa hai mục đích sau: + Thứ nhất, nghiên cứu cơng nghệ lập trình như: lập trình ứng dụng với Android + Thứ hai, phát triển ứng dụng có tính thực tiễn cao, có khả triển khai ứng dụng vào thực tế, giúp người có nhu cầu mua bán thức ăn thao tác dễ dàng tiện lợi Em hy vọng dựa tảng lý thuyết thầy truyền thụ lại, kết hợp với tìm hiểu cơng nghệ cá nhân, khố luận tốt nghiệp em đạt mục đích mong đợi Đối tƣợng phạm vi nghiên cứu Xây dựng ứng dụng đặt đồ ăn qua mạng Trong thời đại thương mại điện tử ngày phát triển, việc ứng dụng vào hoạt động “Ứng dụng bán hàng trực tuyến” mang lại nhiều ý nghĩa như: - Đỡ tốn nhiều thời gian cho người tiêu dùng nhà quản lý việc tham gia vào hoạt động mua bán hàng - Giúp người tiêu dùng có giá hình ảnh mặt hàng cách xác - Nhà quản lý thống kê sản phẩm bán chạy cách nhanh giúp cho hoạt động sản xuất kinh doanh trở nên tốt Phƣơng pháp nghiên cứu - Về mặt lý thuyết Đề tài “Xây dựng ứng dụng đặt đồ ăn qua mạng tảng Android” ứng dụng chạy điện thoại sử dụng hệ điều hành Android Ứng dụng gồm: Phần ứng dụng chạy điện thoại phát triển Android SDK Phầm mềm quản lý cho phép người quản lý xố cập nhật ăn, xử lý thơng tin từ ứng dụng Android gởi Dưới chức mà em dự định phát triên phiên ứng dụng này: • Tìm hiểu hoạt động kinh doanh ứng dụng Android • Tìm hiểu thức xây dựng ứng dụng Android • Xây dựng thành cơng ứng dụng đặt đồ ăn qua mạng Android • Xây dựng phần mềm quản lý • Tìm hiểu cách thức xây dựng ứng dụng bán hàng • Tìm hiểu Android Development Tool - Về mặt lập trình • Chương trình thực yêu cầu đề đề tài • Ứng dụng đặt đồ ăn phần xây dựng đáp ứng số chức • Quản lý việc đặt hàng, xử lý giỏ hàng, … • Xử lý thống kê theo yêu cầu như: Đơn hàng, hố đơn • Cho phép tìm kiếm thơng tin hệ thống, … • Giao diện thân thiện dễ sử dụng - Về mặt hoạt động • Chương trình thực đầy đủ chức phạm vi thành phố Cấu trúc đề tài PHẦN MỞ ĐẦU PHẦN NỘI DUNG NGHIÊN CỨU Chương 1: Cơ sở lý thuyết Chương 2: Phân tích thiết kế ứng dụng Chương 3: Triển khai hệ thống PHẦN KẾT LUẬN TÀI LIỆU THAM KHẢO PHẦN NỘI DUNG NGHIÊN CỨU CHƢƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Giới thiệu hệ điều hành android 1.1.1 Hệ điều hành Hệ điều hành phần mềm dùng để điều hành, quản lý thiết bị phần cứng tài nguyên phần mềm Hệ điều hành đóng vai trò trung gian việc giao tiếp người sử dụng phần cứng máy, cung cấp môi trường cho phép người sử dụng phát triển thực ứng dụng họ cách dễ dàng 1.1.2 Hệ điều hành Android Android hệ điều hành điện thoại di động có hình cảm ứng điện thoại thơng minh, máy tính bảng số đầu phát HD, HD Player, TV Được phát triển Google dựa tảng Linux Trước Android phát triển công ty liên hợp Android, sau Google mua lại vào năm 2005 Các nhà phát triển viết ừng dụng bằn cho Android ngôn ngữ Java Android mắt lần vào ngày tháng 11 năm 2007 tuyên bố thành lập Liên minh thiết bị cầm tay mở Một hiệp hiệp hội thành lập với công ty phần cứng, phần mềm viễn thông với mục đích tạo nên chuẩn mở cho điện thoại thông minh tương lai Android hệ điều hành mã nguồn mở với việc phát hành mã nguồn mở theo giấy phép Apache Google Apache là giấy phép khơng có nhiều ràng buộc với mã nguồn mở cho phép nhà phát triển thiết bị di,các nhà mạng lập trình viên nhanh chóng tiếp cận điểu chỉnh phân phối Android cách tự Một số lượng lớn lập trình viên chuyên viết ứng dụng mở rộng chức thiết bị, ngơn ngữ lập trình Java có sửa đổi Nhờ yếu tố mở giấy phép khơng có nhiều ràng buộc, Android ngày trở thành tảng dị động tiếng khắp giới Bằng chứng với chất “mở” Android thu hút cộng đồng lập trình viên, chuyên viên phát triển ứng dụng, theo thông kê tháng 10 năm 2012 xuất khoảng 700.000 ứng dụng Android số lượng tải từ Google Play, cửa hàng ứng dụng Android ước tính vào khoảng 25 tỷ lượt Về mặt thiết bị tảng liên tục nhà sản xuất thiết bị lựa chọn mà Android hội tụ nhiều ưu điểm như: vận hành nhẹ nhàng, có khả tinh chỉnh tốt tiết kiệm chi phí để chạy thiết bị cơng nghệ cao Hình Kho ứng dụng Android Vào thời điểm quý II năm 2017 Android chiếm 87,7% thị phần smartphone toàn giới với tổng cộng tỷ thiết bị kích hoạt 1,3 triệu lượt kích hoạt ngày Đây xem dấu ấn mạnh mẽ công khẳng định vị Android thị trường quốc tế 1.2 Sự đời lịch sử phát triển 1.2.1 Sự đời Android Cha đẻ Android: hệ điều hành Android lấy tên từ Android, Inc công ty khai sinh Cơng ty thành lập Palo Alto, California vào tháng 10 năm 2003 Andy Rubin, Rich Miner, Chris White Mặc dù người sáng lập nhân viên công ty người có tiếng tăm, Android Inc hoạt động cách âm thầm, tiết lộ họ làm phần mềm cho điện thoại di động Cuối năm 2003, Rubin cạn vốn Bạn thân ông Steve Perlman, hùn vốn 10 ngàn USD từ chối tham gia vào công ty 1.2.2 Lịch sử phát triển Android Trở thành phần Google: ngày 17/08/2005 Google mua lại Android Inc, biến thành phần trực thuộc Google Những nhân viên chủ chốt tổng công ty Android Rubin, Miner While tiếp tục lại phát triển hệ điều hành họ Quyết định đưa để sử dụng Linux làm làm tảng cho hệ điều hành Android điều có nghĩa Android cung cấp miễn phí cho nhà sản xuất điện thoại di động bên thứ ba Google nhóm Android cảm thấy cơng ty kiếm tiền với dịch vụ khác sử dụng hệ điều hành, bao gồm ứng dụng Tại Google, nhóm Rubin đứng đầu phát triển tảng thiết bị di động dựa nhân Linux, họ tiếp thị đến nhà sản xuất thiết bị cầm nhà mạng tiền đề việc cung cấp hệ thống mềm dẻo, có khả nâng cấp mở rộng cao Một số nguồn tin cho biết trước Google lên danh sách thành phần phần cứng đối tác phần mềm, đồng thời hiệu với nhà mạng họ sẵn sàng hợp tác nhiều cấp độ khác Ngày nhiều suy đoán Google tham gia thị trường điện thoại di động xuất tháng 12 năm 2006 Tin tức BBC Nhật báo phố Wall thích Google muốn đưa cơng nghệ tìm kiếm ứng dụng họ vào điện thoại di động họ nỗ lực làm việc để thực điều Các phương tiện truyền thông in online sớm có viết tin đồn cho Google phát triển thiết bị cầm tay mang thương hiệu Google Càng có nhiều suy đoán sau viết việc Google định nghĩa đặc tả cơng nghệ trình diễn mẫu thử với nhà sản xuất điện thoại di động nhà mạng Android liên tục phát triển, cập nhật từ Google lần Android tối ưu hóa hoạt động tốt hơn, nhanh ổn định hơn, hỗ trợ thêm công nghệ Chẳng hạn theo đanh giá Android phiên 2.2 hoạt động nhanh 2.1 tới 450% Hiện nay, phiên Android phiên Android Q 1.3 Sơ lƣợc Android Studio Có nhiều công cụ để phát triển Android đến cơng cụ thức mạnh mẽ Android Studio Đây Mơi trường phát triển tích hợp (IDE) thức cho tảng Android, phát triển Google sử dụng để tạo phần lớn ứng dụng sử dụng hàng ngày Android Studio lần công bố hội nghị Google I/O vào (năm 2013 phát hành cho công chúng vào năm 2014 sau nhiều phiên beta khác Trước phát hành, nhà phát triển Android thường sử dụng công cụ Eclipse IDE, IDE Java chung hỗ trợ nhiều ngơn ngữ lập trình khác Android Studio phầm mềm bao gồm công cụ khác dùng để phát triển ứng dụng chạy thiết bị sử dụng hệ điều hành Android loại điện thoại smartphone, tablet Android Studio đóng gói với code editor, debugger, cơng cụ performance tool hệ thống build/deploy (trong có trình giả lập simulator để giả lập mơi trường thiết bị điện thoại tablet máy tính) cho phép lập trình viên nhanh chóng phát triển ứng dụng từ đơn giản tới phức tạp