Overall a lot of cleanup and got to a functional state of playing episodes. Most basic end to end subscribe->get->play
Picker for the notes application side of things
This allows picking between the dev and public stream environments
Needed this because I left myself in the dev env at the start of last week
Case switch statement for this. Toggles the API path
New structure for the podcast app
Overall application state
Have these extensions to encode URLs properly.
Remove HTML from the JSON response that I get from the API.
And then networking helpers is kind of this thing where, at least it lets me, download this image kind of cleanly and I can just call this.
I don't know if this is the right way to do things. I don't think so
Persistent Layer (Core Data):
Local storage & persistent state management
Needs a lightweight data management layer on top
Can convert from Podcast or to it for UI
Can convert from Episode or to it for UI
Decode JSON Response and use it in UI
Now everything is conforming to
Codable to use
This is quite nice
These are Episode and Podcast
Raw JSON that I got from the response so I don't have to hit the API as much.
Something that I definitely need to integrate but I haven't haven't done yet.
Does the heavy lifting
Decodes JSON and fetches images async
May need to use a
DataTaskPublisher in the future
Display current subs -> get to episodes
Perhaps once list item created fetch image? Probably not
On subscribe write to the DB with
Get episodes for a certain podcast
Can fetch from API
First gets local DB data
Refresh button in navbar to get latest podcasts
Worried about performance from all the DB queries
Play and pause buttons for a podcast and starts playing
Minor modification to add
Capture podcast that is playing and control it anywhere
Multiple running ticks when playing/pausing podcasts
AVSessions, should reuse.
CoreData subscribe is all messed up, bad state management, just refactor this
Relationships not fully managed yet
not loading images for episodes
Begin integration into the main notes app.
Either I will integrate it there or do some interprocess communication
Then all of that will go out to server, maybe it will record completely independently of each other to the server.
I don't know
I think they should be sharing some kind of context I don't always want it to go out to the server.
I don't know if this will be one app or separate apps I haven't decided yet. So these are all things to experiment with, I probably will do both because I can mostly just copy and paste.
I might be using closure for the back end
I, ideally would like run once and I can always push updates to it.
I also would like it to be able to people to add their own API's in kind of a thing however you want to add handlers in. That would be great.
This week was fixing all the mistakes I made last week, and making the code way easier to navigate and update, because it was a real pain to work with before it's still kind of a pain, but for me I can understand it in its current state. And I removed a lot of dependencies where I have to update, everything everywhere that still exists, and that's what I'm going to try to abstract away in the future.