3.5 KiB
Photo Search app
This desktop application enables you to search
Unsplash for photographs that interest you.
To use it, you need to add an Access Key from
Unsplash API to
lib/unsplash_access_key.dart
.
This sample works on Windows, macOS and Linux.
A quick tour of the code
This Flutter project builds a desktop application. It utilises the following desktop specific plugins:
- file_chooser to enable the application user to select where to save a photo from the Unsplash API.
- menubar for exposing Image Search functionality through the menu bar.
- url_launcher to open external links.
The Unsplash API client entry point is in the Unsplash class, and is built atop http, built_value and built_collection for JSON Rest API access.
The DataTreeNode and widget family, along with the Split widget capture desktop file explorer master/detail view idioms.
Deploying to the Microsoft Store
This sample uses Yehuda Kremer's MSIX pub package to bundle up the Windows release build for distribution to the Microsoft Store. Microsoft maintains a plethora of documentation on deploying to the Microsoft Store.
See the msix_config
stanza in this sample's pubspec.yaml
for an
example configuration. Make sure the display_name
, publisher_display_name
publisher
and identity_name
attributes match the settings in your
Microsoft Partner Center application submission.
macOS Network and File entitlements
To access the network, macOS requires applications enable the com.apple.security.network.client entitlement. For this sample, this entitlement is required to access the Unsplash API.
Likewise, to save a Photo to the local file system using the file_chooser
plugin requires the
com.apple.security.files.user-selected.read-write entitlement.
Please see macOS Signing and Security for more detail.
Flutter Desktop is not in Flutter Stable Release Channel
This sample is a preview, intended to enable developers to preview what is
under development. As such, it is currently only available for use on
the dev
and master
channels of Flutter. Please see
Flutter build release channels for more detail,
and how to switch between Flutter release channels.