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 chi phí tiếp thị và giao dịch, tạo dựng và củng cố quan hệ bạn hàng.Lợ
Trang 1Báo Cáo Cuối Kì PHÁT TRIỂN ỨNG DỤNG DI ĐỘNG
Đề tài XÂY DỰNG ỨNG DỤNG DI ĐỘNG
GỌI MÓN ĂN TRÊN GOOD FOOD
Nhóm : Phan Phước Đạt -1824801030046 Nguyễn Như Phước -1824801030008
Trang 21 Những hiểu biết chung về application 4
1.1 Giới thiệu 4
1.2 Mục đích 5
1.3 Ý nghĩa của đề tài 5
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 6
1 Ngôn ngữ Java 6
Độc lập phần cứng và hệ điều hành 6
Cơ chế thu gom rác tự động 8
Đa luồng 8
Tính an toàn và bảo mật 8
Máy ảo Java (JVM – Java Virtual Machine) 9
2 Hệ điều hành Android 11
Các tính năng nổi bật của Android là gì? 12
Các phiên bản của hệ điều hành Android 12
3 Firebase 15
3 Android Studio 20
Các tính năng nổi bật của Android studio 20
CHƯƠNG 3 XÂY DỰNG ỨNG DỤNG 22
1 Hướng xây dựng 22
1.1 Về lý thuyết 22
1.2 Về chương trình 22
1.3 Xây Dựng Database 23
1.4 Biểu đồ tuần tự 27
2 Giao diện và chức năng màn hình ứng dụng 30
KẾT LUẬN 40
1 Kết quả đạt được 40
2 Hạn Chế 40
3 Hướng phát triển của đề tài 40
TÀI LIỆU THAM KHẢO 42
Trang 3Hiện nay dưới sự phát triển của công nghệ thông tin đã giúp cho các nhà phát triển ứng dụng di động trở nên đa dạng và phát triển Hầu hết tất cả mọi người đều sử dụng công nghệ thông tin, các doanh nghiệp lớn và nhỏ đều sử dụng công nghệ thông tin một ứng dụng cho doanh nghiệp của mình để phát triển doanh nghiệp ngày càng lớn mạnh hơn
Ngày nay chuyện đặt các món ăn thức uống thông qua ứng dụng di động hiện không còn là vấn đề gì xa lạ đối với con người Sau khi học xong môn Phát triển ứng dụng trên di động thì nhóm tụi em cũng đã thực hiện một ứng dụng đặtcác món ăn
Qua đó chúng em đã thực hiện ứng dụng một cách dễ hiểu , dễ thao tác ,đẹp mắt để cho mọi người có thể sử dụng và cũng như là một công cụ có ích hơncho chúng ta Nội dung đề tài gồm có 3 phần:
em đã nhận được nhiều sự giúp đỡ, đóng góp ý kiến và chỉ bảo nhiệt tình củathầy cô, gia đình và bạn bè
Em xin gửi lời cảm ơn chân thành đến Th.Nguyễn Hữu Vĩnh, người đãtận tình hướng dẫn, chỉ bảo em trong suốt quá trình làm bài báo cáo
Cuối cùng, em xin chân thành cảm ơn gia đình và bạn bè, đã luôn tạo điềukiện, quan tâm, giúp đỡ, động viên em trong suốt quá trình học tập và hoànthành khoá luận tốt nghiệp
Bình Dương, ngày 04 tháng 04 năm 2020
Trang 5Hiệ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 chi phí tiếp thị và giao dịch, tạo dựng và củng cố quan hệ bạn hàng.
Lợi ích lớn nhất mà TMĐT đem lại là tiết kiệm chi phí và tạo thuận lợi cho các bên giao dịch.Với thương mại điện tử bạn không phải tốn kém nhiều cho việc thuê của hàng với đông đảo nhân viên phục vụ, bạn cũng không cần đầu tư nhiều cho kho chứa thay vào đó bạn chỉ cần một khoản tiền nhỏ để xây đựng một website bán hàng qua mạng sau đó chỉ tốn 10% phí để duy trị và vận hành website mỗi tháng
Danh nghiệp có thể marketing toàn cầu với chi phí cực kì thấp, bạn có thể đưa thông tin quảng cáo của bạn đến với hàng trăm triệu người xem từ khắp nơi trên thế giới.Đây là điều mà chỉ có TMĐT làm được cho danh nghiệp
TMĐT tạo ra một phương thức kinh danh và làm việc mới phù hợp với cuộc sống công nghiệp hiện đại TMĐT tạo ra một sân chơi mới cho các danh nghiệp buộc họ phải đổi mới, sáng tạo để đưa ra chiến lược kinh doanh và dịch vụ riêngcho sản phẩm dịch vụ từ đó góp phần phát triển cho các dang nghiệp nói riêng
và nền kinh tế tổng thể nói chung Mặc dù mang lợi những lợi ích kinh tế rất lớnnhưng việc ứng dụng TMĐT cũng không tráng khỏi những thách thức khó khăn.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
Trang 6dụng mua bán GOODFOOD trên nền 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.
ăn nhanh có thể thao tác dễ dàng và tiện lợi
Nhóm 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,đồ án của em sẽ đạt được mục đích mong đợi
1.3 Ý nghĩa của đề tài
Trước hết, đề tài “Xây dựng ứng dụng mua bán GOODFOOD trên nền Android” là một ứng dụng được xây dựng như một đề tài thể hiện việc áp dụng những kiến thức quý báu đã được các thầy cô của trường Đại Học Thủ Dầu Một nhiệt tình truyền thụ lại cho chúng em Và đặc biệt là sự theo dõi và quan tâm giúp đỡ của thầy Nguyễn Hữu Vĩnh trong suốt thời gian em thực hiện đề tài này.Thứ hai là những kinh nghiệm quý báu mà em có được trong quá trình thực hiện
đề tài sẽ là hành trang tuyệt vời giúp ích rất nhiều cho công việc sau này của mình
Thứ ba, trong thời đại công nghệ thông tin phát triển như vũ bão ngày nay, công nghệ không ngừng được cải tiến, những công nghệ mới ra đời đòi hỏi người lập trình viên phải cố gắng nghiên cứu và tìm hiểu để áp dụng vào thực tiễn Điều này cũng được thể hiện qua sự cố gắng em khi quyết định thực hiện đề tài này với các công nghệ được coi là mới nhất hay và được dự báo sẽ phát triển mạnh
mẽ trong tương lai
Do vậy, em rất hy vọng sẽ tạo nên một sản phẩm hoàn chỉnh nhất có thể để đáp lại sự nhiệt tình giúp đỡ từ thầy cô và cả tâm huyết của em khi quyết định thực hiện đề tài này
Trang 7CHƯƠNG 3 CƠ SỞ LÝ THUYẾT
1 Ngôn ngữ Java
Java là ngôn ngữ lập trình bậc cao, được phát triển bởi Sun Microsystems,
do James Gosling khởi xướng và phát hành vào năm 1995 như là một thành phần cốt lõi của nền tảng Java của Sun Microsystems (Java 1.0 [J2SE]) Java chạy trên rất nhiều nền tảng khác nhau, như Windows, Mac và các phiên bản khác nhau của UNIX
Phiên bản mới nhất của Java Standard Edition là Java SE 8 Với sự tiến bộ của Java và sự phổ biến rộng rãi của nó, nhiều cấu hình đã được xây dựng để phù hợp với những loại nền tảng khác nhau Ví dụ: J2EE cho các ứng dụng doanh nghiệp, J2ME cho các ứng dụng di động
Các phiên bản J2 mới được đổi tên thành Java SE, Java EE và Java ME Java được đảm bảo là có thể Write Once, Run Anywhere (viết 1 lần, chạy ở khắp mọinơi)
Dù và Java và JavaScript nghe có vẻ có liên quan đến nhau, nhưng chúng là hai ngôn ngữ hoàn toàn khác biệt, bạn đừng để bị nhầm lẫn nhé
Đặc điểm của Java:
Tương tự C++, hướng đối tượng hoàn toàn
Trong quá trình tạo ra một ngôn ngữ mới phục vụ cho mục đích chạy được trênnhiều nền tảng, các kỹ sư của Sun MicroSystem muốn tạo ra một ngôn ngữ dễhọc và quen thuộc với đa số người lập trình Vì vậy họ đã sử dụng lại các cúpháp của C và C++
Tuy nhiên, trong Java thao tác với con trỏ bị lược bỏ nhằm đảo bảo tính an toàn
và dễ sử dụng hơn Các thao tác overload, goto hay các cấu trúc như struct vàunion cũng được loại bỏ khỏi Java
Độc lập phần cứng và hệ điều hành
Một chương trình viết bằng ngôn ngữ Java có thể chạy tốt ở nhiều môi trườngkhác nhau Gọi là khả năng “cross-platform” Khả năng độc lập phần cứng và hệđiều hành được thể hiện ở 2 cấp độ là cấp độ mã nguồn và cấp độ nhị phân
Ở cấp độ mã nguồn: Kiểu dữ liệu trong Java nhất quán cho tất cả các hệ điềuhành và phần cứng khác nhau Java có riêng một bộ thư viện để hỗ trợ vấn đềnày Chương trình viết bằng ngôn ngữ Java có thể biên dịch trên nhiều loại máykhác nhau mà không gặp lỗi
Ở cấp độ nhị phân: Một mã biên dịch có thể chạy trên nhiều nền tảng khác nhau
mà không cần dịch lại mã nguồn Tuy nhiên cần có Java Virtual Machine đểthông dịch đoạn mã này
Trang 8Ngôn ngữ lập trình thường được chia ra làm 2 loại (tùy theo các hiện thực hóangôn ngữ đó) là ngôn ngữ thông dịch và ngôn ngữ biên dịch.
Thông dịch (Interpreter) : Nó dịch từng lệnh rồi chạy từng lệnh, lần saumuốn chạy lại thì phải dịch lại
Biên dịch (Compiler): Code sau khi được biên dịch sẽ tạo ra 1 filethường là exe, và file exe này có thể đem sử dụng lại không cần biêndịch nữa
Ngôn ngữ lập trình Java thuộc loại ngôn ngữ thông dịch Chính xác hơn, Java làloại ngôn ngữ vừa biên dịch vừa thông dịch Cụ thể như sau
Khi viết mã, hệ thống tạo ra một tệp java Khi biên dịch mã nguồn của chươngtrình sẽ được biên dịch ra mã byte code Máy ảo Java (Java Virtual Machine) sẽthông dịch mã byte code này thành machine code (hay native code) khi nhậnđược yêu cầu chạy chương trình
Hình 1 Ngôn ngữ thông dịch
Ưu điểm : Phương pháp này giúp các đoạn mã viết bằng Java có thể chạy đượctrên nhiều nền tảng khác nhau Với điều kiện là JVM có hỗ trợ chạy trên nềntảng này
Nhược điểm : Cũng như các ngôn ngữ thông dịch khác, quá trình chạy các đoạn
mã Java là chậm hơn các ngôn ngữ biên dịch khác (tuy nhiên vẫn ở trong mộtmức chấp nhận được)
Cơ chế thu gom rác tự động
Khi tạo ra các đối tượng trong Java, JRE sẽ tự động cấp phát không gian bộ nhớcho các đối tượng ở trên heap
Với ngôn ngữ như C \ C++, bạn sẽ phải yêu cầu hủy vùng nhớ mà bạn đã cấpphát, để tránh việc thất thoát vùng nhớ Tuy nhiên vì một lý do nào đó, bạnkhông hủy một vài vùng nhớ, dẫn đến việc thất thoát và làm giảm hiệu năngchương trình
Ngôn ngữ lập trình Java hỗ trợ cho bạn điều đó, nghĩa là bạn không phải tự gọihủy các vùng nhớ Bộ thu dọn rác của Java sẽ theo vết các tài nguyên đã được
Trang 9cấp Khi không có tham chiếu nào đến vùng nhớ, bộ thu dọn rác sẽ tiến hành thuhồi vùng nhớ đã được cấp phát.
Ngôn ngữ lập trình Java yêu cầu chặt chẽ về kiểu dữ liệu
Dữ liệu phải được khai báo tường minh
Không sử dụng con trỏ và các phép toán với con trỏ
Java kiểm soát chặt chẽ việc truy nhập đến mảng, chuỗi Không cho phép sửdụng các kỹ thuật tràn Do đó các truy nhập sẽ không vượt quá kích thước củamảng hoặc chuỗi
Quá trình cấp phát và giải phóng bộ nhớ được thực hiện tự động
Cơ chế xử lý lỗi giúp việc xử lý và phục hồi lỗi dễ dàng hơn
Máy ảo Java (JVM – Java Virtual Machine)
Để đảm bảo tính đa nền, Java sử dụng cơ chế Máy ảo của Java
ByteCode là ngôn ngữ máy của Máy ảo Java tương tự như các lệnh nhị phân củacác máy tính thực
Một chương trình sau khi được viết bằng ngôn ngữ Java (có phần mở rộng là.java) phải được biên dịch thành tập tin thực thi được trên máy ảo Java (có phần
mở rộng là class) Tập tin thực thi này chứa các chỉ thị dưới dạng mã Bytecode
mà máy ảo Java hiểu được phải làm gì
Khi thực hiện một chương trình, máy ảo Java lần lượt thông dịch các chỉ thịdưới dạng Bytecode thành các chỉ thị dạng nhị phân của máy tính thực và thực
Trang 10Máy ảo thực tế đó là một chương trình thông dịch Vì thế các hệ điều hành khácnhau sẽ có các máy ảo khác nhau Để thực thi một ứng dụng của Java trên một
hệ điều hành cụ thể, cần phải cài đặt máy ảo tương ứng cho hệ điều hành đó.JVM cung cấp môi trường thực thi cho chương trình Java (còn gọi là khả năngđộc lập với nền)
Có nhiều JVM cho các nền tảng khác nhau chẳng hạn như: Windows, Liux, vàMac
Các loại ứng dụng được phát triển sử dụng Java
Trang 112 Hệ điều hành Android
Android là hệ điều hành di động được phát triển bởi Google , được sử dụng chủ yếu trong các thiết bị màn hình cảm ứng, điện thoại di động và máy tính bảng Nó cho phép người dùng thao tác với các thiết bị một cách trực quan thông qua chuyển động của ngón tay như: chạm, vuốt Google cũng sử dụng phần mềm Android trên tivi, ô tô và đồng hồ đeo tay - Mỗi thiết bị đều được thiết kế giao diện riêng
Lịch sử phát triển của HĐH Android
Hệ điều hành này đầu tiên được Android.Inc - một công ty phần mềm đặt tạiThung lũng Silicon - phát triển, sau đó được Google mua lại vào năm 2005.Mặc dù mã nguồn Android được phát hành ở định dạng mã nguồn mở để thuậntiện cho người dùng, nhưng nó vẫn có thể sử dụng cố định cho các phần mềmđộc quyền trên các thiết bị di động
Các nhà đầu tư và chuyên gia trong lĩnh vực công nghiệp điện tử lúc đó đã đặtdấu chẩm hỏi về ý định thật sự của Google trong việc thâm nhập thị trường diđộng kể từ khi mua lại Nhưng chỉ không lâu sau, Google đã công bố thiết bịchạy Android đầu tiên của mình ra thị trường vào năm 2007
Trang 12Hình 2 Ứng dụng android
Các tính năng nổi bật của Android là gì?
Giao diện người dùng mặc định của Android sử dụng các thao tác trực tiếp nhưchạm, vuốt và kéo để bắt đầu giao tiếp Thiết bị cung cấp phản hồi xúc giác chongười dùng thông qua các cảnh báo như rung để phản hồi các hành động Ví dụ:nếu người dùng nhấn vào nút điều hướng, thiết bị sẽ rung
Khi người dùng khởi động thiết bị, hệ điều hành Android sẽ hiển thị màn hìnhchính, đây là trung tâm điều hướng chính cho thiết bị Android, bao gồm các tiệních và biểu tượng ứng dụng Widget là màn hình thông tin tự động cập nhật nộidung như thời tiết hoặc tin tức Màn hình chính có thể khác nhau tùy theo nhàsản xuất của thiết bị Người dùng cũng có thể chọn các chủ đề khác nhau chomàn hình chính thông qua các ứng dụng của bên thứ ba trên Google Play
Thanh trạng thái ở phía trên cùng màn hình chính hiển thị các thông tin và trạngthái kết nối của thiết bị: mạng Wi-Fi đang kết nối, sóng 3G, cường độ sóng điệnthoại Người dùng có thể vuốt thanh trạng thái theo chiều đi xuống để xem mànhình thông báo
Hệ điều hành Android cũng sở hữu các tính năng giúp tiết kiệm pin Hệ điềuhành tạm dừng các ứng dụng không được sử dụng để tiết kiệm pin và mức sửdụng CPU Android có các tính năng quản lý bộ nhớ giúp tự động đóng các trình
xử lý không hoạt động lưu trong bộ nhớ
Các phiên bản của hệ điều hành Android
Google cập nhật thay đổi đối với Android thường xuyên sau mỗi bản phát hành,bao gồm các bản vá bảo mật và cải tiến về hiệu suất
Trang 13Android 1.0 Phát hành vào 23/9/2008 Sở hữu bộ ứng dụng Google, bao gồm Gmail, Maps, Lịch và YouTube.
Android 1.5 (Cupcake) Phát hành 27/4/2009 Ra mắt bàn phím ảo trên màn hình
và framewrk cho app các widget bên thứ ba
Android 1.6 (Donut) Phát hành 15/9/2009 Giới thiệu HĐH có thể chạy trên cáckích thước và độ phân giải màn hình khác nhau; tăng cường hỗ trợ cho mạng CDMA
Android 2.0 (Eclair) Phát hành 26/10/2009 Ra mắt tính năng điều hướng bằng giọng nói theo từng chặng, cập nhật thông tin giao thông thời gian thực, kéo mở
để thu phóng
Android 2.2 (Froyo) Phát hành 20/5/2010 Thêm dock ở cuối màn hình chính vàtác vụ thoại, cho phép người dùng chạm vào biểu tượng và nói lệnh Hỗ trợ Flash cho trình duyệt web
Android 2.3 (Gingerbread) Phát hành 6/12/2010 Ra mắt giao diện người dùng đen và xanh lục
Android 3.0 đến 3.2 (Honeycomb) Phát hành 22/2/2011 Bản phát hành này dành riêng cho máy tính bảng và có thêm thiết kế không gian ba chiều màu xanhlam
Android 4.0 (Ice Cream Sandwich) Phát hành 18/10/2011 Giới thiệu giao diện người dùng thống nhất cho cả máy tính bảng và điện thoại thông minh; với thay đổi đáng chú ý nhất là chủ yếu sử dụng thao tác vuốt để điều hướng
Android 4.1 đến 4.3 (Jelly Bean) Phát hành lần lượt vào 9/7/2012, 13/11/2012
và 24/7/2013 Giới thiệu Google Now, một dịch vụ lập kế hoạch trong ngày Ngoài ra còn có thông báo dạng tương tác và cải tiến hệ thống tìm kiếm bằng giọng nói
Android 4.4 (KitKat) Phát hành chính thức 31/10/2013 Ra mắt giao diện người dùng với các màu sáng hơn, cùng với thanh trạng thái trong suốt và các biểu tượng màu trắng
Android 5.0 (Lollipop) Phát hành chính thức 12/11/2014 Kết hợp thiết kế giao diện dạng card-based với các yếu tố như thông báo và danh sách Ứng dụng gần đây Giới thiệu tính năng điều khiển bằng giọng nói thông qua lệnh "OK,
Google"
Android 6.0 (Marshmallow) Được phát hành chính thức hồi tháng 10 năm
2015 Bản phát hành này đánh dấu việc Google thông qua lịch phát hành hàng năm Ra mắt tính năng quản lý quyền truy cập ứng dụng chi tiết hơn, hỗ trợ chođầu đọc vân tay và USB-C
Trang 14Android 7.0 và 7.1 (Nougat) Phát hành lần lượt vào 22/8/2016 và 4/10/2016 Ramắt chế độ chia đôi màn hình gốc và tính năng nhóm các thông báo theo ứng dụng.
Android 8.0 và 8.1 (Oreo) Phát hành lần lượt vào 21/8/2017 và 5/12/2017 Các phiên bản này đã ra mắt chế độ picture-inpicture (PIP) nguyên bản - tính năng đáng chú ý nhất cho phép thực hiện đa tác vụ - và tính năng nhắc lại thông báo Oreo là phiên bản đầu tiên kết hợp Project Treble, một nỗ lực của các OEM nhằm cung cấp các bản cập nhật phần mềm với tiêu chuẩn cao hơn
Android 9.0 (Pie) Phát hành 6/ 8/2018 Phiên bản này đã thay thế các nút Back, Home và Overview thành nút Home đa chức năng và nút Back nhỏ hơn Ra mắt các tính năng quản lý hiệu suất, bao gồm gợi ý trả lời tự động cho tin nhắn và quản lý độ sáng
Android 10 (Android Q) chính thức phát hành vào 3/9/2019 Bỏ nút Back để chuyển sang điều hướng hoàn toàn bằng thao tác vuốt Có thêm Dark theme và Focus mode cho phép người dùng bớt bị phân tâm từ những ứng dụng khác
3 Firebase
Firebase là một nền tảng ứng dụng di động và web với các công cụ và hạ tầng được thiết kế để giúp các lập trình viên xây dựng các ứng dụng chất lượng cao
Nói ngắn gọn, thay vì trực tiếp cung cấp các ứng dụng, họ cung cấp các dịch vụnền tảng cho các lập trình viên, chính là các bạn, sử dụng để xây dựng ứng dụngcũng như hỗ trợ các bạn tối ưu hóa, tối đa hóa ứng dụng của mình Với nhiềudịch vụ chất lượng cao đi kèm mức giá phải chăng, Firebase đã và đang, khôngchỉ là sự lựa chọn hàng đầu cho các lập trình viên đơn thân (single dev) hay cáccông ty khởi nghiệp (start ups), mà các công ty, tổ chức lớn có tên tuổi cũng sửdụng “Ngọn lửa” để xây dựng các tính năng, các chương trình mới, cũng nhưchuyển đổi các dịch vụ trước đây sang hệ thống của Firebase Chẳng hạn nhưShazam, Fabulous và cả chính Google nữa, khi nền tảng nhắn tin Allo được xâydựng trên nền tảng Firebase Realtime Database
Về mặt lịch sử, Firebase (tiền thân là Evolve) trước đây là một start upđược thành lập vào năm 2011 bởi Andrew Lee và James Tamplin Ban đầu,Evolve chỉ cung cấp cơ sở dữ liệu để các lập trình viên thiết kế các ứng dụngchat (và hiện tại thì để làm quen với realtime db thì bạn cũng làm ứng dụng chat
đó thôi) Tuy nhiên, họ nhanh chóng nhận ra tiềm năng sản phẩm của mình khinhận thấy các khách hàng không sử dụng CSDL để làm ứng dụng chat, mà thayvào đó, để lưu các thông tin như game progress Bộ đôi Lee và Tamplin quyếtđịnh tách mảng realtime ra để thành lập một công ty độc lập – chính là Firebase
Trang 15– vào tháng 4 năm 2012 Sau nhiều lần huy động vốn và gặt hái được nhữngthành công nổi bật, Firebase đã được Google để ý Vào tháng 10 năm 2014,Firebase gia nhập gia đình Google.
Cả Google và Firebase đều như hổ mọc thêm cánh Firebase có điều kiện đểphát triển thần tốc, mở rộng số lượng các dịch vụ con, còn Google có được mộtđội ngũ nhân lực chất lượng cao, năng động, cũng như cơ sở hạ tầng và sự hiệuquả mà các dịch vụ của Firebase mang lại, mà không phải xây dựng lại từ đầu.Hiện tại, Google đã chuyển các dịch vụ nền tảng hỗ trợ các lập trình viên bênngoài về cho Firebase quản lí, chẳng hạn như Cloud Messaging, AdMob vàAnalytics
Firebase, theo hướng đi của Google, chính thức hỗ trợ Android, iOS và Web.Thực tế, macOS cũng được hỗ trợ vì macOS chia sẻ nhiều dòng code với iOS,song vì Google và Firebase muốn sử dụng web cho ứng dụng desktop thay vìnative, nên có khá ít tài liệu chính thức nói về Firebase cho macOS, cũng nhưcác thư viện cho macOS có thể kém chức năng và không ổn định lắm Còn vềWindows, hiện tại tôi chưa thấy họ lên tiếng nào về việc sẽ chính thức phát hànhthư viện cho đứa con của Microsoft, nên nếu các bạn muốn làm ứng dụng choWindows (UWP) thì chỉ nên (và cũng chỉ có mỗi con đường) làm web-basednative apps mà thôi
Ưu Điểm của Firebase
Như bạn có thể thấy, Firebase cung cấp rất nhiều dịch vụ hỗ trợ giúp cáclập trình viên xây dựng ứng dụng của mình Việc tích hợp Firebase vào ứngdụng có thể hạ nỗi lo lắng của các dev xuống ở mức coding, đặc biệt là cho cácdev viết các ứng dụng có liên quan tới web Bước đầu tiên, bạn cần có host đểchứa cơ sở dữ liệu -> đã có Firebase Hosting và Storage Bạn cần viết code PHP
để giao tiếp? Có thể không cần cho lắm, vì Firebase Authentication và RealtimeDatabase đã sẵn sàng cho bạn tích hợp và sử dụng “ngay và luôn” Bạn muốngửi thông báo tới các thiết bị? Firebase Cloud Messaging là cái bạn cần Hơn thếnữa, với Test Lab, Crash Reporting, App Indexing thì Firebase sẽ báo cáo chobạn các vấn đề có thể xảy ra khi ứng dụng của bạn chạy nhiều trên máy thật.Cũng như Remote Config giúp bạn thay đổi các thiết lập trên ứng dụng củangười dùng mà không cần thiết phải publish 1 phiên bản mới…
Cá nhân tôi, sau khi sử dụng Firebase, mặc dù chỉ ở mức độ “cho biết”,nhưng đã có thể kết luận là sẽ sử dụng Firebase cho các ứng dụng có liên quantới web sau này, bởi tôi chỉ xếp nó sau việc tự thiết kế toàn bộ hạ tầng từ A-Z,còn nếu đem so với các nhà cung cấp khác thì không ai có thể vượt qua được
Trang 16“Ngọn lửa” cả Các nhà cung cấp khác có thể có một vài dịch vụ chất lượng hơn,nhưng nhìn chung, họ không cung cấp số lượng dịch vụ nhiều như vậy.
Nhược Điểm của Firebase
Không có gì là hoàn hảo, và Firebase cũng không là ngoại lệ Điểm yếuduy nhất của “Ngọn lửa” chính là phần Realtime Database, mà đúng hơn chỉ làphần Database Cơ sở dữ liệu của họ được tổ chức theo kiểu trees, parent-children, không phải là kiểu Table nên những ai đang quen với SQL có thể sẽgặp khó khăn từ mức đôi chút tới khá nhiều
Realtime Database
Hình 3 Realtime FireBaseFirebase Realtime Database là một cloud-hosted NoSQL database chophép bạn lưu trữ và đồng bộ hóa người dùng trong thời gian thực RealtimeDatabase thực sự chỉ là một đối tượng JSON lớn mà các nhà phát triển có thểquản lý trong thời gian thực
Chỉ với một API duy nhất, cơ sở dữ liệu Firebase cung cấp cho ứng dụng
cả giá trị hiện tại và tương lai của dữ liệu
Trang 17Hình 4 Đồng bộ FireBase
Đồng bộ hóa trong thời gian thực giúp người dùng dễ dàng truy cập dữliệu của họ từ bất kỳ thiết bị nào, có thể là web hoặc thiết bị di động Cơ sở dữliệu thời gian thực cũng giúp người dùng có khả năng cộng tác với nhau
Một lợi ích tuyệt vời khác của Cơ sở dữ liệu thời gian thực là nó chứamobile và web SDKs, cho phép bạn tạo ứng dụng mà không cần máy chủ
Khi người dùng của bạn ngoại tuyến, Realtime Database SDKs sử dụng
bộ nhớ cache cục bộ trên thiết bị để phân phát và lưu trữ thay đổi Khi thiết bịtrực tuyến, dữ liệu cục bộ sẽ tự động được đồng bộ hóa
Realtime Database cũng có thể tích hợp với Firebase Authentication đểcung cấp quy trình xác thực đơn giản và trực quan
Authentication
Firebase Authentication cung cấp backend services, easy-to-use SDKs, vàready-made UI libraries để xác thực người dùng cho ứng dụng
Trang 18Hình 5 Kết nối FireBase
Thông thường, sẽ mất vài tháng để thiết lập nên một hệ thống xác thực của riêng bạn Và sau đó, bạn sẽ phải cần đến một đội ngũ chuyên viên để duy trì hệ thống đó Nhưng nếu sử dụng Firebase, bạn có thể thiết lập toàn bộ hệ thống chỉ với dưới 10 dòng mã, bao gồm cả các hoạt động phức tạp như hợp nhất tài khoản
Bạn có thể xác thực người dùng ứng dụng của mình thông qua các phương phápsau:
Sử dụng Xác thực Firebase giúp việc xây dựng hệ thống xác thực an toàn
dễ dàng hơn, đồng thời cải thiện sign-in và onboarding experience cho ngườidùng cuối
Firebase Authentication được tạo bởi cùng một người trong Google
Sign-in, Smart Lock, và Chrome Password Manager
Firebase Storage
Trang 19Hình 6 Firebase Storage
Firebase Storage là một giải pháp độc lập cho việc tải lên nội dung củangười dùng, như hình ảnh và video từ thiết bị iOS và Android cũng như Web.Firebase Storage được thiết kế đặc biệt để mở rộng ứng dụng của bạn, cung cấpbảo mật và đảm bảo khả năng phục hồi mạng Firebase Storage sử dụng hệthống tệp/ thư mục đơn giản để cấu trúc dữ liệu của nó
3 Android Studio
Android Studio là môi trường phát triển tích hợp (IDE) chính thức cho việc phát triển ứng dụng Android Nơi mà các nhà phát triển viết code và lắp rápcác ứng dụng của họ từ các gói Và thư viện khác nhau
Thư viện phần mềm, công cụ lập trình tiện dụng, nhiều hơn để giúp bạn xây dựng, kiểm thử Cũng như gỡ lỗi các ứng dụng Android
Android Studio hỗ trợ một loạt các giả lập để xem trước ứng dụng, vì vậy ngay
cả khi bạn không có thiết bị thử nghiệm, bạn vẫn có thể chắc chắn rằng mọi thứ đều hoạt động trơn tru
Bên cạnh đó, loạt công cự như lời khuyên tối ưu hóa, đồ thị doanh số bán hàng,
và số liệu lấy từ phân tích sẽ giúp các nhà phát triển quản lý ứng dụng đang bán của mình và tìm ra hướng đi cụ thể với từng thiết bị Android
Android Studio hỗ trợ các hệ điều hành Windows, Mac OS X và Linux, và là IDE chính thức của Google để phát triển ứng dụng Android gốc để thay thế cho Android Development Tools (ADT) dựa trên Eclipse
Các tính năng nổi bật của Android studio
Trang 20Android studio có rất nhiều lợi ích cũng như tính năng mà người dùng có thể khai thác được và đặc biệt việc cài đặt android studio còn có thể giúp lập trình viên mô phỏng để có thể tiến hành sửa lỗi và nâng cấp sản phẩm của mình khi cần thiết
Trên trình soạn thảo mã và công cụ phát triển mạnh mẽ của IntelliJ, Android Studio cung cấp nhiều tính năng nâng cao hiệu suất của bạn khi xây dựng ứng dụng Android, chẳng hạn như:
+ Một hệ thống xây dựng Gradle linh hoạt
+ Trình mô phỏng nhanh và tính năng phong phú
+ Một môi trường hợp nhất nơi bạn có thể phát triển cho tất cả các thiết bị Android
+ Instant Run để đẩy các thay đổi vào ứng dụng đang chạy của bạn mà không cần xây dựng một APK mới
+ Tích hợp GitHub để giúp bạn xây dựng các tính năng ứng dụng phổ biến và nhập mã mẫu
+ Các công cụ và khuôn khổ thử nghiệm mở rộng
Lint công cụ để bắt hiệu suất, khả năng sử dụng, tương thích phiên bản, và các vấn đề khác