1. Trang chủ
  2. » Cao đẳng - Đại học

Xây dựng ứng dụng luyện đàn trên android

68 13 0

Đ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

Định dạng
Số trang 68
Dung lượng 2,79 MB

Cấu trúc

  • ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

  • TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

  • KHOA CÔNG NGHỆ PHẦN MỀM

  • CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI

    • 1.1 Mục tiêu của đề tài

      • 1.1.1 Bối cảnh chọn đề tài

      • 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

      • 1.1.3 Mục đích của đề tài

      • 1.1.4 Ý nghĩa của đề tài

      • 1.1.5 Nhiệm vụ của đề tài

    • 1.2 Phạm vi nghiên cứu

    • 1.3 Đối tượng nghiên cứu

    • 1.4 Phương pháp nghiên cứu

    • 1.5 Kết quả dự kiến

    • 1.6 Cấu trúc đồ án

  • CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

    • 2.1 Android Studio

      • 2.1.1 Giới thiệu hệ điều hành Android

      • 2.1.2 Giới thiệu Android studio

      • 2.1.3. Cài đặt môi trường lập trình Android

    • 2.2 FireBase

      • 2.2.1 Giới thiệu

      • 2.2.2. Tổng quan các dịch vụ mà Firebase cung cấp:

      • 2.2.3. Nhóm công cụ Develop & test your app

    • 2.3 SQLite

    • 2.4 Kiến thức nhạc lý

      • 2.4.1 Nhạc lý cơ bản

      • 2.4.2 Hướng dẫn thực hành

        • 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

          • 2.4.2.1.1 Lý thuyết

          • 2.4.2.1.2. Thực hành

        • 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

          • 2.4.2.2.1 Lý thuyết

          • 2.4.2.2.2. Thực hành

        • 2.4.2.3. Giới thiệu các hợp âm trưởng

          • 2.4.2.3.1 Lý thuyết

          • 2.4.2.3.2 Thực hành

        • 2.4.2.4. Giới thiệu các hợp âm thứ

          • 2.4.2.4.1. Lý thuyết

          • 2.4.2.4.2 Thực hành

        • 2.4.2.5 Luyện tập đánh nhiều nốt hơn cho tay phải

          • 2.4.2.5.1 Lý thuyết

          • 2.4.2.5.2 Thực hành

  • CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

    • 3.1 Mô tả lại bài toán

    • 3.2 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ệ

      • 3.2.3 Mô tả chi tiết từng lớp đối tượng

        • 3.2.3.1 Sound

        • 3.2.3.2 Song

        • 3.2.3.3 LikedSong

        • 3.2.3.4 User

        • 3.2.3.5 Lesson

    • 3.3 Kiến trúc hệ thống

      • 3.3.1 Giới thiệu kiến trúc MVVM

      • 3.3.2 Triển khai kiến trúc trên ứng dụng

    • 3.4 Mô hình usecase

      • 3.4.1 Sơ đồ usecase tổng quát

      • 3.4.2 Danh sách các Actor

      • 3.4.3 Danh sách các usecase

      • 3.4.4 Đặc tả usecase

        • 3.4.4.1 Đặc tả Use-case Đăng nhập

        • 3.4.4.2 Đặc tả Use-case Chơi nhạc theo danh sách có sẵn

        • 3.4.4.3 Đặc tả Use-case Chơi nhạc theo bài học

        • 3.3.4.4 Đặc tả Use-case Chơi nhạc tự do

        • 3.4.4.5 Đặc tả Use-case Thách đấu

        • 3.4.4.6 Đặc tả Use-case Cài đặt

        • 3.4.4.7 Đặc tả Use-case Quản lý bảng xếp hạng

    • 3.5 Sequence Diagram

      • 3.5.1 Sequence diagram Đăng nhập

      • 3.5.2 Sequence diagram Đăng xuất

      • 3.5.2 Sequence diagram Xem leader board

      • 3.5.4 Squence diagram Share

      • 3.5.5 Sequence diagram Download

  • CHƯƠNG 4: THIẾT KẾ DỮ LIỆU

    • 4.1 Cơ sở dữ liệu

    • 4.2 Mô tả chi tiết các kiểu dữ liệu

      • 4.2.1 Bảng Sound

      • 4.2.2 Bảng Song

      • 4.2.3 Bảng User

      • 4.2.4 Bảng Lesson

      • 4.2.5 Bảng LikedSong

  • CHƯƠNG 5: THIẾT KẾ GIAO DIỆN

    • 5.1 Danh sách các màn hình chính

    • 5.2 Mô tả chi tiết mỗi màn hình

      • 5.2.1 Màn hình Splash screen

      • 5.2.2 Màn hình MainMenu

      • 5.2.3 Màn hình User

      • 5.2.4 Màn hình Login

      • 5.2.5 Màn hình List songs

      • 5.2.6 Màn hình Lesson

      • 5.2.7 Màn hình PlaySong

      • 5.2.8 Màn hình Instruction

      • 5.2.9 Màn hình Instrument

      • 5.2.10 Màn hình Competition

      • 5.2.11 Màn hình Setting

      • 5.2.12 Màn hình Leaderboard

      • 5.2.13 Màn hình ShareFacebook

    • 5.3 Danh sách các màn hình phụ

      • 5.3.1 Dialog list songs

      • 5.3.2 Dialog congratulation

      • 5.3.3 Dialog save songs

      • 5.3.4 Dialog Win

      • 5.3.5 Dialog Game Over

  • CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

    • 6.1 Thuận lợi

    • 6.2. Khó khăn

    • 6.3. Kết quả đạt được

    • 6.4. Hướng phát triển

  • CHƯƠNG 7: TÀI LIỆU THAM KHẢO

Nội dung

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

Ngày đăng: 05/09/2021, 20:49

HÌNH ẢNH LIÊN QUAN

piano. Nếu toàn bộ 88key được vẽ hết lên màn hình điện thoại thì về mặt giao diện sẽ rất khó sử dụng do kích thước các phím sẽ rất nhỏ - Xây dựng ứng dụng luyện đàn trên android
piano. Nếu toàn bộ 88key được vẽ hết lên màn hình điện thoại thì về mặt giao diện sẽ rất khó sử dụng do kích thước các phím sẽ rất nhỏ (Trang 17)
3.4 Mô hình usecase - Xây dựng ứng dụng luyện đàn trên android
3.4 Mô hình usecase (Trang 31)
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  - Xây dựng ứng dụng luyện đàn trên android
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 (Trang 34)
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  - Xây dựng ứng dụng luyện đàn trên android
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 (Trang 35)
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  - Xây dựng ứng dụng luyện đàn trên android
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 (Trang 35)
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  - Xây dựng ứng dụng luyện đàn trên android
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 (Trang 36)
1. Người dùng chọn buttonLesson trên màn hình menu 2. Người dùng chọn 1 bản nhạc trong danh sách  - Xây dựng ứng dụng luyện đàn trên android
1. Người dùng chọn buttonLesson trên màn hình menu 2. Người dùng chọn 1 bản nhạc trong danh sách (Trang 37)
Sau xử lý Hiển thị màn hình hướng dẫn chơi nhạc. - Xây dựng ứng dụng luyện đàn trên android
au xử lý Hiển thị màn hình hướng dẫn chơi nhạc (Trang 37)
Các bước thực hiện 1. Người dùng chọn buttonCompetition trên màn hình menu 2. Hệ thống hiển thị màn hình thi đấu   - Xây dựng ứng dụng luyện đàn trên android
c bước thực hiện 1. Người dùng chọn buttonCompetition trên màn hình menu 2. Hệ thống hiển thị màn hình thi đấu (Trang 39)
Người dùng chọn buttonCompetition trên màn hình menu - Xây dựng ứng dụng luyện đàn trên android
g ười dùng chọn buttonCompetition trên màn hình menu (Trang 39)
Người dùng chọn button Setting trên màn hình menu - Xây dựng ứng dụng luyện đàn trên android
g ười dùng chọn button Setting trên màn hình menu (Trang 41)
4.2.1 Bảng Sound - Xây dựng ứng dụng luyện đàn trên android
4.2.1 Bảng Sound (Trang 46)
4.2.4 Bảng Lesson - Xây dựng ứng dụng luyện đàn trên android
4.2.4 Bảng Lesson (Trang 47)
5.2.3 Màn hình User - Xây dựng ứng dụng luyện đàn trên android
5.2.3 Màn hình User (Trang 50)
5.2.5 Màn hình List songs - Xây dựng ứng dụng luyện đàn trên android
5.2.5 Màn hình List songs (Trang 52)
 Màn hình - Xây dựng ứng dụng luyện đàn trên android
n hình (Trang 53)
 Mô tả cách sử dụng và xử lý trên màn hình - Xây dựng ứng dụng luyện đàn trên android
t ả cách sử dụng và xử lý trên màn hình (Trang 54)
5.2.8 Màn hình Instruction - Xây dựng ứng dụng luyện đàn trên android
5.2.8 Màn hình Instruction (Trang 55)
5.2.9 Màn hình Instrument - Xây dựng ứng dụng luyện đàn trên android
5.2.9 Màn hình Instrument (Trang 56)
 Màn hình - Xây dựng ứng dụng luyện đàn trên android
n hình (Trang 57)
5.2.10 Màn hình Competition - Xây dựng ứng dụng luyện đàn trên android
5.2.10 Màn hình Competition (Trang 58)
 Màn hình - Xây dựng ứng dụng luyện đàn trên android
n hình (Trang 59)
5.2.11 Màn hình Setting - Xây dựng ứng dụng luyện đàn trên android
5.2.11 Màn hình Setting (Trang 60)
 Mô tả cách sử dụng và xử lý trên màn hình - Xây dựng ứng dụng luyện đàn trên android
t ả cách sử dụng và xử lý trên màn hình (Trang 61)
 Màn hình - Xây dựng ứng dụng luyện đàn trên android
n hình (Trang 61)
 Mô tả cách sử dụng và xử lý trên màn hình - Xây dựng ứng dụng luyện đàn trên android
t ả cách sử dụng và xử lý trên màn hình (Trang 62)
5.3 Danh sách các màn hình phụ 5.3.1 Dialog list songs  - Xây dựng ứng dụng luyện đàn trên android
5.3 Danh sách các màn hình phụ 5.3.1 Dialog list songs (Trang 62)
 Mô tả cách sử dụng và xử lí trên màn hình - Xây dựng ứng dụng luyện đàn trên android
t ả cách sử dụng và xử lí trên màn hình (Trang 64)
 Màn hình - Xây dựng ứng dụng luyện đàn trên android
n hình (Trang 65)

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

TÀI LIỆU LIÊN QUAN

w