A universal module that gets native application information such as its ID, app name, and build version at runtime
Overall
score
98%
{
"context": "This criteria evaluates how effectively an engineer uses the expo-application package to implement iOS device identification functionality, specifically leveraging the getIosIdForVendorAsync() method. The focus is on correct API usage, proper error handling for platform-specific availability, and appropriate handling of null return values.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Uses getIosIdForVendorAsync",
"description": "The implementation imports and calls getIosIdForVendorAsync() from the expo-application package to retrieve the iOS vendor identifier.",
"max_score": 35
},
{
"name": "Handles async operation",
"description": "The implementation correctly handles the Promise returned by getIosIdForVendorAsync() using async/await or .then()/.catch() patterns.",
"max_score": 15
},
{
"name": "Handles null return",
"description": "The implementation properly checks for and handles the null case that can be returned by getIosIdForVendorAsync() when the device has been restarted but not yet unlocked.",
"max_score": 20
},
{
"name": "Handles UnavailabilityError",
"description": "The implementation includes try-catch error handling to catch UnavailabilityError thrown on non-iOS platforms (Android, web) when calling getIosIdForVendorAsync().",
"max_score": 20
},
{
"name": "UUID format validation",
"description": "The implementation validates the UUID format of the identifier returned by getIosIdForVendorAsync() using appropriate pattern matching (8-4-4-4-12 hexadecimal format).",
"max_score": 10
}
]
}Install with Tessl CLI
npx tessl i tessl/npm-expo-application