1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng ứng dụng piano karaoke luyện cảm âm trên hệ điều hành ios đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin

218 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

Tiêu đề Xây Dựng Ứng Dụng Piano Karaoke Luyện Cảm Âm Trên Hệ Điều Hành Ios
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Công Nghệ Thông Tin
Thể loại đồ án tốt nghiệp
Định dạng
Số trang 218
Dung lượng 16,63 MB

Cấu trúc

  • Chương 1: TỔNG QUAN (0)
    • 1.1 Khảo sát hiện trạng (10)
    • 1.2 Tính cấp thiết của đề tài (10)
    • 1.3 Mục tiêu của đề tài (10)
    • 1.4 Yêu cầu (11)
    • 1.5 Công nghệ lập trình (12)
    • 1.6 Phạm vi nghiên cứu (12)
    • 1.7 Phương pháp nghiên cứu (12)
    • 1.8 Ý nghĩa khoa học thực tiễn (13)
  • Chương 2: CƠ SỞ LÝ THUYẾT (14)
    • 2.1 Về ngôn ngữ lập trình Swift (14)
      • 2.1.1 Khái niệm (14)
      • 2.1.2 Các đặc trưng của Swift (15)
    • 2.2 Về Xcode (91)
      • 2.2.1 Xcode IDE (Môi trường phát triển tích hợp) (91)
      • 2.2.3 Giao diện chương trình (Interface Builder) (94)
      • 2.2.4 Chạy ứng dụng (Simulator) (97)
      • 2.2.5 Trình biên dịch (Apple LLVM) (99)
    • 2.3 Về Firebase (99)
      • 2.3.1 Khái niệm (99)
      • 2.3.2 Các tính năng chính (100)
      • 2.3.3 Tích hợp vào Xcode (101)
  • Chương 3: PHÂN TÍCH VÀ MÔ HÌNH HÓA YÊU CẦU (114)
    • 3.1 Công nghệ và môi trường phát triển (114)
    • 3.2 Yêu cầu chức năng (114)
      • 3.2.1 Mô hình use case (114)
  • Chương 4: THIẾT KẾ HỆ THỐNG (149)
    • 4.1 Thiết kế cơ sở dữ liệu (149)
      • 4.1.1 Class diagram (149)
      • 4.1.2 Mô tả dữ liệu (149)
    • 4.2 Thiết kế xử lý – sequence diagram (154)
      • 4.2.1 Quy trình đăng nhập vào hệ thống (154)
      • 4.2.2 Quy trình tìm kiếm bài karaoke cảm âm (155)
      • 4.2.3 Quy trình chơi/luyện tập piano (156)
      • 4.2.4 Quy trình đăng tin (157)
      • 4.2.5 Quy trình xóa tin (158)
      • 4.2.6 Quy trình thích bài viết (158)
      • 4.2.7 Quy trình chia sẻ bài viết (159)
      • 4.2.8 Quy trình bình luận (160)
      • 4.2.9 Quy trình xóa bình luận (161)
      • 4.2.10 Quy trình gia hạn tài khoản gold dành cho user (162)
      • 4.2.11 Quy trình admin quản lý thành viên (163)
    • 4.3 Thiết kế giao diện (164)
      • 4.3.1 Giao diện các màn hình giới thiệu (165)
      • 4.3.2 Giao diện màn hình đăng nhập (167)
      • 4.3.3 Giao diện màn hình đăng kí (169)
      • 4.3.4 Giao diện các màn hình bài viết (171)
      • 4.3.5 Giao diện các màn hình trang chủ (180)
      • 4.3.6 Giao diện các màn hình tìm kiếm karaoke cảm âm (181)
      • 4.3.7 Giao diện màn hình chi tiết bài karaoke cảm âm (184)
      • 4.3.8 Giao diện các màn hình piano dọc (186)
      • 4.3.9 Giao diện màn hình piano ngang (189)
      • 4.3.10 Giao diện màn hình đăng tin (192)
      • 4.3.11 Giao diện các màn hình người dùng quản lý tài khoản (194)
      • 4.3.12 Giao diện các màn hình admin quản lý user (0)
      • 4.3.13 Giao diện các màn hình user gia hạn tài khoản gold (0)
  • Chương 5: CÀI ĐẶT VÀ KIỂM THỬ (0)
    • 5.1 Các công cụ hỗ trợ (0)
    • 5.2 Cài đặt chương trình (0)
    • 5.3 Kiểm thử (0)
      • 5.3.1 Đăng nhập (0)
      • 5.3.2 Đăng kí (0)
      • 5.3.3 Đăng tin (0)
      • 5.3.4 Tìm kiếm bài karaoke cảm âm (0)
      • 5.3.5 Bình luận bài viết (0)
      • 5.3.6 Bình luận bài karaoke cảm âm (0)
      • 5.3.7 User gold hết hạn sử dụng (0)
  • Chương 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (0)
    • 6.1 Kết quả đạt được (0)
    • 6.2 Ưu điểm – Nhược điểm (0)
      • 6.1.1 Ưu điểm (0)
      • 6.1.2 Nhược điểm (0)
    • 6.3 Khó khăn và hướng khắc phục (0)
    • 6.4 Đề xuất hướng phát triển (0)
  • TÀI LIỆU THAM KHẢO (0)

Nội dung

TỔNG QUAN

Khảo sát hiện trạng

Ngày nay, sự phát triển của phần mềm ứng dụng công nghệ thông tin đã mang lại nhiều lợi ích cho cuộc sống, đặc biệt trong lĩnh vực âm nhạc Sau những giờ làm việc căng thẳng, nhiều đồng nghiệp thường chọn về nhà nghỉ ngơi và nghe nhạc không lời nhẹ nhàng để thư giãn Là một người từng chơi nhạc cụ, tôi cảm thấy thật tuyệt vời khi có thể tự mình trình bày những bản nhạc Các ứng dụng hiện nay giúp người dùng dễ dàng tiếp cận với nhạc cụ, mang đến trải nghiệm âm nhạc thú vị và đơn giản hơn bao giờ hết.

Tính cấp thiết của đề tài

Trong thời đại công nghệ số, việc tìm kiếm trung tâm dạy nhạc cụ trở nên dễ dàng hơn bao giờ hết Tuy nhiên, chi phí mua dụng cụ và học phí có thể khá cao Hơn nữa, trong bối cảnh dịch COVID-19 đang diễn biến phức tạp, việc di chuyển từ nhà đến trung tâm dạy nhạc cũng là một thách thức lớn.

Với ứng dụng này, người đi làm, trẻ em, và những ai đã biết chơi nhạc hoặc đang tìm hiểu sẽ dễ dàng luyện tập và cải thiện kỹ năng âm nhạc của mình trong giai đoạn này.

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

- Tìm hiểu về hệ điều hành iOS và ngôn ngữ lập trình Swift(4.2) xây dựng ứng dụng phía Client

- Xây dựng, quản lý cơ sở dữ liệu với Firebase Realtime Database và Firebase Storage

- Tìm hiểu và xây dựng kiến trúc hệ thống API dựa trên nền tảng mã nguồn mở Firebase Database REST API, YouTube Data API

- Phân tích, thiết kế và xây dựng ứng dụng gồm một số chức năng chính như sau o Chức năng đăng nhập/đăng xuất

Chức năng tìm kiếm bài hát trong ứng dụng bao gồm việc tìm kiếm trên cơ sở dữ liệu thông thường và trên PianoKaraoke Gold Người dùng có thể chơi đàn theo cảm âm với khả năng ghi âm thanh đầu ra, chỉnh sửa bản ghi và chia sẻ lên tường cá nhân, cũng như điều chỉnh tone bàn phím và âm thanh theo thể loại bài hát Bàn phím được thiết kế với ba tầng tách biệt và có thể giả lập như piano thực tế Ứng dụng còn cung cấp chức năng bảng tin để kết nối người dùng, trang chủ gợi ý bài karaoke, cùng với các tính năng thích, bình luận và chia sẻ bài đăng Ngoài ra, người dùng có thể phát nhạc khi tắt máy, gia hạn tài khoản gold để truy cập tính năng bị khóa, quản lý bài hát đã tải xuống và quản lý thành viên cho tài khoản admin.

Yêu cầu

Ứng dụng gồm 3 actor là: quản trị hệ thống (adminstrator), người dùng trả phí (user gold) và người dùng miễn phí (user)

• Quản trị hệ thống (adminstrator): là những user quản lý hệ thống, xoá những user

• Người dùng trả phí (user gold): là những user đã thanh toán với admin để sử dụng những tính năng bị khoá

Người dùng miễn phí là những cá nhân mới tạo tài khoản hoặc đã sử dụng tài khoản từ lâu nhưng chỉ khai thác các tính năng miễn phí Họ bị giới hạn trong việc tải xuống tối đa 5 bài mỗi ngày và chỉ có thể truy cập vào các bản karaoke miễn phí.

Công nghệ lập trình

- Hệ thống ứng dụng hầu hết là công nghệ của Apple với ngôn ngữ lập trình Swift4.2 Phía server là open source của Google (Firebase, YouTube SDK)

- Xây dựng ứng dụng giao tiếp thông qua Firebase Database REST API

- Dữ liệu hệ thống sẽ được quản lý với Firebase Realtime Database và Firebase Storage.

Phạm vi nghiên cứu

Tìm hiểu các công nghệ được sử dụng trong đề tài:

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

• Phương pháp tổng hợp lý thuyết: Nghiên cứu và tìm hiểu các tài liệu, website liên quan đến các công nghệ đang tìm hiểu

Để đảm bảo tính chính xác và khoa học cho đề tài khóa luận, cần tham khảo ý kiến từ thầy hướng dẫn, các anh chị và bạn bè có kinh nghiệm liên quan Đồng thời, việc khảo sát nghiệp vụ xây dựng hệ thống cũng rất quan trọng.

• Phương pháp mô hình hóa: Mô phỏng ứng dụng từ bước thiết kế cài đặt cho đến kết quả thành phẩm của ứng dụng

Ý nghĩa khoa học thực tiễn

Hệ thống có giao diện trực quan và rõ ràng, giúp giảm thiểu thao tác không cần thiết, từ đó người dùng có thể dễ dàng và nhanh chóng tiếp cận với nhạc cụ.

CƠ SỞ LÝ THUYẾT

Về ngôn ngữ lập trình Swift

Swift là ngôn ngữ lập trình hướng đối tượng do Apple phát triển, được giới thiệu tại hội nghị WWDC 2014 để phục vụ cho việc phát triển ứng dụng trên iOS và OS X Ngôn ngữ này được kỳ vọng sẽ song song tồn tại với Objective-C, ngôn ngữ lập trình hiện tại của Apple Swift được thiết kế với tính năng phòng chống lỗi cao và được biên dịch bằng trình biên dịch LLVM (Low Level Virtual Machine).

Swift là ngôn ngữ lập trình hướng đối tượng do Apple phát triển cho iOS và OS X, được giới thiệu tại hội nghị WWDC 2014 Ngôn ngữ này được kỳ vọng sẽ tồn tại song song với Objective-C, ngôn ngữ lập trình hiện tại của Apple Swift được thiết kế để có khả năng phòng chống lỗi cao và sử dụng trình biên dịch LLVM (Low Level Virtual Machine).

Swift là ngôn ngữ lập trình hiện đại với hiệu suất vượt trội so với Objective-C, nhanh hơn cả Python trong các thử nghiệm benchmark Trên nền tảng IDE Xcode của Apple, mã nguồn Swift được đồ thị hóa theo thời gian thực, giúp lập trình viên dễ dàng chạy và kiểm lỗi mã nguồn tương tự như với Python.

Swift là ngôn ngữ lập trình kịch bản, cho phép thực thi trực tiếp từng dòng lệnh, giúp lập trình viên tiết kiệm thời gian biên dịch Nhờ đó, việc kiểm tra kết quả trở nên nhanh chóng và dễ dàng hơn, cho phép người dùng lập trình mà không cần chờ đợi quá trình biên dịch.

Mã nguồn Swift ngắn gọn và dễ hiểu, cho phép ba dòng code Objective C có thể được thay thế bằng một dòng code Swift Điều này không chỉ tăng tốc độ phát triển ứng dụng mà còn nâng cao hiệu quả bảo trì và sửa lỗi trong tương lai.

Lập trình với Swift trở nên trực quan hơn nhờ vào giao diện sắp xếp hợp lý và khả năng hiển thị kết quả theo thời gian thực trong Xcode Runtime Khi viết mã, kết quả sẽ ngay lập tức hiển thị, giúp dễ dàng chỉnh sửa và xem hình ảnh trực tiếp từ IDE Bên cạnh đó, Xcode còn cung cấp các kịch bản thực hiện trong ứng dụng, tính năng này hỗ trợ lập trình viên quản lý ứng dụng hiệu quả, ngăn ngừa sự cố tràn bộ nhớ.

Cuối cùng, Swift mang lại hiệu suất phần cứng tốt hơn so với Objective-C, giúp người dùng có trải nghiệm chơi game ấn tượng hơn trên các thiết bị iOS.

Swift là ngôn ngữ mới, các nhà phát triển ứng dụng iOS sẽ mất một khoảng thời gian đáng kể để làm chủ ngôn ngữ mới của Apple.

Giảm tốc độ phát triển của hệ sinh thái ứng dụng Apple.

Một mối lo ngại khác là sự gia tăng của các ứng dụng rác, do Swift đã làm cho quá trình phát triển ứng dụng trở nên dễ dàng hơn Điều này có thể dẫn đến sự xuất hiện ngày càng nhiều ứng dụng chất lượng kém trên App Store, liên quan đến các cấu trúc, hàm, biến hằng và các control trong Swift.

2.1.2 Các đặc trưng của Swift

2.1.2.1 Các dữ liệu cơ bản

Trong Swift, kiểu số nguyên bao gồm Signed và Unsigned integer với các mẫu 8, 16, 32 và 64 bit, được đặt tên theo quy ước tương tự như C Ví dụ, kiểu số nguyên không dấu 8-bit là Uint8, trong khi kiểu số nguyên có dấu 32-bit là Int32 Tất cả các kiểu số nguyên trong Swift đều có tên viết hoa Bên cạnh đó, Swift cũng cung cấp thông tin về giá trị thấp nhất và cao nhất của các kiểu số nguyên.

Có thể kiểm tra giá trị cao nhất của từng kiểu integer với thuộc tính Max, thấp nhất của integer với thuộc tính Min

7 let maxValue = UInt8.max // giá trị cao nhất của UInt8 là 255

Kiểu Int là một loại dữ liệu thay thế cho tất cả các kích thước cụ thể, phù hợp với từng nền tảng Trên nền tảng 32 bit, kích thước của kiểu Int là Int32, trong khi trên nền tảng 64 bit, kích thước này là Int64 Đối với nền tảng 32 bit, miền giá trị của kiểu Int nằm trong khoảng từ -2147483648 đến 147438647.

Trong Swift, kiểu số nguyên không dấu UInt cung cấp kích thước tương ứng với các nền tảng hiện tại: trên nền tảng 32-bit, UInt có kích thước tương đương với UInt32, trong khi trên nền tảng 64-bit, kích thước của UInt tương ứng với UInt64.

Chỉ nên sử dụng UINT khi người dùng cần một số nguyên không dấu có kích thước tương tự như nền tảng Trong các trường hợp khác, Int là lựa chọn ưu tiên hơn.

2.1.2.1.2 Kiểu Float và kiểu Double

Là một dạng phân số, Có thể lưu trữ những số thập phân mà kiểu integer không lưu trữ được Swift cung cấp 2 kiểu là:

//Giá trị lưu trữ lớn nhất của kiểu float var float: Float = FLT_MAX

//Giá trị lưu trữ lớn nhất của kiểu double var double:Double = DBL_MAX

2.1.2.1.3 An toàn kiểu và kiểu suy luận - Kiểu Safe và Kiểu Inference

Swift là một ngôn ngữ lập trình an toàn, yêu cầu người dùng khai báo rõ ràng các kiểu giá trị Khi khai báo kiểu String, người dùng không thể truyền giá trị kiểu Int và ngược lại Swift thực hiện kiểm tra kiểu khi biên dịch, giúp phát hiện và thông báo lỗi về kiểu không phù hợp Điều này cho phép người dùng nhận diện và sửa lỗi sớm hơn trong quá trình phát triển.

Kiểm tra kiểu trong Swift giúp người dùng tránh lỗi khi làm việc với các kiểu giá trị khác nhau Người dùng không cần phải xác định kiểu cho mỗi hằng và biến khai báo, vì Swift sẽ tự động sử dụng kiểu Inference để xác định kiểu thích hợp dựa trên giá trị đã cung cấp.

Kiểu Inference đặt biệt hữu ích khi người dùng khai báo một hằng hoặc một biết có giá trị ban đầu: let meaningOfLife = 42

// meaningOfLife được hiểu là kiểu Int let pi = 3.14159

// pi được hiểu là kiểu Double Double let anotherPi = 3 + 0.14159

// anotherPi Được hiểu là kiểu Double

2.1.2.1.4 Chuyển đổi kiểu số (Numeric Type Conversion)

Chuyển đổi số nguyên là quá trình ép kiểu giữa các kiểu số khác nhau Trong ví dụ này, hằng số so1 và so2 có kiểu số nguyên khác nhau, do đó cần phải chuyển đổi hằng số so1 sang kiểu Int16 để thực hiện phép cộng Cụ thể, với so2 là UInt16 và so1 là UInt8, ta có thể tính tổng bằng cách chuyển đổi so1 sang UInt16 trước khi cộng với so2.

Về Xcode

2.2.1 Xcode IDE (Môi trường phát triển tích hợp) Được thiết kế dựa trên các công nghệ mới nhất của Apple Xcode IDE tích hợp tất cả các công cụ cần thiết và cửa sổ làm việc như: giao diện, soạn mã nguồn, gỡ lỗi Trong quá trình soạn thảo, Xcode kiểm tra giá trị của một biến bằng cách:

- IDE Xcode xác định những lỗi trong cú pháp dễ dàng và dự đoán lỗi chính xác đồng thời tự sửa lỗi

Xcode, với vai trò là một IDE (Môi trường phát triển tích hợp), mang đến cho người dùng nhiều công cụ và tính năng hữu ích để cải thiện quá trình lập trình Một trong những tính năng nổi bật của Xcode là khả năng hiển thị danh sách các lớp trong thư viện cùng với các thuộc tính và phương pháp của từng lớp, giúp lập trình viên dễ dàng truy cập và sử dụng.

Hình 2.15 Các hỗ trợ của IDE Xcode 2.2.2 Cách tạo ứng dụng trên Xcode

Bước 1: Khởi động Xcode à “Create a new Xcode project”

Hình 2.16 Giao diện khởi động Xcode

Bước 2: Cây thư mục trái: Chọn Appliction của mục iOS Màn hình bên phải: chọn

Single View Application Nhấn nút next

Hình 2.17 Chọn loại ứng dụng

Bước 3: Nhập các thông tin:

Product Name: Tên ứng dụng của người dùng

Organization Name: tên cơ quan, tổ chức, hoặc tên lập trình viên

Organization Identifier: tên định danh của cơ quan, tổ chức hoặc của lập trình viên Language: Chọn ngôn ngữ lập trình là Objective C hoặc Swift

Devices: thiết bị mà người dùng sẽ lập trình để ứng dụng chạy Có thể là iPhone, iPad và Universal

Sử dụng Core Data: Đây là một hệ thống cơ sở dữ liệu cục bộ, người dùng cần tích chọn nếu có nhu cầu Hãy điền đầy đủ thông tin và nhấn nút Tiếp theo.

Hình 2.18 Thông tin của ứng dụng được tạo

Bước 4: Khi nhấn next sẽ hiện ra giao diện chọn thư mục lưu ứng dụng:

Hình 2.19 Chọn thư mục lưu ứng dụng 2.2.3 Giao diện chương trình (Interface Builder)

Hình 2.20 Giao diện chương trình

Giao diện Xcode có 5 thành phần chính: Toolbar, Editor area, Navigator area, Debug area, Utility area

Khu vực debug là nơi hỗ trợ người dùng trong quá trình xác định và sửa lỗi của chương trình Trong khi đó, khu vực thanh công cụ chứa các công cụ tiện ích giúp người dùng dễ dàng hơn trong việc chạy và debug ứng dụng, lựa chọn iOS Simulator, cũng như mở hoặc đóng các khu vực khác.

Editor area: vùng để người dùng thiết kế giao diện, viết và chỉnh sửa code của chương trình

Giao diện của Xcode cung cấp 87 biểu tượng, cho phép người dùng dễ dàng kéo thả và sử dụng các đối tượng có sẵn như Button, Label, Slider và các đoạn code mẫu như If, Switch.

Khu vực điều hướng cung cấp cho người dùng cái nhìn trực quan và tiện lợi để quản lý ứng dụng, theo dõi thông báo lỗi, tìm kiếm đoạn mã trong chương trình và kiểm tra hiệu suất của RAM, CPU trong quá trình chạy ứng dụng.

Để biên dịch và chạy ứng dụng, người dùng có thể sử dụng Simulator, một giải pháp hữu ích cho việc kiểm tra ứng dụng khi chưa có thiết bị thực.

IOS Simulator có sẵn các loại thiết bị khác nhau như: iPad, Iphone, phù hợp với các phiên bản màn hình khác nhau

Các bước chạy ứng dụng trên Simulator

Bước 1: Chọn iPhone 6 từ Scheme pop – up menu trong thanh Xcode toolbar

Hình 2.23 Mô phỏng ứng dụng

Bước 2: Nhấn nút Run hoặc chọn Product > Run (hoặc kích Command +R) Màn hình mô phỏng sẽ hiện ra:

Hình 2.24 Màn hình mô phỏng

Các tính năng của iPhone Simulator:

Hình 2.25 Thanh Toolbar cho màn hình mô phỏng

Xcode tự động cài đặt các ứng dụng trên iphone Simulator Simulator iPhone có thể mô phỏng các phiên bản khác nhau của hệ điều hành iPhone

Các tính năng có thể thử nghiệm trên Simulator iPhone bao gồm :

- Xoay màn hình : bên trái, bên phải,trên đầu

- Hỗ trợ cho hành động : Touch and Hold (chạm và giữ), vẽ, tap, …

- Tuy nhiên cũng có 1 số tính năng không có sẵn trên iPhone Simulator :

- Gửi và nhận tin nhắn

- Cài đặt các ứng dụng từ App Store

2.2.5 Trình biên dịch (Apple LLVM)

Trình biên dịch trong Xcode bao gồm một tập hợp các thư viện được tối ưu hóa, dễ dàng mở rộng

Xcode IDE cung cấp tính năng sửa lỗi tự động, giúp lập trình viên không chỉ nhận diện lỗi mà còn nhận được giải pháp khắc phục hiệu quả Khi người dùng di chuột vào lỗi, Xcode sẽ gợi ý cách sửa chữa, nâng cao trải nghiệm lập trình và tiết kiệm thời gian xử lý.

Ví dụ: sửa chữa một biểu tượng sai chính tả hoặc thêm một dấu chấm phẩy còn thiếu.

Về Firebase

Google cung cấp 91 mây điện toán giúp lập trình viên phát triển ứng dụng nhanh chóng bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu.

Hình 2.27 Firebase hỗ trợ đa nền tảng 2.3.2 Các tính năng chính

Cơ sở dữ liệu Realtime là một giải pháp NoSQL trên nền tảng đám mây, cho phép lưu trữ và đồng bộ hóa dữ liệu giữa người dùng một cách tức thời Đây là một đối tượng JSON lớn, giúp các nhà phát triển quản lý dữ liệu theo thời gian thực một cách hiệu quả.

Authentication:cung cấp dịch vụ backend, SDKs sẵn sàng sử dụng, và các thư viện

UI được làm sẵn để giúp ứng dụng của bạn xác thực người dùng

Firebase Cloud Messaging (FCM) cung cấp kết nối hiệu quả và đáng tin cậy giữa server và thiết bị, cho phép gửi và nhận tin nhắn hoặc thông báo trên iOS, Android và Web mà không tốn thêm chi phí.

Firebase Database Query cung cấp cơ chế để truy xuất dữ liệu cụ thể thông qua các truy vấn Các truy vấn này được xây dựng bằng cách kết hợp một hoặc nhiều phương thức lọc thành chuỗi.

Firebase Storage là giải pháp lưu trữ độc lập cho nội dung do người dùng tải lên, bao gồm hình ảnh và video từ các nền tảng iOS, Android và Web Nó được thiết kế đặc biệt để mở rộng ứng dụng, cung cấp bảo mật cao và đảm bảo khả năng phục hồi mạng hiệu quả.

Remote Config cho phép chỉnh sửa ngay lập tức cho người dùng cuối mà không cần phát hành phiên bản mới Bạn có thể thay đổi màu sắc của màn hình, bố cục của một phần cụ thể, hoặc thực hiện các tùy chỉnh định kỳ thông qua các tham số phía server.

Để đảm bảo nội dung trong ứng dụng của bạn được Google đánh chỉ mục, ứng dụng cần sử dụng cùng URL với trang web, nhằm xác nhận rằng cả ứng dụng và trang web đều thuộc sở hữu của bạn.

Firebase Dynamic Links:liên kết đưa chúng ta đến với một nội dung Phần lớn liên kết trong trang web là các liên kết sâu

Cloud Firestore là một cơ sở dữ liệu NoSQL cho phép lưu trữ, đồng bộ hóa và truy vấn dữ liệu một cách dễ dàng cho các ứng dụng di động và web trên toàn cầu.

Người dùng tạo tài khoản và ứng dụng Firebase sẽ cung cấp cho họ một URL duy nhất trên firebaseio.com URL này được sử dụng để lưu trữ và đồng bộ dữ liệu một cách hiệu quả.

Firebase cung cấp một cơ sở dữ liệu cho phép người dùng xem và chỉnh sửa dữ liệu trong thời gian thực Qua bảng điều khiển, người dùng có thể thiết lập chế độ bảo mật và quy tắc cho ứng dụng Firebase của mình.

CocoaPods là cách dễ nhất để bắt đầu với Firebase IOS SDK Để khởi tạo CocoaPods trong project người dùng chạy lệnh dưới đây:

$ cd đường-dẫn-đến-project-của-người dùng

Sau khi chạy xong CocoaPods, người dùng thêm Firebase Pod đến Podfile vừa tạo với đoạn mã sau:

Sau đó quay trở lại màn hình terminal chạy đoạn mã sau:

2.3.3.3 Cài đặt bằng cách thêm thư viên trực tiếp

Bước 1: Tạo một ứng dụng trên Xcode

Bước 2: Tải FirebaseOSX framework theo đường dẫn: https://www.firebase.com/docs/ios/alternate-setup.html

Bước 3: Giải nén tập tin vừa tải về, bạn sẽ nhận được tập tin có tên Firebase.framework Bước 4: Kéo tập tin Firebase.framework vừa giải nén vào ứng dụng mà bạn đã tạo ở bước 1.

Bước 5: Ở mục Build Pharse \ Link Binary With Librarise, thêm vào:

Hình 2.29 Các thư việc sử dụng cho Xcode khi làm việc với Firebase

Bước 6: Chạy ứng dụng và tiến hành làm việc với Firebase

2.3.3.4 Cách sử dụng Để sử dụng firebase người dùng cần import vào tất cả các lớp mà mình sử dụng: import Firebase

Cấu trúc File JSON trong firebase: không có bản ghi

//Tất cả các key và value của file JSON ở “categories” được thêm

"categories": { "one": true, "three": true }

} Ở file này thì Swift có thể chuyển về các dạng như sau để lưu trữ:

Với kiểu BOOL nó có thể đại diện bời NSNumber numberWithBool:(BOOL)

Các thao tác liên kết giữa Firebase và Swift:

- Đầu tiên, tạo tham chiếu đến cơ sở dữ liệu Firbase: var myRootRef = Firebase(url:"https://docs-examples.firebaseio.com/")

- Các method để lấy dữ liệu:

Cập nhật giá trị đã tồn tại trong cơ sở dữ liệu của người dùng bằng cách sử dụng hàm updateChildValues Hàm childByAutoId tự động tạo ra một ID duy nhất cho mỗi người dùng, với định dạng URL là messages/users// Để xử lý dữ liệu phức tạp có thể bị ảnh hưởng bởi việc cập nhật đồng thời, bạn nên sử dụng hàm runTransactionBlock.

To create a structured data tree in Firebase, initialize a reference with the URL of your Firebase Realtime Database Define user data for individuals such as Alan Turing and Grace Hopper, including their full names and dates of birth Append a path to the reference for users and set the user data in the database, ensuring that the data is organized and accessible.

- Cập nhật dữ liệu đã lưu var hopperRef = usersRef.childByAppendingPath("gracehop") var nickname = ["nickname": "Amazing Grace"] hopperRef.updateChildValues(nickname)

Firebase automatically generates a unique ID when a child node is created and added to the database reference For example, by referencing the "posts" path, you can create a new post with an author and title Using the `childByAutoId()` method, a unique identifier is assigned to the post, which can then be saved with `setValue()`.

"title": "Announcing COBOL, a New Programming Language"

- Cách lấy dữ liệu từ Firebase

// Url là đường dẫn của database của chúng ta var ref = Firebase(url:"https://docs-examples.firebaseio.com/web/saving- data/fireblog/posts")

// Chúng ta phải truyền vào Event và một block, block này sẽ được callback khi dữ liệu thay đổi ref.observeEventType(.Value, withBlock: { snapshot in print(snapshot.value)

Chạy đoạn mã này sẽ tạo ra một đối tượng chứa tất cả các bài viết mà người dùng đã đăng, và kết quả sẽ được in ra console.

PHÂN TÍCH VÀ MÔ HÌNH HÓA YÊU CẦU

THIẾT KẾ HỆ THỐNG

CÀI ĐẶT VÀ KIỂM THỬ

Ngày đăng: 06/06/2022, 02:28

HÌNH ẢNH LIÊN QUAN

Hình 2.1 Các kiểu tập hợp trong Swift  2.1.2.4.1  Mảng (Array) - Xây dựng ứng dụng piano karaoke luyện cảm âm trên hệ điều hành ios   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Hình 2.1 Các kiểu tập hợp trong Swift 2.1.2.4.1 Mảng (Array) (Trang 33)
Hình 2.17 Chọn loại ứng dụng - Xây dựng ứng dụng piano karaoke luyện cảm âm trên hệ điều hành ios   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Hình 2.17 Chọn loại ứng dụng (Trang 93)
Hình 2.18 Thông tin của ứng dụng được tạo - Xây dựng ứng dụng piano karaoke luyện cảm âm trên hệ điều hành ios   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Hình 2.18 Thông tin của ứng dụng được tạo (Trang 94)
Hình 2.20 Giao diện chương trình - Xây dựng ứng dụng piano karaoke luyện cảm âm trên hệ điều hành ios   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Hình 2.20 Giao diện chương trình (Trang 95)
Hình 2.22 Navigation area  2.2.4  Chạy ứng dụng (Simulator) - Xây dựng ứng dụng piano karaoke luyện cảm âm trên hệ điều hành ios   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Hình 2.22 Navigation area 2.2.4 Chạy ứng dụng (Simulator) (Trang 97)
Hình 2.28 Cơ sở dữ liệu Firebase - Xây dựng ứng dụng piano karaoke luyện cảm âm trên hệ điều hành ios   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Hình 2.28 Cơ sở dữ liệu Firebase (Trang 102)
Hình 3.1 Usecase chính của hệ thống - Xây dựng ứng dụng piano karaoke luyện cảm âm trên hệ điều hành ios   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Hình 3.1 Usecase chính của hệ thống (Trang 115)
Hình 3.2 Usecase xác thực người dùng - Xây dựng ứng dụng piano karaoke luyện cảm âm trên hệ điều hành ios   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Hình 3.2 Usecase xác thực người dùng (Trang 116)
Bảng 3.6 Mô tả chi tiết use case thích bài viết - Xây dựng ứng dụng piano karaoke luyện cảm âm trên hệ điều hành ios   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Bảng 3.6 Mô tả chi tiết use case thích bài viết (Trang 127)
Bảng 3.7 Mô tả chi tiết use case chia sẻ bài viết - Xây dựng ứng dụng piano karaoke luyện cảm âm trên hệ điều hành ios   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Bảng 3.7 Mô tả chi tiết use case chia sẻ bài viết (Trang 129)
Bảng 3.17 Mô tả chi tiết use case thu âm - Xây dựng ứng dụng piano karaoke luyện cảm âm trên hệ điều hành ios   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Bảng 3.17 Mô tả chi tiết use case thu âm (Trang 144)
Hình 4.1 Class diagram - Xây dựng ứng dụng piano karaoke luyện cảm âm trên hệ điều hành ios   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Hình 4.1 Class diagram (Trang 149)
Hình 4.10 Sequence đăng nhập  4.2.2  Quy trình tìm kiếm bài karaoke cảm âm - Xây dựng ứng dụng piano karaoke luyện cảm âm trên hệ điều hành ios   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Hình 4.10 Sequence đăng nhập 4.2.2 Quy trình tìm kiếm bài karaoke cảm âm (Trang 155)
Hình 4.11 Sequence tìm kiếm bài hát  4.2.3  Quy trình chơi/luyện tập piano - Xây dựng ứng dụng piano karaoke luyện cảm âm trên hệ điều hành ios   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Hình 4.11 Sequence tìm kiếm bài hát 4.2.3 Quy trình chơi/luyện tập piano (Trang 156)
Hình 4.14 Sequence xoá tin  4.2.6  Quy trình thích bài viết - Xây dựng ứng dụng piano karaoke luyện cảm âm trên hệ điều hành ios   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Hình 4.14 Sequence xoá tin 4.2.6 Quy trình thích bài viết (Trang 158)