Yêu cầu của ứng dụng My Chords

Một phần của tài liệu THỰC THI DỊCH VỤ QUẢNG CÁO TRÊN ỨNG DỤNG ĐIỆN THOẠI DI ĐỘNG (Trang 66)

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 (adsbygoogle = window.adsbygoogle || []).push({});

- 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 (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

Đ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 (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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

Một phần của tài liệu THỰC THI DỊCH VỤ QUẢNG CÁO TRÊN ỨNG DỤNG ĐIỆN THOẠI DI ĐỘNG (Trang 66)