Photos are accessed via the Unsplash API. When retrieving a photo, developers can choose to also display the name and avatar of the photographer.
To improve performance and reduce network access, DivingBoard caches photos to memory and disk.
When presenting DivingBoard the newest photos from Unsplash are shown.
With the search feature, users can find beautiful photos of anything on Unsplash.
When using the "stacked" layout style, a much larger version of each photo is shown.
This video shows DivingBoard being used within PhotoViewer, an example app included in the GitHub project to show developers how to integrate DivingBoard into their own apps.
Early versions of DivingBoard had a tab bar with options for "New", "Curated" and "Search".
However, I quickly realized that "Curated" would rarely get used and that "Search" could be eliminated by simply adding a search bar to the initial screen shown to the user.
So, I removed the tab controls and moved the search feature to the initial screen - making it quicker to start a search with one less tap needed.
I also simplified the interface in the upper left corner for switching between the "grid" and "stacked" photo layout styles, eliminating potential confusion over which button represented the currently selected style.
In the end, DivingBoard now just has two buttons instead of six while still providing all of the needed functionality and a much better experience for the user.
Also, since there are no buttons with text, localization is now a non-issue.
Swift, Codable, URLSession, JSON, Unsplash API