Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jaredhalpern/fetch
https://github.com/jaredhalpern/fetch
Last synced: 4 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/jaredhalpern/fetch
- Owner: JaredHalpern
- Created: 2024-12-31T11:46:05.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2025-01-13T00:47:38.000Z (about 1 month ago)
- Last Synced: 2025-01-13T01:36:20.282Z (about 1 month ago)
- Language: Swift
- Size: 33.2 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
### Steps to Run the App
* No unusual steps other than ensuring the RecipeApp target is selected, building, and running.
### Focus Areas: What specific areas of the project did you prioritize? Why did you choose to focus on these areas?
* Caching - I built a LRU cache that also persists images to disk.
* Generics - I emphasized generics to make components reusable and more easily testable. I was able to easily create mock objects and stub objects to use in the SwiftUI Previews as well as unit tests.
* Networking - All network requests including API endpoint requests and image requests, are queued and cancellable.
### Time Spent: Approximately how long did you spend working on this project? How did you allocate your time?
* I honestly have no idea. I enjoyed the exercise and didn't keep track.
### Trade-offs and Decisions: Did you make any significant trade-offs in your approach?
* No significant trade-offs come to mind.
### Weakest Part of the Project: What do you think is the weakest part of your project?
* The UI is kind of simplistic but I wanted to focus on a good foundation and architecture that could be tested and scaled properly.
### Additional Information: Is there anything else we should know? Feel free to share any insights or constraints you encountered.
* It's a one-screen app. Add any more screens and I'd incorporate the Coordinator pattern.
* I used the new @Observable macro available in iOS 17 which meant I didn't need to use @Published to observe data changes.
- Assumptions: Swift 5.9+, iOS 17 (Use of @Observable macro)