Non-trivial ideas and quality work are the main components of success. As you may have guessed, Spotify has both. If you want to create a Spotify-like app, first explore the idea and technology behind it, as it's operating principle significantly differs from other online streaming services and aims to provide customers with the best user experience ever.
- Spotify App Ui Frameworks
- Spotify Music App
- Desktop Ui Framework
- Spotify Ui Update
- Spotify App Ui Framework 4.8
- Spotify App Ui Framework App
Today it was revealed that Spotify’s newest user interface for Android and iOS is mostly for new users – for the moment. Users discovered this via Reddit, where user experiences are shared and screenshots are compared. We tried a method shared by users there, and surprise! A new account with the newest version of the app yields a new UI, but switching back to an old account brings the UI back to the old look.
View all on Spotify Allied to the more organic, instrumental groovesters in the American post-rock scene led by Tortoise, Ui focuses on angular grooves provided by a dual-bass attack. The New York band was formed in 1990 by bassist Sasha Frere-Jones (formerly of the group Dolores and probably better known as a journalist than a musician) and drummer Clem Waldmann. Spotify is a 100%-Agile company that started with the Scrum framework, but as their teams were growing, they noticed some things on the Scrum framework that weren’t working well for them. About a month ago I noticed Spotify made a change in the music player for their playlists. It looks different then the player we have in our personal playlists, saved songs, etc. This change makes the Spotify app very difficult and frustrating to use. In the below image, I compared the two side by side. For the UI we have written a pretty advanced application framework (called 'Stitch') for allowing every view to be developed independently by different teams without having to worry about breaking anything. The views run in a sandboxed, but can still depend on shared libraries for common things such as loading track metadata, etc.
To test the new dual-interface situation, delete your Spotify app. If you’re on Android, you can just try deleting your cache and saved data via Apps in Settings. But deleting the whole thing is easier, especially since you won’t then have to log out. Once you’ve downloaded the app after having deleted the app, continue on.
Log in with a new account into this new Spotify app. You’ll need to create this account from scratch – and don’t worry about the email and details, you won’t have to verify anything. Once you’re in, you should see some rather lovely new ways to interact with Spotify.
Above you’ll see screenshots of the new UI. Below you’ll see what it all looks like if you then log out and log in with your primary account. Everything switches back to pre-update. We can only assume that this means the update is switching out to new users as soon as the transfer of data for each individual account is complete. Until then, only new users have access to new functionality.
If you log out with the newly created account and immediately log back in with your Premium account, you might still see the new UI, including a tab that suggests you do not have a Premium account. Once you close the app and open the app again, you’ll see the old UI (with your Premium features) once again.
Story Timeline
Welcome to the Hub Framework - a toolkit for building native, component-driven UIs on iOS. It is designed to enable teams of any size to quickly build, tweak and ship new UI features, in either new or existing apps. It also makes it easy to build backend-driven UIs.
The Hub Framework has two core concepts - Components & Content Operations.
Components
Instead of building
UIViewControllers
that each have hard-wired behaviors for UI in terms of controls, data binding & selection handling - a Hub Framework-powered UI is all about components.
Components can be reused and rearranged in any way, and render any model. They each define a rectangle on the screen in which anything can be rendered, making it easy to quickly iterate on UI and creating modular building blocks that reduce the need for code duplication.
The good news is that you don’t have to rewrite your existing
UIViews
to start using the Hub Framework, instead, the architecture of the framework is completely protocol oriented, making it easy to add compatibility to existing UI.
To learn more about components, check out the Component programming guide.
Content Operations
To match the highly dynamic component-driven UIs, content operations define what content to render in a declarative fashion. Content can either be defined in code, running locally in the application, or through JSON that is provided by a backend system. This enables you to easily aggregate data from multiple sources, and to change your UI and its content directly from the backend.
Each feature of an application can define its own content operations, and put them together to form a content loading chain. Each operation can perform an atomic mutation of the UI state, enabling easy implementation of things like A/B testing or providing system-wide functionality like caching or loading indicators.
To learn more about content operations, check out the Content programming guide.
Background story
So, why did we build this? At Spotify, we love to experiment with our UI, to present content in new exciting ways - and to continue to learn what works and what doesn’t. https://evertherapy363.weebly.com/blog/playing-spotify-on-mac.
However, the traditional way of building and shipping UIs on iOS was slowing us down. Always having to write
UIViewControllers
from scratch, hard-wiring behaviors and tying specific models to specific views lead to slow iteration times and a lot of duplicate work.
So, we did what we always do - we started experimenting. The Hub Framework is the result of those experiments. We realized that by building our UIs as
hubs of contentusing components as building blocks, and by fully decoupling our model code from our UI using content operations - our app became a lot more dynamic and easier to work with. What’s more, by letting our backend JSON data contain additional metadata and fully localized strings, we could render responses directly. Instead of having to do lots of custom mapping and transforms in all views.
The result is that we are now free to experiment and try out new UI ideas quicker than ever - all while having a lot less code to maintain. By sharing the Hub Framework with you - the open source community - we hope that more apps and teams can benefit from using this type of architecture.
How does Spotify use this?
This framework is used in production in the Spotify iOS app, which is used by many millions of users every day. We use it to build views like Browse, Running, Party, Genre Pages and more. Important to note is also that we don’t keep an internal mirror of this repo - all development on the Hub Framework is done in the open.
Compatibility
The Hub Framework is compatible with iOS 8 or later, and can be used from either Objective-C or Swift. In Swift, the API has been annotated to feel Swift-native, with proper nullability and API refinements for Swift 3.
While the framework itself is written entirely in Objective-C, the demo app is written in Swift 3.
Installation
![Spotify music app Spotify music app](/uploads/1/3/4/1/134146389/131537526.png)
You can choose to install the Hub Framework either manually, or through a dependency manager.
Manually
- Clone this repo (for example, add it as a submodule).
- Drag the project
HubFramework.xcproj
into Xcode as a subproject of your app project. - Link with
HubFramework
by adding it inLinked Frameworks and Libaries
, under theGeneral
tab in your app’s project settings.
Using CocoaPods
To use CocoaPods, first make sure you have installed it and updated it to the latest version by following their instructions on cocoapods.org
Add
HubFramework
to your Podfile
:
Update your pods:
Using Carthage
To use Carthage, first make sure you have installed it and updated it to the latest version by following their instructions on their repo
First, add
HubFramework
to your Cartfile
:
Then, run Carthage:
Link with SystemConfiguration
Once you’ve installed the Hub Framework, link your app with Apple’s
SystemConfiguration
framework. This is done by adding it in Linked Frameworks and Libaries, under the
Generaltab in your app’s project settings. This framework is used to determine the connectivity state of an app using the Hub Framework.
Spotify App Ui Frameworks
Importing the framework
In Objective-C:
Spotify desktop app features. In Swift:
Getting started
To enable you to quickly get started using the Hub Framework, we’ve created a setup guide that walks you through how to set it up in an application, as well as a getting started guide that will give you a step-by-step tutorial to building your first view using it.
There are also a series of programming guides that each introduce you to different aspects of the framework.
Spotify Music App
Demo app
To see an example implementation of the Hub Framework, open up the demo app that has a few different features, showcasing some of the capabilities of the framework.
Documentation
The Hub Framework’s API is well documented and we generate both a documentation website as well as a DocSet for the documentation app Dash. The documentation is also written in such a way that Xcode will present it on usage.
The Dash documentation is updated automatically for you on any changes to the framework. Get it by subscribing to the https://spotify.github.io/HubFramework/docsets/HubFramework.xml feed.
Live editing
Since the Hub Framework enables UIs to be defined using JSON data, it also enables you to quickly build or prototype UIs using a local JSON file. It includes a command line tool (
hublive
) that, when run, enables you to see changes you make in that local JSON file rendered live in your application. For more information about how to use live editing, see the Live editing guide
Desktop Ui Framework
Xcode file templates
The Hub Framework contains a set of Xcode file templates that make it easy to create the boilerplate for components, content operations, etc.
To install them, simply copy the
Hub Framework
folder located in templates/xcode
to ~/Library/Developer/Xcode/Templates/File Templates
(You may need to create the last two folders in that path).
Help & Bug Reporting
In case you need help or want to report a bug - please file an issue. Make sure to provide us with as much debuggable information as you can, like iOS version used and any reproduction steps. Sample code also makes it a lot easier for us to help you.
You can also chat with the team behind the Hub Framework directly! The Spotify FOSS community has a Slack Group that you can join. Once you’ve joined, head over to the
hubframework
channel to chat with us!
Spotify Ui Update
Contributing
Anyone is more than welcome to contribute to the Hub Framework! Together we can make the framework even more capable, and help each other fix any issues that we might find. However, before you contribute, please read our contribution guidlines.
Spotify App Ui Framework 4.8
Authors
Spotify App Ui Framework App
The Hub Framework was built at Spotify by John Sundell, Aron Cedercrantz, Robin Goos and several others.