Unsplash provides free high-resolution photos. This is a client for their REST API.
If you're looking for a database solution, check out
cbl
, another project of mine. It brings
Couchbase Lite to standalone Dart and Flutter, with support for:
- Full-Text Search,
- Expressive Queries,
- Data Sync,
- Change Notifications
and more.
Endpoints that act on behalf of a user are not implemented, yet.If that is something you need, please comment on this issue.
You need to register as a developer and create an Unsplash app to access the API.
Use the credentials for your app, obtained from the developer portal, to create
an UnsplashClient
:
final client = UnsplashClient(
settings: ClientSettings(credentials: AppCredentials(
accessKey: '...',
secretKey: '...',
)),
);
⚠️ When you are done using a client instance, make sure to call it'sclose
method.
// Call `goAndGet` to execute the [Request] returned from `random`
// and throw an exception if the [Response] is not ok.
final photos = await client.photos.random(count: 1).goAndGet();
// The api returns a `Photo` which contains metadata about the photo and urls to download it.
final photo = photos.first;
A Photo
comes with a set of urls for variants of the photo of different sizes,
such as regular
and thumb
:
final thumb = photo.urls.thumb;
If the provided variants are not a good fit for your use, you can generate urls where you specify size, quality, fit and other parameters.
Call the extension method Uri.resizePhoto
on photo.urls.raw
to generate an
Uri
for a custom variant:
final custom = photo.urls.raw.resizePhoto(width: 400, height: 400);
The example is a simple CLI app that fetches a few random photos.
Gabriel Terwesten • GitHub @blaugold • Twitter @GTerwesten • Medium @gabriel.terwesten