
Using Mobile Native Capabilities
Generate or extend Salesforce LWCs that call native mobile app-review APIs through AppReviewService instead of guessing platform types.
Overview
Using Mobile Native Capabilities is an agent skill for the Build phase that grounds Salesforce LWC generation in the real AppReviewService mobile review API.
Install
npx skills add https://github.com/forcedotcom/sf-skills --skill using-mobile-native-capabilitiesWhat is this skill?
- Grounding reference for Salesforce AppReviewService TypeScript types and getAppReviewService() factory
- Documents requestAppReview() and AppReviewServiceOptions including ignore-if-already-asked behavior
- Tied to official Lightning AppReviewService LWC reference for compliant prompts
- Focused on in-app review flows on mobile devices running Salesforce LWCs
- Use when agents must not invent BaseCapability or promise shapes
- Covers AppReviewService factory, interface, and AppReviewServiceOptions configuration object
Adoption & trust: 1 installs on skills.sh; 517 GitHub stars.
What problem does it solve?
You need in-app review in a Salesforce LWC but agents keep mixing up native mobile APIs with wrong types or undocumented options.
Who is it for?
Solo builders shipping Salesforce mobile LWCs who want native app-review prompts without reading the full platform docs each time.
Skip if: Non-Salesforce stacks, pure web PWAs without Salesforce mobile runtime, or teams that only need ASO/store listing copy instead of in-app review calls.
When should I use this skill?
Generating or reviewing Salesforce LWCs that must use native mobile app review via AppReviewService.
What do I get? / Deliverables
Your agent emits LWC code that imports getAppReviewService, calls requestAppReview with valid options, and matches Salesforce’s documented capability model.
- LWC snippets using getAppReviewService and requestAppReview
- Type-accurate AppReviewServiceOptions usage notes
Recommended Skills
Journey fit
Native capability wiring happens while you are building the Salesforce mobile experience, not during idea or launch work. AppReviewService is a platform bridge skill—LWC UI plus Salesforce mobile integration APIs—so integrations is the right shelf.
How it compares
Platform grounding for one Salesforce native capability—not a general mobile development framework skill.
Common Questions / FAQ
Who is using-mobile-native-capabilities for?
Salesforce solo builders and small teams writing LWCs for mobile experiences who need correct AppReviewService usage in agent-assisted codegen.
When should I use using-mobile-native-capabilities?
During Build when scaffolding or reviewing an LWC that should request an app review on device, or when debugging agent output against Salesforce’s AppReviewService reference.
Is using-mobile-native-capabilities safe to install?
Review the Security Audits panel on this Prism page for the upstream package; the skill is documentation context and does not itself execute review requests on your machine.
SKILL.md
READMESKILL.md - Using Mobile Native Capabilities
# App Review Service Grounding Context The following content provides grounding information for generating a Salesforce LWC that leverages app review facilities on mobile devices. Specifically, this context will cover the API types and methods available to leverage the app review API of the mobile device, within the LWC. ## App Review Service API ```typescript /* * Copyright (c) 2024, Salesforce, Inc. * All rights reserved. * For full license text, see the LICENSE.txt file */ import { BaseCapability } from '../BaseCapability.js'; /** * Use this factory function to get an instance of {@linkcode AppReviewService}. * @returns An instance of {@linkcode AppReviewService}. */ export function getAppReviewService(): AppReviewService; /** * Request an app review from a Lightning web component. * @see {@link https://developer.salesforce.com/docs/platform/lwc/guide/reference-lightning-appreviewservice.html|AppReviewService API} */ export interface AppReviewService extends BaseCapability { /** * Requests an app review. * @param options An {@linkcode AppReviewServiceOptions} object to configure the {@linkcode AppReviewService} request. * @returns A resolved promise returns null. */ requestAppReview(options?: AppReviewServiceOptions): Promise<null>; } /** * An object representing configuration details for an {@linkcode AppReviewService} session. */ export interface AppReviewServiceOptions { /** * Ignore the app review request if already asked for the current version of the app. */ ignoreIfAlreadyRequestedForCurrentAppVersion: boolean; } /** * An object representing an error that occurred when accessing {@linkcode AppReviewService} features. */ export interface AppReviewServiceFailure { /** * A value representing the reason for an app review error. */ code: AppReviewServiceFailureCode; /** * A string value describing the reason for the failure. This value is suitable for use in user interface messages. The message is provided in English and isn’t localized. */ message: string; } /** * Possible failure codes. */ type AppReviewServiceFailureCode = | 'ALREADY_REQUESTED_FOR_CURRENT_APP_VERSION' | 'IN_APP_REVIEW_ERROR' | 'SERVICE_NOT_ENABLED' | 'UNKNOWN_REASON'; ``` # AR Space Capture Service Grounding Context The following content provides grounding information for generating a Salesforce LWC that leverages AR Space Capture facilities on mobile devices. Specifically, this context will cover the API types and methods available to leverage the AR Space Capture API of the mobile device, within the LWC. ## AR Space Capture Service API ```typescript /* * Copyright (c) 2024, Salesforce, Inc. * All rights reserved. * For full license text, see the LICENSE.txt file */ import { BaseCapability } from '../BaseCapability.js'; /** * Use this factory function to get an instance of {@linkcode ARSpaceCapture}. * @returns An instance of {@linkcode ARSpaceCapture}. */ export function getARSpaceCapture(): ARSpaceCapture; /** * Scan a room using Apple's RoomPlan AR Capabilities. */ export interface ARSpaceCapture extends BaseCapability { /** * Scan Room using Apple's AR Capabilities. * @param options The customization options for the {@linkcode ARSpaceCapture} Plugin. * @returns A resolved promise returns {@linkcode ARSpaceCaptureResult} object. */ scanRoom(options?: ARSpaceCaptureOptions): Promise<ARSpaceCaptureResult>; } /** * ARSpaceCaptureResult interface. */ export interface ARSpaceCaptureResult { capturedRooms: CapturedRoom[] | null; } /** * CapturedRoom interface. */ export interface CapturedRoom { /** * An array of walls that the framework identifies during a scan. */ walls: unknown[]; /** * An array of doors that the framework identifies during a scan. */ doors: unknown[]; /** * An array of windows that the framework identifies during a scan. */ windows: unknown[]; /** * An array of openings that the