Đây là báo cáo khoá luận tốt nghiệp với chủ đề lập trình ứng dụng họp trực tuyến trên mobile, sử dụng ngôn ngữ lập trình Dart, Flutter framework, Firebase (Authentication, Store, Realtime database...).
TÌM HIỂU HỆ ĐIỀU HÀNH ANDROID VÀ HỆ ĐIỀU HÀNH IOS
Hệ điều hành Android
1.1.1 Giới thiệu về hệ điều hành Android
Android là hệ điều hành dựa trên Linux, được thiết kế cho các thiết bị di động với màn hình cảm ứng như smartphone và tablet Ban đầu, Android được phát triển bởi Android Inc với sự hỗ trợ tài chính từ Google, và sau đó Google đã mua lại công ty này vào năm 2005.
Android được giới thiệu vào năm 2007, kèm theo việc thành lập Liên minh thiết bị cầm tay mở, bao gồm các công ty phần cứng, phần mềm và viễn thông, nhằm thúc đẩy tiêu chuẩn mở cho thiết bị di động Điện thoại đầu tiên sử dụng hệ điều hành Android đã được bán ra vào năm 2008.
Android là một hệ điều hành mã nguồn mở được Google phát hành theo Giấy phép Apache, cho phép các nhà phát triển tự do điều chỉnh và phân phối Sự linh hoạt này đã thu hút nhiều lập trình viên và nhà sản xuất thiết bị tham gia vào hệ sinh thái Android Bên cạnh đó, cộng đồng lập trình viên đông đảo đã phát triển hàng triệu ứng dụng, sử dụng ngôn ngữ lập trình Java sửa đổi để mở rộng chức năng cho các thiết bị Đến tháng 10 năm 2012, Android đã có khoảng 700.000 ứng dụng với ước tính 25 tỷ lượt tải từ Google Play, cửa hàng ứng dụng chính của hệ điều hành này.
Android đã trở thành nền tảng điện thoại thông minh phổ biến nhất thế giới từ quý 4 năm 2010, vượt qua Symbian OS nhờ vào tính năng nhẹ, khả năng tùy chỉnh và chi phí thấp, khiến các công ty công nghệ lựa chọn sử dụng thay vì phát triển hệ điều hành mới Mặc dù được thiết kế cho điện thoại và máy tính bảng, Android đã mở rộng ra các thiết bị như TV, máy chơi game và nhiều thiết bị điện tử khác Sự mở của Android khuyến khích nhiều lập trình viên và người đam mê tham gia vào việc phát triển các dự án mã nguồn mở, mang lại tính năng cao cấp cho người dùng yêu thích khám phá và tích hợp Android vào các thiết bị ban đầu chạy hệ điều hành khác.
Tính đến quý 2 năm 2017, Android chiếm 87,7% thị phần điện thoại thông minh toàn cầu, với 2 tỷ thiết bị được kích hoạt và 1,3 triệu lượt kích hoạt mỗi ngày Sự thành công vượt trội của hệ điều hành này đã khiến nó trở thành mục tiêu trong các vụ kiện liên quan đến bằng sáng chế, góp phần vào "cuộc chiến điện thoại thông minh" giữa các công ty công nghệ.
Android, Inc được thành lập vào tháng 10 năm 2003 tại Palo Alto, California bởi Andy Rubin, Rich Miner, Nick Sears và Chris White với mục tiêu phát triển "các thiết bị di động thông minh hơn có thể biết được vị trí và sở thích của người dùng" Mặc dù đội ngũ sáng lập có nhiều tên tuổi nổi bật, công ty hoạt động âm thầm và chỉ tiết lộ rằng họ đang phát triển phần mềm cho điện thoại di động Trong năm đầu tiên, Rubin gặp khó khăn về tài chính và được Steve Perlman, một người bạn thân, hỗ trợ 10.000 USD nhưng từ chối tham gia vào công ty.
Vào ngày 17 tháng 8 năm 2005, Google đã mua lại Android, Inc và biến công ty này thành một bộ phận của mình, với các nhân viên chủ chốt như Rubin, Miner và White tiếp tục làm việc tại đây Mặc dù thông tin về công ty lúc đó còn hạn chế, nhưng nhiều người dự đoán rằng Google có ý định tham gia vào thị trường điện thoại di động Nhóm do Rubin lãnh đạo tại Google đã phát triển một nền tảng di động dựa trên nhân Linux và quảng bá nó đến các nhà sản xuất điện thoại và nhà mạng, đồng thời có tin đồn về việc Google đang phát triển một thiết bị cầm tay mang thương hiệu của mình Một số tờ báo cũng cho biết Google đã trình diễn sản phẩm mẫu cho các nhà sản xuất và nhà mạng trong khi vẫn hoàn thiện các bản mô tả kỹ thuật Vào tháng 9 năm 2007, InformationWeek đã công bố một nghiên cứu từ Evalueserve cho thấy Google đã nộp nhiều đơn xin cấp bằng sáng chế trong lĩnh vực điện thoại di động.
Ngày 5 tháng 11 năm 2007, Liên minh thiết bị cầm tay mở (Open Handset Alliance), một hiệp hội bao gồm nhiều công ty trong đó có Texas Instruments, Tập đoàn Broadcom, Google, HTC, Intel, LG, Tập đoàn Marvell Technology, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel và T-Mobile được thành lập với mục đích phát triển các tiêu chuẩn mở cho thiết bị di động Cùng ngày, Android cũng được ra mắt với vai trò là sản phẩm đầu tiên của Liên minh, một nền tảng thiết bị di động được xây dựng trên nhân Linux phiên bản 2.6.Chiếc điện thoại chạy Android đầu tiên được bán ra là HTC Dream, phát hành ngày 22 tháng 10 năm 2008 Biểu trưng của hệ điều hành Android mới là một con robot màu xanh lá cây do hãng thiết kế Irina Blok tại California vẽ.
Kể từ năm 2008, hệ điều hành Android đã trải qua nhiều lần cập nhật, cải tiến và bổ sung tính năng mới, với mỗi phiên bản được đặt tên theo thứ tự bảng chữ cái và các món tráng miệng, như phiên bản 1.5 Cupcake Phiên bản mới nhất hiện nay là Android 12, ra mắt vào tháng 10 năm 2021 Năm 2010, Google giới thiệu dòng sản phẩm Nexus, bao gồm điện thoại thông minh và máy tính bảng chạy Android, với thiết bị đầu tiên là Nexus One do HTC sản xuất Sau đó, nhiều thiết bị khác như Nexus 4 và Nexus 10 cũng được ra mắt, do LG và Samsung sản xuất Google coi các thiết bị Nexus là mẫu thiết kế chủ lực cho Android, với các tính năng phần cứng và phần mềm tiên tiến nhất.
Hệ điều hành iOS
1.2.1 Giới thiệu về hệ điều hành iOS iOS (trước đây là iPhoneOS) là hệ điều hành trên các thiết bị di động của Apple. Đây là hệ điều hành chạy trên các sản phẩm iPhone, cũng như một số sản phẩm iPad không được hỗ trợ IPadOS, và iPod Touch và là hệ điều hành phổ biến thứ 2 trên toàn cầu, sau Android của Google.
Hệ điều hành này ban đầu được phát triển cho iPhone, được gọi là iPhone OS Sau đó, nó đã được mở rộng để tương thích với các thiết bị khác của Apple, bao gồm iPod Touch vào tháng 9 năm 2007 và máy tính bảng iPad từ tháng 1 năm 2010 đến tháng 9 năm 2010.
Tính đến tháng 1 năm 2017, App Store trên iOS có khoảng 2.2 triệu ứng dụng, trong đó 1 triệu ứng dụng dành riêng cho iPad, với tổng số lượt tải về đạt khoảng 130 tỷ Vào quý 4 năm 2010, khoảng 26% điện thoại thông minh sử dụng hệ điều hành iOS, đứng sau Android của Google và Symbian của Nokia về thị phần.
Giao diện người dùng của iOS được thiết kế thân thiện cho thao tác cảm ứng đa điểm và hỗ trợ bút stylus Apple Pencil trên iPad iOS cho phép người dùng thay đổi nhạc chuông và hình nền nhưng không hỗ trợ tùy chỉnh giao diện Nhiều nhà sản xuất Android, như Color OS và MIUI, đã tùy biến giao diện của họ để giống với iOS Hệ điều hành iOS nổi bật với những thông số và tính năng độc đáo, khác biệt hoàn toàn so với các hệ điều hành khác.
Phiên bản iOS 16, được thử nghiệm vào tháng 6 năm 2022 và chính thức phát hành vào cuối năm 2022, hỗ trợ cập nhật cho các thiết bị từ iPhone 8 trở lên.
1.2.2 Lịch sử phát triển bộ công cụ phát triển phần mềm cho iPhone và sẽ đưa nó đến "tay của các nhà phát triển vào tháng 2" Ngày 6 tháng 3 năm 2008, Apple đã phát hành bản dùng thử đầu tiên, cùng với một cái tên đầu tiên cho iOS, đó là "iPhone OS".
Tháng 6 năm 2010, Apple đổi tên iPhone OS thành iOS Tuy nhiên "iOS" đã được Cisco dùng để đặt tên cho hệ điều hành của mình trước đó Để tránh các tranh chấp bản quyền trong tương lai, Apple đã xin giấy phép sử dụng thương hiệu iOS từ Cisco, điều này giống với cách Apple đã mua thương hiệu "iPhone" để sử dụng cho điện thoại thông minh của mình.
Bài báo cáo gần đây của Tổ chức Ân xá Quốc tế về phần mềm gián điệp Pegasus đã gây chấn động dư luận, với Danna Ingleton, Phó giám đốc công nghệ, chỉ ra rằng NSO Group đã phá vỡ tính năng bảo mật của Apple Phân tích pháp y cho thấy phần mềm gián điệp này đã lây nhiễm thành công các mẫu iPhone 11 và iPhone 12 thông qua tấn công zero-click, khiến hàng nghìn iPhone có nguy cơ bị xâm phạm Đây là một mối lo ngại toàn cầu, cho thấy rằng ngay cả những "gã khổng lồ" công nghệ như Apple cũng không đủ khả năng đối phó với giám sát quy mô lớn.
Citizen Lab, một tổ chức nghiên cứu về bảo mật internet thuộc Đại học Toronto, đã công bố báo cáo cho thấy iPhone 12 Pro Max và iPhone SE2 sử dụng hệ điều hành iOS từ 14.0 trở lên vẫn không thể tránh khỏi sự tấn công của phần mềm gián điệp Pegasus.
Bill Marcza, nhà nghiên cứu cấp cao tại Citizen Lab, đã cảnh báo về vấn đề nghiêm trọng liên quan đến bảo mật trên iMessage của Apple Ông cho biết rằng hệ thống BlastDoor, được giới thiệu trong iOS 14 nhằm ngăn chặn các cuộc tấn công zero-click, không đủ hiệu quả để giải quyết vấn đề này.
Theo Washington Post, tháng trước, Claude Mangin, vợ của một nhà hoạt động chính trị bị giam giữ ở Morocco, đã nhận một tin nhắn lạ từ tài khoản Gmail "linakeller2203" trên chiếc iPhone 11 của mình Tin nhắn này không có âm thanh hay hình ảnh, nhưng đã lén lút vượt qua hệ thống bảo mật của Apple và xâm nhập vào thiết bị của cô.
Claude Mangin tin rằng thiết bị của Apple sẽ giúp cô tránh khỏi việc bị theo dõi, nhưng cả hai chiếc iPhone 11 và iPhone 6s mà cô sử dụng đều đã bị nhiễm mã độc Pegasus.
Hatice Cengiz, hôn thê của một phóng viên tờ Washington Post, đã phát hiện rằng iPhone của cô đã bị tấn công nhiều lần vào đầu tháng 10 năm 2018, thời điểm chồng chưa cưới của cô bị sát hại Trước đó, cô luôn tin rằng iPhone là thiết bị an toàn và không thể bị hack, cho đến khi nhận được kết quả pháp y từ Tổ chức Ân xá Quốc tế.
Nghiên cứu cho thấy iPhone đã bị nhiễm phần mềm gián điệp Pegasus nhiều lần trong những năm qua, điều này có thể ảnh hưởng tiêu cực đến danh tiếng của Apple, đặc biệt khi so sánh với đối thủ Google.
Tổ chức Ân xá Quốc tế đã tiến hành kiểm tra 67 smartphone, bao gồm 34 chiếc iPhone, để xác định sự ảnh hưởng của phần mềm gián điệp Pegasus Trong số này, 23 chiếc đã bị tấn công thành công, trong khi 11 chiếc khác cho thấy dấu hiệu bị xâm nhập nhưng chưa bị tấn công thành công.
Trong khi đó, chỉ có 3 trong số 15 chiếc điện thoại Android có dấu hiệu bị tấn công.
TÌM HIỂU MÔI TRƯỜNG LẬP TRÌNH VISUAL STUDIO CODE
Giới thiệu về Visual Studio Code
Visual Studio Code là trình soạn thảo mã nguồn miễn phí và mã nguồn mở do Microsoft phát triển, tương thích với Windows, Linux và macOS Nó tích hợp nhiều tính năng hữu ích như chức năng debug, hỗ trợ Git, cú pháp nổi bật, tự hoàn thành mã thông minh, và snippets Người dùng có thể tùy chỉnh giao diện, phím tắt và các tùy chọn khác để phù hợp với nhu cầu cá nhân.
Visual Studio Code là một ứng dụng mã nguồn mở dựa trên nền tảng Electron, cho phép phát triển các ứng dụng Node.js trên máy tính cá nhân với động cơ bố trí Blink Tuy nhiên, nó không phải là phiên bản khác của Atom mà được phát triển dựa trên trình biên tập Visual Studio Online, có tên mã là "Monaco".
Theo khảo sát năm 2018 trên Stack Overflow, Visual Studio Code đứng đầu danh sách các trình biên tập mã phổ biến nhất, với 34.9% trong số 75,398 người tham gia cho biết họ sử dụng công cụ này.
Lịch sử phát triển
Visual Studio Code được công bố, ra mắt phiên bản thử nghiệm vào ngày 29 tháng 4 năm 2015 bởi Microsoft tại hội nghị Build 2015.
Vào ngày 18 tháng 11 năm 2015, Visual Studio Code đã chính thức ra mắt với giấy phép MIT, đồng thời mã nguồn của nó cũng được công khai trên GitHub Ngày này cũng đánh dấu sự ra đời của chức năng tiện ích mở rộng (Extension) cho phần mềm.
Vào ngày 14 tháng 4 năm 2016 Visual Studio Code hoàn tất thử nghiệm và được phát hành chính thức.
Tính năng
Visual Studio Code hỗ trợ mở rộng thông qua các plugin, giúp tăng cường chức năng của trình biên tập và hỗ trợ nhiều ngôn ngữ lập trình Đặc biệt, tính năng tạo phần mở rộng cho phép phân tích mã thông qua các công cụ như linter và công cụ phân tích, nhờ vào giao thức Language Server Protocol.
Cài đặt Visual Studio Code
2.4.1 Tải tập tin cài đặt
Tải về tập tin cài đặt phù hợp với hệ điều hành đang sử dụng tại địa chỉ: https://code.visualstudio.com/Download
Hình 2.1:Download Visual Studio Code
2.4.2.1 Cài đặt trên hệ điều hành Windows
Bước 1: Mở tập tin cài đặt, nhấp I accept the agreement và nhấp nút Next
Hình 2.2: Cài đặt Visual Studio Code trên Windows (Bước 1)
Bước 2: Chọn nơi cài đặt Visual Studio Code và nhấp nút Next
Hình 2.3: Cài đặt Visual Studio Code trên Windows (Bước2)
Bước 3: Chọn Start menu folder Ở bước này, có thể tích chọn tạo thư mục hoặc không cho ứng dụng và nhấp nút Next
Hình 2.4: Cài đặt Visual Studio Code trên Windows (Bước 3)
Bước 4: Chọn Additional Tasks (Chức năng bổ sung) Ở bước này, có thể tích chọn thêm các chức năng hoặc không và nhấp nút Next.
Hình 2.5: Cài đặt Visual Studio Code trên Windows (Bước 4)
Bước 5: Tại đây, bạn cần xem xét lại các tùy chỉnh cài đặt của ứng dụng Bạn có thể nhấn nút Quay lại để điều chỉnh lại cài đặt hoặc nhấn nút Cài đặt để bắt đầu quá trình cài đặt.
Hình 2.6: Cài đặt Visual Studio Code trên Windows (Bước5)
Bước 6: Ở bước này, có thể tích để mở ứng dụng hoặc không trước khi nhấp Finish và nhấp Finish để kết thúc quá trình cài đặt ứng dụng.
Hình 2.7: Cài đặt Visual Studio Code trên Windows (Bước 6)
2.4.2.2 Cài đặt trên hệ điều hành MacOS
Để bắt đầu, hãy tải về tệp nén có định dạng *.zip Sau đó, mở tệp *.zip trong thư mục tải xuống để giải nén, và bạn sẽ nhận được tệp có định dạng *.app.
Hình 2.8: Cài đặt Visual Studio Code trên MacOS (Bước 1)
Để hoàn tất quá trình cài đặt ứng dụng Visual Studio Code, bạn cần di chuyển tập tin Visual Studio Code.app vào thư mục Applications Sau khi thực hiện bước này, ứng dụng sẽ ngay lập tức xuất hiện trên màn hình Launchpad.
Hình 2.9: Cài đặt Visual Studio Code trên MacOS (bước 2)
TÌM HIỂU NGÔN NGỮ LẬP TRÌNH DART
Giới thiệu về ngôn ngữ lập trình Dart
Dart là một ngôn ngữ lập trình web được phát triển bởi Google, chính thức ra mắt tại Hội thảo GOTO vào ngày 21 tháng 12 năm 2012 Mặc dù không nhằm thay thế JavaScript, Dart mang đến một lựa chọn hiện đại hơn cho việc lập trình trong trình duyệt web.
Dart được phát triển nhằm khắc phục các vấn đề của JavaScript mà không thể giải quyết chỉ bằng cách cải tiến ngôn ngữ, đồng thời cung cấp hiệu suất tốt hơn, khả năng mở rộng cho các dự án lớn và an ninh cao hơn Google hiện đang phát triển một IDE trên nền tảng điện toán đám mây mang tên Brightly, được coi là ứng dụng đầu tiên sử dụng Dart Họ cũng sẽ cung cấp trình biên dịch Dart thành mã ECMAScript 3 cho các trình duyệt không hỗ trợ Dart và cho phép chuyển mã typed Closure sang Dart Ngoài ra, Google dự kiến tích hợp máy ảo Dart vào Chrome và khuyến khích các đối thủ cạnh tranh thực hiện điều tương tự với trình duyệt của họ, với khả năng ra mắt máy ảo Dart và Dart Cross Compiler vào cuối năm 2011.
Một số đặc điểm của ngôn ngữ lập trình Dart
3.2.1 Biến và kiểu dữ liệu
Dart sử dụng từ khoá var để khai báo biến. var name = 'Dart';
Từ khoá final và const được sử dụng để khai báo hằng số (constants). void main() {
Dart hỗ trợ các kiểu dữ liệu dưới đây, chúng ta không cần thiết phải khai báo kiểu dữ liệu cho biến.
- Numbers − Được sử dụng cho số – Integer và Double.
- Strings − Được sử dụng cho chuỗi kí tự Giá trị của String được đặt trong dâu nháy đơn hoặc nháy kép.
- Booleans − Được sử dụng cho giá trị Boolean đúng và sai
- Lists và Maps − Được sử dụng cho nhóm đối tượng.
Không giống như các ngôn ngữ lập trình khác, Dart không hỗ trợ mảng (array).
3.2.2 Điều khiển và vòng lặp
Một khối điều khiển (decision making block) đánh giá một điều kiện trước khi hướng dẫn thực thi Dart hỗ trợ các khối lệnh If, If else và switch.
Vòng lặp trong Dart cho phép lặp lại một khối lệnh cho đến khi điều kiện nhất định được thỏa mãn Ngôn ngữ lập trình này hỗ trợ các loại vòng lặp như for in, while và do while.
Ví dụ đoạn code hiển thị các số từ 1 đến 10: void main() { for(var i = 1; i