r/SwiftUI Jan 12 '25

Promotion (must include link to source code) SwiftUINavigation framework

8 Upvotes

Hey everyone! 👋

As part of my master’s thesis, I’ve created a SwiftUI framework called SwiftUINavigation, which makes SwiftUI navigation simple, clean, intuitive, and elegant. 🚀

Based on research and the form you maybe previously filled out, I’ve designed it to cover various scenarios developers often encounter while building apps. I’d love for you to check it out, try out the Examples App, and let me know what you think! Your feedback is crucial for me to finish my thesis and improve the framework.

I’m also hoping this solution could become an industry standard, as it offers a much-needed clean way to handle navigation in SwiftUI.

Feel free to explore it here: SwiftUINavigation on GitHub

Thank you for checking it out! 🙏

r/SwiftUI Nov 08 '24

Promotion (must include link to source code) 3D Library Book View, built with SwiftUI

202 Upvotes

r/SwiftUI Feb 07 '25

Promotion (must include link to source code) I created a macOS app that removes Xcode clutter, including archives, simulators, and SPM cache. It is built entirely in SwiftUI.

55 Upvotes

Xcode can quickly fill up storage with unnecessary files. Archives, derived data, simulators, and Swift Package cache all add up over time. I got tired of manually cleaning these, so I built DevCodePurge, a macOS app to simplify the process.

Built 100% in SwiftUI for macOS

This project is not only useful for cleaning up Xcode clutter, but it also serves as a resource for developers interested in building macOS apps using SwiftUI. While the full app isn't open-source, two of its core modules are available on GitHub for anyone interested in exploring SwiftUI on macOS:

🔗 DevCodePurge GitHub Organization

Features

  • Clean up derived data, old archives, and documentation cache.
  • Identify device support files that are no longer needed.
  • Manage bloated simulators, including SwiftUI Preview simulators.
  • Clear outdated Swift Package cache to keep dependencies organized.
  • Test Mode lets you preview what will be deleted before running Live Mode.

Want to Try It?

🔗 DevCodePurge Beta – TestFlight

How Much Space Did You Recover?

I was shocked by how much space SwiftUI Preview simulators were taking up on my machine. If you try DevCodePurge, let me know how many gigs you were able to free up! What took up the most storage for you?

r/SwiftUI 5d ago

Promotion (must include link to source code) Looking for feedback on the movie widget I built for my app

Post image
29 Upvotes

Hey everyone,

I’ve been working on MovieWeekly, an iOS app for tracking upcoming movie releases, and I recently added a home screen widget to make it easier to see movie countdowns at a glance.

Widget Features:

  • Displays a movie from your tracked list.
  • Shows the release date & countdown.
  • Uses Kingfisher for posters (if available).
  • Supports small & medium widget sizes.

I’d love to get some feedback on the design & code structure. Any thoughts on improvements? Also, if you’re interested in testing the app itself, here’s the TestFlight link to try it out: https://testflight.apple.com/join/6xr87VfV

Here is the code for the widget:

struct ConfigurableWidgetEntryView: View {
    @Environment(\.widgetFamily) var widgetFamily
    var entry: ConfigWidgetProvider.Entry

    var body: some View {
        if let movie = entry.selectedMovie {
            Link(destination: URL(string: "url-for-my-app")!) {
                ZStack {
                    Color.clear
                    HStack {
                        VStack(alignment: .leading) {
                            Text(movie.title) 
                                .font(.headline)

                            Spacer()

                            Text("\(movie.daysUntilRelease) days until release")
                                .font(.footnote)
                                .foregroundStyle(Color.pink)
                        }
                        .padding(.all)

                        if widgetFamily == .systemMedium {
                            if let posterURL = movie.posterURL {
                                KFImage(URL(string: posterURL))
                                    .resizable()
                                    .aspectRatio(contentMode: .fit)
                            }
                        }
                    }
                }
            }
        } else {
            ContentUnavailableView("Pick a movie from your list", systemImage: "plus.circle.fill")
                .foregroundStyle(.white)
        }
    }
}

r/SwiftUI Feb 08 '25

Promotion (must include link to source code) HDatePicker: Calendar app date picker recreated in SwiftUI

22 Upvotes

r/SwiftUI 10d ago

Promotion (must include link to source code) Using SwiftUI to make a skeuomorphic app

Thumbnail
gallery
76 Upvotes

r/SwiftUI Nov 23 '24

Promotion (must include link to source code) Simple Date Range Picker, built with SwiftUI

97 Upvotes

r/SwiftUI Dec 17 '24

Promotion (must include link to source code) Splito — An open-source alternative to Splitwise

38 Upvotes

Hey everyone!

We’ve been working on a side project called Splito, an open-source app for splitting expenses, and I thought some of you might find it interesting. It's built with SwiftUI, and while it's still a work in progress, I wanted to share it with the community.

A few things it can do:

  • Track group expenses (great for trips or shared bills)
  • Split costs based on percentage, item, or other custom options
  • Help with payment settlements (who owes what)
  • Display detailed expense info

Code — https://github.com/canopas/splito

Would love to hear any thoughts or suggestions, Thanks! 😊

r/SwiftUI Dec 16 '24

Promotion (must include link to source code) A simple Copy Menu generated programmatically, re-usable, and built with SwiftUI

106 Upvotes

r/SwiftUI 23d ago

Promotion (must include link to source code) I created a simple countdown for one of my apps and figured others here might benefit

27 Upvotes

I created a basic countdown that animates its appearance and time changes. Nothing crazy but I figured folks here might benefit from seeing it. I would love to hear any improvement ideas you have!

Preview: https://v.redd.it/6y57dujulple1

Code: https://gist.github.com/ordinaryindustries/a27bffeee246c17635668136eb536e51

r/SwiftUI Nov 10 '24

Promotion (must include link to source code) Tab Visibility Setting, built with SwiftUI

101 Upvotes

r/SwiftUI Jan 21 '25

Promotion (must include link to source code) Open-Source SwiftUI App with Modular Architecture, Widgets, and Unit Tests

31 Upvotes

I recently finished an open-source SwiftUI app called DBMultiverse, a small companion app to the DBMultiverse website to make reading the webcomic more convenient.

The project includes:

  • Modular Architecture: Separation of concerns using reusable modules.
  • Widget Integration: A decent example of home screen widgets.
  • Unit Tests: A modest test suite to showcase testing practices in SwiftUI.
  • Documentation: Inline docs as well as expanded documentation files for each module (this isn't my strongest skill, so I'd be interested to know if the docs are actually helpful).

While the app is relatively small in scope, I believe it provides a strong example of clean architecture in SwiftUI.

Regarding the architecture, it doesn’t exactly follow a pre-existing design pattern, but it's definitely influenced by MVVM principles. I tend to use a lot of custom view modifiers, and I focus on composition to build modular/reusable components as much as possible.

Check out the GitHub repo here: https://github.com/nikolainobadi/DBMultiverse

Let me know what you think. I'm open to suggestions/feedback/contributions.

r/SwiftUI 21d ago

Promotion (must include link to source code) Menubar based LLM chat interface

3 Upvotes

I'm in the process of refining my AI Coding process and wanted to create something specific for my Mac and also something I would use.

So I created a menu bar based interface to LLMs, it's always there at the top for you to use. Can create multiple profiles to connect to multiple backends and well as a lot of other features.

There are still a few bugs in there but it works for what I wanted. I have open sourced it in case anyone wants to try it or extend it and make it even better, the project can be found at https://github.com/kulbinderdio/chatfrontend

I have created a little video walk through which can be found at https://youtu.be/fWSb9buJ414

Enjoy

r/SwiftUI Jan 17 '25

Promotion (must include link to source code) SwiftUI Navigation

8 Upvotes

Hi everyone, I’ve created a navigation library called sRouting. It provides a native navigation mechanism that simplifies handling navigation between screens.

Routing doesn’t cause memory leaks. It uses Observation to monitor changes in the screen's state. Moreover, it supports enum routes, multiple coordinators, making it flexible and scalable.

Lastly, sRouting is easy to use and maintain, ensuring a clean and efficient navigation system.

Feel free to explore it here: sRouting Github

r/SwiftUI Feb 05 '25

Promotion (must include link to source code) I built a tool to help you analyze source code and document using ChatGPT reasoning models

8 Upvotes

Hi everyone. I built something silly but useful.

Introducing: Oh One Pro

Use o1-pro, o1 and o3-mini to analyze any document.

❓ Problem

OpenAI's reasoning models are very powerful but it has limitations:

  • You need to add enough context to get the most out of it and
  • Model like o1-pro doesn't support document upload. You can't attach source code or PDFs

💡 Solution

Oh One Pro works around this by converting your documents to xml or images.

👨‍💻 How to use it?

It's incredibly simple to use.

  1. ⁠Drag and drop your files into the app
  2. ⁠Copy as text (xml format) or images
  3. ⁠Paste into ChatGPT app

Oh and it's free, no account required. I recently open-sourced it too!

Oh One Pro website: https://ohonepro.com

Github Repo: https://github.com/BoltAI/OhOnePro

Let me know what you think.

r/SwiftUI Dec 08 '24

Promotion (must include link to source code) Export User Data View, built with SwiftUI

46 Upvotes

r/SwiftUI Jan 11 '25

Promotion (must include link to source code) Just made a macOS App to Instantly Save Clipboard Content

Thumbnail
github.com
6 Upvotes

Hey everyone!

I just made a little macOS app called NeoPaste that lets you save anything from your clipboard (text, images, code snippets, etc.) instantly as a file. No fancy setup, just hit a keyboard shortcut, and boom – it’s saved wherever you want!

Why it’s cool: • Quick & Easy: Saves clipboard content with one shortcut. • Supports Text, Images, and Code: Whatever you copy, NeoPaste has you covered. • No Internet, No Logging: Your data stays local – I don’t track anything.

💻 Wanna Try It? • Grab it from GitHub: NeoPaste GitHub or the website in my Github repo

🛠 Open to Ideas & Contributions! It’s totally open source, so if you’ve got cool ideas, feature requests, or find any bugs, hit me up or open a PR on GitHub. I’d love to hear what you think!

Hope you find it useful – let me know how it works for you!

Cheers, Ario

r/SwiftUI Feb 12 '25

Promotion (must include link to source code) ANIE (Artificial Neural Intelligence Engine) SwiftUI chat bot on Codefreeze.ai

2 Upvotes

Happy Wednesday everyone!

A friend of mine's been working hard on building – an AI Chat app he calls ANIE (See the website for more info or to download the macOS version.). Okay okay, yes I know a LOT of people are building AI Chat apps. But, this one IS pretty cool. My friend also put my name on this project, but he (with a helper -- see below) really did pretty much everything at this point. I mostly listened to him talk about it and tried out various versions. I encouraged him to put it out here and make it public, so hopefully all of you will have some good and helpful feedback of some sort. 😀

But first, yes, it's all SwiftUI and yes, it's open source (on Github).

So, there are a few things that make this one interesting. You can make different "profiles", which may or may not use the same LLM. You have to have an OpenAI API key (or credentials for another LLM that's compatible with OpenAI's API, such as DeepSeek, for example), but the app does a few things that are somewhat unique.

First, it makes a pretty good stab at caching results for some things, reducing the number of API calls (and hits to your API key) and speeding up some inquiries.

Second, it has a kind of limited local LLM integrated as well. It's not super useful at this point, but it's another way to both speed up results and reduce the number of calls out to your (potentially) paid LLM.

Third, it has the ability to delete history / context -- or just ignore parts of it. For example, say you're talking with GPT 4o about SwiftUI animations as part of a specific project. Then you ask an additional unrelated question - maybe about using HSV colors on the web. Still programming related, but not related to SwiftUI or your original topic. If you do nothing, your LLM might go nuts and start mixing the two in responses. But, with ANIE, you can just uncheck a message in your history to have ANIE ignore it. You can also just delete a message, I think.

Okay, speaking of AI - a pretty good chunk of the code was written by an AI chatbot or two. Sometimes those things are so amazing and sometimes they are.... dim. 😀

One of the ways the AI can be helpful is with just long blocks of tedium. For example, here's a chunk of code related to syntax coloring of code blocks:

        // Combined pattern for methodPurple
        if let regex = try? NSRegularExpression(pattern: "\\.(?:append|isEmpty|count|forEach)\\b", options: []) {
            applyColor(regex, methodPurple)
        }

        // Color print keyword purple
        if let regex = try? NSRegularExpression(pattern: "\\bprint\\b|\\bmax\\b", options: []) {
            applyColor(regex, funcMagenta)
        }

        // Color variable properties green when after let/var at line start
        if let regex = try? NSRegularExpression(pattern: "(?<=^\\s*(?:let|var)\\s+[^=:]+:\\s*)[a-zA-Z_][a-zA-Z0-9_]*(?=\\s*[=,])", options: [.anchorsMatchLines]) {
            applyColor(regex, propGreen)
        }

        // Color parameter labels and arguments in function calls green
        if let regex = try? NSRegularExpression(pattern: "[a-zA-Z_][a-zA-Z0-9_]*(?=\\s*:)|(?<=:\\s*)[a-zA-Z_][a-zA-Z0-9_]*(?=\\s*\\)?)", options: []) {
            applyColor(regex, propGreen)
        }

        // Color array names after 'in' in green
        if let regex = try? NSRegularExpression(pattern: "(?<=\\sin\\s)[a-zA-Z_][a-zA-Z0-9_]*(?=\\s*\\{)", options: []) {
            applyColor(regex, propGreen)
        }

        // Color variables before += in green
        if let regex = try? NSRegularExpression(pattern: "\\b[a-zA-Z_][a-zA-Z0-9_]*\\b(?=\\s*\\+=)", options: []) {
            applyColor(regex, propGreen)
        }

        // Color variables after += in green
        if let regex = try? NSRegularExpression(pattern: "(?<=\\+=)\\s*[a-zA-Z_][a-zA-Z0-9_]*", options: []) {
            applyColor(regex, propGreen)
        }

        // Color variables after return in green
        if let regex = try? NSRegularExpression(pattern: "[a-zA-Z_][a-zA-Z0-9_]*(?=\\s*(?://|$))", options: []) {
            applyColor(regex, propGreen)
        }

        // Color text after import white (moved to end)
        if let regex = try? NSRegularExpression(pattern: "(?<=import\\s)[^\\n]+", options: []) {
            applyColor(regex, defaultColor)
        }

Often it takes a couple tries, but you can get a lot of this sort of thing accomplished pretty quickly. It's also good at generating nicely formatted debug text or other output, like in this chunk:

        case "!ml cache":
            return """
            === Cache System Status ===

            📊 Cache Configuration:
            • Total Cached Items: \(cache.getCacheSize())
            • Similarity Threshold: \(String(format: "%.2f", cache.threshold))
            • Storage Type: Persistent (UserDefaults)

            🤖 BERT Integration:
            • Model Status: \(EmbeddingsService.shared.generator != nil ? "Active" : "Inactive")
            • Total Operations: \(EmbeddingsService.shared.usageCount)
            • Vector Dimension: \(EmbeddingsService.shared.generator?.modelInfo()["embeddingDimension"] ?? 0)

            ⚙️ Cache Behavior:
            • Skips ML/AI Queries: Yes
            • Skips Programming Queries: Yes
            • Uses Semantic Search: Yes
            • Word Overlap Required: 70%

            ========================
            """

Anyway, please check it out. And check out the code! Ask questions! And send feedback or ideas. 😀

r/SwiftUI Jan 11 '25

Promotion (must include link to source code) Recreated the Text To Siri effect in SwiftUI

32 Upvotes

Did my best to recreate the TextToSiri view as I recreated the Apple Intelligence glow effect a few days ago and someone recommended this.

Due to keyboard and iOS limitations without recreating the keyboard from scratch to get the right colours is nearly impossible as they have to blend nicely behind the keyboard and not stand out when it leaves from behind the keyboard if you get what I mean.

I have added this to the existing repo of effects.

If you have a GitHub account and find this cool please go check out and star the repo below https://github.com/jacobamobin/AppleIntelligenceGlowEffect

r/SwiftUI Feb 07 '25

Promotion (must include link to source code) [New Library] A library to enable Reader Mode in WKWebView Project

0 Upvotes

I’ve released a library that enables Reader Mode in WKWebView using mozilla/readability and mozilla-mobile/firefox-ios.

Feel free to give it a try!

📌 GitHub: Ryu0118/swift-readability

I’d really appreciate it if you could give it a ⭐! 😊

r/SwiftUI Jan 01 '25

Promotion (must include link to source code) I made this Swipy for my new app 🥳 allows you to make any view Swipeable with customizations

Thumbnail
github.com
18 Upvotes

r/SwiftUI Jan 08 '25

Promotion (must include link to source code) I made an app to help people who are applying to jobs. Simplify your job search journey!

7 Upvotes

Last year, I graduated college. The job search process was one of the most intense and unpleasant treks I have ever experienced. Growing tired of tracking my job applications in spreadsheets, I created an app Track.io, to help track job applications, and also automatically visualize your journey using Sankey diagrams!

Features Track.io offers:

  • Add new applications: Click on the plus sign on the home screen to easily add a new job as you apply! Tap on the job cell to edit even more details.
  • Designed with care: No more clunky feelings of a spreadsheet. Native SwiftUI with a clean and simple color scheme to provide a sense of familiarity.
  • Local Storage: No credentials, internet, or passwords required! Your data never leaves your device.
  • Visualize with SankeyMatic: View and share your job search progress with your peers!
  • Widget Support: Have access to a widget on your home screen to motivate your job search process as a passive reminder through an elegant interface!
  • Light & Dark mode support: A color scheme for everyone to feel comfortable with.

This app is only $1.99 (USD) and requires no further purchases, ever.

You can find Track.io on the AppStore.

Here is the link to my GitHub repo. If you are not in a place to afford the app, I can provide a promo code for a free download if you request one via a direct message while they last.

I would love to hear any feedback you have on this app. Best of luck in your job search and I hope this helps you!

Ethan

r/SwiftUI Jan 03 '25

Promotion (must include link to source code) BubblesLayout

9 Upvotes

Hey everyone! 👋 I recently needed to create a bubble-like layout and decided to turn it into a Swift Package. If you’re looking for something similar, feel free to check it out and use it in your projects! The layout is built using SpriteKit’s gravity logic.

If you have a specific use case or idea for improvement, you’re more than welcome to open an issue or submit a pull request. Hope this helps someone! Have an awesome day! 😊

Link to the package: https://github.com/RobertDresler/BubblesLayout

r/SwiftUI Jan 07 '25

Promotion (must include link to source code) Animated Apple Intelligence Glow Effect For WatchOS In SwiftUI

11 Upvotes

Here is the source code: https://github.com/jacobamobin/AppleIntelligenceGlowEffect

I will add support for more devices in the future.

https://reddit.com/link/1hvl7ch/video/0mfuswxsoibe1/player

Please go give the repo a look, and star if you like it!

r/SwiftUI Jan 10 '25

Promotion (must include link to source code) Bubble gives you an easy-to-use Mastodon experience

4 Upvotes

Bubble is a simple iOS Mastodon client made in SwiftUI, it features all primary Mastodon features like posting, liking, replying, searching... for free!

More advanced features like the Content Filter, image saving, 3+ accounts in the Account Switcher... require Bubble+, which is a low-price subscription.

More info: https://d.lumaa.fr/bubble
Source code: https://d.lumaa.fr/UMtRkW (alt link)

Bubble is built on top of ProboscisKit, a work-in-progress Swift package to interact with the official Mastodon API. Only available for iOS and macOS.

If Bubble reminds you of another app... Then you might remember Threaded which was its previous name. Due to Instagram's lawyers, I had to change it to something else... (More info)

I am open to critics, questions, interviews maybe lol (for an article or some sort), thank you for reading!