unsplash_client 2.2.0 copy "unsplash_client: ^2.2.0" to clipboard
unsplash_client: ^2.2.0 copied to clipboard

Unsplash provides free high-resolution photos. This is a client for their REST API.

pub.dev package page GitHub Actions CI GitHub Stars

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.


Limitations #

Endpoints that act on behalf of a user are not implemented, yet.If that is something you need, please comment on this issue.

Requirements #

You need to register as a developer and create an Unsplash app to access the API.

Getting started #

Create an UnsplashClient #

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's close method.

Get a random photo #

// 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;

Photo variants #

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);

Example #

The example is a simple CLI app that fetches a few random photos.


Gabriel TerwestenGitHub @blaugoldTwitter @GTerwestenMedium @gabriel.terwesten

60
likes
130
pub points
93%
popularity

Publisher

verified publishergabriel.terwesten.net

Unsplash provides free high-resolution photos. This is a client for their REST API.

Repository (GitHub)
View/report issues

Documentation

API reference

License

BSD-3-Clause (LICENSE)

Dependencies

collection, http, logging, meta

More

Packages that depend on unsplash_client