Advertisement Β· 728 Γ— 90

Posts by Danny Behar

NavigationSplitView has its own chapter πŸ˜…

3 months ago 2 0 0 0

ALSO, here is a link to my SwiftUI wrapper for PDFKit's PDFView. It's open-source and lets you test out some of these techniques in practice. 😎

github.com/DannyBehar/P...

4 months ago 2 0 0 0
DC iOS: Building a UIKit Powered SwiftUI API
DC iOS: Building a UIKit Powered SwiftUI API YouTube video by Dev Community

My first full-length talk is live on YouTube! Learn some techniques for wrapping UIKit components with SwiftUI for ease of use and reusability. Thank you, DevCommunity and DC iOS, for hosting me for my first full-length talk!

www.youtube.com/watch?v=8z2A...

4 months ago 3 0 1 1

Yea exactly. In my experience I’ve just used it as a means to get access to that SwiftUI state from the coordinator.

4 months ago 1 0 0 0

You could also pass in an EnvironmentObject or a Bindable if you are using SwiftUI Observable. Take a look at this link: GitHub.com/dannybehar/PDFViewer

4 months ago 1 0 1 0

Perhaps you could inject this event array into your representable using an environment value. Or if your UIKit component needs to update this array, maybe you could use a Binding

4 months ago 1 0 1 0

But the useful thing the parent can access is the β€˜state’ that is attached to that descriptor. Things like a Binding which is stored separately from the view description and managed by SwiftUI or environment values which are read only props injected into view hierarchy.

4 months ago 1 0 1 0

I just gave a talk on this topic last night at the DC iOS meetup! Will post a link to a PDFView wrapper that I sent everyone home with. I think of it like the SwiftUI view structs are kind of like descriptor metadata, they describe the view and our being recreated a bunch since they are value types.

4 months ago 1 0 1 0

Wohoo!! πŸŽ‰ Congrats Stephen!

5 months ago 4 0 0 0
Advertisement

Wow I didn’t even know about that modifier. I could also use that functionality but maybe I should hold off for now πŸ˜…

6 months ago 1 0 1 0

Yea it works if your device is running 18 or 17. the issue is when your device is running 26. Thanks for checking

7 months ago 1 0 0 0
Post image

Still no icon showing up for Tutti on the iPadOS 26 App Store.

Hurts to spend months working on a release and then have this happen. If you work for Apple and/or have any idea how to resolve, I'd appreciate the help <3

7 months ago 7 1 1 1
Post image

Tutti 3.1 is now available on the App Store!

Updated for iPadOS 26 and Liquid Glass

Tutti makes it easy to organize, practice, and perform using your PDF sheet music!

Available on the iPadOS App Store here:
apps.apple.com/us/app/paper...

7 months ago 4 0 0 0
Video

My app Tutti, a sheet music reader for iPad, has an update coming out Tomorrow (pending app review).

It’s being updated with the new design and Liquid Glass! If you read music, give it a try and let me know what you think!

Here is a video demo showing off the new design.

gettutti.app

7 months ago 8 2 0 0

What are the deets for the speaker on the iPhone Air. Does it require headphones? I couldn't find anything on Apple's website about it.

7 months ago 0 0 0 0
Post image Post image Post image

The time has come! Sage RPG is here! πŸŽ‰

Sage RPG is a tabletop RPG management tool, built to help you keep track of and manage your homebrew characters, maps, notes and more. Take a look at some dev pics!

Built for iOS, iPadOS, Vision OS and MacOS!

TestFlight testflight.apple.com/join/MPP1GK1W

7 months ago 5 2 1 1
Advertisement

If the AI consistently goes tries to go in a direction that I know is a dead-end, I'll update the overall project prompt to better steer it for future prompts. I'm starting to see the future of software development and I kind of like it?

8 months ago 0 0 0 0

If I find a certain section that I don't understand, I'll pepper GPT-5 with specific questions to get a better sense.

8 months ago 0 0 1 0

So I'm currently vibe coding a new PDF Viewer for Tutti that is built on top of the PDFKit utility classes. GPT-5 is so far doing really well. I've started to settle into a flow: Vibe code a small piece of functionality, and then review the code to find ways to simplify and reduce complexity.

8 months ago 2 0 1 0

GPT-5 was super impressive this morning and now around lunch time EST it's acting more like GPT-3 and the website is barely responsive. Guessing there is huge demand with the new model being released. Anyone else experiencing the same?

8 months ago 0 0 0 0

This is so epic πŸš€

8 months ago 2 0 0 0
struct BottomView: View {
    @State private var isVisible = false
    var body: some View {
        VStack {
            Button("Show / Hide") {
                withAnimation(.bouncy) {
                    isVisible.toggle()
                }
            }
        }
        .frame(maxHeight: .infinity, alignment: .top)
        .safeAreaInset(edge: .bottom) {
            if isVisible {
                RoundedRectangle(cornerRadius: 16)
                    .fill(.pink)
                    .padding(.horizontal, 20)
                    .padding(.bottom, 20)
                    .frame(height: 100)
                    .transition(.move(edge: .bottom))
                    .padding(.top, 40)
            }
        }
    }
}

struct BottomView: View { @State private var isVisible = false var body: some View { VStack { Button("Show / Hide") { withAnimation(.bouncy) { isVisible.toggle() } } } .frame(maxHeight: .infinity, alignment: .top) .safeAreaInset(edge: .bottom) { if isVisible { RoundedRectangle(cornerRadius: 16) .fill(.pink) .padding(.horizontal, 20) .padding(.bottom, 20) .frame(height: 100) .transition(.move(edge: .bottom)) .padding(.top, 40) } } } }

I usually have to play around with the padding in order to get around this issue. Try something like this.. breaking up the padding before the transition and add back some top padding after the transition. This seems to have worked for me.

9 months ago 2 0 1 0
Video

Tutti v3.0 is now available on the app store!

I've been working really hard on this update. So happy it's finally out in the world! It includes:

- A new split-view design
- Dark mode support across the app
- A new onboarding experience
- lots of smaller tweaks, animations, and bug fixes

9 months ago 4 0 0 0
Advertisement

oooh... thats a great idea. I may try something similar for Tutti.

10 months ago 1 0 0 0
struct DrawAnimationView: View {
    var isShowing: Bool
    var icon: String
    var color: any ShapeStyle
    var drawOnEffect: DrawOnSymbolEffect = .drawOn
    var speed: Double = 1.0
    var body: some View {
        VStack(spacing: 24) {
            Image(systemName: icon)
                .font(.system(size: 400))
                .imageScale(.large)
                .foregroundStyle(AnyShapeStyle(color))
                .symbolEffect(drawOnEffect,
                              options: .speed(speed),
                              isActive: isShowing)
        }
    }
}

struct DrawAnimationView: View { var isShowing: Bool var icon: String var color: any ShapeStyle var drawOnEffect: DrawOnSymbolEffect = .drawOn var speed: Double = 1.0 var body: some View { VStack(spacing: 24) { Image(systemName: icon) .font(.system(size: 400)) .imageScale(.large) .foregroundStyle(AnyShapeStyle(color)) .symbolEffect(drawOnEffect, options: .speed(speed), isActive: isShowing) } } }

And now the code! This is the code I used to make all of these examples. Pass in the color, icon string, effect, and speed:

10 months ago 5 0 0 0
Video

Be creative. You can mix this effect with other features of SwiftUI to create wonderful experiences for your users.

10 months ago 0 0 1 0
Video

This effect is flexible! For example, you can tell the effect to draw each layer individually by applying the symbol effect like this: .symbolEffect(.drawOn.individually,
isActive: isShowing)

10 months ago 3 0 1 0
Video

Another great example: "scribble.variable" with a .green.gradient foregroundStyle. Showcasing another new addition to iOS 26. Gradient foregroundStyles on symbols!

10 months ago 0 0 1 0
Video

The "signature" SFSymbol showcases this effect so well.

10 months ago 1 0 1 0
Video

New in SFSymbols for iOS 26, Draw effects!!

Five beautiful examples.. stay till the end for the code sample.

First up, "rainbow" with .symbolRenderingMode(.multicolor). Symmetrical symbols draw outward from the center.

10 months ago 26 4 2 0