← Projects
Community Style Check icon

Community Style Check

LaunchedDeprecated

The first cross-app feature ever shipped between Echo Look and the Amazon Shopping app — outfit polls sent from a device to a social community, and results sent back.

amazonecho lookreact nativeiosdeep linkingsocial

Style Check was Echo Look's flagship feature, and it worked like this: you photographed 2 outfits, and a combination of machine learning and human fashion specialists would then tell you which of the 2 outfits worked better. Community Style Check extended that feature out to the crowd, so that you could submit the same head-to-head poll from the Echo Look app to the Amazon Spark community inside the Amazon Shopping app, and then watch the live vote results come back as the community weighed in on it.

I was the lead developer on it. It was the first feature to prove cross-app content rendering between Echo Look and Amazon Shopping, and it was the first cross-app feature that the two of them ever shipped.

Screenshot 1Screenshot 2
Style Check results, with Community Voting below the fold. Images via Business Insider / Amazon

The problem

Two separate iOS apps, owned by two separate teams, needed to hand a rich object back and forth, and that object was a poll with 2 photos and its metadata, going out of Echo Look and into a social feed, and then a running vote tally coming back into Echo Look again.

There is no clean channel for any of that, and so this is what we built instead:

  1. Onboard Echo Look into the Shopping app's iTunes App Group, so that both apps could reach a shared container and could cache the poll images to disk rather than shipping those images through a network round trip.
  2. Encode the poll metadata into deep link query parameters and hand off from Echo Look into the Shopping app.
  3. Integrate with the posting flow owned by the two partner teams that ran the social feed.
  4. Render Echo Look polls natively inside that feed, so that the polls looked like a first-class citizen of the feed rather than like a foreign object in it.
  5. Deep link back into Echo Look from the Shopping app, so that the voting results returned to the device they had originated from.

Building the piece nobody had capacity for

The team that owned the social feed had no engineer available to build custom poll rendering for Echo Look content. Rather than let that become the thing that killed the launch, I picked up the work myself and built the poll rendering inside their codebase, and at the same time I set up the App Group and the deep-link-based posting module on the Echo Look side.

Designing the deep link schema meant agreeing on a contract with a team that would be parsing whatever we generated, and so it was coordination across 3 teams for a handoff that had to be exactly right in both directions.

Why it mattered

Community Style Check took a deep-linking proof of concept and productionized that concept into a stable feature on both sides. It established the pattern that made the larger Echo Look Style Feed integration possible, and it demonstrated that a camera device and a shopping app could share a live social experience between them.

It shipped on the React Native platform work that is described in React Native Multi-Root Architecture, and it sat alongside the device's other capabilities on Echo Look.