Building a Customizable Messaging Platform
Building a Customizable Messaging Platform
When designing a messaging experience for PayPal, the team took a user-centric approach, focusing on the ease of use, flexibility, and minimal integration time. They structured the platform SDKs for better maintainability and code organization, providing customizable data and UI layers, and using the right level of abstractions in both.
Importance of User Centricity
The team put users first, anticipating their needs and designing products based on that. They aimed to make the platform customizable so that users could easily mold it into what they like.
Making UI Customizable
The team split up the UI SDK into two parts, msg-commonui and msg-ui, and added injection options so that a provider can be injected by the platform user. They also created a Renderer that knows how to render each part of the UI and can evolve to support additional customizations in the future.
Adhering to Best Practices
The team integrated feature flags to turn on and off specific features in production, integrated with internal tools for controlled feature ramping, and added sanity checks and static analysis to the CI pipelines to avoid bikeshedding. They also implemented good error handling and logging mechanisms.
In a Nutshell
The team prioritized the user experience when building PayPal's Android messaging platform. They focused on flexibility, ease of use, and minimal integration time while adhering to best practices and providing customizable SDKs. The platform supports all messaging experiences with customizable data and UI layers and good error handling.