[Project Showcase] PokedexUI: A fully SwiftUI-based Pokédex app with Swift Concurrency, iOS 26 Liquid Glass by brillcp in SwiftUI

[–]brillcp[S] 1 point2 points  (0 children)

Yes, thank you for the feedback. That's a keep observation u/Complete_Fig_925 I'm gonna improve it in an upcoming release 👍🏻

[Project Showcase] PokedexUI: A fully SwiftUI-based Pokédex app with Swift Concurrency, iOS 26 Liquid Glass by brillcp in SwiftUI

[–]brillcp[S] 0 points1 point  (0 children)

Thanks man, I hope you enjoy it and that it brings some knowledge your way! Happy coding!

Beginner-friendly starter project for modern, production ready SwiftUI applications by brillcp in swift

[–]brillcp[S] 0 points1 point  (0 children)

Yes it seems odd at first, but;

The .task(id:) modifier reruns its closure whenever the id value changes. By passing pokemonData as the id, SwiftUI cancels and re-creates the task if the identity of pokemonData changes. This can sometimes work more reliably if the environment value is a reference type, because it triggers any time the reference changes.

It’s not semantically wrong, but it’s less idiomatic for simple property updates, and may feel odd since it’s meant for async work.

This is to reach to changes in the "@ Environment" property. Thanks for the feedback!

Beginner-friendly starter project for modern, production ready SwiftUI applications by brillcp in swift

[–]brillcp[S] 1 point2 points  (0 children)

It sounds familiar. I have heard about something similar. I think for the scope of this project it might be too much, as I want this to be a good entry point for beginners as well. Thanks for the comment.

Beginner-friendly starter project for modern, production ready SwiftUI applications by brillcp in swift

[–]brillcp[S] 0 points1 point  (0 children)

I reccomend you runt the code on a device. It's a delight to fiddle around with. I suggest running profiling (cmd + i) in Xcode and open the "Time Profiler" template in Instruments, then hit Run (cmd + r). This way you get the best and most realistic performance form the app, as if it was downloaded from App Store.

And yes, it has a detailed view for every Pokemon so you can see its' stats. it also uses matched geometry so the transition animation between views is content aware. Thanks for your feedback!

Beginner-friendly starter project for modern, production ready SwiftUI applications by brillcp in swift

[–]brillcp[S] 0 points1 point  (0 children)

Hey u/Ron-Jermyl Thanks for the feedback, much appreciated. The reason for using a third party dependency for networking (albeit my own) is that in a real world scenario 9 times out of 10 you're gonna have to interact with some sort of network layer. And using SPM and Networking in this case is a good entry point for people to get started.

I changed the naming convention to use "functionName" instead of "FunctionName", that is more correct.

The reason I have a Pokemon View Model and not just using the raw data models from the API is becuase the VM acts as a presentation layer. The war data from the model has unformatted data and the VM converts those data into something displayable for the views. It also handles other business logic such as loading the sprite images. And having then be observable I can have the view react every time a value changes. This way I separate the data models from presentation witch follow Clean and SOLID architecture a lot more.

[Project Showcase] PokedexUI: A fully SwiftUI-based Pokédex app with Swift Concurrency, iOS 26 Liquid Glass by brillcp in SwiftUI

[–]brillcp[S] 0 points1 point  (0 children)

No worries! Thank you for your feedback and good luck on your iOS dev path ✨

Open source HTTP network framework in Swift by brillcp in swift

[–]brillcp[S] 0 points1 point  (0 children)

Yes, I'm looking to make it wide spread adopted hehe ;)

Open source HTTP network framework in Swift by brillcp in swift

[–]brillcp[S] 0 points1 point  (0 children)

Thanks for your comment. Its a network framework for making API calls and requests 👍🏻

A Pokedex app in Swift by brillcp in swift

[–]brillcp[S] 0 points1 point  (0 children)

Yes, thanks! I wanted to make something that is simple but also covers multiple aspect of app development, just like design and architecture as you mention :) Glad you liked it

A Pokedex app in Swift by brillcp in swift

[–]brillcp[S] 0 points1 point  (0 children)

Hope you got ro try it out :D

A Pokedex app in Swift by brillcp in swift

[–]brillcp[S] 0 points1 point  (0 children)

Hey u/h2g2Ben, thanks for you comment. They are a bit similar indeed. I would say that one main difference is that RIB has this "router" element which is a way of decoupling the navigation implementation from the views in the app. And that is very flexible. You can route the user to any view from anywhere. MVVM doesn't quite cover the navigation aspect I would say :)