1. Trang chủ
  2. » Tất cả

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

41 4 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề 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
Tác giả Phan Phước Đạt, Nguyễn Như Phước
Người hướng dẫn Dương BHNH – 04/202
Trường học Trường Đại Học Thủ Dầu Một
Chuyên ngành Phát triển ứng dụng di động
Thể loại Báo cáo cuối kỳ
Năm xuất bản 2023
Thành phố Thủ Dầu Một
Định dạng
Số trang 41
Dung lượng 2,29 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • CHƯƠNG 1. TỔNG QUAN (0)
    • 1. Những hiểu biết chung về application (5)
      • 1.1 Giới thiệu (5)
      • 1.2 Mục đích (6)
      • 1.3 Ý nghĩa của đề tài (6)
  • CHƯƠNG 2. CƠ SỞ LÝ THUYẾT (0)
    • 1. Ngôn ngữ Java (7)
    • 2. Hệ điều hành Android (11)
    • 3. Firebase (14)
    • 3. Android Studio (19)
  • CHƯƠNG 3. XÂY DỰNG ỨNG DỤNG (21)
    • 1. Hướng xây dựng (21)
      • 1.1 Về lý thuyết (21)
      • 1.2 Về chương trình (21)
      • 1.3 Xây Dựng Database (22)
      • 1.4 Biểu đồ tuần tự (26)
    • 2. Giao diện và chức năng màn hình ứng dụng (29)
  • 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 (41)

Nội dung

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 1

Bá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 2

1 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 3

Hiệ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 5

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 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 6

dụ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 7

CHƯƠ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 8

Ngô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 9

cấ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 10

Má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 11

2 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 12

Hì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 13

Android 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 14

Android 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 17

Hì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 18

Hì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 19

Hì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 20

Android 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

Ngày đăng: 11/02/2023, 12:44

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w