Chương 1 CƠ SỞ LÝ THUYẾT 1. Giới thiệu về hệ điều hành Android - Android là một hệ điều hành di động được phát triển bởi Google, và được sử dụng phổ biến trên các thiết bị di động như điện thoại thông minh, máy tính bảng, đồng hồ thông minh, TV thông minh và các thiết bị IoT. Hệ điều hành này được xây dựng trên nền tảng Linux và thiết kế để hỗ trợ đa nền tảng, cho phép các nhà phát triển tạo ra các ứng dụng và trò chơi dễ dàng cho nhiều loại thiết bị. - Một trong những đặc điểm nổi bật của Android là tính mở và đa dạng của nó.
Android được phát triển dưới dạng phần mềm mã nguồn mở, cho phép nhà phát triển trên toàn thế giới có thể truy cập và sửa đổi mã nguồn của nó. Điều này làm tăng tính đa dạng và linh hoạt của hệ điều hành này, đồng thời giúp các nhà phát triển tạo ra các ứng dụng và trò chơi phong phú và đa dạng. - Android cũng cung cấp một nền tảng phát triển mạnh mẽ và linh hoạt cho các nhà phát triển. Các ứng dụng và trò chơi Android được viết bằng các ngôn ngữ lập trình Java hoặc Kotlin, và sử dụng Android SDK (Software Development Kit) để tạo ra các ứng dụng và trò chơi.
Android cũng cung cấp một loạt các công cụ phát triển và tài liệu hữu ích cho các nhà phát triển, giúp họ tạo ra các ứng dụng và trò chơi chất lượng cao cho hệ điều hành này. - Với hàng tỷ thiết bị sử dụng Android trên toàn thế giới, hệ điều hành này đã trở thành một phần không thể thiếu của cuộc sống hiện đại, và cung cấp nhiều cơ hội cho các nhà phát triển và doanh nghiệp phát triển ứng dụng và trò chơi trên nền tảng này. Giới thiệu về ngôn ngữ lập trình Kotlin 1. Định nghĩa Kotlin - Kotlin là một dạng ngôn ngữ lập trình được thiết kế và chuẩn hóa dựa theo hệ thống quy tắc riêng.
Qua đó, người lập trình có thể thực hiện các chương trình mô tả để làm những công việc dành riêng cho các thiết bị điện tử mà do chính con người và thiết bị đó đều có thể hiểu được. SVTH: Lê Công Tùng 3 Xây dựng ứng dụng mạng xã hội trên hệ điều hành Android - Kotlin là một loại ngôn ngữ lập trình dạng tĩnh và được sử dụng dành cho những ứng dụng thuộc dạng đa nền tảng hiện đại. Hiện nay, người ta đã chính thức phát hành phiên bản 1.Kotlin và nó được tạo ra cũng như phát triển bởi các đội ngũ lập trình nằm trong nhóm JetBrains. Sự xuất hiện của ngôn ngữ lập trình Kotlin đã khiến cho ngôn ngữ Java trong Android bị “soán ngôi”.
- Từ đó, Kotlin trở thành một trong những ngôn ngữ thông dụng hơn với Android. Kotlin đã được thiết kế với khả năng tương tác cùng với Java code cũng như có thể khai thác những gì có ở bên trong Java Class Library. Từ đây, sẽ phát sinh định nghĩa Kotlin Android là gì? Hãy cùng tìm hiểu định nghĩa này nhé!Kotlin Android bạn có thể một cách đơn giản là một trong những ứng dụng của Android có khả năng sử dụng ngôn ngữ lập trình Kotlin. Sau khi trở thành ngôn ngữ lập trình cơ bản của Android vào năm 2019 thì Kotlin được Google hỗ trợ rất đầy đủ để có thể được tham gia đầy đủ vào các gói cài đặt của IDE để có thể thay thế cho trình biên dịch của Java dạng tiêu chuẩn.
Ưu điểm nổi bật của ngôn ngữ Kotlin - Không thể phủ nhận vai trò của Java đối với Android nói riêng và ngành công nghệ thông tin nói chung. Hiện nay, Java là một trong những ngôn ngữ lập trình được ưu tiên sử dụng khi các lập trình viên thực hiện các dự án Android nhưng nó vẫn tồn tại những hạn chế nhất định. Một trong những vấn đề lớn nhất còn tồn đọng ở Java là thiếu khả năng mở rộng cũng như không thể hỗ trợ tính năng cho các lập trình hàm. Mặc dù Java giới thiệu rằng sẽ mang lại những tính năng cho nhà phát triển như: biểu thức lambda, interface methods và những yếu tố lập trình hàm.
Tuy nhiên, tại Android thì Java mới chỉ có thể hỗ trợ một phần của các tính năng mà Java 8 cung cấp. Chính vì vậy, sự ra đời của Kotlin được các chuyên gia đánh giá là có thể khắc phục hoàn toàn mọi hạn chế mà Java không thực hiện được. Với các đặc tính đều được thừa hưởng từ Java nên bạn có thể sử dụng Kotlin cũng như khai thác được mọi nền tảng từ Java class Library hiện đang có. - Code ngắn gọn và dễ hiểu: Ngôn ngữ lập trình Kotlin được xây dựng bằng hệ thống code ít giúp lập trình viên dễ đọc, dễ viết và dễ làm việc cùng.
Những người mới bắt đầu đều có thể tiếp thu dễ dàng các kiến thức đặc thù của loại SVTH: Lê Công Tùng 4 Xây dựng ứng dụng mạng xã hội trên hệ điều hành Android ngôn ngữ này. Việc tối giản được số lượng code đã giúp cho Kotlin mang lại những trải nghiệm thú vị hơn cho người dùng so với các loại ngôn ngữ khác như Java. - Kotlin không bị lỗi NullPointerExcepton: Với những lập trình viên thì bạn có thể thấy rõ NullPointerException là 1 trong những lỗi thường xuyên xuất hiện trong các dự án được viết bằng ngôn ngữ lập trình Java. Lỗi NullPointerException sẽ xuất hiện ngay khi bạn gán giá trị null đến với một đối tượng nào đó, tuy nhiên khi truy xuất thì đối tượng này lại bị xuất hiện lỗi.
Khi chạy trên Android, nếu như bạn quên cập nhật đối tượng cho Java thì bạn sẽ nhận được log crash (dừng đột ngột) đã được báo cáo về hệ thống. Những lỗi NullPointerException .Kotlin đều được thiết kế để 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ựa vào cơ chế null-safety. Chính vì vậy, theo các chuyên gia thì việc sử dụng ngôn ngữ lập trình Kotlin sẽ trở nên an toàn hơn Java rất nhiều. Hạn chế của ngôn ngữ Kotlin - Song song với các ưu điểm trên thì ngôn ngữ lập trình Kotlin còn tồn tại những mặt hạn chế như sau: Chưa có kiểu Aliases Vì chưa có kiểu Aliases nên kiểu hàm vẫn còn phải viết thủ công nên phần mã nguồn sẽ bị thừa thãi.
Các mặc định class trong Kotlin là final. Bạn cần phải thêm từ khóa Open nếu như muốn class final trở thành class thông thường như trong Java. Đây chính là hạn chế có thể khiến cho các dự án có mã nguồn kết hợp giữa Kotlin và Java. Bởi vì một số Java Framework thường tự động bỏ qua từ khóa Final trong mã của Kotlin.
Điều này sẽ khiến cho Kotlin có thể chạy không đúng với ý đồ của lập trình viên. Cộng đồng hỗ trợ hạn chế. Mặc dù là ngôn ngữ có thể sử dụng được toàn bộ cũng như thư viện của Java nhưng theo nhiều lập trình viên thì phiên bản chính chủ vẫn tốt hơn. Kotlin sẽ 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.
SVTH: Lê Công Tùng 5 Xây dựng ứng dụng mạng xã hội trên hệ điều hành Android 1. Giới thiệu về Firebase 1. Khái niệm Firebase - Firebase là một nền tảng sở hữu bởi Google giúp chúng ta phát triển các ứng dụng di động và web. Họ cung cấp rất nhiều công cụ và dịch vụ tiện ích để phát triển ứng dụng nên một ứng dụng chất lượng.
Điều đó rút ngắn thời gian phát triển và giúp ứng dụng sớm ra mắt với người dùng. - Firebase cung cấp cho người dùng các dịch vụ cơ sở dữ liệu hoạt động trên nền tảng đám mây với hệ thống máy chủ cực kỳ mạnh mẽ của Google. Chức năng chính của firebase là giúp người dùng lập trình ứng dụng, phần mềm trên các nền tảng web, di động bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu. - Với Firebase, ta có thể tạo ra những ứng dụng real-time như app chat, cùng nhiều tính năng như xác thực người dùng, Cloud Messaging,… Ta có thể dùng Firebase giống như phần backend của app.
- Các dịch vụ của Firebase hoàn toàn miễn phí, tuy nhiên cần phải trả thêm tiền nếu muốn nâng cấp lên. Điều này ta nên cân nhắc nếu muốn xây dựng một ứng dụng lớn sử dụng phần backend là Firebase, vì cái giá khi muốn nâng cấp còn khá đắt đỏ so với việc xây dựng backend truyền thống.1: Ảnh minh hoạ Firebase SVTH: Lê Công Tùng 6 Xây dựng ứng dụng mạng xã hội trên hệ điều hành Android 1. Ưu điểm và hạn chế của Firebase 1. Ưu điểm - Tạo tài khoản và sử dụng dễ dàng: • Firebase cho phép người dùng đăng nhập bằng tài khoản Google đơn giản.
Gói Spark của Firebase miễn phí và cung cấp nhiều tính năng để giúp các nhà phát triển bắt đầu sử dụng. Khi yêu cầu ngày càng tăng, ta có thể chọn gói Blaze có trả phí với nhiều tính năng nâng cao hơn. - Tốc độ phát triển nhanh: • Firebase là một tùy chọn phát triển ứng dụng phù hợp có thể giúp các nhà phát triển tiết kiệm thời gian và giảm thời gian tiếp thị ứng dụng. Thông thường, mọi Developer cần có quyền truy cập vào Server và Host để tạo, bảo trì cơ sở dữ liệu và dịch vụ phụ trợ.
Do đó, cần có một Backend Developer và một Frontend Developer để xây dựng các ứng dụng. Tuy nhiên, việc này thường có thể dẫn đến lỗi và các vấn đề có thể gây ra sự cố ứng dụng và làm tăng chi phí phát triển. • Thông qua việc sử dụng Firebase và Firestore, Frontend Developer có thể quản lý, giảm thời gian cần thiết để hoàn thành tất cả công việc. - Có nhiều dịch vụ trong một nền tảng: • Firebase cũng cung cấp danh sách đầy đủ các sản phẩm để hỗ trợ các Developer trong quá trình phát triển.
Hai tùy chọn cơ sở dữ liệu là Firestore và Realtime Database của Firebase. Tương tự như vậy, Firebase cho phép thực hiện lưu trữ Cloud Media dễ dàng. Nó cũng cho phép phát triển ứng dụng không cần máy chủ thông qua việc tích hợp Cloud Functions. Firebase bao gồm toàn bộ chu trình phát triển ứng dụng.
Nền tảng này chứa các tính năng để xây dựng, phát hành và giám sát các ứng dụng. • Ngoài ra, là bước cuối cùng của chu trình phát triển ứng dụng, nó cung cấp các công cụ để thu hút người dùng và giữ họ sử dụng nó. Đây cũng là ưu điểm của Firebase mà mình đánh giá khá cao.