Apps & Software

Announcing The Launch Of Operator On Android

Operator on Android was announced at Google I/O last week! We’re excited to bring Operator to Android via Google Play Early Access. We’ve been working with Google to provide early adopters an opportunity to find the latest and greatest stuff that is published by the most exciting startups. We’re humbled to be among such great company.

Since we launched on iOS last year, we’ve heard you loud and clear: You want an Android app! We’re thrilled to share the beta version with you today.

Designing For Android

Operator

As avid Android users, we wanted our experience to feel at home on the platform. We implemented material design patterns, components, metrics, and keylines as closely as we could, while staying true to our branding. While we developed on iOS first, we did not want to simply port over our iOS product. Operator introduces a new shopping behavior to users—chatting with an actual human for product recommendations—so making the mechanics of the app instinctual was very important.

For example, here’s a section of the app where we use a modal bottom sheet to request further action from the user when an sending an image as part of a request.

Operator

Developing A Responsive App

Operator connects shoppers to tastemakers and experts to help them find the products they love. We find that at any given time a shopper may have more than one conversation in progress, each with its own expert. Because messaging allows us to put down the conversation and pick it up later, we have to anticipate asynchronous activity.

RxJava is a reactive functional framework that allows us to write concurrent apps more easily. For example, consider the scenario of multiple chat channels. You are talking to one person in channel A while someone else is responding to you in channel B. Without RxJava, it would be much harder to coordinate the many asynchronous actions that can occur at once, while at the same time keeping our app responsive. And as a messaging app, responsiveness is table stakes.

RxJava simplifies concurrency by allowing us to control which thread an operation should occur on simply by specifying the Scheduler in:

Observable#subscribeOn(…) and Observable#observeOn(…)

For example:

observable.subscribeOn(Schedulers.io())
 .observeOn(AndroidSchedulers.mainThread())
 .subscribe(…)

This way we can easily compose, transform, and filter Observable objects across threads before reporting the result back to the application-level. This solution is much preferred over the more error-prone approach of having nested callbacks.

Developing Faster & Future Proofing

In our Android app we used modern architecture principles such as MVP (Model-View-Presenter) and Dependency Injection to allow our code to be more testable and flexible. This allowed us to catch bugs sooner and make changes more easily, resulting in a more robust app.

Whenever a shopper asks Operator for help, they interact with our request bot. This friendly bot asks for information about the category the shopper is interested in. Our request bot is dynamic, which allows for server-side generated forms so we can easily change things or add promotions. For example, we can easily add categories such as “Graduation Gifts” or “Warriors Wear” without making client-side changes.

All-Inclusive

The Operator Android app supports versions up to API level 17 (Jelly Bean) which covers about 87% off all Android phones globally. We felt it was important to capture messages and activity in offline sessions due to the asynchronous nature of messaging. When you’re out of data range we queue messages in the background and send them the next time the app comes to the foreground.

More to Come

We are focused on building a global commerce company built from the ground up for the messaging paradigm. Operator is now available on AndroidFacebook Messenger, and iOS. We’re incredibly proud of our small, dedicated team that has been able to execute on the world’s three largest platforms. There are many more features coming soon for Android, so opt-in for our beta today!

Source: Medium

Related posts

Leave a Comment

* By using this form you agree with the storage and handling of your data by this website.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More