CHƯƠNG 1. Giới thiệu về hệ quản trị cơ sở dữ liệu Firebase 1. Khái quát về hệ quản trị CSDL Firebase Firebase là một nền tảng do Google cung cấp, nhằm hỗ trợ việc tạo ra các ứng dụng web, ứng dụng di động với chất lượng cao. [2] Với việc sử dụng Firebase, các lập trình viên hay nhà phát triển có thể tập trung vào việc phát triển ứng dụng mà không cần phải tự thiết kế, triển khai và quản lý Server hay cơ sở dữ liệu của mình, mà chỉ cần sử dụng các API và SDK do Firebase cung cấp để kết nối với các dịch vụ của nó.
Bằng cách này, có thể tiết kiệm thời gian, chi phí và công sức cho việc xây dựng Backend. [3] Firebase là một trong những BaaS (Backend as a service), tức là một dịch vụ cung cấp các giải pháp Backend cho các ứng dụng web và di động.1: Logo của hệ quản trị cơ sở dữ liệu Firebase 1. Ưu điểm của Firebase: Firebase giúp tiết kiệm thời gian và chi phí phát triển ứng dụng, bằng cách cung cấp các dịch vụ và công cụ sẵn có và dễ sử dụng. SVTH: Nguyễn Đăng Khoa 4 Xây dựng ứng dụng quản lý công việc của nhân viên tại công ty Lutech Firebase cho phép các nhà phát triển tập trung vào việc xây dựng giao diện và tính năng của ứng dụng, mà không cần lo lắng về việc xử lý và lưu trữ dữ liệu ở phía máy chủ.
Firebase hỗ trợ nhiều nền tảng khác nhau, như Web, Android, iOS, Unity, C++,. Firebase có khả năng mở rộng tự động theo quy mô của ứng dụng, không cần phải quản lý cơ sở hạ tầng hay máy chủ. Firebase được hưởng lợi từ hệ thống máy chủ mạnh mẽ và an toàn của Google, đảm bảo hiệu suất cao và độ tin cậy cao cho các ứng dụng. Firebase hỗ trợ nhiều ngôn ngữ lập trình và nền tảng khác nhau, cho phép phát triển các ứng dụng đa nền tảng một cách hiệu quả và dễ dàng.
Firebase có nhiều tính năng hữu ích cho việc phát triển ứng dụng như xác thực người dùng, lưu trữ tệp tin, thực hiện kiểm thử phần mềm và gỡ lỗi.2: Ưu điểm của Firebase 1. Nhược điểm của Firebase: Firebase có giới hạn về dung lượng lưu trữ và số lượng kết nối trong phiên bản miễn phí. Để sử dụng các tính năng nâng cao hoặc quy mô lớn hơn, các nhà phát triển phải trả phí theo mức sử dụng. SVTH: Nguyễn Đăng Khoa 5 Xây dựng ứng dụng quản lý công việc của nhân viên tại công ty Lutech Firebase có thể không đáp ứng được một số yêu cầu đặc biệt hoặc phức tạp của các ứng dụng.
Ví dụ, Firebase Realtime Database chỉ hỗ trợ cơ sở dữ liệu NoSQL, không hỗ trợ các truy vấn phức tạp hay các thao tác với dữ liệu với nhiều điều kiện liên quan. Firebase có thể gặp khó khăn trong việc tích hợp với một số công nghệ hoặc dịch vụ khác. Ví dụ, Firebase không hỗ trợ GraphQL hay Apollo Client, hai công nghệ phổ biến trong việc xây dựng API hiện đại. Một số dịch vụ nổi bật của Firebase: 1.
Firebase Real-time Database: Dịch vụ Realtime database cho phép người dùng lưu trữ và đồng bộ dữ liệu theo thời gian thực. Dịch vụ này được lưu trữ trực tiếp trên iCloud. Trong trường hợp thiết bị của người dùng ngoại tuyến thì chúng sẽ sử dụng tới bộ nhớ của thiết bị và tự động đồng bộ lên server khi thiết bị kết nối trực tuyến trở lại.3: Cơ sở dữ liệu thời gian thực Firebase Real-time 1. Firebase Authentication: Dịch vụ Authentication cung cấp cho ứng dụng của người dùng một số phương pháp xác thực thông qua Email, mật khẩu, số điện thoải, tài khoản Google, tài khoản Facebook… Với tính năng này, người dùng sẽ dễ dàng xây dựng trình đăng nhập mà không cần sử dụng dữ liệu đăng ký riêng.
[1] SVTH: Nguyễn Đăng Khoa 6 Xây dựng ứng dụng quản lý công việc của nhân viên tại công ty Lutech Hình 1.4: Dịnh vụ Authentication 1. Firebase Cloud Storage: [2] Là một dịch vụ lưu trữ đám mây của Firebase, giúp người dùng lưu trữ và quản lý các tệp tin như hình ảnh, video, tài liệu, và các loại dữ liệu khác.5: Dịch vụ lưu trữ Storage 1. Firebase Remote Config: Remote Config có 2 nhiệm vụ cơ bản là: • Cập nhật các ứng dụng một cách nhanh chóng và dễ dàng mà không cần xuất bản bản dựng mới lên app/play store. • Dễ dàng cài đặt phân đoạn hoạt động trong ứng dụng dựa trên yêu cầu thiết bị hoặc người dùng đang sử dụng nó.
SVTH: Nguyễn Đăng Khoa 7 Xây dựng ứng dụng quản lý công việc của nhân viên tại công ty Lutech Để làm được điều đó, Firebase sẽ cài đặt các thông số bên máy chủ giúp người dùng cập nhật các dữ liệu ngay lập tức dù là thay đổi bố cục, bảng màu hay một phần cụ thể nào đó trong ứng dụng. Điều này hết sức hữu dụng bởi các ứng dụng thông thường sẽ bị mất hoàn toàn cài đặt nếu người dùng gỡ ứng dụng đi.6: Dịch vụ Firebase Remote Config 1. Firebase Crashlytics: Firebase Crashlytics là công cụ báo cáo các hoạt động bất thường (crash) phát sinh trên ứng dụng theo thời gian thực. Nó giúp ích cho việc truy vết các vấn đề bất thường hạ thấp chất lượng sản phẩm.
Nhờ đó,lập trình viên hay nhà phát triển có thể đặt thứ tự ưu tiên để có phương hướng xử lý thích hợp. Công cụ này còn hỗ trợ việc chia nhóm các bất thường phát sinh, truy xuất tình trạng có liên quan đến crash ấy, giúp tiết kiệm thời gian xử lý sự cố. [2] SVTH: Nguyễn Đăng Khoa 8 Xây dựng ứng dụng quản lý công việc của nhân viên tại công ty Lutech Hình 1.7: Dịch vụ Firebase Crashlytic 1. Giới thiệu về ngôn ngữ lập trình Kotlin 1.
Giới thiệu Kotlin: Kotlin là một ngôn ngữ lập trình được xây dựng và phát triển bởi JetBrains, được chính thức trình làng trên thị trường vào năm 2011. Sự ra đời của Kotlin nhằm phục vụ cho môi trường phát triển trong môi trường JVM (Java Virtual Machine), Android Native. Do Kotlin là một ngôn ngữ lập trình dạng tĩnh, nên muốn sử dụng nó cần thực hiện việc khai báo biến. Đồng thời, ngôn ngữ này còn có thể ứng dụng trong việc xây dựng các ứng dụng đa nền tảng hiện đại.
Tuy chỉ mới vừa ra mắt, nhưng Kotlin được cho là một đối đáng gờm và có thể soán ngôi Java bất cứ lúc nào, đặc biệt là trong lập trình Android.8: Ngôn ngữ lập trình ứng dụng Android Kotlin SVTH: Nguyễn Đăng Khoa 9 Xây dựng ứng dụng quản lý công việc của nhân viên tại công ty Lutech 1. Tính năng của ngôn ngữ lập trình Kotlin: Việc học lập trình Kotlin sẽ trở nên đơn giản hơn rất nhiều, nếu có kiến thức về Java. Mà nếu không, thì quá trình học tập cũng khá đơn giản, bởi lượng kiến thức của ngôn ngữ này rất dễ nắm bắt, đồng thời việc viết mã ứng dụng cũng được thực hiện nhanh chóng hơn. Nhờ có Kotlin mà công việc của các nhà lập trình cải thiện hiệu suất hoạt động rõ rệt, chỉ sử dụng khối lượng mã tối thiểu ít hơn 1/5 so với Java, mà vẫn đảm bảo chất lượng sản phẩm.
Kotlin cung cấp chức năng Thư viện Chuẩn có thể giúp các nhà phát triển Kotlin theo nhiều cách, đặc biệt các hàm trong ngôn ngữ này cũng dễ dàng mở rộng để phục vụ tốt hơn cho các công việc trong lập trình. Cung cấp tính năng Lazy Loading, hỗ trợ tải những nội dung cần thiết ban đầu cho ứng dụng và giúp làm giảm khá nhiều thời gian tải và khởi chạy cho chương trình. Việc này sẽ mang đến cho người dùng những trải nghiệm tuyệt vời nhất. Hoạt động tốt và hiệu quả hơn với NullPointerException (lỗi này sẽ xuất hiện ngay khi người dùng gán giá trị null đến với một đối tượng nào đó), mang đến nhiều lợi ích sử dụng cho nhà lập trình trong giai đoạn đầu quá trình phát triển.
Kotlin là một ngôn ngữ lập trình hiện đại biết cách xử lý các tập hợp bất biến. Có sẵn các API với chức năng phong phú sẽ tự động trả về dưới dạng bộ sưu tập và được đặc trưng bởi chức năng giống nhau.9: Sự tiện lợi của ngôn ngữ Kotlin so với người tiền nhiệm Java SVTH: Nguyễn Đăng Khoa 10 Xây dựng ứng dụng quản lý công việc của nhân viên tại công ty Lutech 1. Ưu điểm và nhược điểm khi sử dụng ngôn ngữ lập trình Kotlin: 1. Ưu điểm khi sử dụng ngôn ngữ lập trình Kotlin: Hoạt động với mã nguồn mở, sở hữu cú pháp ngắn gọn và mang lại sự thuận tiện trong quá trình Debug.
Các đoạn mã code của Kotlin đơn giản, dễ học và đọc hiểu. Hoạt động tương thích gần như 100% với Java, mọi việc thực hiện trong Java đều dễ dàng ứng dụng vào Kotlin. Kotlin là một ngôn ngữ an toàn, sở hữu cơ chế null-safety, có thể giảm thiểu cũng như loại bỏ được hầu hết các nguồn tham chiếu Null. Dễ dàng sử dụng toàn bộ những Framework và thư viện có sẵn trong Java.
Đặc biệt, mang lại sự thuận tiện khi kết hợp với Maven, Gradle cùng các hệ thống build khác. Kotlin được hỗ trợ ưu tiên trong Android Studio và IDE giúp lập trình viên dễ dàng thực hiện công việc hơn. Nhược điểm khi sử dụng ngôn ngữ lập trình Kotlin: Phần hàm của Kotlin vẫn chưa được cập nhật kiểu Aliases, nên khi bắt buộc làm việc với hàm này các lập trình viên phải viết thủ công, khiến cho phần mã nguồn trở nên dư thừa. Còn đối với Class, nó luôn được mặc định là Class final và khi muốn nó trở thành định dạng Class thông thường, phải thực hiện thêm từ khóa Open.
Kotlin không thực hiện tự động ép kiểu với những dữ liệu thuộc dạng nguyên thủy. Cộng đồng hỗ trợ người dùng còn khá hạn chế. Giới thiệu về môi trường phát triển Android Studio: 1. Android Studio là gì? Android Studio là IDE chính thức được sử dụng trong phát triển ứng dụng Android dựa trên IntelliJ IDEA.
SVTH: Nguyễn Đăng Khoa 11 Xây dựng ứng dụng quản lý công việc của nhân viên tại công ty Lutech Chức năng chính của Android Studio là cung cấp các giao diện giúp người dùng có thể tạo các ứng dụng và xử lý các công cụ file phức tạp sau hậu trường. Ngôn ngữ lập trình được sử dụng trong Android Studio là Java và Kotlin, nó sẽ được cài đặt sẵn trên thiết bị của người dùng. Khi sử dụng Android Studio thì người dùng chỉ cần viết, chỉnh sửa và lưu trữ chúng trên các dự án của mình và các tệp nằm trong dự án đó. Đồng thời, Android Studio còn cung cấp quyền truy cập vào Android SDK.