Token导航 LogoToken导航TokenDH.com
研究检索执行命令github未标认证来源可访问clear审计通过

senior-mobile高级手机

Agent Skill

senior-mobile 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

7,152

周安装

301

GitHub Stars

103

下载量

2,504
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

3

许可证

MIT

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:senior-mobile(高级手机)
来源仓库:https://github.com/borghei/claude-skills
仓库路径:skills/senior-mobile
安装命令:
npx skills add https://github.com/borghei/claude-skills --skill senior-mobile
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/borghei/claude-skills --skill senior-mobile

简介

senior-mobile 支持 iOS、Android、React Native 与 Flutter 跨平台开发。

  • 提供 App Store 元数据生成与性能剖析工具链。
  • 涵盖离线优先架构与状态管理最佳实践指导。
  • 上架前应完成各平台规范检查与本地化适配。
  • 适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

SKILL.md

Senior Mobile Developer

Expert mobile application development across iOS, Android, React Native, and Flutter.

Keywords

mobile, ios, android, react-native, flutter, swift, kotlin, swiftui, jetpack-compose, expo-router, zustand, app-store, performance, offline-first


Quick Start

# Scaffold a React Native project
python scripts/mobile_scaffold.py --platform react-native --name MyApp

# Build for production
python scripts/build.py --platform ios --env production

# Generate App Store metadata
python scripts/store_metadata.py --screenshots ./screenshots

# Profile rendering performance
python scripts/profile.py --platform android --output report.html

Tools

ScriptPurpose
scripts/mobile_scaffold.pyScaffold project for react-native, ios, android, or flutter
scripts/build.pyBuild automation with environment and platform flags
scripts/store_metadata.pyGenerate App Store / Play Store listing metadata
scripts/profile.pyProfile rendering, memory, and startup performance

Platform Decision Matrix

AspectNative iOSNative AndroidReact NativeFlutter
LanguageSwiftKotlinTypeScriptDart
UI FrameworkSwiftUI/UIKitCompose/XMLReactWidgets
PerformanceBestBestGoodVery Good
Code SharingNoneNone~80%~95%
Best ForiOS-only, hardware-heavyAndroid-only, hardware-heavyWeb team, shared logicMaximum code sharing

Workflow 1: Scaffold a React Native App (Expo Router)

  1. Generate project -- python scripts/mobile_scaffold.py --platform react-native --name MyApp
  2. Verify directory structure matches this layout: src/ ├── app/ # Expo Router file-based routes │ ├── (tabs)/ # Tab navigation group │ ├── auth/ # Auth screens │ └── _layout.tsx # Root layout ├── components/ │ ├── ui/ # Reusable primitives (Button, Input, Card) │ └── features/ # Domain components (ProductCard, UserAvatar) ├── hooks/ # Custom hooks (useAuth, useApi) ├── services/ # API clients and storage ├── stores/ # Zustand state stores └── utils/ # Helpers
  3. Configure navigation in app/_layout.tsx with Stack and Tabs.
  4. Set up state management with Zustand + AsyncStorage persistence.
  5. Validate -- Run the app on both iOS simulator and Android emulator. Confirm navigation and state persistence work.

Workflow 2: Build a SwiftUI Feature (iOS)

  1. Create the View using NavigationStack, @StateObject for ViewModel binding, and .task for async data loading.
  2. Create the ViewModel as @MainActor class with @Published properties. Inject services via protocol for testability.
  3. Wire data flow: View observes ViewModel -> ViewModel calls Service -> Service returns data -> ViewModel updates @Published -> View re-renders.
  4. Add search/refresh: .searchable(text:) for filtering, .refreshable for pull-to-refresh.
  5. Validate -- Run in Xcode previews first, then simulator. Confirm async loading, error states, and empty states all render correctly.

Example: SwiftUI ViewModel Pattern

@MainActor
class ProductListViewModel: ObservableObject {
    @Published private(set) var products: [Product] = []
    @Published private(set) var isLoading = false
    @Published private(set) var error: Error?

    private let service: ProductServiceProtocol

    init(service: ProductServiceProtocol = ProductService()) {
        self.service = service
    }

    func loadProducts() async {
        isLoading = true
        error = nil
        do {
            products = try await service.fetchProducts()
        } catch {
            self.error = error
        }
        isLoading = false
    }
}

Workflow 3: Build a Jetpack Compose Feature (Android)

  1. Create the Composable screen with Scaffold, TopAppBar, and state collection via collectAsStateWithLifecycle().
  2. Handle UI states with a sealed interface: Loading, Success<T>, Error.
  3. Create the ViewModel with @HiltViewModel, MutableStateFlow, and repository injection.
  4. Build list UI using LazyColumn with key parameter for stable identity and Arrangement.spacedBy() for spacing.
  5. Validate -- Run on emulator. Confirm state transitions (loading -> success, loading -> error -> retry) work correctly.

Example: Compose UiState Pattern

sealed interface UiState<out T> {
    data object Loading : UiState<Nothing>
    data class Success<T>(val data: T) : UiState<T>
    data class Error(val message: String) : UiState<Nothing>
}

@HiltViewModel
class ProductListViewModel @Inject constructor(
    private val repository: ProductRepository
) : ViewModel() {
    private val _uiState = MutableStateFlow<UiState<List<Product>>>(UiState.Loading)
    val uiState: StateFlow<UiState<List<Product>>> = _uiState.asStateFlow()

    fun loadProducts() {
        viewModelScope.launch {
            _uiState.value = UiState.Loading
            repository.getProducts()
                .catch { e -> _uiState.value = UiState.Error(e.message ?: "Unknown error") }
                .collect { products -> _uiState.value = UiState.Success(products) }
        }
    }
}

Workflow 4: Optimize Mobile Performance

  1. Profile -- python scripts/profile.py --platform <ios|android> --output report.html
  2. Apply React Native optimizations:

- Use FlatList with keyExtractor, initialNumToRender=10, windowSize=5, removeClippedSubviews=true - Memoize components with React.memo and handlers with useCallback - Supply getItemLayout for fixed-height rows to skip measurement

  1. Apply native iOS optimizations:

- Implement prefetchItemsAt for image pre-loading in collection views

  1. Apply native Android optimizations:

- Set setHasFixedSize(true) and setItemViewCacheSize(20) on RecyclerViews

  1. Validate -- Re-run profiler and confirm frame drops reduced and startup time improved.

Workflow 5: Submit to App Store / Play Store

  1. Generate metadata -- python scripts/store_metadata.py --screenshots./screenshots
  2. Build release -- python scripts/build.py --platform ios --env production
  3. Review the generated listing (title, description, keywords, screenshots).
  4. Upload via Xcode (iOS) or Play Console (Android).
  5. Validate -- Monitor review status and address any rejection feedback.

Reference Materials

DocumentPath
React Native Guidereferences/react_native_guide.md
iOS Patternsreferences/ios_patterns.md
Android Patternsreferences/android_patterns.md
App Store Guidereferences/app_store_guide.md
Full Code ExamplesREFERENCE.md

Troubleshooting

ProblemCauseSolution
App crashes on launch after adding a new dependencyIncompatible native module version or missing pod install / gradle syncRun npx pod-install (iOS) or cd android &&./gradlew clean (Android). Verify dependency version compatibility in the changelog.
FlatList renders blank or flickersMissing keyExtractor, unstable keys, or inline renderItem causing full re-rendersAdd a stable keyExtractor, wrap renderItem in useCallback, and supply getItemLayout for fixed-height rows.
iOS build fails with "signing" errorProvisioning profile mismatch or expired certificateOpen Xcode > Signing & Capabilities, select the correct team and profile. Run security find-identity -v -p codesigning to verify certificates.
Android build OOM during dexingInsufficient JVM heap for large projectsAdd org.gradle.jvmargs=-Xmx4096m to gradle.properties. Enable dexOptions {javaMaxHeapSize "4g"} in build.gradle.
App Store rejection for missing privacy manifestApple requires PrivacyInfo.xcprivacy for apps using required reason APIs (UserDefaults, file timestamp, etc.)Add a PrivacyInfo.xcprivacy file declaring each required reason API. Run store_metadata_generator.py to review privacy label guidance.
Slow cold start time (>3 seconds)Too many synchronous operations on the main thread at launch, large bundle size, or unoptimized imagesDefer non-critical initialization, lazy-load modules, compress images, and use app_performance_analyzer.py to identify bottlenecks.
Hot reload / fast refresh stops workingSyntax error in a module boundary, anonymous default export, or class component stateCheck terminal for error messages, ensure named exports, and restart the Metro bundler or Flutter daemon with a cache clear.

Success Criteria

  • App startup time under 2 seconds on cold launch (measured on mid-range devices, both iOS and Android).
  • Crash-free rate above 99.5% across all supported OS versions, tracked via Crashlytics or Sentry.
  • Frame rendering at 60 fps (16ms per frame) for scrolling lists and animations, with zero jank frames during typical user flows.
  • Bundle size under 50 MB for the initial download (excluding on-demand resources), verified before each release.
  • Performance analyzer score of 75+ (Grade B or above) when running app_performance_analyzer.py against the project.
  • Zero critical issues and fewer than 5 warnings reported by the performance analyzer before submitting to app stores.
  • App Store / Play Store approval on first submission with complete metadata, correct privacy labels, and proper age rating, validated using store_metadata_generator.py.

Scope & Limitations

This skill covers:

  • Scaffolding production-ready mobile projects for React Native (Expo Router), Flutter, iOS native (SwiftUI), and Android native (Jetpack Compose).
  • Static performance analysis including image asset sizing, re-render detection, memory leak patterns, and bundle size estimation.
  • App Store and Play Store metadata generation including titles, keywords, privacy labels, age ratings, and submission checklists.
  • Platform-specific architecture patterns (MVVM, state management, navigation).

This skill does NOT cover:

  • Backend API development or server-side logic (see senior-backend and senior-fullstack skills).
  • CI/CD pipeline configuration for mobile builds and automated distribution (see senior-devops and release-orchestrator skills).
  • UI/UX design systems, accessibility auditing, or design token management (see senior-frontend and design-auditor skills).
  • Runtime profiling with native tools (Xcode Instruments, Android Studio Profiler) -- the analyzer performs static code analysis only, not live device profiling.

Integration Points

SkillIntegrationData Flow
senior-frontendShared component patterns, styling conventions, and responsive design principles for React Native web targetsFrontend design tokens and component APIs feed into mobile UI components
senior-backendAPI contract definitions, authentication flows, and data models consumed by mobile clientsBackend OpenAPI specs define mobile service layer interfaces
senior-devopsBuild pipelines, code signing automation, and deployment workflows for mobile releasesMobile build artifacts flow into CI/CD pipelines for TestFlight / Play Console distribution
senior-qaTest strategy alignment, device matrix coverage, and E2E testing patterns for mobile screensQA test plans drive device coverage; mobile scaffold includes test directory structure
senior-securitySecure storage patterns (Keychain/Keystore), certificate pinning, and data encryption for mobile appsSecurity requirements inform Keychain helper implementation and network client configuration
release-orchestratorVersion bumping, changelog generation, and coordinated release across iOS and AndroidRelease metadata and version info flow from orchestrator into store submission workflow

Tool Reference

mobile_scaffold.py

Purpose: Scaffold a production-ready mobile project with proper directory structure, navigation setup, state management, and base configuration files.

Usage:

python scripts/mobile_scaffold.py <name> --platform <platform> [options]

Parameters:

ParameterTypeRequiredDefaultDescription
namepositionalYes--Project name, used as the directory name
--platform, -pchoiceYes--Target platform: android-native, flutter, ios-native, react-native
--typescript, -tflagNoFalse (auto-enabled for react-native)Use TypeScript (React Native only)
--state, -sstringNononeState management library. React Native: zustand, redux, jotai, none. Flutter: riverpod, bloc, provider, none. Not applicable for native platforms.
--output-dir, -opathNo. (current directory)Parent directory for the generated project
--jsonflagNoFalseOutput result as JSON instead of human-readable summary

Example:

# Scaffold a React Native app with Zustand state management
python scripts/mobile_scaffold.py MyApp --platform react-native --state zustand

# Scaffold a Flutter app with Riverpod, output as JSON
python scripts/mobile_scaffold.py my-flutter-app --platform flutter --state riverpod --json

# Scaffold an iOS native app in a specific directory
python scripts/mobile_scaffold.py HealthTracker --platform ios-native --output-dir ~/Projects

Output Formats:

  • Human-readable (default): Prints the project name, platform, state management choice, created directory path, and a list of all generated files.
  • JSON (--json): Returns a JSON object with project_name, platform, typescript, state_management, output_directory, files_created, and generated_at fields.

store_metadata_generator.py

Purpose: Generate structured metadata for App Store (iOS) and Google Play Store (Android) submissions, including title variants, keywords, category recommendations, privacy labels, age rating guidance, and submission checklists.

Usage:

python scripts/store_metadata_generator.py --app-name <name> --category <category> --features <features> [options]

Parameters:

ParameterTypeRequiredDefaultDescription
--app-namestringYes--The app name for store listings
--categorychoiceYes--Primary app category. Choices: business, education, entertainment, finance, food, games, health, lifestyle, music, navigation, news, photo, productivity, shopping, social, sports, travel, utilities, weather
--featuresstringYes--Comma-separated list of features (e.g., "offline,sync,biometric"). Recognized features expand into keywords and trigger privacy/age-rating guidance.
--descriptionstringNo""Short app description used in generated store copy
--jsonflagNoFalseOutput results as JSON

Example:

# Generate metadata for a health app
python scripts/store_metadata_generator.py --app-name "FitTrack" --category health --features "workout,tracking,social" --description "Track your workouts"

# JSON output for CI integration
python scripts/store_metadata_generator.py --app-name "BudgetPal" --category finance --features "payment,offline,biometric,push" --json

Output Formats:

  • Human-readable (default): Formatted report with sections for Title Variants, Keywords (with iOS 100-char field), Store Categories, Privacy Labels / Data Safety, Age Rating Guidance, and Submission Checklist.
  • JSON (--json): Full metadata object including titles, keywords, categories, descriptions, privacy_labels, age_rating, screenshot_specs, and submission_checklist.

app_performance_analyzer.py

Purpose: Analyze a mobile project directory for common performance issues including oversized image assets, re-render patterns, memory leak patterns, bundle size estimation, and platform-specific anti-patterns.

Usage:

python scripts/app_performance_analyzer.py <project_dir> [options]

Parameters:

ParameterTypeRequiredDefaultDescription
project_dirpositionalYes--Path to the mobile project directory to analyze
--platform, -pchoiceNoAuto-detectedTarget platform: react-native, flutter, ios-native, android-native. Auto-detected from project files if omitted.
--jsonflagNoFalseOutput results as JSON

Example:

# Analyze with auto-detected platform
python scripts/app_performance_analyzer.py ./my-app

# Analyze a React Native project explicitly
python scripts/app_performance_analyzer.py ./my-app --platform react-native

# JSON output for CI pipeline integration
python scripts/app_performance_analyzer.py ./my-app --platform flutter --json

Output Formats:

  • Human-readable (default): Performance score (0-100 with letter grade), issue summary (critical/warning/info counts), bundle size estimate, detailed issues grouped by category, and platform-specific recommendations.
  • JSON (--json): Full report object including performance_score, summary, bundle_estimate (source code size, asset size, file counts), issues_by_category, and the flat issues array with category, severity, file, line, and message per issue.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

04

需要参考平台分布和安装热度时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Claude Code

31.21%
按下载量换算781

OpenCode

22.12%
按下载量换算554

Cursor

16.29%
按下载量换算408

Gemini CLI

11.72%
按下载量换算293

Antigravity

8.85%
按下载量换算222

Codex

3.11%
按下载量换算78

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

执行命令

安装流程涉及命令执行,可能通过 npx skills add https://github.com/borghei/claude-skills --skill senior-mobile;npx skills add borghei/claude-skills --skill "senior-mobile" 联网下载 Skill 或依赖。用户安装前应确认命令来源、仓库内容和执行环境。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。

来源信息

继续浏览同类 Skills