PHẦN MỞ ĐẦU 1. Tính cấp thiết của đề tài Trong thời đại ngày nay công nghệ thông tin đang được phát triển mạnh mẽ, nhanh chóng và xâm nhập vào nhiều lĩnh vực khoa học, kỹ thuật cũng như đời sống. Nó trở thành công cụ đắc lực cho các ngành như: quân sự, y học, quản lý… Đặc biệt sự phát triển như vũ bão của thiết bị di động đã thúc đẩy nhiều bước tiến mới trong đời sống hàng ngày. Với xu hướng bùng nổ của Internet hiện nay, hầu hết mọi việc đều sử dụng đến Internet.
Từ việc đặt hàng, mua bán, học tập, giải trí đều có sự góp mặt của Internet, vì vậy mà việc lướt web hay các ứng dụng di động dành cho việc tìm kiếm quán ăn, món ăn không còn mấy xa lạ với mọi người. Đặc biệt kể từ khi công nghệ ngày càng phát triển như các loại smartphone, được coi là bước đột phá mới của kênh phương tiện vì thế càng ngày càng được mở rộng, thuận tiện. Con người ngày càng bận rộn, thời gian biểu của bản thân gần như bị lấp đầy, nhu cầu con người cần làm mọi việc nhanh, tiện, gọn. Để giải quyết vấn đề đó các dịch vụ mua sắm trực tuyến, giao hàng tận nơi lần lượt ra đời giúp con người tiết kiệm thời gian và công sức hơn thay vì phải tự đến các cửa hàng, chợ hoặc siêu thị để chọn mua các sản phẩm mình cần.
Các mặt hàng thường bán trực tuyến trên mạng chủ yếu là đồ gia dụng, thiết bị điện, điện tử, may mặc, … mà các mặt hàng bách hóa khá ít, đặc biệt là các mặt hàng như gạo, nếp, tấm, trong khi gạo là lương thực chính của người Á Đông nói chung và người Việt Nam nói riêng. Các trang web bán hàng trực tuyến nếu có bán mặt hàng này thì chủng loại cũng không đa dạng, giá cả và chất lượng không thể đảm bảo vì đặc thù mặt hàng này vừa dễ mà lại vừa khó bảo quản. Hơn nữa người dùng khi cần tìm một loại nào đó trong các mặt hàng gạo này thì thường phải tìm rất nhiều nơi mới có, và đôi khi còn không tìm được. Nhận thấy vấn đề đó nhóm chúng em quyết định thực hiện đề tài này để tạo ra một ứng dụng di động chạy trên nền tảng Android cung cấp cho người dùng nhiều sự lựa chọn đối với loại mặt hàng thiết yếu trong cuộc sống hàng ngày của người dân Việt Nam.
Mục đích của đề tài Tìm hiểu về SDK: định nghĩa SDK và phân biệt SDK. Tìm hiểu về Firebase: định nghĩa Firebase và các dịch vụ Firebase hỗ trợ. Xây dựng ứng dụng bán gạo trên nền tảng Andriod áp dụng SDK và Firebase. 1 do an KHÓA LUẬN TỐT NGHIỆP 3.
Cách tiếp cận và phương pháp nghiên cứu Đối tượng nghiên cứu: Tìm hiểu về SDK: định nghĩa SDK và phân biệt SDK. Tìm hiểu về Firebase: định nghĩa Firebase và các dịch vụ Firebase hỗ trợ. Phạm vi nghiên cứu: Với bài luận văn này, nhóm em sẽ tập trung tìm hiểu và thực hiện các nội dung sau: Tìm hiểu các nội dung, kiến thức về SDK và Firebase. Sau khi tìm hiểu, nhóm sẽ tập trung vận dụng những kiến thức đã tìm hiểu, đặc biệt là Firebase để xây dựng ứng dụng bán gạo trên nền tảng Android.
Kết quả dự kiến đạt được Hiểu rõ kiến thức về SDK: định nghĩa SDK và phân biệt SDK. Hiểu rõ kiến thức về Firebase: định nghĩa Firebase và dịch vụ Firebase cung cấp cho nhà phát triển. Xây dựng thành công ứng dụng bán gạo trên nền tảng Android. 2 do an KHÓA LUẬN TỐT NGHIỆP PHẦN NỘI DUNG CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.
SDK là gì? SDK – Software Development Kit là một tập hợp công cụ hỗ trợ cho việc phát triển phần mềm thông qua một nền tảng nào đó. Hầu hết các nhà phát triển ứng dụng đều cần dùng tới SDK để thêm vào các tính năng nâng cao, hiển thị quảng cáo, thông báo dạng đẩy (push notification) cho ứng dụng. Chẳng hạn lập trình Android yêu cầu SDK cho Java, với ứng dụng iOS thì SDK cho Swift, còn lập trình ứng dụng Windows yêu cầu có .NET Framework SDK đi kèm với. SDK có thể chứa các API dưới dạng thư viện để giao tiếp với một ngôn ngữ nào đó hoặc để chứa một hệ thống phần cứng phức tạp có thể giao tiếp với một hệ thống nhúng.
Các công cụ phổ biến bao gồm các tiện ích gỡ rối phần mềm (debugging), thường ở dạng môi trường phát triển tích hợp (IDE). SDK cũng thường hay kèm theo các sample code và các ghi chú kỹ thuật hỗ trợ (documentation) hay tài liệu để giúp làm rõ các tài liệu tham khảo chính. Phân loại SDK: Android SDK: bộ công cụ phát triển ứng dụng trên nền tảng Android. Windows SDK: bộ công cụ phát triển ứng dụng chạy trên nền tảng Windows.
Java SDK: hay nói cách khác là JDK. JDK là một tập con mở rộng của SDK, hay nói cách khác JDK là SDK cho Java hoặc Java SDK. Bộ công cụ này bao gồm các công cụ hữu ích để xây dựng và phát triển các Applications, Applets và Components viết bằng ngôn ngữ lập trình Java (không dùng ngôn ngữ khác như C, C++, v. Lợi ích của SDK SDK cho phép bạn có các tính năng khác nhau trong ứng dụng của mình giúp cung cấp một trải nghiệm người dùng tốt.
Ví dụ: cung cấp vị trí chính xác trong ứng dụng, tích hợp nhanh chóng và dễ dàng, độ chính xác của dữ liệu và triển khai cũng như nâng cấp đường dẫn và loại bỏ khi không cần dùng đến nữa. 3 do an KHÓA LUẬN TỐT NGHIỆP 1. Firebase là gì? Đó là một dịch vụ cơ sở dữ liệu thời gian thực hoạt động trên nền tảng đám mây được cung cấp bởi Google nhằm giúp các lập trình phát triển nhanh các ứng dụng bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu. Dịch vụ của Firebase Dịch vụ Firebase có thể được chia thành hai nhóm: Phát triển và thử nghiệm ứng dụng của bạn: Realtime Database, Auth, Test Lab, Crashlytics, Cloud Functions, Firestore, Cloud Storage, Performance Monitoring, Crash Reporting, Hosting Phát triển và thu hút đối tượng của bạn: Firebase Analytics, Invites, Cloud Messaging, Predictions, AdMob, Dynamic Links, Adwords, Remote Config, App Indexing 1.
Lịch sử ra đời của Firebase 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ụng chat (và hiện tại thì để làm quen với realtime database 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 khi nhận thấy các khách hàng không sử dụng cơ sở dữ liệu để làm ứng dụng chat, mà thay và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 – vào tháng 4 năm 2012.
Vào tháng 10 năm 2014, Firebase gia nhập gia đình Google. Cả Google và Firebase đều càng lớn mạnh hơn. 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ệu quả 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ên ngoà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 4 do an KHÓA LUẬN TỐT NGHIỆP 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. Dữ liệu thời gian thực – Firebase Realtime Database Bạn đăng ký một tài khoản trên firebase, tạo một ứng dụng và bạn đã có một cơ sở dữ liệu thời gian thực. Dữ liệu sẽ được cung cấp cho bạn dưới dạng JSON và luôn đồng bộ thời gian thực đến mọi kết nối client.
Với các ứng dụng đa nền tảng tất cả các client sẽ đều sử dụng chung một database và luôn được tự động cập nhật dữ liệu mới nhất. Cấu trúc dữ liệu của firebase Tất cả dữ liệu được truyền qua một kết nối an toàn SSL với một chứng nhận 2048- bit. Dữ liệu luôn được lưu trữ trước ở local mỗi khi có sự thay đổi nào sẽ được tự động cập nhật lên server của Firebase và ngược lại khi dữ liệu ở local là cũ hơn với server nó cũng sẽ được tự động cập nhật để dữ liệu luôn là mới nhất nên nếu mất kết nối mạng dữ liệu local sẽ được sử dụng để thay thế. Xác thực người dùng - Firebase Authentication 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ười dùng cuối.
Firebase 5 do an KHÓA LUẬN TỐT NGHIỆP Authentication được tạo bởi cùng một người trong Google Sign-in, Smart Lock, và Chrome Password Manager. Firebase đã xây dựng chức năng cho việc xác thực người dùng với Email, Facebook, Twitter, GitHub, Google và xác thực nặc danh. Nó giúp bạn nhiều trong việc xác thực người dùng. Firebase Storage Firebase Storage là dịch vụ được xây dựng cho mục đích lưu trữ và quản lý các nội dung mà người dùng ứng dụng tạo ra như ảnh, videos hay dữ liệu dạng file.
Firebase Storage cung cấp các API cho việc upload và download các file từ app của bạn một cách bảo mật và bạn không cần quan tâm đến chất lượng đường truyền mạng. Firebase Storage được xây dựng trên nền tảng Google Cloud Platform nên có nhiều lợi thế. 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ó. Firebase Cloud Messaging (FCM) Firebase Cloud Messaging (FCM) cung cấp kết nối đáng tin cậy và tiết kiệm pin giữa máy chủ và thiết bị cho phép bạn gửi và nhận tin nhắn cũng như thông báo trên iOS, Android và web miễn phí.
Bạn có thể gửi tin nhắn thông báo (giới hạn 2KB) và tin nhắn dữ liệu (giới hạn 4KB). Sử dụng FCM, bạn có thể dễ dàng nhắm mục tiêu các thư bằng cách sử dụng các phân đoạn được xác định trước hoặc tạo các phân đoạn của riêng bạn bằng cách sử dụng nhân khẩu học và hành vi.