Tải bản đầy đủ (.pdf) (68 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.79 MB, 68 trang )

ĐẠ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
----------

BÁO CÁO ĐỒ ÁN 2

Đề tài : Xây dựng ứng dụng
luyện đàn trên Android.
Giảng viên hướng dẫn:

ThS. Trần Anh Dũng

Nhóm thực hiện:

17520688- Nguyễn Thị Mỹ Linh
17521149- Nguyễn Ngọc Trân

TP.Hồ Chí Minh, 08 tháng 01 năm 2021


Mục lục
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI ..................................................................... 6
1.1 Mục tiêu của đề tài ................................................................................................ 6
1.1.1 Bối cảnh chọn đề tài ........................................................................................ 6
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 ................................................................................................. 6
1.1.3 Mục đích của đề tài .......................................................................................... 7
1.1.4 Ý nghĩa của đề tài ............................................................................................ 7
1.1.5 Nhiệm vụ của đề tài ......................................................................................... 8
1.2 Phạm vi nghiên cứu ................................................................................................ 8


1.3

Đối tượng nghiên cứu ......................................................................................... 8

1.4

Phương pháp nghiên cứu .................................................................................... 9

1.5

Kết quả dự kiến .................................................................................................. 9

1.6

Cấu trúc đồ án .................................................................................................... 9

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT ............................................................................ 11
2.1 Android Studio ..................................................................................................... 11
2.1.1 Giới thiệu hệ điều hành Android .................................................................... 11
2.1.2 Giới thiệu Android studio .............................................................................. 11
2.1.3. Cài đặt mơi trường lập trình Android ............................................................ 12
2.2 FireBase ............................................................................................................... 12
2.2.1 Giới thiệu....................................................................................................... 12
2.2.2. Tổng quan các dịch vụ mà Firebase cung cấp: .............................................. 13
2.2.3. Nhóm cơng cụ Develop & test your app........................................................ 13
2.3 SQLite.................................................................................................................. 15
2.4

Kiến thức nhạc lý ............................................................................................. 15


2.4.1 Nhạc lý cơ bản ............................................................................................... 15
2.4.2 Hướng dẫn thực hành..................................................................................... 17
CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG ......................................... 25
3.1 Mơ tả lại bài tốn ................................................................................................. 25
3.2 Phân tích .............................................................................................................. 25


3.2.1 Sơ đồ lớp (phân tích) ..................................................................................... 25
3.2.2 Danh sách các lớp đối tượng và quan hệ ........................................................ 26
3.2.3 Mô tả chi tiết từng lớp đối tượng.................................................................... 26
3.3 Kiến trúc hệ thống ................................................................................................ 28
3.3.1 Giới thiệu kiến trúc MVVM........................................................................... 28
3.3.2 Triển khai kiến trúc trên ứng dụng ................................................................. 30
3.4 Mô hình usecase ................................................................................................... 31
3.4.1 Sơ đồ usecase tổng quát ................................................................................. 31
3.4.2 Danh sách các Actor ...................................................................................... 31
3.4.3 Danh sách các usecase ................................................................................... 32
3.4.4 Đặc tả usecase ............................................................................................... 32
3.4.4.1 Đặc tả Use-case Đăng nhập ..................................................................... 32
3.4.4.2 Đặc tả Use-case Chơi nhạc theo danh sách có sẵn ................................... 34
3.4.4.3 Đặc tả Use-case Chơi nhạc theo bài học .................................................. 36
3.3.4.4 Đặc tả Use-case Chơi nhạc tự do ............................................................. 38
3.4.4.5 Đặc tả Use-case Thách đấu...................................................................... 39
3.4.4.6 Đặc tả Use-case Cài đặt ........................................................................... 40
3.4.4.7 Đặc tả Use-case Quản lý bảng xếp hạng .................................................. 42
3.5

Sequence Diagram ............................................................................................ 42

3.5.1


Sequence diagram Đăng nhập .................................................................... 42

3.5.2 Sequence diagram Đăng xuất ......................................................................... 43
3.5.2

Sequence diagram Xem leader board ......................................................... 44

3.5.3

Sequence diagram Like .............................................................................. 44

3.5.4 Squence diagram Share .................................................................................. 44
3.5.5 Sequence diagram Download ......................................................................... 45
CHƯƠNG 4: THIẾT KẾ DỮ LIỆU ........................................................................... 46
4.1 Cơ sở dữ liệu ........................................................................................................ 46
4.2

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

4.2.1 Bảng Sound ................................................................................................... 46


4.2.2 Bảng Song ..................................................................................................... 46
4.2.3 Bảng User ...................................................................................................... 47
4.2.4 Bảng Lesson .................................................................................................. 47
4.2.5 Bảng LikedSong ............................................................................................ 47
CHƯƠNG 5: THIẾT KẾ GIAO DIỆN....................................................................... 48
5.1 Danh sách các màn hình chính ............................................................................. 48
5.2 Mơ tả chi tiết mỗi màn hình.................................................................................. 48

5.2.1 Màn hình Splash screen ................................................................................. 48
5.2.2 Màn hình MainMenu ..................................................................................... 49
5.2.3 Màn hình User ............................................................................................... 50
5.2.4 Màn hình Login ............................................................................................. 50
5.2.5 Màn hình List songs....................................................................................... 52
5.2.6 Màn hình Lesson ........................................................................................... 52
5.2.7 Màn hình PlaySong........................................................................................ 53
5.2.8 Màn hình Instruction ...................................................................................... 55
5.2.9 Màn hình Instrument ...................................................................................... 56
5.2.10 Màn hình Competition ................................................................................. 58
5.2.11 Màn hình Setting ......................................................................................... 60
5.2.12 Màn hình Leaderboard ................................................................................. 60
5.2.13 Màn hình ShareFacebook............................................................................. 61
5.3 Danh sách các màn hình phụ ................................................................................ 62
5.3.1 Dialog list songs ............................................................................................ 62
5.3.2 Dialog congratulation .................................................................................... 62
5.3.3 Dialog save songs .......................................................................................... 63
5.3.4 Dialog Win .................................................................................................... 64
5.3.5 Dialog Game Over ......................................................................................... 65
CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ............................................ 66
6.1 Thuận lợi.............................................................................................................. 66
6.2. Khó khăn............................................................................................................. 66


6.3. Kết quả đạt được ................................................................................................. 67
6.4. Hướng phát triển ................................................................................................. 67
CHƯƠNG 7: TÀI LIỆU THAM KHẢO .................................................................... 68


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
Khoa học đã chứng minh việc học nhạc từ bé rất có lợi cho trí thơng minh của con
người đặc biệt là trẻ nhỏ. Với lợi ích to lớn ấy, nhu cầu học nhạc trong xã hội hiện
nay ngày càng lớn, và bên cạnh đó tiếp cận âm nhạc như thế nào là đúng cách,
hiệu quả thì đó khơng phải là một vấn đề đơn giản chút nào. Để có thể tiếp cận
việc học âm nhạc một cách khoa học và hiệu quả thì cần phải có những phương
pháp khoa học và giáo trình phù hợp. Song song với đó việc đầu tư vào các thiết
bị âm nhạc một cách bài bản là một điều thiết yếu và khá tốn kém. Với việc trong
thời gian tới, Việt Nam sẽ phổ cập smartphone 500 ngàn đồng tới 100% dân số
(được nói đến trong Hội nghị giao ban Quản lý Nhà nước Quý 1/2020) và cho
phép học sinh sử dụng điện thoại trong lớp (theo thông tư 32/2020) thì đây là cơ
hội để phần lớn dân số có thể nhanh chóng sở hữu và làm quen với một chiếc
smartphone dễ dàng (phần lớn chạy hệ điều hàng android).
Ứng dụng luyện đàn trên Android cung cấp cho người dùng một nền tảng học tập
âm nhạc trên chính chiếc điện thoại của mình thơng qua tính năng hướng dẫn học
nhạc với hệ thống giáo trình học theo từng cấp độ từ đơn giản đến nâng cao. Các
bài học chủ yếu được xây dựng bằng những hình ảnh trực quan từ dễ đến khó
kèm theo luyện tập dành cho nhiều đối tượng người dùng đặt biệt là trẻ nhỏ cũng
có thể sử dụng. Khơng chỉ thế, ứng dụng cịn cung cấp một hệ thống mang tính
tương tác thực tế để mang lại sự hấp dẫn cho người dùng như: tính năng thi đấu,
like, chia sẻ, xếp hạ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à phần mềm học đàn piano được ưa chuộng nhất với lối chơi
cải tiến chất lượng âm thanh tuyệt vời nhưng màn hình đứng chỉ chứa được hai
phím trên điện thoại và bốn phím trên iPad và cũng không hiển thị tên nốt nhạc
hay hợp âm của bản nhạc đang chơi nên không thể hỗ trợ việc học đàn cho người
dùng.


+Magic Piano: là phần mềm hướng dẫn chơi đàn trên piano với màn hình
ngang, hướng dẫn người dùng chơi bản nhạc bằng cách nhấn vào các đốm sáng
trên màn hình. Nhưng ứng dụng này cũng khơng hiển thị bàn phím hay tên nốt
nhạc để hỗ trợ việc học đàn của người dùng.
Ứng dụng HappyMusic với màn hình ngang và phân bố số lượng nốt nhạc hợp
lý hỗ trợ trải nghiệm học đàn cho người dùng với bàn phím mơ phỏng piano và
thể hiện tên phím để cho người mới sử dụng có thể mau chóng làm quen với các
vị trí nốt nhạc ứng với phím đàn.
-

Một số hạn chế trong hệ thống hướng dẫn chơi nhạc:
+PianoTiles 2, Magic Piano hay Perfect Piano đều khơng xây dựng hệ thống
giáo trình học nhạc cho người dùng.
Ứng dụng HappyMusic xây dựng hệ thống các bài giảng cơ bản giúp người
dùng có nền tảng về vị trí nốt nhạc, vị trí tay, các hợp âm từ cơ bản tới nâng
cao để phục vụ 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ưng chưa được tối ưu lắm do cịn lưu cả

âm thanh bên ngồi.
Ứng dụng HappyMusic xây dựng thuật tốn lưu bản nhạc thơng minh, 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:
-

Tạo ra một ứng dụng di động phổ biến, ít tốn dung lượng, hiệu suất cao và giao
diện phù hợp với đối tượng chính là những người trong độ tuổi từ 6-12.

-

Phát triển một hệ thống các bài học hướng dẫn cho người dung làm quen với phím
cũng như luyện tập chơi đàn, tạo người chơi ảo để thi đấu với người dùng, tăng
tính trải nghiệm người dùng.
1.1.4 Ý nghĩa của đề tài
Việc xây dựng ứng dụng HappyMusic hướng tới tạo ra môi trường vừa học vừa
chơi bổ ích cho lứa trẻ, tăng hứng thú của trẻ với âm nhạc, giúp đỡ những người


khơng có điều kiện để mua đàn và tham gia các khóa học đàn có thể tiếp cận với
kiến thức và kỹ năng trong lĩnh vực này một cách dễ dàng hơn. Ngồi ra, ứng
dụng cịn hướng tới gia nhập thị trường trị chơi, nhưng là trị chơi bổ ích để cạnh
tranh với những trị chơi khơng tốt đối với những ngườ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.

1.2 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.

-


Về kỹ thuật:
 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

1.3 Đố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

1.4 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 đã vận dụng phương pháp này để tìm kiếm và tổng hợp những tài liệu cần
thiết cho việc thực hiện đồ án này, đó là những tài liệu về kiến thức nhạc lý, những
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 đã vẫn dụng phương pháp này để tham khảo, nhận xét về các ứng dụng
chơi đàn piano đã có trên thị trường hiện nay từ đó tổng hợp được những ưu điểm
cũng như hạn chế của các ứng dụng này phục vụ cho đồ án của mình.
+Phương pháp này cũng được nhóm áp dụng vào version trước của đồ án để xem
xét lại cũng như rút ra kinh nghiệm và phát triển tiếp ứng dụng luyện đàn trên
android.

1.5 Kết quả dự kiến
Sau khi xác định đề tài và nghiên cứu, tìm hiểu thực tế, nhóm đã xây dựng ý tưởng
thiết kế ứng dụng luyện đàn cần đạt được những mục tiêu sau:
-

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ể tự do chơi những bản nhạc trong danh sách bản nhạc có sẵn
trong hệ thống hoặc download 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

1.6 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 tồ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 về đồ án, nêu những việc đã đạt được qua quá trình xây dựng
và phát triển đề tài. Bên cạnh đó nêu ra những thiếu sót của nhóm. Từ đó đưa ra các
giải quyết và hướng phát triển tiếp theo cho ứng dụng luyện đàn trên android.



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
Giới thiệu chung về hệ điều hành android Android là một hệ điề u hành di động dựa trên
nề n tảng linux phiên bản 2.6 dành cho các dòng điện thoại SmartPhone. Đầu tiên được ra
đời bởi cơng ty liên hợp Android, sau đó được Google mua lại và phát triển từ năm 2005
và trở thành một hệ điề u hành di động mã nguồn mở, miễn phí, mạnh mẽ và được ưa
chuộng cao trên thế giới. Hệ điề u hành android một hệ điề u hành rất mạnh mạnh, có bảo
mật cao, hỗ trợ được nhiề u công nghệ tiên tiến như 3G, GPS, EDGE, Wifi.. tương thích
với nhiề u phần cứng, hỗ trợ nhiề u loại bộ nhập dữ liệu như keyboard, touch và trackball.
Android là hệ điề u hành di động nên có khả năng kết nối cao với các mạng không dây.
Hỗ trợ cơng nghệ OpenGL nên có khả năng chơi các phương tiện media, hoạt hình cũng
như trình diễn các khả năng đồ họa khác cực tốt, là tiề n đề để phát triển các ứng dụng có
giao diện phức tạp chẳng hạn như là các trò chơi. Năm 2008, hệ điề u hành android đã
chính thức mở tồn bộ mã nguồn, điề u đó cho phép các hãng điện thoại có thể đem mã
nguồn về tùy chỉnh, thiết kế lại sao cho phù hợp với mỗi mẫu mã điện thoại của họ và
điề u quan trọng nữa là hệ điề u hành mở này hồn tồn miễn phí, khơng phải trả tiề n nên
giúp họ tiết kiệm khá lớn chi phí phát triển hệ điề u hành. Với Google, vì android hồn
tồn miễn phí, Google khơng thu tiề n từ những hãng sản xuất điện thoại, tuy không trực
tiếp hưởng lợi từ android nhưng bù lại, những dịch vụ của hãng như Google Search,
Google Maps,... nhờ có android mà có thể dễ dàng xâm nhập nhanh vào thị trường di
động vì mỗi chiếc điện thoại được sản xuất ra đề u được tích hợp hàng loạt dịch vụ của
Google. Từ đó hãng có thể kiếm bội, chủ yếu là từ các nguồn quảng cáo trên các dịch vụ
đó.
2.1.2 Giới thiệu Android studio
Android Studio là một mơi trường phát triển tích hợp (IDE) được google xây dựng và
cung cấp miễn phí cho các nhà phát triển ứng dụng Android. Android studio dựa vào
IntelliJ IDEA, là một IDE tốt cho nhất Java hiện nay. Do đó Android Studio sẽ là mơi
trường phát triển ứng dụng tốt nhất cho Android. Một số nội dung tìm hiểu :



- 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)
 Tối thiểu 4 GB RAM.
 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
 Java Development Kit.
 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
Cài đặt JAVA JDK
Bước

1:

Tải

file

cài

đặt

từ

đường

dẫn


/>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. Việc này không bắt buộc, nhưng nếu trên
máy tính của cài đặt nhiề u phiên bản Java, thì việc cấu hình là cần thiết để xác định phiên
bản java nào mặc định được sử dụng.
2.2 FireBase
2.2.1 Giới thiệu
Firebase là một dịch vụ hệ thống backend được Google cung cấp sẵn cho ứng dụng
Mobile của bạn, với Firebase bạn có thể rút ngắn thời gian phát triển, triển khai và thời
gian mở rộng quy mô của ứng dụng mobile mình đang phát triển. Hỗ trợ cả 2 nền tảng
Android và IOS, Firebase mạnh mẽ, đa năng, bảo mật và là dịch vụ cần thiết đầu tiên để


xây dưng ứng dụng với hàng triệu người sử dụng. Sử dụng Firebase bạn sẽ có được
hưởng các lợi ích sau:


Xây dựng ứng dụng nhanh chóng mà khơng tốn thời gian, nhân lực để quản lý hệ
thống và cơ sơ sở hạ tầng phía sau: Firebase cung cấp cho bạn 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 các sự cố lỗi để bạn có thể dễ dàng
phát triển, định hướng ứng dụng của mình vào người sử dụng nhằm đem lại các trải
nghiệm tốt nhất cho họ.



Uy tín chất lượng đảm bảo từ Google: Firebase được google hỗ trợ và cung cấp trên
nền tảng phần cứng với quy mô rộng khắp thế giới, được các tập đoàn lớn và các ưng
dụng với triệu lượt sử dụng từ người dùng.




Quản lý cấu hình và trải nghiệm các ứng dụng của Firebase tập trung trong một giao
diện website đơn giản, các ứng dụng này hoạt động độc lập nhưng liên kết dữ liệu
phân tích chặ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: Lưu trữ và đồng bộ dữ liệu người dùng thời gian thực, các ứng dụng
hỗ trợ tính năng này có thể lưu trữ và lấy dữ liệu từ máy chủ trong tích tắc. Các dữ liệu
được lưu trữ trong hệ thống cơ sở dữ liệu hỗ trợ NoSQL và được đặt trên nền tảng máy
chủ Cloud, dữ liệu được ghi và đọc với thời gian thấp nhất tính bằng mili giây. Nền tảng
này hỗ trợ đồng bộ hóa dữ liệu của người dùng kể cả khi khơng có kết nối mạng, tạo nên
trải nghiệm xuyên suốt bất chấp tình trạng kết nối internet của người sử dụng. Reatime
Database của Firebase hổ trợ: android, ios, web, c++, unity, và cả xamarin.


Crashlytics: Hệ thống theo dõi và lưu trữ thông tin lỗi của ứng dụng đang chạy trên máy
người dùng. Các thơng tin lỗi này được thu thập một các tồn diện và ngay tức thời. Cách
trình bày hợp lý với từng chu trình hoạt động đến khi xảy ra lỗi, các báo cáo trực quan

giúp người phát triển có thể nắm bắt và xử lý kịp thời các lỗi chính của ứng dụng.
Cloud Firestore: Lưu trữ và đồng bộ dữ liệu giữa người dùng và thiết bị – ở quy mơ tồn
cầu – sử dụng cơ sở dữ liệu noSQL được lưu trữ trên hạ tầng cloud. Cloud Firestore cung
cấp cho bạn tính năng đồng bộ hóa trực tuyến và ngoại tuyến cùng với các truy vấn dữ
liệu hiệu quả. Tích hợp với các sản phẩm Firebase khác cho phép bạn xây dựng các ứng
dụng thực sự ngay cả khi kết nối internet bị gián đoạn.
Authentication: Quản lý người dùng một cách đơn giản và an toàn. Firebase Auth cung
cấp nhiều phương pháp để xác thực, bao gồm email và mật khẩu, các nhà cung cấp bên
thứ ba như Google hay Facebook, và sử dụng trực tiếp hệ thống tài khoản hiện tại của
bạn. Xây dựng giao diện của riêng bạn hoặc tận dụng lợi thế của mã nguồn mở, giao diện
người dùng tùy biến hoàn toàn.
Cloud Functions: Mở rộng ứng dụng của bạn bằng mã phụ trợ tùy chỉnh mà không cần
quản lý và quy mô các máy chủ của riêng bạn. Các chức năng có thể được kích hoạt bởi
các sự kiện, được phát sinh ra bởi các sản phẩm Firebase, dịch vụ Google Cloud hoặc các
bên thứ ba có sử dụng webhooks.
Cloud Storage: 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 bộ nhớ đối tượng mạnh mẽ, đơn giản và tiết kiệm chi phí được xây dựng cho
quy mô của Google. Các Firebase SDK cho Cloud Storage thêm tính năng bảo mật của
Google để tải lên và tải tệp cho các ứng dụng Firebase của bạn, bất kể chất lượng mạng.
Hosting: Đơn giản hóa lưu trữ web của bạn với các công cụ được thực hiện cụ thể cho
các ứng dụng web hiện đại. Khi bạn tải lên nội dung web, chúng tôi sẽ tự động đẩy chúng
đến CDN tồn cầu của chúng tơi và cung cấp cho họ chứng chỉ SSL miễn phí để người
dùng của bạn có được trải nghiệm an tồn, đáng tin cậy, độ trễ thấp, dù họ ở đâu.


Test Lab for Android: Chạy thử nghiệm tự động và tùy chỉnh cho ứng dụng của bạn trên
các thiết bị ảo và vật lý do Google cung cấp. Sử dụng Firebase Test Lab trong suốt vòng
đời phát triển của bạn để khám phá lỗi và sự không nhất quán để bạn có thể cung cấp một
trải nghiệm tuyệt vời trên nhiều thiết bị.
Performance Monitoring: Chẩn đoán các vấn đề về hiệu suất ứng dụng xảy ra trên thiết

bị của người dùng của bạn. Sử dụng dấu vết để theo dõi hiệu suất của các phần cụ thể
trong ứng dụng của bạn và xem chế độ xem tổng hợp trong bảng điều khiển
Firebase. Luô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 viết bất kỳ mã nào.
2.3 SQLite
Nói một cách đơn giản SQLite là phần mềm quản lý cơ sở dữ liệu (DBMS) tương tự như
Mysql, PostgreSQL… Đặc điểm của SQLite là gọn, nhẹ, đơn giản. Chương trình gồm 1
file duy nhất vỏn vẹn chưa đến 400kB, không cần cài đặt, khơng cần cấu hình hay khởi
động mà có thể sử dụng ngay. Dữ liệu Database cũng được lưu ở một file duy nhất.
Khơng có khái niệm user, password hay quyền hạn trong SQLite Database.
SQLite khơng thích hợp với những hệ thống lớn nhưng ở quy mơ vừa tầm thì SQLite
phát huy uy lực và không hề yếu kém về mặt chức năng hay tốc độ. Với các đặc điểm
trên SQLite được sử dụng nhiều trong việc phát triển, thử nghiệm … và là sự lưa chọn
phù hợp cho những người bắt đầu học Database.
SQLite Engine không là một Standalone Process giống 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 một cách động tùy theo yêu cầu với ứng dụng của
bạn. SQLite truy cập các file lưu giữ của nó một cách trực tiếp.
2.4 Kiến thức nhạc lý
2.4.1 Nhạc lý cơ bản
Có 7 nốt nhạc cơ bản, được ký hiệu bằng các chữ cái in hoa.
Các nốt trắng:


-

Đô = C
Rê = D
Mi = E
Fa = F
Sol = G

La = A
Si = B

Các nốt đen
-

Đô thăng = C#
Mi giáng= Eb
Fa thăng= F#
La giáng = Ab
Si giáng = Bb

Cung:
-

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

Quãng: Trong thực tế, đàn piano có rất nhiều qng (tiêu chuẩn có tổng cộng 88 phím,
tương đương bảy quãng 8 1/3 bao gồm 52 phím trắng và 36 phím màu đen. Mỗi
quãng 8 đàn piano bao gồm 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 đủ rộng để có thể biểu diễn hết 88key của
piano. Nếu toàn bộ 88 key đượ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ỏ.
Ứng dụng được phát triển để người mới tiếp xúc với phím đàn dễ tiếp cận hơn, vì
vậy việc mô phỏng quá chi tiết sẽ gây cảm giác khơng thích thú và khó để tiếp cận
được.
2.4.2 Hướng dẫn thực hành
2.4.2.1 Làm quen nốt nhạc trên khn 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
Khóa Sol:

Số ngón tay – vị trí bàn tay phải:
-

Ngón cái: 1

-

Ngón trỏ: 2

-

Ngón giữa: 3


-

Ngón áp út: 4


-

Ngón út: 5

2.4.2.1.2. Thực hành


2.4.2.2. Làm quen nốt nhạc trên khn 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
Khóa Fa

Số ngón tay – vị trí bàn tay trái:
-

Ngón cái: 1


-

Ngón trỏ: 2

-

Ngón giữa: 3


-

Ngón áp út: 4

-

Ngón út: 5

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
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#


2.4.2.3.2 Thực hành
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ứ

2.4.2.4.1. Lý thuyết
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#

2.4.2.4.2 Thực hành
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
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
- Bài toán ở đây là chúng ta cần xây dựng một ứng dụng hỗ trợ học đàn piano trên hệ điều
hành Android để giúp việc học đàn trở nên dễ dành, ít tốn thời gian, chi phí. Ứng dụng

bao gồm các tính năng chính như sau:
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 tố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ị.
3.2 Phân tích
3.2.1 Sơ đồ lớp (phân tích)


×