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 baa1f976b2
Samples maintenance (#435)
5 years ago
..
lib Samples maintenance (#435) 5 years ago
macos Flutter 1.17 updates (#432) 5 years ago
test Desktop photo search (#174) 5 years ago
tool Desktop photo search (#174) 5 years ago
.gitignore Desktop photo search (#174) 5 years ago
.metadata Desktop photo search (#174) 5 years ago
README.md README:fix typo (#189) 5 years ago
analysis_options.yaml Samples maintenance (#435) 5 years ago
pubspec.lock Samples maintenance (#435) 5 years ago
pubspec.yaml Samples maintenance (#435) 5 years ago

README.md

Photo Search app

This macOS 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 unsplash_access_key.dart.

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.

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 an initial preview, intended to enable developers to preview what is under development. As such, it is currently only available for use on the master channel of Flutter. Please see Flutter build release channels for more detail, and how to switch between Flutter release channels.