Yelp might maintain one of the most popular crowdsourced business directories in the world with over 33 million unique monthly visitors, but its software developers aren’t just twiddling their thumbs. Case in point? The San Francisco company today detailed Bento, an open source Java and Kotlin toolset for building modularized Android user interfaces.
“The Bento framework makes it easy to break down complex interfaces into a set of easy to understand, modular, dynamic, and testable components,” explained Argo in a blog post. “[It] was made to be progressively introduced into an existing application. You don’t need to rewrite your app from scratch or rethink your entire application architecture.”
Bento, whose namesake is the iconic compartmentalized Japanese lunch container, provides a framework to orchestrate different view types and the position of items within lists. Its approach stands in contrast to most Android apps with list-based interfaces, which reference ordered lists of data and create on-screen views for each item.
Bento groups different views (along with their display and interaction logic) into Components, or self-contained elements that provide data items. Components can be anything from text views to horizontal carousels; data items are bound to views with an associated class (ComponentViewHolder), while view holders bind Components to views to handle interactions.
Bento can add, remove, and insert components dynamically into user interfaces, and it provides an abstraction that can be used to apply its functionality to different view types. Better yet, Components don’t require any dependencies, which makes testing their programming logic and ensuring everything’s displayed properly a tad easier.
Moreover, Bento Components are reusable — a Component created for one environment can be reused across many different screens — and they’re highly scalable. There’s no limit to the number of Components a project can have, and because they’re modular in nature, they can be assigned to particular teams or developers for bug triage and maintenance.
“Bento is still growing, and is by no means perfect or complete,” wrote Argo, “We have several areas which we’d like to improve, mostly centered around performance. [But] Bento has helped our Android app development scale and allowed us to execute new features efficiently and reliably … [and] we’re always looking for new contributors to the project.”
Yelp’s Bento framework is available on GitHub in open source under the Apache license.