Software_development_department mobile-review
install
source · Clone the upstream repo
git clone https://github.com/tranhieutt/software_development_department
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/tranhieutt/software_development_department "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/mobile-review" ~/.claude/skills/tranhieutt-software-development-department-mobile-review && rm -rf "$T"
manifest:
.claude/skills/mobile-review/SKILL.mdsource content
When this skill is invoked:
-
Read the target file(s) in full.
-
Read the CLAUDE.md to identify the mobile tech stack (React Native / Flutter / Swift / Kotlin).
-
Determine platform scope: iOS-only, Android-only, or cross-platform.
-
Evaluate Performance (MFRI Check):
- No
wrapping long or dynamic lists — useScrollView
/FlatList
(RN) orFlashList
(Flutter)ListView.builder -
is wrapped inrenderItem
/ item widget isuseCallback
orconstStatelessWidget - Stable
— no array index as keykeyExtractor - Animations use native driver (
) or GPU-composited propertiesuseNativeDriver: true - No
/ debug print in production code pathsconsole.log - Images use lazy loading and caching (FastImage / cached_network_image)
- Cold start: no heavy sync work on app launch
- No
-
Evaluate Platform Standards:
- Follows Apple HIG on iOS: navigation styles, back behavior, SF Symbols
- Follows Material Design 3 on Android: navigation rail, dynamic color, M3 components
- Touch targets ≥ 44pt (iOS) / 48dp (Android)
- No hover assumptions — all interactions are touch/gesture-first
- Platform-specific gestures respected (edge swipe on iOS, system back on Android)
- Typography uses platform font scale (Dynamic Type / Font Scale)
-
Evaluate Security (OWASP MASVS):
- No tokens or secrets stored in
/AsyncStorage
— useSharedPreferences
/ Keychain / EncryptedSharedPreferencesSecureStore - No sensitive data in logs
- SSL/certificate pinning configured for sensitive endpoints
- No hardcoded API keys, URLs, or credentials
- No tokens or secrets stored in
-
Evaluate Offline & Network Handling:
- Network errors are caught and shown to user — no silent failures
- Loading, error, empty, and offline states all handled
- Retry mechanism present for failed requests
- Local data persisted for offline-first features (SQLite / Realm / Hive / MMKV)
-
Evaluate Accessibility:
- All interactive elements have
/accessibilityLabel
/contentDescriptionsemanticsLabel - VoiceOver / TalkBack can navigate the screen logically
- No functionality gated behind gestures only — button fallback exists
- Focus management correct after navigation or modal open/close
- All interactive elements have
-
Output the review in this format:
## Mobile Code Review: [File/Feature Name] Platform: [iOS / Android / Cross-platform] Framework: [React Native / Flutter / SwiftUI / Compose] ### Performance: [X/7 passing] [List failures with line references and fix suggestion] ### Platform Standards: [X/6 passing] [List non-compliant items] ### Security (MASVS): [X/4 passing] [List security issues with severity: CRITICAL / HIGH / MEDIUM] ### Offline & Network: [X/4 passing] [List missing states or error handling gaps] ### Accessibility: [X/4 passing] [List missing labels or navigation issues] ### Positive Observations [What is done well — always include this section] ### Required Changes (block release) [Must-fix items] ### Suggestions (non-blocking) [Nice-to-have improvements] ### Verdict: [APPROVED / APPROVED WITH SUGGESTIONS / CHANGES REQUIRED]
Protocol
- Question: Auto-starts from argument (file or directory path)
- Options: Skip — single review path
- Decision: Skip — verdict is advisory
- Draft: Full review shown in conversation only
- Approval: Skip — read-only; no files written
Output
Deliver exactly:
- Platform & framework detected (iOS / Android / Cross-platform + RN / Flutter / Swift / Kotlin)
- Category scores — Performance X/7, Platform X/6, Security X/4, Offline X/4, Accessibility X/4
- Blocking issues — must fix before release (or "None")
- Verdict:
/APPROVED
/APPROVED WITH SUGGESTIONSCHANGES REQUIRED