Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Backend rewrite #189

Open
rasmuslos opened this issue Jan 6, 2025 · 0 comments
Open

Backend rewrite #189

rasmuslos opened this issue Jan 6, 2025 · 0 comments

Comments

@rasmuslos
Copy link
Owner

rasmuslos commented Jan 6, 2025

I made the first version of ShelfPlayer about two years ago and have rewritten it in its entirety sometime since then. With 2.5.0 I redid most of the front end, but there is still some work to do.

Even though 2.5.0 has been tested for months, some crashes still got into the release version. They are (as far as I can tell) caused by concurrently executing code. Arrays are probably the root cause, as they are not thread-safe. However there are some other shortcomings of the current backend, and I want to address them.

So I decided to rewrite it. I already finished SPFoundation & SPNetwork. So SPPersistence and SPPlayback remain. For anyone curious, the progress can be seen here.

Among other things, this should allow for and improve:

  • Multi-user support
  • Intents
  • More efficient downloads
  • Less crashes & hangs
  • More complex features
  • Lots of small things

This might be a personal thing, but I learned a lot over the last two years (ShelfPlayer v1 was the first application entirely written in Swift I ever developed), and it shows. The new code I write is a lot better, which improves performance, but it's just nice in general to have clean, well-written, and easy-to-maintain code, Which is what I am trying to achieve.

But doing this takes time. I worked for two days on the new connection add/manage views and am still not done. So, if you are affected by the crashes or are really waiting for Widgets, etc., you will need some more patience. Since it's the new year, I also need to do my taxes now, which is essentially a large, inefficient, poorly documented, convoluted black hole for my time.

That's it, I just wanted to share what I am up to because there won't be a release in the foreseeable future and merge all issues related to mysterious crashes.

Happy New Year!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant