HomeHub - Swift app to control my home's smart devices + show spotify current playback

Related tags

Audio HomeHub
Overview

HomeHub

iPad app to control my home's smart devices + show spotify current playback.

Written in Swift 5 using UIKit and the Model-View-ViewModel design pattern.

I created this app for a few reasons:

  • as a way to take a mental break from my larger project, listMaven
  • When friends are over they cannot control these lights themselves, so this gives them an easy way to do it
  • and because I didn't like using August's app with their unusally poor UI/UX.

This app is akin to a home-cooked meal (s/o @bmitchinson), meaning that it's just for my own use, is not customizable, and is essentially done besides bug fixes and updates as I see fit.

app screenshots

Components:

Lights

The lights are Phillips Hue A19 white-light dimmable bulbs. I am using the SwiftyHue library to control them. Every few seconds it polls the lights' state; Changing the slider values or tapping the light bulb icon submits a new light level to the phillips api.

Lock

The lock is an August Wi-Fi Smart Lock. I am using Alamofire to hit their unpublished api endpoints and so far it's working. Every few seconds it polls lock state; Tapping the button submits a request to lock/unlock.

Music

I hooked up my Spotify account using this awesome library. Like the other components, it polls what's currently playing every few seconds, showing the album image, track name, artists, and song progression. Supports an empty state when nothing is playing.

UI

The UI's design is heavily influenced by listMaven and was created using my favorite app of all time, Figma.

You might also like...
Automated Apple Music Lossless Sample Rate Switching for Audio Devices on Macs.
Automated Apple Music Lossless Sample Rate Switching for Audio Devices on Macs.

LosslessSwitcher switches your current audio device's sample rate to match the currently playing lossless song on your Apple Music app, automatically.

🎶 Control Apple Music right from your macOS menu bar.
🎶 Control Apple Music right from your macOS menu bar.

About Music Bar is macOS application that places music controls right in your menu bar. Installation Download and unzip the latest release. Drag the a

Control the listening mode on your AirPods Pro in the Touch Bar or Menu Bar.
Control the listening mode on your AirPods Pro in the Touch Bar or Menu Bar.

NoiseBuddy Change noise cancelling settings on your AirPods Pro or Beats Solo Pro directly from your Mac's Menu Bar or Touch Bar. I wanted an easier w

Successor of iTunes Volume Control
Successor of iTunes Volume Control

Volume Control (for Apple Music and Spotify) Description This app allows you to directly control the volume of Apple Music and of Spotify using volume

Squares - a toy drum machine which you can control by multi touch capabilities of your track pad
Squares - a toy drum machine which you can control by multi touch capabilities of your track pad

Squares Squares is a toy drum machine which you can control by multi touch capab

🖥 Control your display's brightness & volume on your Mac as if it was a native Apple Display
🖥 Control your display's brightness & volume on your Mac as if it was a native Apple Display

🖥 Control your display's brightness & volume on your Mac as if it was a native Apple Display. Use Apple Keyboard keys or custom shortcuts. Shows the native macOS OSDs.

AIB indicates for your app users which audio is playing. Just like the Podcasts app.
AIB indicates for your app users which audio is playing. Just like the Podcasts app.

Audio Indicator Bars for iOS and tvOS Indicates for your app users which audio is playing. Just like the Podcasts app. Index Requirements and Details

Professional Radio Station App - now supports Swift 5 / Xcode 10!
Professional Radio Station App - now supports Swift 5 / Xcode 10!

Swift Radio Swift Radio is an open source radio station app with robust and professional features. This is a fully realized Radio App built entirely i

Voice Memos is an audio recorder App for iPhone and iPad that covers some of the new technologies and APIs introduced in iOS 8 written in Swift.
Voice Memos is an audio recorder App for iPhone and iPad that covers some of the new technologies and APIs introduced in iOS 8 written in Swift.

VoiceMemos Voice Memos is a voice recorder App for iPhone and iPad that covers some of the new technologies and APIs introduced in iOS 8 written in Sw

Comments
  • Song Progress Interpolation

    Song Progress Interpolation

    The song progression bar is a bit choppy since it updates once a second -- update the progression more frequently using interpolation.

    Other things

    • I don't use my lock anymore so stop polling for its state
    • Fixed a bug in MusicService where the receiveCompletion(_:) didn't have its own completion, so the caller method loadCurrentlyPlaying(_:) would never invoke its completion and player state polling stopped (typically after receiving an error).

    Closes #2

    opened by cooperbell 0
  • Song Progression Interpolation

    Song Progression Interpolation

    The song progression progress bar updates once a second so it looks a bit choppy. Come up with an interpolation algorithm to continue progression in between updates

    opened by cooperbell 0
  • Music full screen view

    Music full screen view

    Full screen view for Spotify playback.

    • Fades in/out on view tap
    • View cannot be presented if nothing is playing (i.e. TrackInfo is nil)
    • If view is presented and playback stops, it dismisses itself after 5 minutes
    • The main subview has a shadow of the album cover's average color, defaults to white if none

    image

    opened by cooperbell 0
Owner
Cooper Bell
Cooper Bell
An iOS app that visually clones Spotify's app and consumes the official Spotify's Web API to show(and play) songs, podcasts, artists and more.

SpotifyClone An iOS app that visually clones Spotify's app and consumes the official Spotify's Web API to show(and play) songs, podcasts, artists and

null 104 Jan 7, 2023
Native iOS Ambisonic Playback

This project is an example of how to get ambisonic playback and decoding with native AVFoundation, AVAudioEngine and AVAudioEnvironment node.

Robert Coomber 2 Sep 1, 2022
A simple Spotify lyrics viewer menu bar app for macOS in Swift 3

lyricsify This is a simple macOS menu bar application that shows you the lyrics of current playing spotify track. All the lyricses are from Wikia webs

Mohamad Jahani 85 Dec 31, 2022
A pure Swift Spotify Music App in Apple Music style

HBMusic A pure Swift Spotify Music App in Apple Music style. How to run pod inst

haoboxuxu 6 Dec 29, 2021
A tiny menu bar app detecting the chords of the songs you are listening on iTunes or Spotify.

ChordDetector A tiny menu bar app that listens iTunes and Spotify to detect chords of songs! Demo Features iTunes and Spotify support. Saves up to 20

Cem Olcay 72 Dec 26, 2022
RHPreviewCell - I envied so much Spotify iOS app this great playlist preview cell 😍

I envied so much Spotify iOS app this great playlist preview cell ??, I decided to create my own one ??. Now you can give your users ability to quick check what content is hidden under your UITableViewCell. Great think is that this Library not requires 3D Touch support from user device??.

Robert Herdzik 387 Sep 23, 2022
A real-time, votable, democratized music queue on iPad and iPhone using Spotify

Queue'd Music Queue'd is the best way to enjoy music with your friends. Add your favorite songs to a shared music queue at your favorite bars, restaur

Ryan Daulton 88 Dec 2, 2022
Dead-simple queue-oriented client for Spotify

Spotiqueue A terribly simple macOS app for keyboard-based, queue-oriented Spotify use. Many years ago i built a version which relied on a now-deprecat

paul 74 Dec 3, 2022
A Spotify clone created using SwiftUI

Spotify Clone Its a Spotify clone created using SwiftUI. Deployment To deploy th

Manav Deep Singh Lamba 1 Jan 17, 2022
Contains common infrastructural code for apps to communicate among computers, sound synthesizers, and other multimedia devices via OSC.

The CoreOSC package contains common infrastructural code for your apps to communicate among computers, sound synthesizers, and other multimedia devices via OSC.

Sammy Smallman 3 Oct 7, 2022