All Projects → bixbydevelopers → Capsule Sample Movie Agent

bixbydevelopers / Capsule Sample Movie Agent

Learn how to best model your search capsule using this end-to-end canonical example. Users can search for movies based on various filters and take a personality quiz to find the best movies.

Programming Languages

javascript
184084 projects - #8 most used programming language


Bixby Movie Agent Sample Capsule

Watching movies is a way to travel to new worlds. This Capsule is like a travel agent to help you find your next movie adventure.

Usage

  1. Clone this repo.
  2. Get started with the Bixby Studio.
  3. Run a query in the Simulator.
    1. Open the Simulator window.
    2. Pick a target device and locale.
    3. Compile NL.
    4. Enter your query by text or voice. See use cases below for example utterances.

Use Cases

Use Cases Example Utterances
Recommend a movie:
When no other inputs are specified, prompt for a genre
- Provide a selection of genres, with the "genre of the day" highlighted at the top
- Display a conversation driver "Help me choose" to launch the quiz to infer a genre
"What movie should I watch?"
Play a quiz:
- Launch a quiz to infer a genre by asking a series of personality type questions
- The genre will be used to recommend a movie.
"Play the movie quiz"
"Help me choose" when on the genre prompt
Recommend a movie by genre "Recommend a fantasy movie"
Browse movies by release window "Show me movies released last spring"
Find movies involving person (cast or crew member)
When multiple people share the same name, disambiguate with a selection prompt
"What movies feature Emma Watson"
"Find movies by James Cameron"
Find movies with a combination of inputs "What movies did Xavier Dolan work on last year?"
"What documentaries came out last spring?"

Code Puzzles

For hands-on exercises that build upon this Capsule, head over to the Code Puzzles.

Device- And Locale-Specific Views

File Structure

All views and layouts belong in a subfolder of the Resources subfolder. These subfolders can be the base folder, a device-specific folder such as bixby-watch, a locale-specific folder such as en, or a device- and locale-specific folder such as bixby-watch-en.

In this capsule, there are two subfolders that contain views and layouts:

  1. base
  2. bixby-watch

The base folder contains the views and layouts that are common across all targets. This means that a view or layout does not need to be customized if the information does not need to be presented differently depending on the user's device.

The bixby-watch folder contain views and layouts for their respective devices. These will be used to provide users with the experience intended for the watch target when invoking this capsule from their watch device.

Design Decisions

There are two methods of customizing views for each target: dedicated views and in-line routing. This article in our Help Center provides more information on how to do both.

The method used in this capsule is defining dedicated views for each target rather than in-line device-specific routing. The reason for this is the stark difference between the mobile and watch views. If done in-line, the resulting view would be bloated and quite hard to maintain moving forward. In-line changes should be limited to small tweaks rather than for large customizations.

References

Data Source

The Movie DB (TMDb). This product uses the TMDb API but is not endorsed or certified by TMDb.

https://www.themoviedb.org

https://www.themoviedb.org/documentation/api

https://developers.themoviedb.org/3

https://www.themoviedb.org/documentation/api/terms-of-use


Additional Resources

Your Source for Everything Bixby

Guides & Best Practices

Bixby Videos

Bixby Podcast

Bixby on Social Media

Need Support?

  • Have a feature request? Please suggest it in our Support Community to help us prioritize.
  • Have a technical question? Ask on Stack Overflow with tag “bixby”
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].