Allows users to pull in new song releases from their favorite artists and provides users with important metrics like their top tracks, top artists, and recently played tracks, queryable by time range.

Related tags

Layout SpotifyRadar
Overview

Spotify Radar

Spotify Radar is an iOS application that allows users to pull in new song releases from their favorite artists and provides users with important metrics like their top tracks, top artists, and recently played tracks, queryable by time range.

Architecture: MVVM + Coordinator + RxSwift

Getting Started

Prerequisites

Pods have already been committed so no need to run 'pod install'

Installing

Create a spotify application and save your clientId and clientSecret to SpotifyDaily_iOS/Services/Configuration.swift. Of course, when you make a PR, don't include Configuration.swift in it.

Open xcworkspace and run

Built With

Contributing

  • If you find a bug, or would like to suggest a new feature or enhancement, it'd be nice if you could search the issue tracker first; while we don't mind duplicates, keeping issues unique helps us save time and considates effort. If you can't find your issue, feel free to file a new one.
  • Please read CONTRIBUTING.md for details on how to contribute–it has information on the process for handling contributions, and tips on how the code is structured to make your work easier, and the process for submitting pull requests to us.

License

This project is licensed under the MIT License - see the LICENSE file for details

Screenshots

Comments
  • open issue #8 UISlider snap functionality and tick marks

    open issue #8 UISlider snap functionality and tick marks

    added tick marks to the newReleasesSlider UISlider and snap functionality as detailed in issue 8. also fixed a typo.

    Fixes # created 12 custom views to be placed on the UISlider so users can know when to release the thumb. also added snap functionality to the UISlider that rounds too nearest whole number

    opened by amustafa15 1
  • cannot proceed past login page

    cannot proceed past login page "Missing required parameter client_id"

    Description

    managed to login with my normal Spotify credentials but am being redirected to an error page that says "Missing required parameter client_id". I also haven't used Spotify as my music streaming service in years so I don't know if that is playing a role. tried changing my password but still got the same screen after logging in. not sure what to do. printing configuration to the console and it seems it's set as "" and never changed. Don't know where to change it.

    Expected Behavior

    advance past the login screen to the homepage.

    Actual Behavior

    get a blank page with an error that just says "Missing required parameter client_id"

    Steps to Reproduce the Problem

    1. run app in Xcode 12.4
    2. enter login credentials 3.press enter

    Possible solution

    maybe set the client_id manually but I'm not sure if that's the best practice. read through Spotify docs to find if I can somehow get my client_id from json response data or something.

    Specifications

    • XCode Version: 12.4

    Screenshot

    Screen Shot 2021-09-21 at 3 47 07 PM

    Edit: looking at Spotify docs now it says you can get the client_id from the developer dashboard but the links to login or create an account don't do anything. just opens a small window and then closes it out before anything can happen.

    opened by amustafa15 1
  • Add a License to the Project

    Add a License to the Project

    Currently, there are no open-source licenses for this project. That means people have no permission from the creators of the software to use, modify, or share the software.

    It would be great to check out https://choosealicense.com and add an appropriate license. I would recommend the GNU General Public License v3.0.

    opened by 5fcgdaeb 1
  • Dashboard not refreshing when child dismissed

    Dashboard not refreshing when child dismissed

    Description

    Dashboard doesn't display correct data when time range parameters change. For example, after clicking "Top Tracks" on the dashboard(assume "Top Tracks" has a medium_term time range selected), changing the time range of "Top Tracks" I want to see to short_term, and navigating back to the dashboard, the dashboard still displays the tracks of medium_term time range.

    Expected Behavior

    Dashboard should display the new tracks associated with short_term time range.

    Actual Behavior

    Dashboard displays the new tracks associated with medium_term time range.

    Steps to Reproduce the Problem

    1. Run the app and click Top Tracks
    2. By default, medium_term is selected. Select short_term in the segmented control.
    3. The tracks should refresh in the tableview. Now, slide downward to dismiss the viewcontroller.
    4. After navigating back to the Dashboard, you will see that the preview of Top Tracks still displays tracks associated with short_term.

    Possible solution

    I have already added a childDismissed observable to DashboardViewModel. All that needs to be done is whenever childDismissed emits a new value, set the values of artistCollections and trackCollections again, by calling the respective sessionService method. This one is pretty easy.

    Specifications

    • XCode Version: 11
    bug good first issue 
    opened by ThasianX 0
  • Feature/open source setup

    Feature/open source setup

    A few conventions are applied so that the repository can get contributions:

    • Added a .gitignore file
    • Created a Github issue and removed the issue from the Readme file
    • Development Team is set to None (for privacy and practical reasons)
    opened by 5fcgdaeb 0
  • added 'if #available' version check for  configureSearchController()

    added 'if #available' version check for configureSearchController()

    Fixes #

    App can now compile on iOS 12 and lower build targets

    Proposed Changes

    • wrapped searchBar.searchTextField.textColor = ColorPreference.mainColor in if #available (iOS 13) conditional
    opened by andrewkrechmer 0
  • 'searchTextField' is only available in iOS 13.0 or newer

    'searchTextField' is only available in iOS 13.0 or newer

    Description

    'searchTextField' is only available in iOS 13.0 or newer error in AddArtistsViewController.configureSearchController()

    Expected Behavior

    searchBar.searchTextField.textColor = ColorPreference.mainColor should only run for devices running iOS 13 +

    Actual Behavior

    searchBar.searchTextField.textColor = ColorPreference.mainColor is run on devices running lower than iOS 13 as well as iOS 13 +

    Steps to Reproduce the Problem

    1. Attempt to compile with deployment target of iOS 12 or lower

    Possible solution

    Add 'if #available' version check

    Specifications

    • XCode Version: 12.4

    <- Delete if none ->

    Screenshots

    opened by andrewkrechmer 0
  • Add notifications when a new track is released by an artist in user’s portfolio

    Add notifications when a new track is released by an artist in user’s portfolio

    Please Describe The Problem To Be Solved As of now, the user has to manually check in with the app to see if new songs have been released by artists in their portfolio. Once again, this detracts from the user's experience.

    (Optional): Suggest A Solution You can automate this by using push notifications to notify the user when a new song has been released. *Would require an Apple Developer Program membership to acquire push notification certificate.

    enhancement wontfix 
    opened by ThasianX 0
  • Authenticate directly with the spotify app

    Authenticate directly with the spotify app

    Please Describe The Problem To Be Solved Wherever possible, it's always best to improve the user's experience: if the user has Spotify on their device, it makes sense to open Spotify and authenticate from there instead of safari.

    (Optional): Suggest A Solution I'm not sure if this is possible; I did a bit of looking on Spotify's website but could only find Web authentication. If it isn't, someone comment and I'll close this issue.

    enhancement good first issue question 
    opened by ThasianX 0
  • Open links directly in the spotify app rather than safari

    Open links directly in the spotify app rather than safari

    Please Describe The Problem To Be Solved As of now, all links are opened in a safari browser. If the user wants to play a track they opened from the app, they have to go through safari first and then click a link on Spotify's page to redirect them to Spotify. It's a tedious process.

    (Optional): Suggest A Solution Open the link directly in Spotify, if it exists on the user's phone. You can do this through a simple check: Spotify has a nice guide on content linking. This is a great one for beginners!

    enhancement good first issue 
    opened by ThasianX 0
Owner
Kevin Li
Junior @ OSU. SWE @ Gatsby
Kevin Li
ios-queryable is an implementation of IQueryable/IEnumerable for Core Data

#ios-queryable is an Objective-C category that provides IQueryable and IEnumerable-like functionality to Core Data. Tired of writing boilerplate Core

Marty Dill 227 Mar 3, 2022
A mental health app designed to help users track their emotions with short, tweet-like journals.

Objective The purpose of this project is to create a mental health app where users will input a short journal each day that is no longer than a tweet

Isha Mahadalkar 0 Dec 25, 2021
SwiftUI views that arrange their children in a Pinterest-like layout

SwiftUI Masonry SwiftUI views that arrange their children in a Pinterest-like layout. HMasonry A view that arranges its children in a horizontal mason

Ciaran O'Brien 88 Dec 27, 2022
This library allows you to make any UIView tap-able like a UIButton.

UIView-TapListnerCallback Example To run the example project, clone the repo, and run pod install from the Example directory first. Installation UIVie

wajeehulhassan 8 May 13, 2022
Alignment Control is a component to align top, middle, bottom, left, center, right.

AlignmentControl is a component for alignment Direction AlignmentDirection Horizontal Vertical Mode AlignmentMode Left Center Right Top Middle Bottom

Beslan Tularov 38 Mar 16, 2022
A custom layout built on top of SwiftUI's Layout API that lays elements out in multiple lines. Similar to flex-wrap in CSS, CollectionViewFlowLayout.

WrapLayout A custom layout built on top of SwiftUI's Layout API that lays elements out in multiple lines. Similar to flex-wrap in CSS, CollectionViewF

Hiroshi Kimura 6 Sep 27, 2022
An experiment creating a particle emitter using the new TimelineView and Canvas views in SwiftUI

Particle Emitter An experiment creating a particle emitter using the new Timelin

Emilio Peláez 8 Nov 11, 2022
IOS-App4 - Core Data add new data and update data

iOS-App4 Core Data add new data and update data.

null 0 Jan 8, 2022
SwiggyClone - A Swiggy clone will dive deep into UICompositional Layouts and alot of new concepts

SwiggyClone This app is a clone of Swiggy (in progress). In this project we will

Dheeraj Kumar Sharma 81 Dec 25, 2022
LemonadeDeclarativeUI framework contains some new functions for UIKit

LemonadeDeclarativeUI framework contains some new functions for UIKit. This library has been developing. If you want to contribute reach me!

Özgür Elmaslı 0 Jan 2, 2022
What's New In SwiftUI for iOS 16 - Xcode 14 - SwiftUI 4.0

SwiftUI4 What's New In SwiftUI for iOS 16 - Xcode 14 - SwiftUI 4.0 (Work in progress....) Swift Charts Presentation Detents(Half Sheet & Small Sheets)

Sebastiao Gazolla Jr 3 Oct 23, 2022
WHAT WILL YOU LEARN? Onboarding Screen with Page Tab View, state of the app with the new App Storage

WHAT WILL YOU LEARN? Onboarding Screen with Page Tab View, state of the app with the new App Storage Onboarding or a Home screen Understand how the new App Life Cycle works Link View 
 Group Box View Disclosure View Dynamically List View with a loop

Ghullam Abbas 5 Oct 17, 2022
Powerful autolayout framework, that can manage UIView(NSView), CALayer and not rendered views. Not Apple Autolayout wrapper. Provides placeholders. Linux support.

CGLayout Powerful autolayout framework, that can manage UIView(NSView), CALayer and not rendered views. Has cross-hierarchy coordinate space. Implemen

Koryttsev Denis 45 Jun 28, 2022
A tech-for-good, green and digital solution based on CSA which promotes the green agricultural production for small farmers, provides responsible produce for consumers.

Green Farm IBM : Call for Code 2021 Green Farm is a tech-for-good, green and digital solution based on CSA which promotes the green agricultural produ

null 0 Oct 14, 2022
Apple provides us two ways to use UIKit views in SwiftUI

RepresentableKit Apple provides us two ways to use UIKit views in SwiftUI: UIVie

YUMEMI Inc. 43 Dec 26, 2022
Arrange views in your app’s interface using layout tools that SwiftUI provides.

Composing custom layouts with SwiftUI Arrange views in your app's interface using layout tools that SwiftUI provides. Overview This sample app demonst

Apple Sample Code 0 Jun 9, 2022
In SwiftUI, a property-wrapper provides velocity in pt/s from gesture

swiftui-GestureVelocity In SwiftUI, a property-wrapper provides velocity in pt/s from gesture Instructions @GestureVelocity private var velocity: CGVe

Hiroshi Kimura 9 Oct 3, 2022
SwiftUI views that arrange their children in a flow layout.

SwiftUI Flow SwiftUI views that arrange their children in a flow layout. HFlow A view that arranges its children in a horizontal flow. Usage ScrollVie

Ciaran O'Brien 114 Jan 5, 2023
Reusable GridView with excellent performance and customization that can be time table, spreadsheet, paging and more.

GridView GridView can tile the view while reusing it. It has an API like UIKit that works fast. Even when device rotates it smoothly relayout. Appetiz

Kyohei Ito 830 Dec 23, 2022