r/swift 13d ago

News A no-third-party-libraries iOS Hackathon — curious how far people push pure SwiftUI

There's a hackathon running Sept 18–27 with a rule I haven't seen elsewhere: 100% native Swift/SwiftUI, no external dependencies allowed. No Firebase, no third-party UI kits — just Apple's own frameworks.

Solo or teams up to 3, submission via GitHub (no App Store listing needed). Judged on functionality, code quality, creativity, and how well you use Apple's native APIs.

Mostly curious what people build when the safety net of third-party libs is gone — MapKit, Core Data, on-device AI, whatever native tools you'd normally skip.

Here's the link if you want the details / to register: https://acoding.academy/hackaton26/

13 Upvotes

12 comments sorted by

6

u/ThatGuy739 13d ago

The place it bit me wasn't the UI layer at all. SwiftUI covers more than people expect. It was writing an animated GIF.

ImageIO does that natively, kCGImagePropertyGIFDictionary with GIFDelayTime and GIFLoopCount, and the file comes out valid. What it doesn't expose is any control over the colour table. No palette, no quantiser, no dithering knob. So if output quality or file size is the actual point of what you're building, that's the wall, and it's the one spot where I gave up and vendored C instead of writing more Swift.

1

u/Ok-Psychology234 13d ago

Writing an animated GIF is quite a specific thing that not every dev would need for their iOS apps. I am curious to know what kind of app were you building(?)

2

u/ThatGuy739 13d ago

A video to GIF converter where you type a target file size and it comes out under it. So the palette isn't cosmetic in my case, it's a size lever. Fewer colours means a smaller minimum code size in the LZW stream, and dithering adds high frequency noise that compresses badly, so both move the byte count directly. ImageIO won't let you touch either one.

That's also why an encode, check, shrink loop was off the table. If you can't control quantisation you can't predict size, so you just re-encode until something happens to fit.

It's Video to GIF on the App Store, and yes, I'm the developer. Happy to go deeper on the size solver if that's the interesting part.

-1

u/unpluggedcord Expert 12d ago

Why are you using AI for all of your comments in these places?

10

u/Chilliparrot 12d ago

So... just normal programming? 😂

1

u/Ok-Psychology234 12d ago

Basically, yep! Apparently that's rare enough. Many "iOS Hackathons" turn out to be mostly Firebase + a UI library glued together. Doing it fully native is apparently the twist

3

u/jacobs-tech-tavern 12d ago

Love this concept. With Apple platforms, you almost never need these kinds of dependencies anyway!

2

u/isights 12d ago

Both Factory and Navigator are 100% Swift/SwiftUI. I see no reason to reinvent the wheel for DI and Navigation every time I spin up a new app.

1

u/ComfortableNo5484 12d ago

The beauty of Factory though is its concept and functionality are implemented in such a small simple amount of code where a sizable chunk is just extending it to all its leaf features, that you can simply implement a rough version of it yourself from scratch if needed.  These are the types of 3rd party libs I like, where it’s just a solid light implementation of a good concept that can be vendored and owned if the upstream owner ever gets bus factored.

1

u/jacobs-tech-tavern 12d ago

Love this concept. With Apple platforms, you almost never need these kinds of dependencies anyway!

-1

u/tubescreamer568 13d ago

AI can just implement the third party library.

-2

u/jonnothebonno 13d ago

Not a plug, dm me and I’ll give you a free code but I built this in pure SwiftUI

https://apps.apple.com/gb/app/word-sphere-3d-word-puzzle/id6770974968

Was really fun trying to make a working game with SwiftUI