Skip to content

This is an open-source free music player without ads, listen to the most popular tracks, a ton of features is coming soon Feel free to shape the player to fit you.

Notifications You must be signed in to change notification settings

abozaid-ibrahim/UPlayer

Repository files navigation

UPlayer

Swift Platform: iOS

MVP music player consumes HearThisAt API to show the popular tracks

Getting Started

  • If this is your first time encountering swift/ios development, please follow the instructions to set up XCode and Swift on your Mac.
  • To set up cocoa pods for dependency management, make use of CocoaPods

Setup Configs

  • Checkout master branch to run the latest version
  • Open the terminal and navigate to the project root directory.
  • Make sure you have cocoa pods set up, then run: pod install
  • Open the project by double-clicking the UPlayer.xcworkspace file
  • Select the build scheme which can be found right after the stop button on the top left of the IDE
  • [Command(cmd)] + R - Run app
// App Settings
APP_NAME = UPlayer
PRODUCT_BUNDLE_IDENTIFIER = abozaid.UPlayer

#targets:
* UPlayer
* UPlayerTests
* UPlayerUITests

Build

  • Select the build scheme which can be found right after the stop button on the top left of the IDE
  • [Command(cmd)] + B - Build app
  • [Command(cmd)] + R - Run app

Architecture

This application uses the Model-View-ViewModel (referred to as MVVM) UI architecture.

Folders Structure

  • SupportingFiles: Group app shared files, like app delegate, assets, info.plist, ...etc
  • Modules: Include separate modules, components, extensions, ...etc.
  • Scenes: Group of app scenes.

Dependencies

TODOs

  • Set-up dependencies
  • Add swiftlint yml, gitignore.
  • Implement artists list, songs list
  • Paginate the artists API
  • Implement audio player
  • Check different device size and different orientation
  • Check dark mode
  • Add unittests
  • Add ui-tests
  • Render waveform to audio player
  • Enable audio player full screen page by swipe up.
  • Add CD pipelines using github actions.
  • Create app test plan
  • Integerate with danger.
  • Add search feature.
  • Cach the audio and json response
  • Auto play next audio file in the list.
  • Reach 100% code coverage.
  • Add split controller for iPad
  • Play music in background
  • Add XCConfig

Useful links

About

This is an open-source free music player without ads, listen to the most popular tracks, a ton of features is coming soon Feel free to shape the player to fit you.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published