4.3.1. Yêu cầu chức năng
a) Yêu cầu chức năng xem hợp âm
- Hiển thị bài hát dưới dạng lời và hợp âm xen kẽ nhau.
- Tăng giảm hợp âm cho phù hợp với yêu cầu của người dùng, đồng thời có thể quay về hợp âm gốc
b) Yêu cầu chức năng tìm kiếm
- Tìm kiếm theo tên đầy đủ. - Tìm kiếm theo tên viết tắt.
- Tìm kiếm cả có dấu lẫn khơng dấu.
- Khi mà khơng cịn tìm kiếm thì sẽ hiển thị danh sách các bài hát tìm kiếm gần đây nhất.
c) Yêu cầu chức năng playlist
- Có thể thêm, xóa, sửa playlist. - Thêm playlist từ màn hình chính. - Thêm playlist từ trang tìm kiếm. - Xóa các bài hát trùng trong playlist.
- Thêm bài hát vào playlist bằng cách chọn bài hát rồi thêm vào playlist có sẵn hoặc tạo mới playlist.
d) Yêu cầu chức năng tuner
- Hiển thị dưới dạng đồng hồ đo.
- Nốt hiển thị có kèm theo cao độ của nốt. - Hiển thị xác nhận nốt có đúng cao độ của nó.
- Hiển thị tần số của âm thu vào.
- Lọc những âm dưới ngưỡng thu nhận.
e) Yêu cầu phi chức năng
Tính tiện dụng
- Các thiết kế đơn giản, phổ biến. Người dùng thường có thể sử dụng được mà không cần phải hiểu rõ các thao tác đặc biệt nào đó của thiết bị.
- Giao diện đẹp, thân thiện với người dùng, các icon cần bố trí hợp lí để tránh các thao tác nhầm lẫn.
Hiệu suất
- Thời gian xử lí và phản hồi đến các tương tác của người dùng khơng q một giây
Tương thích
- Ứng dụng thích nghi một cách hiệu quả đối với sự đa dạng và sự phát triển của các nên tảng phần cứng, phần mềm, môi trường sử dụng.
Khả dụng
- Phù hợp với yêu cầu. - Có thể cài đặt đơn giản.
4.3.2. Yêu cầu về quảng cáo
a) Yêu cầu áp dụng hình thức quảng cáo banner
- Hiển thị banner phía màn hình dưới trang chủ.
- Hiển thị banner khi bàn phím trong trang tìm kiếm được bật lên.
b) Yêu cầu áp dụng hình thức quảng cáo chuyển tiếp
- Hiển thị quảng cáo chuyển tiếp khi nhấn vào danh sách bài hát trong trang chủ. - Giới hạn số lần bật quảng cáo chuyển tiếp.
- Hiển thị quảng cáo nội dung trong danh sách các bài hát ở trang chủ và được đặt một cách ngẫu nhiên.
- Hiển thị quảng cáo nội dung trong các banner playlist trượt ở màn hình trang chủ.
4.4. Use Case
4.4.1. Sơ dồ Use-case tổng quát
4.4.2. Đặc tả user Case
4.4.2.1. Chức năng xem hợp âm bài hát
Xem hợp âm bài hát
Use case : Xem hợp âm bài hát
Mô tả Ứng dụng cho phép người dùng xem lời bài hát có kèm hợp âm
Tác nhân Người dùng
Điều kiện trước Khơng có
Luồng sự kiện
chính 1. Người dùng chọn bài hát trên trong danh sách bài hát ởtrang chủ 2. Ứng dụng hiển thị lời và hợp âm của bài hát
Luồng sự kiện phụ Người dùng ấn nút “back”, ứng dụng đưa người dùng trở về màng hình trước đó
Điều kiện sau Khơng có
Bảng 4-5 Bảng use-case chức năng xem hợp âm bài hát
Tăng giảm hợp âm
Use case : Tăng giảm hợp âm
Mô tả Ứng dụng cho phép người dùng tăng giảm hợp âm bài hát khi đang xem lời bài hát
Tác nhân Người dùng
Điều kiện trước Khơng có
Luồng sự kiện
chính 1. Người dùng chọn bài hát trên trong danh sách bài hát ởtrang chủ 2. Ứng dụng hiển thị lời và hợp âm của bài hát
3. Chọn nút cài đặt trên thanh header
4. Chọn nút tăng, giảm, quay về tone gốc để điều chỉnh hợp âm
Luồng sự kiện phụ 1. Người dùng ấn nút “back”, ứng dụng đưa người dùng trở về màng hình trước đó
2. Người dùng ấn nút cài đặt để tắt bảng cài đặt hợp âm
Điều kiện sau Không có
Bảng 4-6 Bảng use-case chức năng tăng giảm hợp âm bài hát
4.4.2.2. Chức năng tìm kiếm
Tìm kiếm theo tên bài hát đầy đủ
Use case : Tìm kiếm theo tên bài hát đầy đủ
Mô tả Ứng dụng cho phép người dùng tìm kiếm bài hát theo tên đầy đủ
Tác nhân Người dùng
Điều kiện trước Khơng có
Luồng sự kiện
chính 1. Người dùng chọn nút tìm kiếm trên tabbar2. Nhập tên đầy đủ của bài hát cần tìm 3. Hiển thị kết quả bài hát tìm được
Luồng sự kiện phụ Hiển thị danh sách các bài hát tìm kiếm trước đó khi khung tìm kiếm trống
Điều kiện sau Khơng có
Bảng 4-7 Bảng use-case chức năng tìm kiếm bài hát theo tên đầy đủ
Tìm kiếm theo tên bài hát viết tắt
Use case : Tìm kiếm theo tên bài hát viết tắt
Mô tả Ứng dụng cho phép người dùng tìm kiếm bài hát theo tên viết tắt
Tác nhân Người dùng
Điều kiện trước Khơng có
Luồng sự kiện
chính 1. Người dùng chọn nút tìm kiếm trên tabbar2. Nhập tên viết tắt của bài hát cần tìm 3. Hiển thị kết quả bài hát tìm được
Luồng sự kiện phụ Hiển thị danh sách các bài hát tìm kiếm trước đó khi khung tìm kiếm trống
Điều kiện sau Khơng có
Bảng 4-8 Bảng use-case chức năng tìm kiếm bài hát theo tên viết tắt
4.4.2.3. Chức năng playlist
Xem danh sách yêu thích
Use case : Xem danh sách u thích
Mơ tả Ứng dụng cho phép người dùng xem danh sách các playlist của người dùng
Tác nhân Người dùng
Điều kiện trước Khơng có
Luồng sự kiện
chính 1. Người dùng chọn danh sách yêu thích trên tabbar2. Hiển thị danh sách yêu thích của người dùng
Luồng sự kiện phụ Khơng có danh sách u thích thì hiển thị rỗng
Điều kiện sau Khơng có
Bảng 4-9 Bảng use-case chức năng xem danh sách yêu thích
Thêm danh sách yêu thích
Use case : Thêm danh sách u thích
Mơ tả Ứng dụng cho phép người dùng thêm danh sách yêu thích của người dùng
Tác nhân Người dùng
Điều kiện trước Khơng có
Luồng sự kiện
chính 1. Người dùng chọn danh sách yêu thích trên tabbar2. Chọn nút thêm (+) trên thanh header 3. Điền tên danh sách yêu thích và nhấn xác nhận 4. Playlist vừa tạo được thêm vào danh sách yêu thích
Luồng sự kiện phụ Bấm nút thốt để hủy việc thêm danh sách u thích
Điều kiện sau Khơng có
Bảng 4-10 Bảng use-case chức năng thêm danh sách yêu thích
Sửa danh sách u thích
Mơ tả Ứng dụng cho phép người dùng sửa danh sách yêu thích của người dùng
Tác nhân Người dùng
Điều kiện trước Khơng có
Luồng sự kiện
chính 1. Người dùng chọn danh sách yêu thích trên tabbar2. Chọn playlist cần sửa và ấn giữ 1 giây rồi nhả ra 3. Thay đổi tên playlist
4. Sự thay đổi đươc cập nhật trên danh sách yêu thích
Luồng sự kiện phụ Bấm nút thốt để hủy việc sửa danh sách u thích
Điều kiện sau Khơng có
Bảng 4-11 Bảng use-case chức năng sửa danh sách u thích
Xóa danh sách u thích
Use case : Xóa danh sách u thích
Mơ tả Ứng dụng cho phép người dùng xóa danh sách u thích của người dùng
Tác nhân Người dùng
Điều kiện trước Khơng có
Luồng sự kiện
chính 1. Người dùng chọn danh sách yêu thích trên tabbar2. Chọn playlist cần xóa và ấn giữ 1 giây rồi nhả ra 3. Chọn nút xóa
4. Sự thay đổi đươc cập nhật trên danh sách yêu thích
Luồng sự kiện phụ Bấm nút thốt để hủy việc xóa danh sách u thích
Điều kiện sau Khơng có
Bảng 4-12 Bảng use-case chức năng xóa danh sách u thích
4.4.2.4. Chức năng tuner
Chỉnh âm
Use case : Chỉnh âm
Mô tả Ứng dụng cho phép người dùng xác dịnh được một mốt nhạc là nốt gì
Điều kiện trước Cho phép ứng dụng sử dụng microphone
Luồng sự kiện
chính 1. Người dùng chọn chỉnh âm trên tabbar2. Chọn nút đo 3. Tần số và nốt được hiển thị
Luồng sự kiện phụ Bấm nút dừng do để ngưng đo
Điều kiện sau Khơng có
Bảng 4-13 Bảng use-case chức năng chỉnh âm
4.5. Thiết kế
4.5.1. Cơ sở dữ liệu
4.5.1.1. Sơ đồ cơ sở dữ liệu tổng
4.5.1.2. Đặc tả các bảng dữ liệu
Bảng SONG
Tên cột Kiểu dữ liệu Mô tả
Id Int64 ID song
Title String Tên bài hát
Note String Ghi chú của bài hát
lyric String Lời bài hát
Is_active Bool Kiểm tra kích hoạt
Create_at Date Ngày tạo
Bảng 4-14 Bảng đặc tả bảng CSDL Song
Bảng PLAYLIST
Tên cột Kiểu dữ liệu Mô tả
Id Int64 ID playlist
Title String Tên phaylist
Avatar String Hình đại diện
Banner String Hình nền playlist
Is_system Bool Kiểm tra playlist của hệ thống
Is_active Bool Kiểm tra kích hoạt
Create_at Date Ngày tạo
Bảng 4-15 Bảng đặc tả bảng CSDL Playlist
Bảng SONG_PLAYLIST
Tên cột Kiểu dữ liệu Mô tả
songId Int64 ID song
playlistId Int64 ID playlist
Is_active Bool Kiểm tra kích hoạt
Create_at Date Ngày tạo
Bảng HISTORYSEARCH
Tên cột Kiểu dữ liệu Mô tả
Id Int64 ID historysearch
songId Int64 ID song
Is_active Bool Kiểm tra kích hoạt
Create_at Date Ngày tạo
Bảng 4-17 Bảng đặc tả bảng CSDL HistorySearch
4.5.2. Kiến trúc ứng dụng
Ứng dụng My Chords là một sản phẩm phục vụ cho đề tài “Thực thi dịch vụ quảng cáo cho ứng dụng di động” do đó kiến trúc ban đầu của ứng dụng khá đơn giản. Hình 4-3 minh họa kiến trúc tổng quát bao gồm các thành:
Google Admob: ứng dụng sẽ lấy các quảng cáo từ Google Admob xử lý và
hiển thị ở các vị trí được cài đặt trong ứng dụng.
View: chịu trách nhiệm cho các layer hiển thị (GUI), ở môi trường iOS, tất
cả mọi thứ ở layer này bắt đầu với tiền tố “UI”.
Controller: là chất keo kết dính hay là trung gian giữa Model và View, nói
chung là chịu trách nhiệm về thay đổi Model bằng cách đáp ứng lại thao tác của người dùng trên View và cập nhật View với những thay đổi từ Model.
Model: chịu trách nhiệm về dữ liệu hay một layer mà chịu trách nhiệm thao
Hình 4-17 Kiến trúc ứng dụng My Chords
4.5.3. Giao diện
Hình 4-18 Sơ đồ giao diện ứng dụng My Chords
4.5.3.2. Hình ảnh giao diện thự tế
Hình 4-19 Màn hình trang chủ ứng dụng My Chords
Xem chi tiết hợp âm và tăng giảm hợp âm
Hình 4-20 Màn hình xem và tăng giảm hợp âm ứng dụng My Chords
Hình 4-21 Màn hình tìm kiếm ứng dụng My Chords
Xem danh sách u thích và thêm xóa sửa playlist
Hình 4-23 Màn hình quảng lý thêm, xóa, sửa playlist ứng dụng My Chords
Chỉnh âm
4.6. Một số vấn đề gặp phải và kỹ thuật áp dụng
4.6.1. Lời bài hát và hợp âm khơng gây khó chịu người dùng
Vấn đề
Các dịng lời và hợp âm bài hát chỉ là những đoạn văn bản. Nếu hiển thị lên thiết bị di động thì rất đơn điệu và gây nhàm chàn cho người dùng, có khi cịn gây khó chị bởi việc người dùng khó có thể nhìn đâu là hợp âm, đâu là lời bài hát. Vấn đề đặt ra là làm sao cho người dùng có thể nhìn rõ được phần lời và phần hợp âm một cách riêng biệt nhưng vẫn đặt chung môt chỗ
Hướng giải quyết
Sau khi tìm hiểu thì tơi thấy UITextView là lớp cung cấp một control hỗ trợ nhập và hiển thị khối lượng lớn văn bản trên nhiều dòng. Hỗ trợ thanh cuộn cho phép người dùng cuộn nội dung văn bản. Từ iOS 6 trở lên, lớp này còn hỗ trợ thuộc tính attributedText cho phép định dạng văn bản (font, màu sắc, canh lề,…). Qua đó tơi chỉnh kích cỡ chữ, font, màu sắc cho hợp âm và lời với hai màu khác nhau để cho người dùng khi nhìn vơ có thể phân biệt được ngay.
4.6.2. Tăng giảm hợp âm
Vấn đề
Đối với người chơi nhạc cụ cơ bản, hợp âm trưởng và hợp âm thứ là 2 loại hợp âm dễ nhớ và dễ sử dụng nhất, cũng như dùng nhiều nhất trong các bài hát. Bên cạnh đó, trong đệm hát nhạc nhẹ (Pop-ballad), có những hợp âm được dùng để tạo thêm màu sắc cho các bài hát phổ biến mà chúng ta có thể áp dụng để tăng sự lơi cuốn cho bản nhạc như: hợp âm sus4, hợp âm sus2, hợp âm major7, hợp âm 7. Vấn đề gặp phải ở đây là tìm ra quy luật chung để thực hiện việc tăng giảm hợp âm đối với cả hợp âm căng bản, hợp âm nâng cao đều sử dụng được và có thể nhận diện được tất cả các hợp âm có thể có.
Sau khi tìm hiểu thì tơi thấy về mặt ngữ nghĩa, hợp âm được ghép bởi tiền tố (keys) và hậu tố (suffixs). Tôi sẽ tạo sẵn một bộ tất cả các tiền tố và hậu tố từ đó ta ghép chúng lại thì sẽ ra được tất cả những hợp âm có thể có và tìm ra thuật tốn để tìm hợp âm khi tăng, giảm của hợp âm đó là gì
Ví dụ:
Keys = [A,B,C] ;
Suffixs = [b,#,7, ];
Các hợp âm có thể có chordsArray = [ Ab , A# , A7, A , Bb , B# , B7, B , Cb ,
C# , C7, C ];
Hàm findNewChord tìm hợp âm khi tăng hoặc giảm
// chord: tên hợp âm
// status: tăng hay giảm hơp âm …,-1,0,1,…
func findNewChord(chord: String, status: Int) -> String {
var iOldChord = chordsArray.index(of: chord)
var iNewChord = (iOldChord + status*(suffixs.count))% chordsArray.count
if status < 0 && iOldChord < (suffixs.count) {
iNewChord = chordsArray.count - (suffixs.count) + i }
return chordsArray[iNewChord] }
4.6.3. Chạy ứng dụng trên máy thật
Vấn đề
Để cho việc tương tác với ứng dụng một cách trực quan giúp cho việc trải nghiệm ứng dụng một các tốt nhát và ứng dụng có thể thu thập được âm thanh từ bên ngồi trong khi đó máy ảo trong xcode chưa thể thu được. Vấn đề đặt ra là cài đặt ứng dụng trên thiết bị thực tế
Hướng giải quyết
Sau khi tìm hiểu thì tơi thấy với Xcode 7 trở lên, Apple đã cho phép cài ứng dụng lên iPhone, iPad và Apple TV bằng cách sử dụng một tài khoản Apple ID
miễn phí. Nngười dùng muốn cài một ứng dụng mã nguồn mở lên thiết bị iOS cá nhân của mình có thể thực hiện một cách khá dễ dàng thông qua các bước
Bước 1: Tạo tài khoảng Apple ID và kích hoạt tài khoản developer miễn
phí.
Bước 2: Bấm vào Xcode → Preferences → Accounts sau đó bấm vào dấu
‘+’ và chọn Add Apple ID.
Bước 3: Đăng nhập bằng tài khoản Apple free developer ID bạn vừa tiến
hành kích hoạt ở trên.
4.7. Chức năng của ứng dụng4.7.1. Xem trang chủ 4.7.1. Xem trang chủ
Khi ứng dụng được chạy lên, màn hình loading sẽ hiển thị lên, sau đó chuyển tới màn hình trang chủ của ứng dụng.
Ở màn chình chính chúng ta có thể dễ dàng nhìn thấy được hai phần đó là phần các banner là các playlist do hệ thống cung cấp và danh sách các bài hát bạn có thể thích
4.7.2. Tìm kiếm bài hát
Khi bấm vào tab “Tìm kiếm” chúng ta sẽ được chuyển tới màn hình tìm kiếm bài hát. Tại màn hình này khi mà chưa tìm kiếm bài hát thì một danh sách các bài hát đã tìm kiếm cũ trước đó sẽ được hiển thị
Hình 4-26 Màn hình xem lịch sử tìm kiếm ứng dụng My Chords
Trên thanh header là nơi để nhập tên bài bài hát cần tìm, chúng ta có thể tìm