You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
samples/experimental/desktop_photo_search
Brett Morgan 297f6b0b96
Upgrade deps, format, fix web/filipino_cuisine (#898)
3 years ago
..
lib Lands beta branch into master for 2.5 (#895) 3 years ago
linux Upgrade deps, format, fix web/filipino_cuisine (#898) 3 years ago
macos Upgrading samples to flutter_lints, part 1 of n (#804) 4 years ago
test Lands beta branch into master for 2.5 (#895) 3 years ago
tool Update desktop_photo_search to use url_launcher's Link (#780) 4 years ago
windows Upgrade deps, format, fix web/filipino_cuisine (#898) 3 years ago
.gitignore Desktop photo search (#174) 5 years ago
.metadata Desktop photo search (#174) 5 years ago
README.md Update Flutter's desktop support (#768) 4 years ago
analysis_options.yaml Adjust desktop_photo_search's lint rules (#816) 3 years ago
pubspec.lock Upgrade deps, format, fix web/filipino_cuisine (#898) 3 years ago
pubspec.yaml Upgrading samples to flutter_lints, part 1 of n (#804) 4 years ago

README.md

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 in Beta

Flutter's Desktop support is now in beta, with a snapshot available in the stable channel. Please see the setup documentation for how to configure your development environment to enable Flutter's Desktop support.