Giter Club home page Giter Club logo

itunespractice's Introduction

ITunesPractice

這個專案主要是模仿 Apple Music 的 side project,尚在開發中,所以有些舊code會殘留在資料夾內。

功能展示

  • 基本播放功能:

    • 播放、暫停
    • 上一曲、下一曲
    • 長按按鈕快轉、倒帶
    • 調整系統音量
    • 拖曳調整播放進度
    • 重複播放、隨機播放
  • 其他功能:

    • 列表在滾到頁面底部時,透過分頁機制載入新的分頁,直到沒有更多的歌曲。
      703133132 870802

    • 抓取專輯封面主色製作漸層背景
      simulator_screenshot_1CF8119B-0706-4AFE-83F3-80352FDA9559

    • 聲音搜尋辨識功能
      音樂辨識

    • 支援背景播放(靜音模式、關閉螢幕、將app滑入背景時都可以繼續播放音樂)
      S__23265288

    • 支援 AirPlay 鏡像輸出功能
      支援 AirPlay 功能

    • 長按cell出現快捷選單
      simulator_screenshot_6DE22608-56AE-47DE-8B69-841FFFA74E92

專案環境

  • Bundle Identifier: com.pinyi.itunesmusic
  • Xcode Version: 14.2.0
  • minimumVersion: iOS 15.0

軟體架構

MVVM

重要 Class

Tab Class Name Description
Tab1 SearchViewController 「搜尋」
Tab2 LibraryViewController 「資料庫」
Tab3 AudioSearchViewController 「聲音搜尋」
  • MainTabBarController TabBar控制頁

    • 迷你播放器頁面:MiniPlayerViewController
  • SearchViewController 搜尋頁

    • 搜尋結果頁:SearchResultsViewController
    • 搜尋結果資訊頁:TrackDetailViewController
    • 預覽頁:PreviewViewController
    • 上下文菜單預覽頁:TrackContextMenuViewController
  • LibraryViewController 資料庫頁

  • AudioSearchViewController 聲音搜尋頁

    • 聲音搜尋結果頁:AudioSearchResultViewController
  • PlaylistViewController 播放清單頁

    • 播放器頁: PlaylistPlayerViewController
  • MusicPlayer 音樂播放的 Helper

練習使用的技術/套件/框架

  • 音樂播放相關原生庫 (AVFoundation、AVKit、MediaPlayer)
  • ShazamKit 聲音搜尋辨識相關
  • Combine
  • ContextMenu
  • FloatingPanel(調整viewController高度)
  • Navigationbar appearance
  • PropertyWrapper
  • SnapKit(練習以純code刻畫面)
  • SF Symbols
  • SwiftLint
  • SwiftFormat
  • UIViewPropertyAnimator
  • 從專輯圖片取得漸層色(ColorKit、UIImageColors、UIImageColors...等第三方庫)

itunespractice's People

Contributors

gruj1995 avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.