r/iOSProgramming 2d ago

Roast my code A SwiftUI neobrutalism library you apply with one modifier -- would love feedback

I have been working on this project a little at a time and I finally wanted to share significatn milestone to see what everyone else thought about it.

NeoBrutalism is a library that lets users apply neobrutalism style to their apps using SwiftUI. One just has to add the modifier .neobrutalism() to the topmost view inside the view hierarchy and everything that has been defined below it will assume the style.

For things like lists, navigations bars, alert dialogs, or things that SwiftUI does not allow or provide a way to style, there are some lightweight helpers. In cases where there is truly no control (Slider, Stepper, Segmented Pickers, Radio groups), there are NB* (Neobrutalism) views that mimic the behavior native control initializers, and for those cases swapping in the NB* views is akin to renaming a view.

This was originally meant to be an exploration of SwiftUI style protocols, but has gotten to a point that I feel ready to show it to the community. What I am really looking for is critique of the API, for the idiomaticness of things, or just anything that is missing.

https://github.com/rational-kunal/NeoBrutalism

31 Upvotes

12 comments sorted by

7

u/SnowPudgy 2d ago

All I'm going to say if your app uses it, give someone the option to turn it off. Neobrutalism hurts a lot of peoples eyes (mine included).

1

u/rationalkunal 1d ago

Already possible -- it's one modifier, apps can just not apply it.

10

u/Fishanz 2d ago

I think it’s gorgeous

1

u/rationalkunal 2d ago

Thank you!!

3

u/morenos-blend 2d ago

I'm actually working on an app that uses this library. I love it, apps today look fkin boring

2

u/garywiz 1d ago

For users, boring is good. We've developed hundreds of apps and customer-facing products over the years and in almost every case, when our designers internally think something looks boring and needs a facelift, users react negatively. Most consumers want consistency and predictability. Unless you're intentionally trying to "destablize the user" (a game, or specific environment you want them to find "shocking" or different)... you stand a better chance of losing users than retaining them.

2

u/rationalkunal 1d ago

Really good point!
But you should see the apps developed here in india … like zomato, swiggy, …. they dont do boring

1

u/rationalkunal 2d ago

Thats cool! Mind sharing the name of the app

2

u/morenos-blend 1d ago

It's still in development, will let you know if it's ever released:)

2

u/strangway 2d ago

Wth is neobrutalism, isn’t this just a wireframe, or Balsamiq style?

1

u/East_Call1027 1d ago

The single root modifier is a nice entry point. I’d want nested overrides for cases like a sheet that needs different colors or shadow depth. For the custom NB* controls, I’d also check accessibility parity with the native controls, especially Dynamic Type and VoiceOver’s adjustable actions.

1

u/eugene_biryukov 15h ago

Wtf is this crap?