_inside, (edited )
@_inside@mastodon.social avatar

Bad news: if you use SwiftData, you won't be able to preview your app in Xcode 15 beta 3 😔

(If I'm holding it wrong, please do let me know)

(Edit: see reply)

branfonk,

@_inside I’ve had issues with using @ Bindable since beta 1 alongside SwiftData, which was making previewing in the canvas near impossible. That said, if you’re content building to simulator/device right now, I have nothing but really amazing things to say about SwiftData. The barrier to entry for data persistence and queries is now so attainable that it’s sure to lead to some amazing improvements for so many apps. Highly recommend powering through any beta issues; it’s so worth it!

ishabazz,

@_inside So far SwiftData has seemed like a good idea that I'm going to wait a bit on.

g0ld2k,

@ishabazz @_inside same, I was so excited to adopt it, but it appears that SwiftData needs a bit more work before I can adopt it.

mergesort,
@mergesort@macaw.social avatar

@ishabazz @_inside I've been trying and really using SwiftData all summer to have good standing for a fair comparison with Boutique and I swear I'm not trying to be a hater but the implementation does not feel fully baked yet.

_inside,
@_inside@mastodon.social avatar

@mergesort @ishabazz Yeap, same. Strongly considering Boutique for this project. I'm just getting started so it wouldn't be a big deal to swap out the persistence layer at this point.

brzz,
@brzz@mastodon.social avatar

@_inside @mergesort @ishabazz Are there any benchmarks for Boutique/Bodega? Love the look of the syntax, but curious how it compares to GRDB which is a real workhorse https://github.com/groue/GRDB.swift/wiki/Performance

mergesort,
@mergesort@macaw.social avatar

@brzz @_inside @ishabazz There are some benchmarks in the Bodega docs because your performance will vary based on what StorageEngine you select. (StorageEngines are plug and play, pick whichever you want, the default is SQLite but you can choose the file system or make your own as some people have done.) The short answer though is fast, not a perfect metric but I haven’t had a single person complain about speed. https://mergesort.github.io/Bodega/documentation/bodega/using-storageengines

mergesort,
@mergesort@macaw.social avatar

@_inside @ishabazz Some of what SwiftData has done has revitalized my interest in making some Boutique upgrades, for example some basic relationships would go a long way. Especially if you don’t have to bring in all of Core Data and Core Data thinking to get them, after the initial “just plug in SwiftData” using it is actually somewhat complicated compared to Boutique. If you do you end up using Boutique you know where to find me (the internet), and I’d love to hear what you think.

markmalstrom,

@mergesort another thing I was thinking might be nice in Boutique from SwiftData is typesafe predicates so you didn’t have to wait for the DB to return everything and then filter it in Swift. And, of course, @Observable support

mergesort,
@mergesort@macaw.social avatar

@markmalstrom Definitely agree with @Observable but I'm a little less sold on using Predicates as much as I like 'em. (Though open to changing my mind). One of Boutique's principles is that you should never be able to get into a state where the data in memory and data on disk are inconsistent, and given how little memory and Boutique uses to load all the data into memory I'd rather have the guarantee. (Especially now that Boutique's Store has a non-blocking initializer.) https://github.com/mergesort/Boutique/discussions/19

markmalstrom,

@mergesort oh I didn’t realize that a predicate could cause the data to go out of sync. How does that happen?

mergesort,
@mergesort@macaw.social avatar

@markmalstrom I’m not saying predicates cause data to go out of sync, but that I believe what Boutique’s in-memory store should always match Boutique’s persistent store. That way there is never a scenario where a write to memory succeeds but the write to disk fails, or vice versa, a similar mindset to the ACID model.

_inside,
@_inside@mastodon.social avatar

Looks like it's actually listed as a known issue, I had missed it the first time I read the release notes

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • DreamBathrooms
  • InstantRegret
  • thenastyranch
  • magazineikmin
  • GTA5RPClips
  • rosin
  • osvaldo12
  • tacticalgear
  • Youngstown
  • slotface
  • khanakhh
  • kavyap
  • ngwrru68w68
  • modclub
  • Leos
  • everett
  • provamag3
  • cubers
  • cisconetworking
  • ethstaker
  • Durango
  • mdbf
  • anitta
  • megavids
  • normalnudes
  • tester
  • JUstTest
  • lostlight
  • All magazines