Introduction
Development Principles
Market Apps was created to allow customers and third parties to enhance the driver experience by creating embeddable applications that are accessible via various Maven product surfaces – namely the Maven Mobile Application and the Maven Driver Web Portal. In designing the concept for Market Apps, Maven had a few goals in mind when thinking about the development and end user experience:
- Ensure a seamless and unified driver experience. Market apps should be deployed in a way that is accessible to drivers within the context of Maven applications that does not require drivers to log in again, navigate to a separate application, or otherwise provide a UX that is disruptive. It should be a fast, quick, consistent experience for a driver to use a Market App.
- Provide a development experience decoupled from Maven. Maven needs to provide the right design and management tools to allow developers to independently design, develop, test, and deploy their Market Apps without being coupled to any Maven R&D function.
- Write once, deploy everywhere. As Maven’s product footprint covers multiple operating domains (Android, Web, iOS in the future), it is important for developers to not code for each environment. A Market App should only need to be built once and can then be deployed to multiple target environments.
- Build rich applications. Maven stores a lot of information about the driver, vehicle, and workflow that may be useful in building a Market App. It is important that Maven’s API suite be leveraged to gain access to this information should developers need it to enrich their Market Apps.
Overview
Access to the Market Apps feature for drivers is hidden behind a permission. To enable access for your drivers, ensure that the Market App Access permission is added to their role in the Maven Fleet Admin portal.. Once enabled, drivers will see an additional tab on the bottom navigation bar called "Apps". Tapping on this tab will load all Market Apps that a driver has access to. Individual access to specific Market Apps can be controlled within the Maven Fleet Admin portal.
At its core, a Market App is a responsive web application that is loaded and viewed within the Maven application. When a driver taps on a Market App, the Maven application launches an embedded web view pointing to the entry point URL of the Market App. Maven assumes that these web apps are managed and hosted by a third party and are accessible to the Maven application (either publicly or through an agreed upon authentication scheme).
Certain UX guidelines should be followed when designing the Market App to preserve the driver experience so that using the app feels similar to that of the Maven application. A general list of UX guidelines are written below.
Reference Architecture
Developers are free to choose whichever technology/framework/toolset they are most comfortable using when developing a Market App. Furthermore, Maven does not enforce any specific design or architecture pattern. However, a sample reference architecture is shown below to highlight important components of a Market App.
- Market App (Web Application): The hosted web app being served within the Maven application.
- Market App Web SDK: Maven provides a web SDK designed to serve as the integration glue between the native Maven application and your Market App. The SDK’s main responsibility is to handle user identity and authentication as well as provide important contextual information such as the driver’s current vehicle and location.
- External Web Server: The (non-Maven) web server that is hosting your Market App.
- External Data Service: While not required, it may be necessary for your application to
access an internal/external IT system or API data service. - Maven API Suite: Access any additional data from Maven such as historical vehicle
location history or HOS data using Maven’s Web API suite.
UX Guidelines
While we want the development of Market Apps to be as open as possible, there are a few UX guidelines that should be followed to ensure compatibility of your market app with the Maven ecosystem. The guidelines below are written to ensure that a safe, consistent, and fluid driver experience is preserved.
- App Screen Responsiveness: Market apps are designed to be deployed as a web application on a variety of product surfaces including mobile (Maven application) and web (Maven Driver Portal). Therefore, it is recommended that your Market App is designed to be responsive to support a wide variety of screen sizes. Phone, tablet, and desktop screen sizes should all be considered.
- Out of App (unbounded) Navigation: In order to preserve the application experience, please ensure your Market App does not have hyperlinks or other navigation elements that leave your application space or context. Linking to other outside applications could introduce an unbounded/uncontrolled navigation path.
- Use of Navigation Elements: When loading your Market App, the Maven application will present a few consistent navigation elements at the top of the screen to maintain the core navigation experience. This includes a CLOSE button close your market app and BACK/FORWARD button to remain consistent with web browser navigation standards. The main Maven navigation bar will always be shown at the bottom to allow the driver to flip between your Market App and the rest of the Maven application. Please keep these core navigational elements in mind if placing your own navigational elements to not overload the screen and confuse drivers.
- Offline Scenarios: An active internet connection is required for the Maven application to load your Market App. While it is an edge case, it is possible for the device to enter a connection dead zone while your Market App is open. Please consider how this might affect your application experience.
Updated about 1 year ago