TỔNG QUAN VỀ ĐỀ TÀI
Mục tiêu của đề tài
1.1.1 Bối cảnh chọn đề tài
Nghiên cứu khoa học đã chỉ ra rằng việc học nhạc từ nhỏ mang lại nhiều lợi ích cho trí thông minh, đặc biệt là ở trẻ em Do đó, nhu cầu học nhạc ngày càng gia tăng, nhưng việc tiếp cận âm nhạc một cách hiệu quả không hề đơn giản Để học âm nhạc một cách khoa học, cần có phương pháp và giáo trình phù hợp, cùng với việc đầu tư vào thiết bị âm nhạc Trong bối cảnh Việt Nam sắp phổ cập smartphone giá rẻ và cho phép học sinh sử dụng điện thoại trong lớp, đây là cơ hội để nhiều người tiếp cận công nghệ Ứng dụng luyện đàn trên Android sẽ cung cấp nền tảng học nhạc qua điện thoại, với hệ thống giáo trình từ cơ bản đến nâng cao, phù hợp cho mọi đối tượng, đặc biệt là trẻ nhỏ Ứng dụng còn tích hợp tính năng tương tác như thi đấu, chia sẻ và xếp hạng, tạo sự hấp dẫn cho người dùng.
1.1.2 Tính mới/ khác biệt về chức năng của đề tài so với một số ứng dụng thương mại điện tử hiện nay
Tìm hiểu một số ứng dụng chơi đàn piano phổ biến nhất hiện nay, nhóm nhận thấy:
- Một số hạn chế trong việc hiển thị bàn phím
Piano Tiles 2 là ứng dụng học đàn piano phổ biến với gameplay cải tiến và chất lượng âm thanh tuyệt vời Tuy nhiên, màn hình đứng chỉ hiển thị hai phím trên điện thoại và bốn phím trên iPad, đồng thời không cung cấp tên nốt nhạc hay hợp âm, điều này hạn chế khả năng hỗ trợ học đàn cho người dùng.
Magic Piano là ứng dụng hướng dẫn chơi piano qua màn hình ngang, giúp người dùng chơi nhạc bằng cách nhấn vào các đốm sáng Tuy nhiên, ứng dụng này không hiển thị bàn phím hay tên nốt nhạc, gây khó khăn cho việc học Ngược lại, ứng dụng HappyMusic cung cấp trải nghiệm học đàn tốt hơn với màn hình ngang, phân bố nốt nhạc hợp lý, bàn phím mô phỏng và hiển thị tên phím, giúp người mới nhanh chóng làm quen với vị trí nốt nhạc trên đàn.
- Một số hạn chế trong hệ thống hướng dẫn chơi nhạc:
Trong khi PianoTiles 2, Magic Piano và Perfect Piano không cung cấp hệ thống giáo trình học nhạc cho người dùng, ứng dụng HappyMusic lại xây dựng một hệ thống bài giảng cơ bản Ứng dụng này giúp người dùng nắm vững vị trí nốt nhạc, vị trí tay và các hợp âm từ cơ bản đến nâng cao, hỗ trợ hiệu quả cho quá trình học đàn piano.
- Một số hạn chế trong chức năng lưu lại bản nhạc
+PianoTiles 2, Magic Piano: Không có tính năng lưu lại bản nhạc đã chơi cho người dùng
Perfect Piano có tính năng lưu nhạc, nhưng chưa tối ưu vì còn lưu cả âm thanh bên ngoài Trong khi đó, ứng dụng HappyMusic phát triển thuật toán lưu bản nhạc thông minh, cho phép lưu theo từng nốt nhạc và phát lại âm thanh nốt nhạc mà người dùng đã chơi.
1.1.3 Mục đích của đề tài Ứng dụng luyện đàn HappyMusic chạy trên nền tảng android được thực hiện với các mục đích chính:
Để phát triển một ứng dụng di động phổ biến, cần chú trọng vào việc thiết kế giao diện thân thiện và dễ sử dụng cho trẻ em từ 6-12 tuổi, đồng thời đảm bảo ứng dụng có dung lượng nhẹ và hiệu suất hoạt động cao.
Phát triển một hệ thống bài học hướng dẫn giúp người dùng làm quen với phím và luyện tập chơi đàn, đồng thời tạo ra người chơi ảo để thi đấu với người dùng, nhằm nâng cao trải nghiệm người dùng.
Ứng dụng HappyMusic được phát triển nhằm tạo ra một môi trường học tập và giải trí bổ ích cho trẻ em, khơi dậy niềm đam mê âm nhạc và hỗ trợ những người không có điều kiện mua đàn hoặc tham gia khóa học có thể dễ dàng tiếp cận kiến thức và kỹ năng âm nhạc Bên cạnh đó, ứng dụng còn nhắm đến việc gia nhập thị trường trò chơi, cung cấp những trò chơi bổ ích để cạnh tranh với các trò chơi không lành mạnh cho giới trẻ.
1.1.5 Nhiệm vụ của đề tài Đề tài xây dựng ứng dụng luyện đàn trên android có các nhiệm vụ:
- Xây dựng ứng dụng android với các tính năng cơ bản như chơi nhạc, hướng dẫn chơi nhạc, lưu bài nhạc
- Xây dựng hệ thống các bài học từ cơ bản tới nâng cao
- Xây dựng các tính năng mang tính tương tác cao với người dùng như like, share, xếp hạng, chấm điểm
- Tạo ra người chơi ảo để tang trải nghiệm người dung
- Tạo giao diện dễ sử dụng và hình ảnh phù hợp với lứa tuổi 6-12.
Phạm vi nghiên cứu
- Về nhạc lý: nhạc lý cơ bản đến nâng cao để xây dựng hệ thống bài giảng cho tính năng hướng dẫn chơi nhạc
Các kiến thức về nốt nhạc: vị trí nốt, vị trí bàn tay trên phím đàn
Các kiến thức về hợp âm: hợp âm trưởng, hợp âm thứ, hợp âm 7
Các bản nhạc đơn giản đến phức tạp để người dùng luyện tập
Các kiến thức quan trọng trong android để lập trình ứng dụng như: Network, File, service, room, retrofit, …
Các design pattern như MVVM, Singleton, … và xây dựng ứng dụng theo hướng đối tượng
Cách design UI-UX phù hợp với mục tiêu của ứng dụng
Firebase để lưu trữ thông tin user, xếp hạng, lưu trữ các bài nhạc
Đối tượng nghiên cứu
- Cách thiết kế bài giảng
- Các kỹ thuật lập trình ứng dụng android
- Cách thiết kế giao diện
- Đối tượng đề tài hướng đến: lứa tuổi 6-12
Phương pháp nghiên cứu
- Phương pháp phân tích và tổng hợp lý thuyết:
Nhóm đã áp dụng phương pháp tìm kiếm và tổng hợp tài liệu cần thiết cho đồ án, bao gồm kiến thức nhạc lý và công nghệ liên quan để thực hiện các chức năng dự kiến.
- Phương pháp phân tích và tổng hợp kinh nghiệm:
Nhóm đã áp dụng phương pháp nghiên cứu để đánh giá các ứng dụng chơi đàn piano hiện có trên thị trường Qua đó, nhóm tổng hợp được những ưu điểm và hạn chế của các ứng dụng này nhằm phục vụ cho đồ án của mình.
Nhóm đã áp dụng phương pháp này vào phiên bản trước của đồ án để đánh giá, rút ra kinh nghiệm và tiếp tục phát triển ứng dụng luyện đàn trên nền tảng Android.
Kết quả dự kiến
Sau khi xác định đề tài và tiến hành nghiên cứu thực tế, nhóm đã phát triển ý tưởng thiết kế ứng dụng luyện đàn với những mục tiêu rõ ràng.
- Người dùng có thể học đàn trên ứng dụng luyện đàn bằng tính năng hướng dẫn chơi nhạc với hệ thống bài giảng từ cơ bản đến nâng cao
- Người dùng có thể chơi tự do sáng tác bản nhạc của mình và lưu, phát lại bản nhạc đó trên ứng dụng
Người dùng có thể thoải mái thưởng thức các bản nhạc trong danh sách có sẵn trong hệ thống hoặc tải về những bản nhạc mới sau khi đã đăng nhập.
- Người dùng có thể sử dụng tính năng like, chia sẻ lên facebook bản nhạc hay là điểm đạt được
- Tính năng chấm điểm và xếp hạng sẽ được xây dựng để gợi sự hứng thú cho người dùng
Cấu trúc đồ án
Báo cáo này được trình bày với cấu trúc như sau:
Chương 1: Giới thiệu tổng quan về đề tài, nghiên cứu các dự án hiện có trên hiện trường, phạm vi nghiên cứu và phương pháp nghiên cứu
– Chương 2: Giới thiệu về các công nghệ, kỹ thuật ứng dụng trong đề tài xây dựng ứng dụng luyện đàn trên android này
– Chương 3: Đưa ra các đặc tả yêu cầu và phân tích hệ thống, thiết kế các kiến trúc và mô hình cần thiết cho toàn bộ hệ thống
– Chương 4: Trình bày tổng quan về ứng dụng luyện đàn trên android, giới thiệu giao diện ứng dụng và cách cài đặt sử dụng ứng dụng
Chương 5 tổng kết đồ án, nêu rõ những thành tựu đạt được trong quá trình xây dựng và phát triển đề tài Bên cạnh đó, nhóm cũng chỉ ra những thiếu sót trong quá trình thực hiện Từ những nhận định này, chúng tôi đưa ra các giải pháp khắc phục và định hướng phát triển tiếp theo cho ứng dụng luyện đàn trên Android.
CƠ SỞ LÝ THUYẾT
Android Studio
2.1.1 Giới thiệu hệ điều hành Android
Hệ điều hành Android, được phát triển dựa trên nền tảng Linux phiên bản 2.6, là một hệ điều hành di động mạnh mẽ và mã nguồn mở, được Google mua lại vào năm 2005 Với tính năng bảo mật cao và khả năng hỗ trợ nhiều công nghệ tiên tiến như 3G, GPS, EDGE và Wifi, Android tương thích với nhiều loại phần cứng và thiết bị nhập dữ liệu như bàn phím, cảm ứng và trackball Đặc biệt, Android có khả năng kết nối cao với các mạng không dây, giúp người dùng dễ dàng truy cập thông tin và dịch vụ trực tuyến.
Hệ điều hành Android hỗ trợ công nghệ OpenGL, cho phép chơi media và trình diễn đồ họa xuất sắc, là nền tảng cho các ứng dụng phức tạp như trò chơi Năm 2008, Android mở mã nguồn, cho phép các hãng điện thoại tùy chỉnh và thiết kế hệ điều hành miễn phí, giúp tiết kiệm chi phí phát triển Google không thu phí từ các nhà sản xuất, nhưng thông qua Android, các dịch vụ như Google Search và Google Maps dễ dàng tiếp cận thị trường di động, từ đó tạo ra doanh thu chủ yếu từ quảng cáo.
Android Studio là môi trường phát triển tích hợp (IDE) miễn phí do Google cung cấp cho các nhà phát triển ứng dụng Android Dựa trên IntelliJ IDEA, một trong những IDE tốt nhất cho Java, Android Studio mang đến trải nghiệm phát triển ứng dụng tối ưu Đây là lựa chọn hàng đầu cho việc phát triển ứng dụng trên nền tảng Android.
- Cách Download và cài đặt Android Studio
- Sơ lược về sử dụng Android Studio Một số yêu cầu cấu hình lưu ý trước khi cài đặt:
Microsoft® Windows® 8/7/Vista (32 or 64-bit)
Còn trống 400 MB dung lượng ổ cứng + Ít nhất 1 G cho Android SDK, hình ảnh hệ thống giả lập và bộ nhớ cache
Độ phân giải tối thiếu 1366 x 768
Lựa chọn thêm cho accelerated emulator: Intel® processor with support for Intel® VT-x, Intel® EM64T (Intel® 64), and Execute Disable (XD) Bit functionality
2.1.3 Cài đặt môi trường lập trình Android
Bước 1: Tải file cài đặt từ đường dẫn http://www.oracle.com/technetwork/java/javase/downloads/index.html
Lưu ý: Chọn phiên bản tương ứng với hệ diều hành đúng với máy đang sử dụng
Bước 2: Mở file cài đặt “jdk-*.exe” để tiến hành cài đặt
Bước 3: Cấu hình biến môi trường cho Java là một bước không bắt buộc, nhưng rất cần thiết nếu máy tính của bạn cài đặt nhiều phiên bản Java Việc này giúp xác định phiên bản Java mặc định được sử dụng.
FireBase
Firebase là một dịch vụ hệ thống backend được Google cung cấp sẵn cho ứng dụng
Với Firebase, bạn có thể rút ngắn thời gian phát triển, triển khai và mở rộng quy mô ứng dụng di động của mình, hỗ trợ cả hai nền tảng Android và iOS Firebase là một dịch vụ mạnh mẽ, đa năng và bảo mật, là lựa chọn cần thiết để xây dựng ứng dụng phục vụ hàng triệu người dùng Sử dụng Firebase mang lại nhiều lợi ích vượt trội cho quá trình phát triển ứng dụng của bạn.
Firebase giúp bạn xây dựng ứng dụng nhanh chóng mà không cần tốn thời gian và nhân lực cho việc quản lý hệ thống và cơ sở hạ tầng Với các chức năng như phân tích, cơ sở dữ liệu, báo cáo hoạt động và báo cáo sự cố, Firebase hỗ trợ bạn dễ dàng phát triển và định hướng ứng dụng, mang lại trải nghiệm tốt nhất cho người sử dụng.
Firebase, được Google hỗ trợ và cung cấp, đảm bảo uy tín và chất lượng với hạ tầng phần cứng toàn cầu Nền tảng này được tin dùng bởi nhiều tập đoàn lớn và ứng dụng với hàng triệu người dùng.
Quản lý cấu hình và trải nghiệm ứng dụng Firebase được tập trung trong một giao diện website đơn giản, cho phép các ứng dụng hoạt động độc lập nhưng vẫn liên kết chặt chẽ với dữ liệu phân tích.
2.2.2 Tổng quan các dịch vụ mà Firebase cung cấp:
Firebase cung cấp cho chúng ta 2 nhóm sản phẩm chính tập trung vào 2 đối tượng là:
Develop & test your app: phát triển và kiểm thử các ứng dụng được thiết kế
Grow & engage your audience: Phân tích dữ liệu và tối ưu hóa trải nghiệm đối với người dùng
2.2.3 Nhóm công cụ Develop & test your app
Realtime Database cho phép lưu trữ và đồng bộ dữ liệu người dùng trong thời gian thực, giúp các ứng dụng lấy và lưu dữ liệu từ máy chủ ngay lập tức Dữ liệu được quản lý trong hệ thống NoSQL trên nền tảng máy chủ Cloud, với thời gian ghi và đọc chỉ tính bằng mili giây Nền tảng này còn hỗ trợ đồng bộ hóa dữ liệu ngay cả khi không có kết nối mạng, mang đến trải nghiệm mượt mà cho người dùng bất chấp tình trạng internet.
Database của Firebase hổ trợ: android, ios, web, c++, unity, và cả xamarin
Crashlytics là một hệ thống theo dõi và lưu trữ thông tin lỗi của ứng dụng trên thiết bị người dùng Nó thu thập dữ liệu lỗi một cách toàn diện và ngay lập tức, cung cấp báo cáo trực quan giúp các nhà phát triển nắm bắt và xử lý kịp thời các lỗi chính trong ứng dụng Cách trình bày thông tin hợp lý theo từng chu trình hoạt động đến khi xảy ra lỗi giúp cải thiện hiệu suất và độ ổn định của ứng dụng.
Cloud Firestore là giải pháp lưu trữ và đồng bộ dữ liệu toàn cầu, sử dụng cơ sở dữ liệu noSQL trên hạ tầng cloud Nó cung cấp tính năng đồng bộ hóa trực tuyến và ngoại tuyến, cùng với khả năng truy vấn dữ liệu hiệu quả Việc tích hợp với các sản phẩm Firebase khác giúp bạn phát triển ứng dụng mượt mà, ngay cả khi kết nối internet bị gián đoạn.
Firebase Auth cung cấp giải pháp xác thực người dùng an toàn và đơn giản, hỗ trợ nhiều phương pháp như email và mật khẩu, cũng như tích hợp với các nhà cung cấp bên thứ ba như Google và Facebook Người dùng có thể xây dựng giao diện tùy chỉnh hoặc sử dụng mã nguồn mở để tạo trải nghiệm người dùng hoàn hảo.
Cloud Functions cho phép bạn mở rộng ứng dụng của mình với mã phụ trợ tùy chỉnh mà không cần phải quản lý hay quy mô máy chủ Các chức năng này có thể được kích hoạt bởi các sự kiện từ sản phẩm Firebase, dịch vụ Google Cloud hoặc các bên thứ ba thông qua webhooks.
Cloud Storage của Google cung cấp giải pháp lưu trữ và chia sẻ nội dung do người dùng tạo ra như hình ảnh, âm thanh và video với khả năng mở rộng, đơn giản và tiết kiệm chi phí Các SDK Firebase cho Cloud Storage tích hợp tính năng bảo mật của Google, cho phép người dùng tải lên và tải xuống tệp cho các ứng dụng Firebase một cách dễ dàng, bất kể chất lượng mạng.
Đơn giản hóa lưu trữ web của bạn với các công cụ tối ưu cho ứng dụng web hiện đại Khi bạn tải lên nội dung, chúng tôi tự động phân phối đến CDN toàn cầu và cung cấp chứng chỉ SSL miễn phí, đảm bảo trải nghiệm an toàn, đáng tin cậy và độ trễ thấp cho người dùng ở bất kỳ đâu.
Firebase Test Lab cho Android cho phép bạn chạy thử nghiệm tự động và tùy chỉnh ứng dụng trên các thiết bị ảo và vật lý do Google cung cấp Sử dụng Test Lab trong suốt vòng đời phát triển giúp phát hiện lỗi và sự không nhất quán, từ đó đảm bảo mang đến trải nghiệm người dùng tuyệt vời trên nhiều thiết bị khác nhau.
Giám sát hiệu suất là công cụ quan trọng để chẩn đoán các vấn đề về hiệu suất ứng dụng trên thiết bị của người dùng Bằng cách sử dụng dấu vết, bạn có thể theo dõi hiệu suất của các phần cụ thể trong ứng dụng và xem tổng quan trong bảng điều khiển Firebase Hệ thống cũng cho phép bạn cập nhật thời gian khởi động của ứng dụng và theo dõi các yêu cầu HTTP mà không cần phải viết mã.
SQLite
SQLite là phần mềm quản lý cơ sở dữ liệu (DBMS) nhẹ và đơn giản, tương tự như MySQL hay PostgreSQL Với kích thước chỉ dưới 400kB, SQLite không cần cài đặt, cấu hình hay khởi động, cho phép người dùng sử dụng ngay lập tức Dữ liệu được lưu trữ trong một file duy nhất, và không có khái niệm về người dùng, mật khẩu hay quyền hạn trong cơ sở dữ liệu SQLite.
SQLite là lựa chọn lý tưởng cho các hệ thống quy mô vừa, phát huy hiệu quả với chức năng và tốc độ ổn định Nhờ vào những đặc điểm nổi bật, SQLite thường được sử dụng trong phát triển và thử nghiệm, đặc biệt phù hợp cho những người mới bắt đầu học về cơ sở dữ liệu.
SQLite Engine không hoạt động như một quy trình độc lập như các cơ sở dữ liệu khác; bạn có thể liên kết nó một cách tĩnh hoặc động tùy theo nhu cầu ứng dụng SQLite truy cập trực tiếp vào các tệp lưu trữ của nó.
Kiến thức nhạc lý
Có 7 nốt nhạc cơ bản, được ký hiệu bằng các chữ cái in hoa
- Do – Re cách nhau 1 cung
- Re – Mi cách nhau 1 cung
- Mi – Fa cách nhau 1/2 cung
- Fa – Sol cách nhau 1 cung
- Sol – La cách nhau 1 cung
- La – Si cách nhau 1 cung
- Si – Do cách nhau 1/2 cung
Đàn piano có tổng cộng 88 phím, bao gồm 52 phím trắng và 36 phím đen, tạo thành bảy quãng 8 1/3 Mỗi quãng 8 trên đàn piano chứa 12 phím, trong đó có 7 nốt trắng và 5 nốt đen.
Vị trí các phím trên đàn piano:
Trong đồ án này nhóm chỉ chọn mô phỏng 11 nốt trắng bởi vì các nguyên nhân sau:
Màn hình điện thoại Android không đủ lớn để hiển thị đầy đủ 88 phím của piano, vì nếu tất cả phím được vẽ trên màn hình, kích thước sẽ trở nên quá nhỏ, gây khó khăn trong việc sử dụng.
Ứng dụng này được thiết kế nhằm giúp người mới làm quen với phím đàn dễ dàng hơn Việc mô phỏng quá chi tiết có thể khiến người dùng cảm thấy không hứng thú và khó khăn trong việc tiếp cận.
2.4.2.1 Làm quen nốt nhạc trên khuôn nhạc có khóa Sol (sử dụng tay phải) và chơi bản nhạc đơn giản
Số ngón tay – vị trí bàn tay phải:
2.4.2.2 Làm quen nốt nhạc trên khuôn nhạc có khóa Fa (sử dụng tay trái) và chơi bản nhạc đơn giản
Số ngón tay – vị trí bàn tay trái:
2.4.2.3 Giới thiệu các hợp âm trưởng
2.4.2.3.1 Lý thuyết Hợp âm trưởng được kí hiệu bằng 1 chữ cái in hoa
- C (đô trưởng): Đô – Mi – Sol
- D (rê trưởng): Rê – Fa# – La
- E (mi trưởng): Mi – Sol# – Si
- F (fa trưởng): Fa – La – Đô
- G (sol trưởng): Sol – Si – Rê
- A (la trưởng): La – Đô# – Mi
- B (si trưởng): Si – Rê# – Fa#
Làm quen lần lượt các hợp âm trưởng và luyện tập phản xạ để thành thạo các hợp âm đó
2.4.2.4 Giới thiệu các hợp âm thứ
Hợp âm thứ được kí hiệu bằng 1 chữ cái in hoa kèm theo chữ “m” phía sau
- Cm (đô thứ): Đô – Mi (b) – Sol
- Dm (rê thứ): Rê – Fa – La
- Em (mi thứ): Mi – Sol – Si
- Fm (fa thứ): Fa – La(b) – Đô
- Gm (sol thứ): Sol – Si(b) – Rê
- Am (la thứ): La – Đô – Mi
- Bm (si thứ): Si – Rê – Fa#
Làm quen lần lượt các hợp âm trưởng và luyện tập phản xạ để thành thạo các hợp âm đó
2.4.2.5 Luyện tập đánh nhiều nốt hơn cho tay phải
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Mô tả lại bài toán
Chúng ta cần phát triển một ứng dụng học đàn piano trên hệ điều hành Android, nhằm giúp người dùng dễ dàng tiếp cận việc học đàn với chi phí và thời gian tiết kiệm Ứng dụng sẽ tích hợp các tính năng chính hỗ trợ tối ưu quá trình học tập.
1 Chức năng hướng dẫn chơi nhạc với hệ thống bài giảng trực quan từ cơ bản tới nâng cao giúp người dùng dễ dàng học tập
2 Chức năng chơi nhạc tự do cho phép người dùng có thể tự do sáng tác và lưu trữ lại những bản nhạc của mình
3 Chức năng like, share, download bản nhạc cho phép người dùng thể hiện sự yêu thích đối với bản nhạc, chia sẻ ứng dụng lên facebook và download bản nhạc khi muốn nghe hoặc chơi offline
4 Chức năng chấm điểm và xếp hạng với thuật toán thông minh tăng sự hứng thú cho người dùng khi sử dụng ứng dụng
5 Chức năng chơi với giả lập giúp người dùng ôn lại kiến thức đã học thông qua một cuộc cạnh tranh với máy tính tạo sự hứng thú, kích thích trí tò mò.
Phân tích
3.2.1 Sơ đồ lớp (phân tích)
3.2.2 Danh sách các lớp đối tượng và quan hệ
STT Tên lớp/quan hệ Loại Ý nghĩa/Ghi chú
1 Sound Âm thanh nốt nhạc
2 Song Thuộc tính của bản nhạc
3 LikeSong Bản nhạc đã thích
3.2.3 Mô tả chi tiết từng lớp đối tượng
3.2.3.1.1 Danh sách các thuộc tính
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
1 soundId int public ID âm thanh
2 songId int public ID bản nhạc
3 note int public Loại note nhạc
4 Duration long public Thời gian giới hạn của âm thanh
3.2.3.1.2 Danh sách các phương thức
STT Tên phương thức Kiểu trả về Ràng buộc Ý nghĩa/ghi chú
1 getNote() int public Lấy note
2 getDuration() long public Lấy thời gian giới hạn
3 setNote(int note) void public Gán note
4 setDuration(long duration) void public Gán thời gian giới hạn
3.2.3.2.1 Danh sách các thuộc tính
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
1 songId int public ID bản nhạc
2 sheet String public Sheet nhạc
3 songName String public Tên bản nhạc
4 songAuthor string public Tên tác giả
5 songDuration long public Thời gian của bản nhạc
3.2.3.2.2 Danh sách các phương thức
STT Tên phương thức Kiểu trả về Ràng buộc Ý nghĩa/ghi chú
1 toString string public Lấy tên và ID bản nhạc
Danh sách các thuộc tính
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
1 songId int public ID bản nhạc
2 songName String public Tên bản nhạc
Danh sách các thuộc tính
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
1 userId String public ID người dùng
2 email String public Email người dùng
3 name String public Tên người dùng
4 score int public Điểm của người dùng
3.2.3.5.1 Danh sách các thuộc tính
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
1 lessonId int public ID bài học
2 lessonName String public Tên bài học
3.2.3.5.2 Danh sách các phương thức
STT Tên phương thức Kiểu trả về Ràng buộc Ý nghĩa/ghi chú
1 toString string public Lấy tên và ID bài học
Kiến trúc hệ thống
3.3.1 Giới thiệu kiến trúc MVVM
Kiến trúc được chọn sử dụng cho phần mềm là kiến trúc MVVM, hướng modul, dễ kiểm thử, bảo trì và phát triển
Model: lớp truy cập dữ liệu (đại diện cho nội dung)
View: Bind tới các biến observable và các sự kiện của ViewModel một cách linh hoạt View bao gồm các tệp xml và các Activity/Fragment
ViewModel: ViewModel chịu trách nhiệm cập nhật dữ liệu cho Model và chuẩn bị dữ liệu Observable cần thiết cho View Tuy nhiên ViewModel không gắn với View
Ngoài ra: Repository giúp điều hướng truy cập data remote hay local Local data sử dụng Room Database, remote data lưu trên firebase
3.3.2 Triển khai kiến trúc trên ứng dụng
Mô hình usecase
3.4.1 Sơ đồ usecase tổng quát
STT Tên Actor Ý nghĩa/Ghi chú
1 User - Người dùng là người sử dụng ứng dụng được phép đăng nhập vào ứng dụng để sử dụng các chức năng:
- Chơi nhạc trên danh sách bản nhạc
- Thi đấu với máy tính
2 Admin - Là người quản lý hệ thống tài khoản người dùng, bảng xếp hạng
STT Tên usecase Ý nghĩa/Ghi chú
1 Use-case Đăng nhập - Chức năng đăng nhập để sử dụng nhiều tính năng hơn
3 Use-case Chơi nhạc theo danh sách có sẵn
- Chức năng hiển thị danh sách các bản nhạc để người dùng có thể lựa chọn bản nhạc mình thích để chơi hoặc nghe
6 Use-case Chơi nhạc theo bài học
- Chức năng hiển thị danh sách các bài học và các bản nhạc để người dùng có thể chơi hoặc nghe
9 Use-case Chơi nhạc tự do - Chức năng chơi nhạc tự do hỗ trợ ghi lại bản nhạc đã sáng tác
10 Use-case Thách đấu - Chức năng thi đấu với người chơi giả lập
11 Use-case Cài đặt - Chức năng cài đặt
14 Use-case Quản lý bản xếp hạng
- Chức năng xếp hạng người chơi
3.4.4.1 Đặc tả Use-case Đăng nhập Đăng nhập
Mô tả Cho phép người dùng đăng nhập vào ứng dụng
Người thực hiện Người dùng Điều kiện trước xử lý Ứng dụng khởi động thành công
Sau xử lý 1 Đăng nhập thành công: Thông báo đăng nhập thành công và cập nhật thông tin người dùng vào màn hình user
2 Đăng nhập thất bại: Thông báo “Tài khoản hoặc mật khẩu không chính xác”
Các bước thực hiện 1 Khi ứng dụng khởi động thành công, người dùng có nhu cầu đăng nhập chọn icon user để đăng nhập
2 Người dùng chọn loại tài khoản để đăng nhập (có 2 loại tài khoản là tài khoản facebook và tài khoản gmail )
4 Hệ thống thông báo đăng nhập thành công
Dòng sự kiện chính 1 Hệ thống hiển thị màn hình đăng nhập
2 Người dùng nhập username và password
Dòng sự kiện khác 1 Hệ thống kiểm tra tài khoản
2 Username hoặc password không đúng hệ thống hiển thị thông báo về sai tài khoản, mật khẩu cho người dùng
Yêu cầu đặc biệt Người dùng phải có tài khoản gmail hoặc facebook để đăng nhập Đăng xuất
Mô tả Cho phép người dùng đăng xuất tài khoản
Người thực hiện Người dùng Điều kiện trước xử lý Đăng nhập thành công
Sau xử lý Thông báo đăng xuất thành công và trở về trang user
Các bước thực hiện 1 Ở màn hình user người dùng chọn nút đăng xuất
Dòng sự kiện chính 1 Người dùng nhấn vào nút đăng xuất
2 Hệ thống đăng xuất tài khoản
Dòng sự kiện khác Không có
Yêu cầu đặc biệt Tài khoản phải đang đăng nhập
3.4.4.2 Đặc tả Use-case Chơi nhạc theo danh sách có sẵn
Tên Usecase Tải bản nhạc
Mô tả Cho phép người dùng tải bản nhạc để chơi offline
Người thực hiện Người dùng Điều kiện trước xử lý
1 Người dùng chọn button ListSong trên màn hình menu
2 Thiết bị sử dụng phải đang kết nối Internet
Sau xử lý 1 Tải bản nhạc thành công: Thông báo tải bản nhạc thành công và hiển thị bản nhạc trong danh sách bản nhạc đã tải
2 Tải bản nhạc thất bại: Thông báo không tải được bản nhạc
Các bước thực hiện 1 Người dùng chọn bản nhạc muốn tải trong danh sách bản nhạc
2 Nhấn vào icon tải bản nhạc
3 Hệ thống thông báo tải thành công
4 Hệ thống hiển thị bản nhạc vừa được tải trong danh sách bản nhạc đã tải
Dòng sự kiện chính 1 Hệ thống hiển thị danh sách bản nhạc online
2 Người dùng nhấn tải bản nhạc
3 Hệ thống báo tải bản nhạc thành công
4 Hệ thống hiển thị bản nhạc vào danh sách bản nhạc đã tải
Dòng sự kiện khác Không có
Yêu cầu đặc biệt Thiết bị sử dụng phải có kết nối Internet để hiển thị list nhạc online
Tên Usecase Like bản nhạc
Mô tả Cho phép người dùng like bản nhạc mình thích
Người thực hiện Người dùng Điều kiện trước xử lý
1 Người dùng chọn button ListSong trên màn hình menu
2 Hê thống đã hiển thị được danh sách bản nhạc
Sau xử lý 1 Like bản nhạc thành công: Thông báo đã like bản nhạc, hiển thị bản nhạc trong danh sách bản nhạc đã like
Các bước thực hiện 1 Người dùng chọn bản nhạc muốn like trong danh sách bản nhạc
2 Nhấn vào icon like bản nhạc
3 Hệ thống thông báo đa like bản nhạc
4 Hệ thống hiển thị bản nhạc vừa được tải trong danh sách bản nhạc đã like
Ngoại lệ (exception) Sau khi đã like người dùng có thể nhấn vào icon 1 lần nữa để bỏ like
Dòng sự kiện chính 1 Hệ thống hiển thị danh sách bản nhạc online
2 Người dùng nhấn like bản nhạc
3 Hệ thống báo đã like bản nhạc
4 Hệ thống hiển thị bản nhạc vào danh sách bản nhạc đã like
Dòng sự kiện khác Không có
Yêu cầu đặc biệt Thiết bị sử dụng phải có kết nối Internet để hiển thị list nhạc online
Chơi nhạc theo hướng dẫn
Tên Usecase Chơi nhạc theo hướng dẫn
Mô tả Cho phép người dùng chơi bản nhạc có hướng dẫn
Người thực hiện Người dùng Điều kiện trước xử lý
1 Người dùng chọn button ListSong trên màn hình menu
2 Người dùng chọn 1 bản nhạc trong danh sách
Sau xử lý Hiển thị dialog điểm
Các bước thực hiện 1 Người dùng chọn bản nhạc muốn chơi theo hướng dẫn trong danh sách bản nhạc
2 Nhấn vào icon chơi nhạc trong Dialog
3 Hệ thống hiển thị màn hình hướng dẫn chơi nhạc
4 Người dùng chơi nhạc theo hướng dẫn
5 Hệ thống hiển thị dialog điểm
Dòng sự kiện chính 1 Người dùng chọn bản nhạc để chơi
2 Hệ thống hiển thị Dialog
3 Người dùng nhấn vào chơi nhạc
4 Hiển thị màn hình hướng dẫn chơi nhạc
Dòng sự kiện khác 1 Hệ thống load dữ liệu bản nhạc để hướng dẫn chơi
2 Hệ thống tính toán điểm của người dùng
Yêu cầu đặc biệt Không có
Tên Usecase Nghe bản nhạc
Mô tả Cho phép người dùng nghe một bản nhạc đã chọn
Người thực hiện Người dùng Điều kiện trước xử lý
1 Người dùng chọn button ListSong trên màn hình menu
2 Người dùng chọn 1 bản nhạc trong danh sách
Sau xử lý Hiển thị màn hình nghe bản nhạc
Các bước thực hiện 1 Người dùng chọn bản nhạc muốn nghe trong danh sách bản nhạc
2 Nhấn vào icon nghe nhạc trong Dialog
3 Hệ thống hiển thị màn hình nghe bản nhạc
Dòng sự kiện chính 1 Người dùng chọn bản nhạc để nghe
2 Hệ thống hiển thị Dialog
3 Người dùng nhấn vào nghe nhạc
4 Hiển thị màn hình nghe bản nhạc
Dòng sự kiện khác 1 Hệ thống load dữ liệu bản nhạc để phát
Yêu cầu đặc biệt Không có
3.4.4.3 Đặc tả Use-case Chơi nhạc theo bài học
Chơi nhạc theo hướng dẫn
Tên Usecase Chơi nhạc theo hướng dẫn
Mô tả Cho phép người dùng chơi bản nhạc theo từng bài học có hướng dẫn
Người thực hiện Người dùng Điều kiện trước xử lý
1 Người dùng chọn button Lesson trên màn hình menu
2 Người dùng chọn 1 bản nhạc trong danh sách
Sau xử lý Hiển thị màn hình hướng dẫn chơi nhạc
Các bước thực hiện 1 Người dùng chọn bản nhạc muốn chơi theo hướng dẫn trong danh sách bản nhạc của từng bài học
2 Nhấn vào icon chơi nhạc trong Dialog
3 Hệ thống hiển thị màn hình hướng dẫn chơi nhạc
4 Người dùng chơi nhạc theo hướng dẫn
5 Hệ thống hiển thị dialog điểm
Dòng sự kiện chính 1 Người dùng chọn bản nhạc để chơi
2 Hệ thống hiển thị Dialog
3 Người dùng nhấn vào chơi nhạc
4 Hiển thị màn hình hướng dẫn chơi nhạc
5 Người dùng chơi nhạc theo hướng dẫn
Dòng sự kiện khác 1 Hệ thống load dữ liệu bản nhạc để hướng dẫn chơi
2 Hệ thống tính toán điểm của người chơi
Yêu cầu đặc biệt Không có
Tên Usecase Nghe bản nhạc
Mô tả Cho phép người dùng nghe một bản nhạc đã chọn trong danh sách bản nhạc của từng bài học
Người thực hiện Người dùng Điều kiện trước xử lý
Người dùng chọn 1 bản nhạc trong danh sách
Sau xử lý Hiển thị màn hình nghe bản nhạc
Các bước thực hiện 1 Người dùng chọn bản nhạc muốn nghe trong danh sách bản nhạc của từng bài học
2 Nhấn vào icon nghe nhạc trong Dialog
3 Hệ thống hiển thị màn hình nghe bản nhạc
Dòng sự kiện chính 1 Người dùng chọn bản nhạc để nghe
2 Hệ thống hiển thị Dialog
3 Người dùng nhấn vào nghe nhạc
4 Hiển thị màn hình nghe bản nhạc
Dòng sự kiện khác 1 Hệ thống load dữ liệu bản nhạc để phát
Yêu cầu đặc biệt Không có
3.3.4.4 Đặc tả Use-case Chơi nhạc tự do
Mô tả Cho phép người dùng chơi nhạc tự do
Người thực hiện Người dùng Điều kiện trước xử lý
Người dùng chọn button Instrument trên màn hình menu
Sau xử lý Hiển thị màn hình hướng dẫn chơi nhạc
Các bước thực hiện 1 Người dùng chọn button Instrument trên màn hình menu
2 Hệ thống hiển thị màn hình chơi nhạc tự do
Dòng sự kiện chính 1 Người dùng chọn button Instrument
2 Hệ thống hiển thị màn hình chơi nhạc
Dòng sự kiện khác Không có
Yêu cầu đặc biệt Không có
Tên Usecase Ghi bản nhạc
Mô tả Cho phép người dùng ghi lại bản nhạc mình đã sáng tác
Người thực hiện Người dùng Điều kiện trước xử lý
Người dùng chọn button Instrument trên màn hình menu
Sau xử lý 1 Ghi bản nhạc thành công: Thông báo đã lưu bản nhạc thành công và hiển thị bản nhạc trong danh sách bản nhạc đã lưu
Các bước thực hiện 1 Người dùng chọn button record để bắt đầu ghi lại bản nhạc
2 Người dùng nhấn vào button stop để dừng việc ghi là lưu bản nhạc
3 Hệ thống hiển thị dialog lưu
4 Người dùng đặt tên bản nhạc để lưu
6 Hệ thống thông báo đã lưu bản nhạc thành công và hiển thị bản nhạc ở danh sách bản nhạc đã lưu
Dòng sự kiện chính 1 Người dùng nhấn vào button record
2 Người dùng nhấn vào button stop
3 Hệ thống hiển thị dialog
4 Người dùng nhập tên bản nhạc
5 Người dùng chọn button Lưu
6 Hệ thống thông báo lưu bản nhạc thành công
Dòng sự kiện khác Không có
Yêu cầu đặc biệt Không có
3.4.4.5 Đặc tả Use-case Thách đấu
Mô tả Cho phép người dùng thi đấu với người chơi giả lập
Người thực hiện Người dùng Điều kiện trước xử lý
Người dùng chọn button Competition trên màn hình menu
Sau xử lý Hiển thị dialog kết quả
Các bước thực hiện 1 Người dùng chọn button Competition trên màn hình menu
2 Hệ thống hiển thị màn hình thi đấu
3 Người dùng thi đấu với giả lập
4 Hệ thống hiển thị dialog kết quả
Dòng sự kiện chính 1 Chọn button Competition
2 Hiển thị màn hình thi đấu
3 Người dùng tiến hành thi đấu
4 Hệ thống hiển thị dialog kết quả
Dòng sự kiện khác Không có
Yêu cầu đặc biệt Không có
3.4.4.6 Đặc tả Use-case Cài đặt
Tên Usecase Cài đặt ngôn ngữ
Mô tả Cho phép người dùng cài đặt ngôn ngữ ứng dụng
Người thực hiện Người dùng Điều kiện trước xử lý
Người dùng chọn button Setting trên màn hình menu
Sau xử lý Ngôn ngữ ứng dụng được cập nhật lại theo ngôn ngữ người dùng đã chọn
Các bước thực hiện 1 Người dùng chọn button Setting
2 Hệ thống hiển thị màn hình cài đặt
3 Người dùng nhấn vào button thay đổi ngôn ngữ
5 Hệ thống cập nhật thay đổi ngôn ngữ
Dòng sự kiện chính 1 Chọn button Setting
2 Hiển thị màn hình cài đặt
3 Nhấn button thay đổi ngôn ngữ
5 Hệ thống cập nhật thay đổi
Dòng sự kiện khác Hệ thống cập nhật lại ngôn ngữ cho ứng dụng
Yêu cầu đặc biệt Không có
Cài đặt bật/tắt nhạc nền
Tên Usecase Cài đặt bật/tắt nhạc nền
Mô tả Cho phép người dùng cài đặt bật/ tắt nhạc nền ứng dụng
Người thực hiện Người dùng Điều kiện trước xử lý
Người dùng chọn button Setting trên màn hình menu
Sau xử lý Cập nhật trạng thái bật/ tắt nhạc nền ứng dụng theo cài đặt của người dùng
Các bước thực hiện 1 Người dùng chọn button Setting
2 Hệ thống hiển thị màn hình cài đặt
3 Người dùng nhấn vào button để thay đổi trạng thái nhạc nền
4 Hệ thống cập nhật thay đổi trạng thái nhạc nền
Dòng sự kiện chính 1 Chọn button Setting
2 Hiển thị màn hình cài đặt
3 Nhấn button bật/ tắt nhạc nền
4 Hệ thống cập nhật thay đổi
Dòng sự kiện khác Hệ thống cập nhật lại trạng thái bật hoặc tắt nhạc nền cho ứng dụng
Yêu cầu đặc biệt Không có
Cài đặt bật/tắt âm thanh ứng dụng
Tên Usecase Cài đặt bật/tắt âm thanh ứng dụng
Mô tả Cho phép người dùng cài đặt bật/ tắt âm thanh khi nhấn vào cáo nút bấm trong ứng dụng
Người thực hiện Người dùng Điều kiện trước xử lý
Người dùng chọn button Setting trên màn hình menu
Sau xử lý Cập nhật trạng thái bật/ tắt âm thanh ứng dụng theo cài đặt của người dùng
Các bước thực hiện 5 Người dùng chọn button Setting
6 Hệ thống hiển thị màn hình cài đặt
7 Người dùng nhấn vào button để thay đổi trạng thái âm thanh ứng dụng
8 Hệ thống cập nhật thay đổi trạng thái âm thanh
Dòng sự kiện chính 5 Chọn button Setting
6 Hiển thị màn hình cài đặt
7 Nhấn button bật/ tắt âm thanh ứng dụng
8 Hệ thống cập nhật thay đổi
Dòng sự kiện khác Hệ thống cập nhật lại trạng thái bật hoặc tắt âm thanh khi nhấn vào các nút bấm cho ứng dụng
Yêu cầu đặc biệt Không có
3.4.4.7 Đặc tả Use-case Quản lý bảng xếp hạng
Quản lý bảng xếp hạng
Tên Usecase Quản lý bảng xếp hạng
Mô tả Cho phép admin xếp hạng người chơi
Người thực hiện Admin Điều kiện trước xử lý
Admin đã đăng nhập tài khoản admin
Sau xử lý Hiển thị bảng xếp hạng người chơi
Các bước thực hiện 1 Admin đăng nhập vào hệ thống
2 Thiết lập các tiêu chuẩn để xếp hạng
4 Hệ thống cập nhật bảng xếp hạng theo tiêu chuẩn xếp hạng
Dòng sự kiện chính 1 Thiết lập tiêu chuẩn
3 Hệ thống cập nhật bảng xếp hạng
Dòng sự kiện khác Hệ thống cập nhật lại bảng xếp hạng dựa trên tiêu chuẩn xếp hạng admin đã thiết lập
Yêu cầu đặc biệt Không có
Sequence Diagram
3.5.2 Sequence diagram Xem leader board
THIẾT KẾ DỮ LIỆU
Mô tả chi tiết các kiểu dữ liệu
STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú
1 SongId int Không null Id của bản nhạc
2 SongName string Tên bản nhạc
3 SongAuthor string Tên tác giả bản nhạc
STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú
1 SoundId String Không null Id của đoạn âm thanh
2 SongId String Id bản nhạc
3 Note int Mã nốt nhạc
4 Duration long Thời lượng đoạn âm thanh
4 SongDuration long Thời lượng bản nhạc
STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú
1 SongId String Không null Id của bản nhạc
2 SongName String Tên bản nhạc
3 RemoteId String Mã nốt nhạc
STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú
1 UserId string Không null Id của người dùng
2 Name string Id file nhạc đã lưu
3 Email string Email người dùng
4 Score string Điểm của người dùng
STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú
1 LessonId String Không null Id của bài học
2 LessonName String Tên bài học
3 Note int Mã nốt nhạc
4 Duration long Thời lượng đoạn âm thanh
THIẾT KẾ GIAO DIỆN
Danh sách các màn hình chính
STT Tên màn hình Ý nghĩa/Ghi chú
1 Màn hình SplashScreen Màn hình mở đầu của ứng dụng
Màn hình MainMenu của ứng dụng cho phép người dùng lựa chọn cách chơi nhạc, bao gồm các tùy chọn như hướng dẫn, chơi tự do, làm quen với nốt nhạc, hoặc thi đấu với giả lập.
3 Màn hình User Màn hình hiển thị thông tin người dùng sau khi đăng nhập
4 Màn hình Login Màn hình đăng nhập
Màn hình danh sách bài hát cung cấp các loại danh sách như danh sách tất cả bản nhạc, danh sách nhạc đã thích và danh sách bản nhạc đã tải xuống Người dùng có thể dễ dàng tìm kiếm và phát nhạc có hướng dẫn hoặc nghe các bản nhạc yêu thích của mình.
6 Màn hình Lesson Màn hình danh sách các bài học
7 Màn hình PlaySong Màn hình nghe nhạc
8 Màn hình Instruction Màn hình hướng dẫn làm quen nốt nhạc
9 Màn hình Instrument Màn hình chơi nhạc tự do và ghi lại bản nhạc
10 Màn hình Competition Màn hình thi đấu với giả lập
11 Màn hình Setting Màn hình cài đặt cấu hình ứng dụng
12 Màn hình LeaderBoard Màn hình bảng xếp hạng
Mô tả chi tiết mỗi màn hình
Mô tả cách sử dụng và xử lý trên màn hình
STT Tên Ý nghĩa Kiểu Giá trị mặc định Điều kiện
2 button_Login Mở màn hình
3 button_share_facebook Mở màn hình
7 buttonList song Mở màn hình
Mô tả cách sử dụng và xử lý trên màn hình
STT Tên Ý nghĩa Kiểu Giá trị mặc định Điều kiện
1 btn_sign_in Mở màn hình Login
Mô tả cách sử dụng và xử lý trên màn hình
STT Tên Ý nghĩa Kiểu Giá trị mặc định Điều kiện
1 btn_sign_in_with_google Mở màn hình đăng nhập với tài khoản google
2 Btn_sign_in_with_facebook Mở màn hình đăng nhập với tài khoản facebook
3 Btn_continue_as_guest Trở lại ứng dụng mà
Button Không Không không đăng nhập
Mô tả cách sử dụng và xử lý trên màn hình
STT Tên Ý nghĩa Kiểu Giá trị mặc định Điều kiện
1 recycleView Hiển thị danh sách bản nhạc
2 tab_layout Hiển thị cách danh sách bản nhạc
Mô tả cách sử dụng và xử lý trên màn hình
STT Tên Ý nghĩa Kiểu Giá trị mặc định Điều kiện
1 recycleView Hiển thị danh sách Lesson
2 buttonPlay Mở danh sách bản nhạc trong từng Lesson button Không Không
Mô tả cách sử dụng và xử lý trên màn hình
STT Tên Ý nghĩa Kiểu Giá trị mặc định Điều kiện
1 button_back Trở về màn hình main menu button Không Không
2 imageC Hiển thị nốt nhạc đang phát
3 imageD Hiển thị nốt nhạc đang phát
4 imageE Hiển thị nốt nhạc đang phát
5 imageF Hiển thị nốt nhạc đang phát
6 imageG Hiển thị nốt nhạc đang phát
7 imageA Hiển thị nốt nhạc đang phát
8 imageB Hiển thị nốt nhạc đang phát
9 imageC1 Hiển thị nốt nhạc đang phát
10 imageD1 Hiển thị nốt nhạc đang phát
11 imageE1 Hiển thị nốt nhạc đang phát
12 imageF1 Hiển thị nốt nhạc đang phát
13 btnC1 Phím đàn button Không Không
14 btnD1 Phím đàn button Không Không
15 btnE1 Phím đàn button Không Không
16 btnF1 Phím đàn button Không Không
17 btnG1 Phím đàn button Không Không
18 btnA1 Phím đàn button button Không Không
19 btnB1 Phím đàn button Không Không
20 btnC2 Phím đàn button Không Không
21 btnD2 Phím đàn button Không Không
22 btnE2 Phím đàn button Không Không
23 btnF2 Phím đàn button Không Không
24 txt_note Hiển thị số nốt nhạc
Mô tả cách sử dụng và xử lý trên màn hình
STT Tên Ý nghĩa Kiểu Giá trị mặc định Điều kiện
1 button_back Trở về màn hình main menu button Không Không
2 imageC Hướng dẫn nốt nhạc
3 imageD Hướng dẫn nốt nhạc
4 imageE Hướng dẫn nốt nhạc
5 imageF Hướng dẫn nốt nhạc
6 imageG Hướng dẫn nốt nhạc
7 imageA Hướng dẫn nốt nhạc
8 imageB Hướng dẫn nốt nhạc
9 imageC1 Hướng dẫn nốt nhạc
10 imageD1 Hướng dẫn nốt nhạc
11 imageE1 Hướng dẫn nốt nhạc
12 imageF1 Hướng dẫn nốt nhạc
13 btnC1 Phím đàn button Không Không
14 btnD1 Phím đàn button Không Không
15 btnE1 Phím đàn button Không Không
16 btnF1 Phím đàn button Không Không
17 btnG1 Phím đàn button Không Không
18 btnA1 Phím đàn button button Không Không
19 btnB1 Phím đàn button Không Không
20 btnC2 Phím đàn button Không Không
21 btnD2 Phím đàn button Không Không
22 btnE2 Phím đàn button Không Không
23 btnF2 Phím đàn button Không Không
24 txt_note Hiển thị số nốt nhạc cần chơi
Mô tả cách sử dụng và xử lý trên màn hình
STT Tên Ý nghĩa Kiểu Giá trị mặc định Điều kiện
1 button_back Trở về màn hình main menu button Không Không
2 button_record Lưu bản nhạc vừa chơi button Không Không
3 imageC1 Hiển thị nốt nhạc đang chơi
4 imageD1 Hiển thị nốt nhạc đang chơi
5 imageE1 Hiển thị nốt nhạc đang chơi
6 imageF1 Hiển thị nốt nhạc đang chơi
7 imageG1 Hiển thị nốt nhạc đang chơi
8 imageA1 Hiển thị nốt nhạc đang chơi
9 imageB1 Hiển thị nốt nhạc đang chơi
10 imageC2 Hiển thị nốt nhạc đang chơi
11 imageD2 Hiển thị nốt nhạc đang chơi
12 imageE2 Hiển thị nốt nhạc đang chơi
13 imageF2 Hiển thị nốt nhạc đang chơi
17 btnC1 Phím đàn button Không Không
18 btnD1 Phím đàn button Không Không
19 btnE1 Phím đàn button Không Không
20 btnF1 Phím đàn button Không Không
21 btnG1 Phím đàn button Không Không
22 btnA1 Phím đàn button Không Không
23 btnB1 Phím đàn button Không Không
24 btnC2 Phím đàn button Không Không
25 btnD2 Phím đàn button Không Không
26 btnE2 Phím đàn button Không Không
27 btnF2 Phím đàn button Không Không
31 txt_note Hiển thị số nốt nhạc đã chơi textview 0 Không
Mô tả cách sử dụng và xử lý trên màn hình
STT Tên Ý nghĩa Kiểu Giá trị mặc định Điều kiện
1 text_view_system_score Hiển thị số nốt còn lại của giả lập
2 text_view_your_score Hiển thị số nốt còn lại của người chơi
3 btnC1 Phím đàn Button Không Không
4 btnD1 Phím đàn Button Không Không
5 btnE1 Phím đàn Button Không Không
6 btnF1 Phím đàn Button Không Không
7 btnG1 Phím đàn Button Không Không
8 btnA1 Phím đàn Button Không Không
9 btnB1 Phím đàn Button Không Không
10 Btn_back Trở về Button Không Không màn hình menu
Mô tả cách sử dụng và xử lý trên màn hình
STT Tên Ý nghĩa Kiểu Giá trị mặc định Điều kiện
1 card_view_language Thay đổi ngôn ngữ ứng dụng
2 button_music Bật/Tắt nhạc nền imagebutton On Không
Mô tả cách sử dụng và xử lý trên màn hình
STT Tên Ý nghĩa Kiểu Giá trị mặc định Điều kiện
1 recycleView Hiển thị danh sách gồm tên và điểm của người dùng trên bảng xếp hạng điểm
Mô tả cách sử dụng và xử lý trên màn hình
STT Tên Ý nghĩa Kiểu Giá trị mặc định Điều kiện
1 Dialog_share Hiển thị màn hình chia sẻ thông tin lên facebook
Danh sách các màn hình phụ
Mô tả cách sử dụng và xử lí trên màn hình
STT Tên Ý nghĩa Kiểu Giá trị mặc định Điều kiện
1 button_cancel Trở về ImageButton Không Không
2 button_listentomusic Đến màn hình nghe nhạc
3 button_playsong Đến màn hình chơi nhạc có hướng dẫn
Mô tả cách sử dụng và xử lí trên màn hình
STT Tên Ý nghĩa Kiểu Giá trị mặc định Điều kiện
1 Button_cancel Trở về ImageButton Không Không
2 Button_replay Chơi lại bản nhạc
3 Image_button_share Chia sẻ điểm lên facebook
Mô tả cách sử dụng và xử lí trên màn hình
STT Tên Ý nghĩa Kiểu Giá trị mặc định Điều kiện
1 Button_cancel Hủy lưu ImageButton Không Không
2 Button_save Lưu lại bản nhạc vừa chơi
Button Không Tên bản nhạc không được để trống
Mô tả cách sử dụng và xử lý trên màn hình
STT Tên Ý nghĩa Kiểu Giá trị mặc định Điều kiện
1 Button_cancel Trở về ImageButton Không Không
2 Button_replay Chơi lại Button Không Không
3 Image_button_share Chia sẻ điểm lên facebook
4 text_view_score Hiển thị điểm của người chơi
Mô tả cách sử dụng và xử lý trên màn hình
STT Tên Ý nghĩa Kiểu Giá trị mặc định Điều kiện
1 Button_cancel Trở về ImageButton Không Không
2 Button_replay Chơi lại Button Không Không
3 Image_button_share Chia sẻ điểm lên facebook
4 text_view_score Hiển thị điểm của người chơi