cokit-cli 1.0.1 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +103 -0
- package/README.FLOW.md +237 -0
- package/README.md +153 -94
- package/agents/brainstormer.agent.md +71 -0
- package/agents/code-reviewer.agent.md +128 -0
- package/agents/database-admin.agent.md +91 -0
- package/agents/debugger.agent.md +128 -0
- package/agents/docs-manager.agent.md +121 -0
- package/agents/fullstack-developer.agent.md +96 -0
- package/agents/git-manager.agent.md +392 -0
- package/agents/mcp-manager.agent.md +93 -0
- package/agents/planner.agent.md +94 -0
- package/agents/project-manager.agent.md +124 -0
- package/agents/researcher.agent.md +32 -0
- package/agents/scout-external.agent.md +141 -0
- package/agents/scout.agent.md +107 -0
- package/agents/tester.agent.md +106 -0
- package/agents/ui-ux-designer.agent.md +225 -0
- package/collections/ck-core.collection.yml +30 -0
- package/collections/ck-development-rules.collection.yml +18 -0
- package/collections/ck-documentation.collection.yml +18 -0
- package/collections/ck-git-workflow.collection.yml +18 -0
- package/collections/ck-orchestration.collection.yml +22 -0
- package/collections/ck-ui-design.collection.yml +18 -0
- package/docs/README.md +85 -0
- package/docs/copilot-processing-flow.md +128 -0
- package/instructions/ck-backend.instructions.md +48 -0
- package/instructions/ck-development.instructions.md +40 -0
- package/instructions/ck-frontend-design-pro.instructions.md +58 -0
- package/instructions/ck-frontend.instructions.md +44 -0
- package/instructions/ck-google-adk-python.instructions.md +242 -0
- package/instructions/ck-research.instructions.md +167 -0
- package/instructions/ck-testing.instructions.md +36 -0
- package/package.json +9 -2
- package/plans/260108-0924-rebuild-cokit-awesome-copilot-format/phase-01-restructure-folders.md +183 -0
- package/plans/260108-0924-rebuild-cokit-awesome-copilot-format/phase-02-convert-agents.md +206 -0
- package/plans/260108-0924-rebuild-cokit-awesome-copilot-format/phase-03-convert-commands-to-prompts.md +284 -0
- package/plans/260108-0924-rebuild-cokit-awesome-copilot-format/phase-04-convert-skills-to-instructions.md +349 -0
- package/plans/260108-0924-rebuild-cokit-awesome-copilot-format/phase-05-create-collections.md +320 -0
- package/plans/260108-0924-rebuild-cokit-awesome-copilot-format/phase-06-update-cli-build-scripts.md +450 -0
- package/plans/260108-0924-rebuild-cokit-awesome-copilot-format/phase-07-update-documentation.md +407 -0
- package/plans/260108-0924-rebuild-cokit-awesome-copilot-format/plan.md +136 -0
- package/prompts/ck-ask.prompt.md +57 -0
- package/prompts/ck-bootstrap-auto-fast.prompt.md +108 -0
- package/prompts/ck-bootstrap-auto-parallel.prompt.md +66 -0
- package/prompts/ck-bootstrap-auto.prompt.md +114 -0
- package/prompts/ck-bootstrap.prompt.md +136 -0
- package/prompts/ck-brainstorm.prompt.md +68 -0
- package/prompts/ck-ck-help.prompt.md +114 -0
- package/prompts/ck-code-auto.prompt.md +171 -0
- package/prompts/ck-code-no-test.prompt.md +159 -0
- package/prompts/ck-code-parallel.prompt.md +56 -0
- package/prompts/ck-code.prompt.md +177 -0
- package/prompts/ck-coding-level.prompt.md +54 -0
- package/prompts/ck-cook-auto-fast.prompt.md +26 -0
- package/prompts/ck-cook-auto-parallel.prompt.md +49 -0
- package/prompts/ck-cook-auto.prompt.md +15 -0
- package/prompts/ck-cook.prompt.md +96 -0
- package/prompts/ck-debug.prompt.md +14 -0
- package/prompts/ck-design-3d.prompt.md +84 -0
- package/prompts/ck-design-describe.prompt.md +24 -0
- package/prompts/ck-design-fast.prompt.md +32 -0
- package/prompts/ck-design-good.prompt.md +36 -0
- package/prompts/ck-design-screenshot.prompt.md +35 -0
- package/prompts/ck-design-video.prompt.md +35 -0
- package/prompts/ck-docs-init.prompt.md +27 -0
- package/prompts/ck-docs-summarize.prompt.md +23 -0
- package/prompts/ck-docs-update.prompt.md +36 -0
- package/prompts/ck-fix-ci.prompt.md +18 -0
- package/prompts/ck-fix-fast.prompt.md +18 -0
- package/prompts/ck-fix-hard.prompt.md +36 -0
- package/prompts/ck-fix-logs.prompt.md +27 -0
- package/prompts/ck-fix-parallel.prompt.md +54 -0
- package/prompts/ck-fix-test.prompt.md +19 -0
- package/prompts/ck-fix-types.prompt.md +11 -0
- package/prompts/ck-fix-ui.prompt.md +49 -0
- package/prompts/ck-fix.prompt.md +44 -0
- package/prompts/ck-git-cm.prompt.md +8 -0
- package/prompts/ck-git-cp.prompt.md +7 -0
- package/prompts/ck-git-merge.prompt.md +41 -0
- package/prompts/ck-git-pr.prompt.md +49 -0
- package/prompts/ck-kanban.prompt.md +77 -0
- package/prompts/ck-plan-archive.prompt.md +58 -0
- package/prompts/ck-plan-ci.prompt.md +34 -0
- package/prompts/ck-plan-cro.prompt.md +66 -0
- package/prompts/ck-plan-fast.prompt.md +67 -0
- package/prompts/ck-plan-hard.prompt.md +89 -0
- package/prompts/ck-plan-parallel.prompt.md +126 -0
- package/prompts/ck-plan-two.prompt.md +43 -0
- package/prompts/ck-plan-validate.prompt.md +118 -0
- package/prompts/ck-plan.prompt.md +29 -1
- package/prompts/ck-preview.prompt.md +65 -0
- package/prompts/ck-review-codebase.prompt.md +44 -0
- package/prompts/ck-scout-ext.prompt.md +35 -0
- package/prompts/ck-scout.prompt.md +25 -0
- package/prompts/ck-skill-add.prompt.md +36 -0
- package/prompts/ck-skill-create.prompt.md +29 -0
- package/prompts/ck-skill-fix-logs.prompt.md +22 -0
- package/prompts/ck-skill-optimize-auto.prompt.md +25 -0
- package/prompts/ck-skill-optimize.prompt.md +34 -0
- package/prompts/ck-skill-plan.prompt.md +46 -0
- package/prompts/ck-test-ui.prompt.md +92 -0
- package/prompts/ck-test.prompt.md +10 -0
- package/prompts/ck-use-mcp.prompt.md +27 -0
- package/prompts/ck-watzup.prompt.md +11 -0
- package/prompts/ck-worktree.prompt.md +127 -0
- package/rules/README.agents.md +55 -0
- package/rules/README.collections.md +78 -0
- package/rules/README.copilot-instructions.md +66 -0
- package/rules/README.instructions.md +73 -0
- package/rules/README.md +39 -0
- package/rules/README.prompts.md +76 -0
- package/rules/README.skills.md +71 -0
- package/skills/ck-ai-artist/SKILL.md +73 -0
- package/skills/ck-ai-artist/references/advanced-techniques.md +184 -0
- package/skills/ck-ai-artist/references/domain-code.md +66 -0
- package/skills/ck-ai-artist/references/domain-data.md +72 -0
- package/skills/ck-ai-artist/references/domain-marketing.md +66 -0
- package/skills/ck-ai-artist/references/domain-patterns.md +33 -0
- package/skills/ck-ai-artist/references/domain-writing.md +68 -0
- package/skills/ck-ai-artist/references/image-prompting.md +141 -0
- package/skills/ck-ai-artist/references/llm-prompting.md +165 -0
- package/skills/ck-ai-artist/references/nano-banana.md +59 -0
- package/skills/ck-ai-artist/references/reasoning-techniques.md +201 -0
- package/skills/ck-backend-development/SKILL.md +93 -0
- package/skills/ck-backend-development/references/backend-api-design.md +495 -0
- package/skills/ck-backend-development/references/backend-architecture.md +454 -0
- package/skills/ck-backend-development/references/backend-authentication.md +338 -0
- package/skills/ck-backend-development/references/backend-code-quality.md +659 -0
- package/skills/ck-backend-development/references/backend-debugging.md +904 -0
- package/skills/ck-backend-development/references/backend-devops.md +494 -0
- package/skills/ck-backend-development/references/backend-mindset.md +387 -0
- package/skills/ck-backend-development/references/backend-performance.md +397 -0
- package/skills/ck-backend-development/references/backend-security.md +290 -0
- package/skills/ck-backend-development/references/backend-technologies.md +256 -0
- package/skills/ck-backend-development/references/backend-testing.md +429 -0
- package/skills/ck-better-auth/SKILL.md +202 -0
- package/skills/ck-better-auth/references/advanced-features.md +553 -0
- package/skills/ck-better-auth/references/database-integration.md +577 -0
- package/skills/ck-better-auth/references/email-password-auth.md +416 -0
- package/skills/ck-better-auth/references/oauth-providers.md +430 -0
- package/skills/ck-better-auth/scripts/.coverage +0 -0
- package/skills/ck-better-auth/scripts/better_auth_init.py +521 -0
- package/skills/ck-better-auth/scripts/requirements.txt +15 -0
- package/skills/ck-better-auth/scripts/tests/.coverage +0 -0
- package/skills/ck-better-auth/scripts/tests/test_better_auth_init.py +421 -0
- package/skills/ck-chrome-devtools/SKILL.md +470 -0
- package/skills/ck-chrome-devtools/references/cdp-domains.md +694 -0
- package/skills/ck-chrome-devtools/references/performance-guide.md +940 -0
- package/skills/ck-chrome-devtools/references/puppeteer-reference.md +953 -0
- package/skills/ck-chrome-devtools/scripts/README.md +272 -0
- package/skills/ck-chrome-devtools/scripts/__tests__/selector.test.js +210 -0
- package/skills/ck-chrome-devtools/scripts/aria-snapshot.js +362 -0
- package/skills/ck-chrome-devtools/scripts/click.js +83 -0
- package/skills/ck-chrome-devtools/scripts/console.js +79 -0
- package/skills/ck-chrome-devtools/scripts/evaluate.js +53 -0
- package/skills/ck-chrome-devtools/scripts/fill.js +76 -0
- package/skills/ck-chrome-devtools/scripts/inject-auth.js +229 -0
- package/skills/ck-chrome-devtools/scripts/install-deps.sh +181 -0
- package/skills/ck-chrome-devtools/scripts/install.sh +83 -0
- package/skills/ck-chrome-devtools/scripts/lib/browser.js +318 -0
- package/skills/ck-chrome-devtools/scripts/lib/selector.js +178 -0
- package/skills/ck-chrome-devtools/scripts/navigate.js +54 -0
- package/skills/ck-chrome-devtools/scripts/network.js +106 -0
- package/skills/ck-chrome-devtools/scripts/package-lock.json +1589 -0
- package/skills/ck-chrome-devtools/scripts/package.json +16 -0
- package/skills/ck-chrome-devtools/scripts/performance.js +149 -0
- package/skills/ck-chrome-devtools/scripts/screenshot.js +198 -0
- package/skills/ck-chrome-devtools/scripts/select-ref.js +131 -0
- package/skills/ck-chrome-devtools/scripts/snapshot.js +135 -0
- package/skills/ck-code-review/SKILL.md +110 -53
- package/skills/ck-code-review/references/code-review-reception.md +182 -49
- package/skills/ck-code-review/references/requesting-code-review.md +105 -0
- package/skills/ck-code-review/references/verification-before-completion.md +111 -58
- package/skills/ck-databases/SKILL.md +231 -0
- package/skills/ck-databases/references/mongodb-aggregation.md +447 -0
- package/skills/ck-databases/references/mongodb-atlas.md +465 -0
- package/skills/ck-databases/references/mongodb-crud.md +408 -0
- package/skills/ck-databases/references/mongodb-indexing.md +442 -0
- package/skills/ck-databases/references/postgresql-administration.md +594 -0
- package/skills/ck-databases/references/postgresql-performance.md +527 -0
- package/skills/ck-databases/references/postgresql-psql-cli.md +467 -0
- package/skills/ck-databases/references/postgresql-queries.md +475 -0
- package/skills/ck-databases/scripts/.coverage +0 -0
- package/skills/ck-databases/scripts/db_backup.py +502 -0
- package/skills/ck-databases/scripts/db_migrate.py +425 -0
- package/skills/ck-databases/scripts/db_performance_check.py +456 -0
- package/skills/ck-databases/scripts/requirements.txt +20 -0
- package/skills/ck-databases/scripts/tests/coverage-db.json +1 -0
- package/skills/ck-databases/scripts/tests/requirements.txt +4 -0
- package/skills/ck-databases/scripts/tests/test_db_backup.py +340 -0
- package/skills/ck-databases/scripts/tests/test_db_migrate.py +277 -0
- package/skills/ck-databases/scripts/tests/test_db_performance_check.py +370 -0
- package/skills/ck-debugging/SKILL.md +55 -43
- package/skills/ck-debugging/references/defense-in-depth.md +124 -0
- package/skills/ck-debugging/references/root-cause-tracing.md +100 -43
- package/skills/ck-debugging/references/systematic-debugging.md +80 -52
- package/skills/ck-debugging/references/verification.md +101 -52
- package/skills/ck-debugging/scripts/find-polluter.sh +63 -0
- package/skills/ck-debugging/scripts/find-polluter.test.md +102 -0
- package/skills/ck-devops/.env.example +76 -0
- package/skills/ck-devops/SKILL.md +283 -0
- package/skills/ck-devops/references/browser-rendering.md +305 -0
- package/skills/ck-devops/references/cloudflare-d1-kv.md +123 -0
- package/skills/ck-devops/references/cloudflare-platform.md +271 -0
- package/skills/ck-devops/references/cloudflare-r2-storage.md +280 -0
- package/skills/ck-devops/references/cloudflare-workers-advanced.md +312 -0
- package/skills/ck-devops/references/cloudflare-workers-apis.md +309 -0
- package/skills/ck-devops/references/cloudflare-workers-basics.md +418 -0
- package/skills/ck-devops/references/docker-basics.md +297 -0
- package/skills/ck-devops/references/docker-compose.md +292 -0
- package/skills/ck-devops/references/gcloud-platform.md +297 -0
- package/skills/ck-devops/references/gcloud-services.md +304 -0
- package/skills/ck-devops/scripts/cloudflare_deploy.py +269 -0
- package/skills/ck-devops/scripts/docker_optimize.py +331 -0
- package/skills/ck-devops/scripts/requirements.txt +20 -0
- package/skills/ck-devops/scripts/tests/requirements.txt +3 -0
- package/skills/ck-devops/scripts/tests/test_cloudflare_deploy.py +285 -0
- package/skills/ck-devops/scripts/tests/test_docker_optimize.py +436 -0
- package/skills/ck-docs-seeker/.env.example +15 -0
- package/skills/ck-docs-seeker/SKILL.md +70 -65
- package/skills/ck-docs-seeker/package.json +25 -0
- package/skills/ck-docs-seeker/references/advanced.md +79 -0
- package/skills/ck-docs-seeker/references/context7-patterns.md +68 -0
- package/skills/ck-docs-seeker/references/errors.md +68 -0
- package/skills/ck-docs-seeker/scripts/analyze-llms-txt.js +211 -0
- package/skills/ck-docs-seeker/scripts/detect-topic.js +172 -0
- package/skills/ck-docs-seeker/scripts/fetch-docs.js +213 -0
- package/skills/ck-docs-seeker/scripts/tests/run-tests.js +72 -0
- package/skills/ck-docs-seeker/scripts/tests/test-analyze-llms.js +119 -0
- package/skills/ck-docs-seeker/scripts/tests/test-detect-topic.js +112 -0
- package/skills/ck-docs-seeker/scripts/tests/test-fetch-docs.js +84 -0
- package/skills/ck-docs-seeker/scripts/utils/env-loader.js +94 -0
- package/skills/ck-docs-seeker/workflows/library-search.md +87 -0
- package/skills/ck-docs-seeker/workflows/repo-analysis.md +91 -0
- package/skills/ck-docs-seeker/workflows/topic-search.md +77 -0
- package/skills/ck-frontend-design/SKILL.md +79 -0
- package/skills/ck-frontend-design/references/analysis-best-practices.md +80 -0
- package/skills/ck-frontend-design/references/analysis-prompts.md +141 -0
- package/skills/ck-frontend-design/references/analysis-techniques.md +118 -0
- package/skills/ck-frontend-design/references/animejs.md +396 -0
- package/skills/ck-frontend-design/references/design-extraction-overview.md +71 -0
- package/skills/ck-frontend-design/references/extraction-best-practices.md +141 -0
- package/skills/ck-frontend-design/references/extraction-output-templates.md +162 -0
- package/skills/ck-frontend-design/references/extraction-prompts.md +127 -0
- package/skills/ck-frontend-design/references/technical-accessibility.md +119 -0
- package/skills/ck-frontend-design/references/technical-best-practices.md +97 -0
- package/skills/ck-frontend-design/references/technical-optimization.md +44 -0
- package/skills/ck-frontend-design/references/technical-overview.md +90 -0
- package/skills/ck-frontend-design/references/technical-workflows.md +150 -0
- package/skills/ck-frontend-design/references/visual-analysis-overview.md +95 -0
- package/skills/ck-frontend-development/SKILL.md +399 -0
- package/skills/ck-frontend-development/resources/common-patterns.md +331 -0
- package/skills/ck-frontend-development/resources/complete-examples.md +872 -0
- package/skills/ck-frontend-development/resources/component-patterns.md +502 -0
- package/skills/ck-frontend-development/resources/data-fetching.md +767 -0
- package/skills/ck-frontend-development/resources/file-organization.md +502 -0
- package/skills/ck-frontend-development/resources/loading-and-error-states.md +501 -0
- package/skills/ck-frontend-development/resources/performance.md +406 -0
- package/skills/ck-frontend-development/resources/routing-guide.md +364 -0
- package/skills/ck-frontend-development/resources/styling-guide.md +428 -0
- package/skills/ck-frontend-development/resources/typescript-standards.md +418 -0
- package/skills/ck-markdown-novel-viewer/SKILL.md +190 -0
- package/skills/ck-markdown-novel-viewer/assets/directory-browser.css +215 -0
- package/skills/ck-markdown-novel-viewer/assets/favicon.png +0 -0
- package/skills/ck-markdown-novel-viewer/assets/novel-theme.css +818 -0
- package/skills/ck-markdown-novel-viewer/assets/reader.js +262 -0
- package/skills/ck-markdown-novel-viewer/assets/template.html +80 -0
- package/skills/ck-markdown-novel-viewer/package.json +15 -0
- package/skills/ck-markdown-novel-viewer/scripts/lib/http-server.cjs +434 -0
- package/skills/ck-markdown-novel-viewer/scripts/lib/markdown-renderer.cjs +272 -0
- package/skills/ck-markdown-novel-viewer/scripts/lib/plan-navigator.cjs +509 -0
- package/skills/ck-markdown-novel-viewer/scripts/lib/port-finder.cjs +48 -0
- package/skills/ck-markdown-novel-viewer/scripts/lib/process-mgr.cjs +150 -0
- package/skills/ck-markdown-novel-viewer/scripts/server.cjs +411 -0
- package/skills/ck-markdown-novel-viewer/scripts/tests/server.test.cjs +283 -0
- package/skills/ck-markdown-novel-viewer/tests/dashboard-assets.test.cjs +340 -0
- package/skills/ck-markdown-novel-viewer/tests/dashboard-renderer.test.cjs +404 -0
- package/skills/ck-markdown-novel-viewer/tests/http-server.test.cjs +271 -0
- package/skills/ck-markdown-novel-viewer/tests/run-tests.cjs +51 -0
- package/skills/ck-markdown-novel-viewer/tests/test-framework.cjs +154 -0
- package/skills/ck-markdown-novel-viewer/tests/verify-xss.cjs +90 -0
- package/skills/ck-mcp-builder/LICENSE.txt +202 -0
- package/skills/ck-mcp-builder/SKILL.md +327 -0
- package/skills/ck-mcp-builder/reference/evaluation.md +602 -0
- package/skills/ck-mcp-builder/reference/mcp_best_practices.md +915 -0
- package/skills/ck-mcp-builder/reference/node_mcp_server.md +916 -0
- package/skills/ck-mcp-builder/reference/python_mcp_server.md +752 -0
- package/skills/ck-mcp-builder/scripts/connections.py +151 -0
- package/skills/ck-mcp-builder/scripts/evaluation.py +373 -0
- package/skills/ck-mcp-builder/scripts/example_evaluation.xml +22 -0
- package/skills/ck-mcp-builder/scripts/requirements.txt +2 -0
- package/skills/ck-mcp-management/README.md +219 -0
- package/skills/ck-mcp-management/SKILL.md +209 -0
- package/skills/ck-mcp-management/assets/tools.json +3146 -0
- package/skills/ck-mcp-management/references/configuration.md +114 -0
- package/skills/ck-mcp-management/references/gemini-cli-integration.md +215 -0
- package/skills/ck-mcp-management/references/mcp-protocol.md +116 -0
- package/skills/ck-mcp-management/scripts/.env.example +10 -0
- package/skills/ck-mcp-management/scripts/cli.ts +195 -0
- package/skills/ck-mcp-management/scripts/dist/analyze-tools.js +70 -0
- package/skills/ck-mcp-management/scripts/dist/cli.js +160 -0
- package/skills/ck-mcp-management/scripts/dist/mcp-client.js +183 -0
- package/skills/ck-mcp-management/scripts/mcp-client.ts +230 -0
- package/skills/ck-mcp-management/scripts/package.json +20 -0
- package/skills/ck-mcp-management/scripts/tsconfig.json +15 -0
- package/skills/ck-media-processing/SKILL.md +90 -0
- package/skills/ck-media-processing/references/common-workflows.md +132 -0
- package/skills/ck-media-processing/references/ffmpeg-encoding.md +358 -0
- package/skills/ck-media-processing/references/ffmpeg-filters.md +503 -0
- package/skills/ck-media-processing/references/ffmpeg-streaming.md +403 -0
- package/skills/ck-media-processing/references/format-compatibility.md +375 -0
- package/skills/ck-media-processing/references/imagemagick-batch.md +612 -0
- package/skills/ck-media-processing/references/imagemagick-editing.md +623 -0
- package/skills/ck-media-processing/references/rmbg-background-removal.md +66 -0
- package/skills/ck-media-processing/references/troubleshooting.md +109 -0
- package/skills/ck-media-processing/scripts/README.md +111 -0
- package/skills/ck-media-processing/scripts/batch-remove-background.sh +124 -0
- package/skills/ck-media-processing/scripts/batch_resize.py +342 -0
- package/skills/ck-media-processing/scripts/media_convert.py +311 -0
- package/skills/ck-media-processing/scripts/remove-background.sh +96 -0
- package/skills/ck-media-processing/scripts/remove-bg-node.js +158 -0
- package/skills/ck-media-processing/scripts/requirements.txt +24 -0
- package/skills/ck-media-processing/scripts/tests/.coverage +0 -0
- package/skills/ck-media-processing/scripts/tests/requirements.txt +2 -0
- package/skills/ck-media-processing/scripts/tests/test_batch_resize.py +372 -0
- package/skills/ck-media-processing/scripts/tests/test_media_convert.py +259 -0
- package/skills/ck-media-processing/scripts/tests/test_video_optimize.py +397 -0
- package/skills/ck-media-processing/scripts/video_optimize.py +414 -0
- package/skills/ck-mobile-development/SKILL.md +210 -0
- package/skills/ck-mobile-development/references/mobile-android.md +604 -0
- package/skills/ck-mobile-development/references/mobile-best-practices.md +545 -0
- package/skills/ck-mobile-development/references/mobile-debugging.md +1089 -0
- package/skills/ck-mobile-development/references/mobile-frameworks.md +465 -0
- package/skills/ck-mobile-development/references/mobile-ios.md +496 -0
- package/skills/ck-mobile-development/references/mobile-mindset.md +544 -0
- package/skills/ck-payment-integration/README.md +185 -0
- package/skills/ck-payment-integration/SKILL.md +116 -0
- package/skills/ck-payment-integration/references/polar/benefits.md +396 -0
- package/skills/ck-payment-integration/references/polar/best-practices.md +482 -0
- package/skills/ck-payment-integration/references/polar/checkouts.md +266 -0
- package/skills/ck-payment-integration/references/polar/overview.md +184 -0
- package/skills/ck-payment-integration/references/polar/products.md +244 -0
- package/skills/ck-payment-integration/references/polar/sdk.md +436 -0
- package/skills/ck-payment-integration/references/polar/subscriptions.md +340 -0
- package/skills/ck-payment-integration/references/polar/webhooks.md +405 -0
- package/skills/ck-payment-integration/references/sepay/api.md +140 -0
- package/skills/ck-payment-integration/references/sepay/best-practices.md +337 -0
- package/skills/ck-payment-integration/references/sepay/overview.md +138 -0
- package/skills/ck-payment-integration/references/sepay/qr-codes.md +228 -0
- package/skills/ck-payment-integration/references/sepay/sdk.md +213 -0
- package/skills/ck-payment-integration/references/sepay/webhooks.md +208 -0
- package/skills/ck-payment-integration/scripts/.env.example +20 -0
- package/skills/ck-payment-integration/scripts/checkout-helper.js +244 -0
- package/skills/ck-payment-integration/scripts/package.json +17 -0
- package/skills/ck-payment-integration/scripts/polar-webhook-verify.js +202 -0
- package/skills/ck-payment-integration/scripts/sepay-webhook-verify.js +193 -0
- package/skills/ck-payment-integration/scripts/test-scripts.js +237 -0
- package/skills/ck-planning/SKILL.md +79 -49
- package/skills/ck-planning/references/codebase-understanding.md +62 -0
- package/skills/ck-planning/references/output-standards.md +127 -0
- package/skills/ck-planning/references/plan-organization.md +122 -60
- package/skills/ck-planning/references/research-phase.md +49 -56
- package/skills/ck-planning/references/solution-design.md +61 -63
- package/skills/ck-problem-solving/SKILL.md +95 -0
- package/skills/ck-problem-solving/references/attribution.md +69 -0
- package/skills/ck-problem-solving/references/collision-zone-thinking.md +79 -0
- package/skills/ck-problem-solving/references/inversion-exercise.md +91 -0
- package/skills/ck-problem-solving/references/meta-pattern-recognition.md +87 -0
- package/skills/ck-problem-solving/references/scale-game.md +95 -0
- package/skills/ck-problem-solving/references/simplification-cascades.md +80 -0
- package/skills/ck-problem-solving/references/when-stuck.md +72 -0
- package/skills/ck-repomix/SKILL.md +247 -0
- package/skills/ck-repomix/references/configuration.md +211 -0
- package/skills/ck-repomix/references/usage-patterns.md +232 -0
- package/skills/ck-repomix/scripts/.coverage +0 -0
- package/skills/ck-repomix/scripts/README.md +179 -0
- package/skills/ck-repomix/scripts/repomix_batch.py +455 -0
- package/skills/ck-repomix/scripts/repos.example.json +15 -0
- package/skills/ck-repomix/scripts/requirements.txt +15 -0
- package/skills/ck-repomix/scripts/tests/test_repomix_batch.py +531 -0
- package/skills/ck-sequential-thinking/.env.example +8 -0
- package/skills/ck-sequential-thinking/README.md +183 -0
- package/skills/ck-sequential-thinking/SKILL.md +14 -2
- package/skills/ck-sequential-thinking/package.json +31 -0
- package/skills/ck-sequential-thinking/references/advanced-strategies.md +79 -0
- package/skills/ck-sequential-thinking/references/advanced-techniques.md +2 -14
- package/skills/ck-sequential-thinking/references/core-patterns.md +8 -0
- package/skills/ck-sequential-thinking/references/examples-api.md +88 -0
- package/skills/ck-sequential-thinking/references/examples-architecture.md +94 -0
- package/skills/ck-sequential-thinking/references/examples-debug.md +90 -0
- package/skills/ck-sequential-thinking/scripts/format-thought.js +159 -0
- package/skills/ck-sequential-thinking/scripts/process-thought.js +236 -0
- package/skills/ck-sequential-thinking/tests/format-thought.test.js +133 -0
- package/skills/ck-sequential-thinking/tests/process-thought.test.js +215 -0
- package/skills/ck-shopify/README.md +66 -0
- package/skills/ck-shopify/SKILL.md +319 -0
- package/skills/ck-shopify/references/app-development.md +470 -0
- package/skills/ck-shopify/references/extensions.md +493 -0
- package/skills/ck-shopify/references/themes.md +498 -0
- package/skills/ck-shopify/scripts/.coverage +0 -0
- package/skills/ck-shopify/scripts/requirements.txt +19 -0
- package/skills/ck-shopify/scripts/shopify_init.py +423 -0
- package/skills/ck-shopify/scripts/tests/.coverage +0 -0
- package/skills/ck-shopify/scripts/tests/test_shopify_init.py +385 -0
- package/skills/ck-skill-creator/LICENSE.txt +202 -0
- package/skills/ck-skill-creator/SKILL.md +265 -0
- package/skills/ck-skill-creator/scripts/init_skill.py +303 -0
- package/skills/ck-skill-creator/scripts/package_skill.py +110 -0
- package/skills/ck-skill-creator/scripts/quick_validate.py +65 -0
- package/skills/ck-threejs/SKILL.md +87 -0
- package/skills/ck-threejs/references/01-getting-started.md +177 -0
- package/skills/ck-threejs/references/02-loaders.md +169 -0
- package/skills/ck-threejs/references/03-textures.md +170 -0
- package/skills/ck-threejs/references/04-cameras.md +195 -0
- package/skills/ck-threejs/references/05-lights.md +183 -0
- package/skills/ck-threejs/references/06-animations.md +214 -0
- package/skills/ck-threejs/references/07-math.md +260 -0
- package/skills/ck-threejs/references/08-interaction.md +267 -0
- package/skills/ck-threejs/references/09-postprocessing.md +240 -0
- package/skills/ck-threejs/references/10-controls.md +259 -0
- package/skills/ck-threejs/references/11-materials-advanced.md +270 -0
- package/skills/ck-threejs/references/12-performance.md +269 -0
- package/skills/ck-threejs/references/13-node-materials.md +298 -0
- package/skills/ck-threejs/references/14-physics-vr.md +304 -0
- package/skills/ck-threejs/references/15-specialized-loaders.md +333 -0
- package/skills/ck-threejs/references/16-webgpu.md +302 -0
- package/skills/ck-ui-styling/LICENSE.txt +202 -0
- package/skills/ck-ui-styling/SKILL.md +319 -0
- package/skills/ck-ui-styling/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/skills/ck-ui-styling/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/skills/ck-ui-styling/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/skills/ck-ui-styling/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/skills/ck-ui-styling/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/skills/ck-ui-styling/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/DMMono-OFL.txt +93 -0
- package/skills/ck-ui-styling/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/skills/ck-ui-styling/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/skills/ck-ui-styling/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/Gloock-OFL.txt +93 -0
- package/skills/ck-ui-styling/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/skills/ck-ui-styling/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/skills/ck-ui-styling/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/Italiana-OFL.txt +93 -0
- package/skills/ck-ui-styling/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/skills/ck-ui-styling/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/Jura-Light.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/Jura-Medium.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/Jura-OFL.txt +93 -0
- package/skills/ck-ui-styling/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/skills/ck-ui-styling/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/Lora-Bold.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/Lora-Italic.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/Lora-OFL.txt +93 -0
- package/skills/ck-ui-styling/canvas-fonts/Lora-Regular.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/skills/ck-ui-styling/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/skills/ck-ui-styling/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/Outfit-OFL.txt +93 -0
- package/skills/ck-ui-styling/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/skills/ck-ui-styling/canvas-fonts/PoiretOne-OFL.txt +93 -0
- package/skills/ck-ui-styling/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/skills/ck-ui-styling/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/skills/ck-ui-styling/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/skills/ck-ui-styling/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/Tektur-OFL.txt +93 -0
- package/skills/ck-ui-styling/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/skills/ck-ui-styling/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/skills/ck-ui-styling/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/skills/ck-ui-styling/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/skills/ck-ui-styling/references/canvas-design-system.md +320 -0
- package/skills/ck-ui-styling/references/shadcn-accessibility.md +471 -0
- package/skills/ck-ui-styling/references/shadcn-components.md +424 -0
- package/skills/ck-ui-styling/references/shadcn-theming.md +373 -0
- package/skills/ck-ui-styling/references/tailwind-customization.md +483 -0
- package/skills/ck-ui-styling/references/tailwind-responsive.md +382 -0
- package/skills/ck-ui-styling/references/tailwind-utilities.md +455 -0
- package/skills/ck-ui-styling/scripts/.coverage +0 -0
- package/skills/ck-ui-styling/scripts/requirements.txt +17 -0
- package/skills/ck-ui-styling/scripts/shadcn_add.py +292 -0
- package/skills/ck-ui-styling/scripts/tailwind_config_gen.py +456 -0
- package/skills/ck-ui-styling/scripts/tests/coverage-ui.json +1 -0
- package/skills/ck-ui-styling/scripts/tests/requirements.txt +3 -0
- package/skills/ck-ui-styling/scripts/tests/test_shadcn_add.py +266 -0
- package/skills/ck-ui-styling/scripts/tests/test_tailwind_config_gen.py +336 -0
- package/skills/ck-ui-ux-pro-max/SKILL.md +227 -0
- package/skills/ck-ui-ux-pro-max/data/charts.csv +26 -0
- package/skills/ck-ui-ux-pro-max/data/colors.csv +97 -0
- package/skills/ck-ui-ux-pro-max/data/landing.csv +31 -0
- package/skills/ck-ui-ux-pro-max/data/products.csv +97 -0
- package/skills/ck-ui-ux-pro-max/data/prompts.csv +24 -0
- package/skills/ck-ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/skills/ck-ui-ux-pro-max/data/stacks/html-tailwind.csv +51 -0
- package/skills/ck-ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/skills/ck-ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/skills/ck-ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/skills/ck-ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/skills/ck-ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/skills/ck-ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/skills/ck-ui-ux-pro-max/data/styles.csv +59 -0
- package/skills/ck-ui-ux-pro-max/data/typography.csv +58 -0
- package/skills/ck-ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/skills/ck-ui-ux-pro-max/scripts/core.py +236 -0
- package/skills/ck-ui-ux-pro-max/scripts/search.py +76 -0
- package/skills/ck-web-frameworks/SKILL.md +322 -0
- package/skills/ck-web-frameworks/references/nextjs-app-router.md +465 -0
- package/skills/ck-web-frameworks/references/nextjs-data-fetching.md +459 -0
- package/skills/ck-web-frameworks/references/nextjs-optimization.md +511 -0
- package/skills/ck-web-frameworks/references/nextjs-server-components.md +495 -0
- package/skills/ck-web-frameworks/references/remix-icon-integration.md +603 -0
- package/skills/ck-web-frameworks/references/turborepo-caching.md +551 -0
- package/skills/ck-web-frameworks/references/turborepo-pipelines.md +517 -0
- package/skills/ck-web-frameworks/references/turborepo-setup.md +542 -0
- package/skills/ck-web-frameworks/scripts/.coverage +0 -0
- package/skills/ck-web-frameworks/scripts/__init__.py +0 -0
- package/skills/ck-web-frameworks/scripts/nextjs_init.py +547 -0
- package/skills/ck-web-frameworks/scripts/requirements.txt +16 -0
- package/skills/ck-web-frameworks/scripts/tests/coverage-web.json +1 -0
- package/skills/ck-web-frameworks/scripts/tests/requirements.txt +3 -0
- package/skills/ck-web-frameworks/scripts/tests/test_nextjs_init.py +319 -0
- package/skills/ck-web-frameworks/scripts/tests/test_turborepo_migrate.py +374 -0
- package/skills/ck-web-frameworks/scripts/turborepo_migrate.py +394 -0
- package/src/commands/init.js +61 -30
- package/src/utils/paths.js +35 -4
|
@@ -0,0 +1,465 @@
|
|
|
1
|
+
# Mobile Frameworks Reference
|
|
2
|
+
|
|
3
|
+
Comprehensive guide to mobile development frameworks: React Native, Flutter, and native development.
|
|
4
|
+
|
|
5
|
+
## Framework Overview (2024-2025)
|
|
6
|
+
|
|
7
|
+
### React Native
|
|
8
|
+
- **Language**: JavaScript/TypeScript
|
|
9
|
+
- **Stars**: 121,000+ on GitHub
|
|
10
|
+
- **Adoption**: 35% of mobile developers, 67% familiarity
|
|
11
|
+
- **Performance**: 80-90% native performance
|
|
12
|
+
- **Architecture**: Bridge-based (legacy) → New Architecture (JSI, Fabric, Codegen)
|
|
13
|
+
- **Rendering**: Native components
|
|
14
|
+
- **Hot Reload**: Yes
|
|
15
|
+
- **Community**: Huge (npm ecosystem, 3M+ downloads/week)
|
|
16
|
+
|
|
17
|
+
### Flutter
|
|
18
|
+
- **Language**: Dart
|
|
19
|
+
- **Stars**: 170,000+ on GitHub (fastest-growing)
|
|
20
|
+
- **Adoption**: 46% of mobile developers
|
|
21
|
+
- **Performance**: 85-95% native performance
|
|
22
|
+
- **Architecture**: "Everything is a widget"
|
|
23
|
+
- **Rendering**: Custom Impeller rendering engine (eliminates jank)
|
|
24
|
+
- **Hot Reload**: Yes (fastest in industry)
|
|
25
|
+
- **Community**: Growing rapidly (23,000+ packages on pub.dev)
|
|
26
|
+
|
|
27
|
+
### Native iOS (Swift/SwiftUI)
|
|
28
|
+
- **Language**: Swift
|
|
29
|
+
- **Performance**: 100% native
|
|
30
|
+
- **UI Framework**: SwiftUI (declarative) or UIKit (imperative)
|
|
31
|
+
- **Latest**: Swift 6 with compile-time data race detection
|
|
32
|
+
- **Tooling**: Xcode 16, Swift Package Manager
|
|
33
|
+
- **Concurrency**: async/await, actors, @MainActor
|
|
34
|
+
|
|
35
|
+
### Native Android (Kotlin/Jetpack Compose)
|
|
36
|
+
- **Language**: Kotlin
|
|
37
|
+
- **Performance**: 100% native
|
|
38
|
+
- **UI Framework**: Jetpack Compose (declarative) or Views (imperative)
|
|
39
|
+
- **Latest**: Kotlin 2.1, Compose 1.7
|
|
40
|
+
- **Tooling**: Android Studio Hedgehog+
|
|
41
|
+
- **Coroutines**: Kotlin coroutines for async
|
|
42
|
+
|
|
43
|
+
## React Native Deep Dive
|
|
44
|
+
|
|
45
|
+
### Core Concepts
|
|
46
|
+
|
|
47
|
+
**New Architecture (0.82+ Mandatory)**
|
|
48
|
+
- **JSI (JavaScript Interface)**: Direct JS-to-native communication, eliminating bridge
|
|
49
|
+
- **Fabric**: New rendering system with synchronous layout
|
|
50
|
+
- **Codegen**: Static type safety between JS and native code
|
|
51
|
+
- **Turbo Modules**: Lazy-loaded native modules
|
|
52
|
+
|
|
53
|
+
**Performance Optimizations**
|
|
54
|
+
- **Hermes Engine**: 30-40% faster startup, reduced memory
|
|
55
|
+
- **Native Driver Animations**: Offloaded to UI thread (60 FPS)
|
|
56
|
+
- **FlatList Virtualization**: Renders only visible items
|
|
57
|
+
- **Image Optimization**: FastImage library, progressive loading
|
|
58
|
+
|
|
59
|
+
### Best Practices
|
|
60
|
+
|
|
61
|
+
**Project Structure (Feature-Based)**
|
|
62
|
+
```
|
|
63
|
+
src/
|
|
64
|
+
├── features/
|
|
65
|
+
│ ├── auth/
|
|
66
|
+
│ ├── profile/
|
|
67
|
+
│ └── dashboard/
|
|
68
|
+
├── shared/
|
|
69
|
+
│ ├── components/
|
|
70
|
+
│ ├── hooks/
|
|
71
|
+
│ └── utils/
|
|
72
|
+
├── navigation/
|
|
73
|
+
├── services/
|
|
74
|
+
└── stores/
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**State Management (2024-2025)**
|
|
78
|
+
1. **Zustand** (Rising Star): Minimal boilerplate, 3KB, excellent TypeScript
|
|
79
|
+
2. **Redux Toolkit**: Enterprise apps, time-travel debugging, DevTools
|
|
80
|
+
3. **Recoil**: Meta-built, atom-based, experimental
|
|
81
|
+
4. **Context API**: Simple apps, avoid prop drilling
|
|
82
|
+
|
|
83
|
+
**Navigation**
|
|
84
|
+
- **React Navigation**: Industry standard, 80%+ adoption
|
|
85
|
+
- Type-safe navigation with TypeScript
|
|
86
|
+
- Deep linking configuration
|
|
87
|
+
- Tab, stack, drawer navigators
|
|
88
|
+
|
|
89
|
+
**TypeScript Adoption**
|
|
90
|
+
- 85%+ of new React Native projects use TypeScript
|
|
91
|
+
- Type safety prevents 15% of runtime errors
|
|
92
|
+
- Better IDE support and autocomplete
|
|
93
|
+
|
|
94
|
+
### Testing Strategy
|
|
95
|
+
|
|
96
|
+
**Unit Testing**
|
|
97
|
+
- **Jest**: Default test runner
|
|
98
|
+
- **React Native Testing Library**: Component testing, best practices
|
|
99
|
+
- Target: 70-80%+ code coverage
|
|
100
|
+
|
|
101
|
+
**E2E Testing**
|
|
102
|
+
- **Detox**: Gray-box testing, fast, reliable (recommended)
|
|
103
|
+
- **Appium**: Cross-platform, WebDriver-based
|
|
104
|
+
- **Maestro**: New player, simple YAML-based tests
|
|
105
|
+
|
|
106
|
+
**Example (React Native Testing Library)**
|
|
107
|
+
```javascript
|
|
108
|
+
import { render, fireEvent, waitFor } from '@testing-library/react-native';
|
|
109
|
+
|
|
110
|
+
test('login button should be enabled when form is valid', async () => {
|
|
111
|
+
const { getByTestId } = render(<LoginScreen />);
|
|
112
|
+
const emailInput = getByTestId('email-input');
|
|
113
|
+
const passwordInput = getByTestId('password-input');
|
|
114
|
+
const loginButton = getByTestId('login-button');
|
|
115
|
+
|
|
116
|
+
fireEvent.changeText(emailInput, 'test@example.com');
|
|
117
|
+
fireEvent.changeText(passwordInput, 'password123');
|
|
118
|
+
|
|
119
|
+
await waitFor(() => {
|
|
120
|
+
expect(loginButton).not.toBeDisabled();
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### When to Choose React Native
|
|
126
|
+
|
|
127
|
+
**✅ Best For:**
|
|
128
|
+
- JavaScript/TypeScript expertise in team
|
|
129
|
+
- Code sharing with web (React)
|
|
130
|
+
- Rapid prototyping and MVPs
|
|
131
|
+
- Strong community support needed
|
|
132
|
+
- npm ecosystem integration
|
|
133
|
+
- Commercial apps (12.57% market share)
|
|
134
|
+
|
|
135
|
+
**❌ Not Ideal For:**
|
|
136
|
+
- Heavy graphics/gaming (use native or Unity)
|
|
137
|
+
- Maximum performance critical
|
|
138
|
+
- Deep platform-specific integrations
|
|
139
|
+
- Team unfamiliar with JavaScript
|
|
140
|
+
|
|
141
|
+
## Flutter Deep Dive
|
|
142
|
+
|
|
143
|
+
### Core Concepts
|
|
144
|
+
|
|
145
|
+
**"Everything is a Widget"**
|
|
146
|
+
- UI built from composable widgets
|
|
147
|
+
- Immutable widget tree
|
|
148
|
+
- Reactive updates with setState/state management
|
|
149
|
+
|
|
150
|
+
**Rendering Engine**
|
|
151
|
+
- **Impeller**: New rendering engine (iOS stable, Android preview)
|
|
152
|
+
- Eliminates shader jank
|
|
153
|
+
- 120 FPS capable on capable devices
|
|
154
|
+
- Custom Skia-based rendering (full control)
|
|
155
|
+
|
|
156
|
+
**Performance Features**
|
|
157
|
+
- **Const widgets**: Compile-time optimization
|
|
158
|
+
- **RepaintBoundary**: Isolate expensive repaints
|
|
159
|
+
- **ListView.builder**: Lazy loading for long lists
|
|
160
|
+
- **Cached network images**: Image optimization
|
|
161
|
+
|
|
162
|
+
### Best Practices
|
|
163
|
+
|
|
164
|
+
**Project Structure (Feature-First)**
|
|
165
|
+
```
|
|
166
|
+
lib/
|
|
167
|
+
├── features/
|
|
168
|
+
│ ├── auth/
|
|
169
|
+
│ │ ├── data/
|
|
170
|
+
│ │ ├── domain/
|
|
171
|
+
│ │ └── presentation/
|
|
172
|
+
│ └── profile/
|
|
173
|
+
├── core/
|
|
174
|
+
│ ├── theme/
|
|
175
|
+
│ ├── utils/
|
|
176
|
+
│ └── widgets/
|
|
177
|
+
├── routing/
|
|
178
|
+
└── main.dart
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
**State Management (2024-2025)**
|
|
182
|
+
1. **Riverpod 3**: Modern, compile-safe, recommended by Flutter team
|
|
183
|
+
2. **Bloc**: Enterprise apps, event-driven, predictable state
|
|
184
|
+
3. **Provider**: Beginners, simple apps
|
|
185
|
+
4. **GetX**: All-in-one (state + routing + DI), opinionated
|
|
186
|
+
|
|
187
|
+
**Navigation**
|
|
188
|
+
- **GoRouter**: Official recommendation (2024+), declarative routing
|
|
189
|
+
- Type-safe routes with code generation
|
|
190
|
+
- Deep linking built-in
|
|
191
|
+
- Replaces Navigator 2.0 for most use cases
|
|
192
|
+
|
|
193
|
+
**Priority Levels (Official)**
|
|
194
|
+
1. **P0**: Fix immediately (crashes, data loss)
|
|
195
|
+
2. **P1**: Fix within days (major features broken)
|
|
196
|
+
3. **P2**: Fix within weeks (annoyances)
|
|
197
|
+
4. **P3**: Nice to have
|
|
198
|
+
|
|
199
|
+
### Testing Strategy
|
|
200
|
+
|
|
201
|
+
**Unit Testing**
|
|
202
|
+
- **flutter_test**: Built-in testing package
|
|
203
|
+
- **Mockito**: Mocking dependencies
|
|
204
|
+
- Target: 80%+ code coverage
|
|
205
|
+
|
|
206
|
+
**Widget Testing**
|
|
207
|
+
- **WidgetTester**: Test UI and interactions
|
|
208
|
+
- **Golden Tests**: Visual regression testing
|
|
209
|
+
|
|
210
|
+
**Integration Testing**
|
|
211
|
+
- **integration_test**: End-to-end testing
|
|
212
|
+
- Run on real devices or emulators
|
|
213
|
+
|
|
214
|
+
**Example (Widget Testing)**
|
|
215
|
+
```dart
|
|
216
|
+
testWidgets('Counter increments', (WidgetTester tester) async {
|
|
217
|
+
await tester.pumpWidget(MyApp());
|
|
218
|
+
|
|
219
|
+
expect(find.text('0'), findsOneWidget);
|
|
220
|
+
expect(find.text('1'), findsNothing);
|
|
221
|
+
|
|
222
|
+
await tester.tap(find.byIcon(Icons.add));
|
|
223
|
+
await tester.pump();
|
|
224
|
+
|
|
225
|
+
expect(find.text('0'), findsNothing);
|
|
226
|
+
expect(find.text('1'), findsOneWidget);
|
|
227
|
+
});
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
### When to Choose Flutter
|
|
231
|
+
|
|
232
|
+
**✅ Best For:**
|
|
233
|
+
- Performance-critical applications
|
|
234
|
+
- Complex animations and custom UI
|
|
235
|
+
- Multi-platform (mobile, web, desktop)
|
|
236
|
+
- Consistent UI across platforms
|
|
237
|
+
- Growing team/startup (fastest development)
|
|
238
|
+
- Apps with heavy visual requirements
|
|
239
|
+
|
|
240
|
+
**❌ Not Ideal For:**
|
|
241
|
+
- Team unfamiliar with Dart
|
|
242
|
+
- Heavy reliance on native platform features
|
|
243
|
+
- Existing large JavaScript/native codebase
|
|
244
|
+
- Small app size critical (<20MB)
|
|
245
|
+
|
|
246
|
+
## Native iOS (Swift/SwiftUI)
|
|
247
|
+
|
|
248
|
+
### Core Concepts
|
|
249
|
+
|
|
250
|
+
**Swift 6 (2024-2025)**
|
|
251
|
+
- Compile-time data race detection
|
|
252
|
+
- Enhanced concurrency: async/await, actors, @MainActor
|
|
253
|
+
- Powerful macro system
|
|
254
|
+
- Move semantics for performance
|
|
255
|
+
|
|
256
|
+
**SwiftUI vs UIKit**
|
|
257
|
+
- **SwiftUI**: Declarative, 40% less code, iOS 13+, modern approach
|
|
258
|
+
- **UIKit**: Imperative, fine-grained control, legacy support, complex customizations
|
|
259
|
+
- Both work together in same project
|
|
260
|
+
|
|
261
|
+
### Architecture Patterns
|
|
262
|
+
|
|
263
|
+
**MVVM (Most Popular)**
|
|
264
|
+
```swift
|
|
265
|
+
// ViewModel (ObservableObject)
|
|
266
|
+
class LoginViewModel: ObservableObject {
|
|
267
|
+
@Published var email = ""
|
|
268
|
+
@Published var password = ""
|
|
269
|
+
@Published var isLoading = false
|
|
270
|
+
|
|
271
|
+
func login() async {
|
|
272
|
+
isLoading = true
|
|
273
|
+
// Login logic
|
|
274
|
+
isLoading = false
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
// View
|
|
279
|
+
struct LoginView: View {
|
|
280
|
+
@StateObject private var viewModel = LoginViewModel()
|
|
281
|
+
|
|
282
|
+
var body: some View {
|
|
283
|
+
VStack {
|
|
284
|
+
TextField("Email", text: $viewModel.email)
|
|
285
|
+
SecureField("Password", text: $viewModel.password)
|
|
286
|
+
Button("Login") {
|
|
287
|
+
Task { await viewModel.login() }
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
**TCA (The Composable Architecture)**
|
|
295
|
+
- Growing adoption (v1.13+)
|
|
296
|
+
- Excellent for complex apps
|
|
297
|
+
- Steeper learning curve
|
|
298
|
+
- Predictable state management
|
|
299
|
+
|
|
300
|
+
### When to Choose Native iOS
|
|
301
|
+
|
|
302
|
+
**✅ Best For:**
|
|
303
|
+
- iOS-only applications
|
|
304
|
+
- Maximum performance required
|
|
305
|
+
- Latest Apple features (WidgetKit, Live Activities, App Clips)
|
|
306
|
+
- Deep iOS ecosystem integration
|
|
307
|
+
- Team with Swift/iOS expertise
|
|
308
|
+
|
|
309
|
+
## Native Android (Kotlin/Jetpack Compose)
|
|
310
|
+
|
|
311
|
+
### Core Concepts
|
|
312
|
+
|
|
313
|
+
**Kotlin 2.1 (2024-2025)**
|
|
314
|
+
- Null safety by design
|
|
315
|
+
- Coroutines for async
|
|
316
|
+
- Sealed classes for type-safe states
|
|
317
|
+
- Extension functions
|
|
318
|
+
|
|
319
|
+
**Jetpack Compose**
|
|
320
|
+
- Declarative UI (like SwiftUI/React)
|
|
321
|
+
- 60% adoption in top 1,000 apps
|
|
322
|
+
- Material Design 3 integration
|
|
323
|
+
- Compose compiler with Kotlin 2.0+
|
|
324
|
+
|
|
325
|
+
### Architecture Patterns
|
|
326
|
+
|
|
327
|
+
**MVVM + Clean Architecture**
|
|
328
|
+
```kotlin
|
|
329
|
+
// ViewModel
|
|
330
|
+
class LoginViewModel(
|
|
331
|
+
private val loginUseCase: LoginUseCase
|
|
332
|
+
) : ViewModel() {
|
|
333
|
+
private val _uiState = MutableStateFlow(LoginUiState())
|
|
334
|
+
val uiState: StateFlow<LoginUiState> = _uiState.asStateFlow()
|
|
335
|
+
|
|
336
|
+
fun login(email: String, password: String) {
|
|
337
|
+
viewModelScope.launch {
|
|
338
|
+
_uiState.update { it.copy(isLoading = true) }
|
|
339
|
+
loginUseCase(email, password)
|
|
340
|
+
.onSuccess { /* Navigate */ }
|
|
341
|
+
.onFailure { /* Show error */ }
|
|
342
|
+
_uiState.update { it.copy(isLoading = false) }
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
// Composable
|
|
348
|
+
@Composable
|
|
349
|
+
fun LoginScreen(viewModel: LoginViewModel = hiltViewModel()) {
|
|
350
|
+
val uiState by viewModel.uiState.collectAsState()
|
|
351
|
+
|
|
352
|
+
Column {
|
|
353
|
+
TextField(
|
|
354
|
+
value = uiState.email,
|
|
355
|
+
onValueChange = { /* update */ }
|
|
356
|
+
)
|
|
357
|
+
Button(onClick = { viewModel.login() }) {
|
|
358
|
+
Text("Login")
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
### When to Choose Native Android
|
|
365
|
+
|
|
366
|
+
**✅ Best For:**
|
|
367
|
+
- Android-only applications
|
|
368
|
+
- Maximum performance required
|
|
369
|
+
- Material Design 3 implementation
|
|
370
|
+
- Deep Android ecosystem integration
|
|
371
|
+
- Team with Kotlin/Android expertise
|
|
372
|
+
|
|
373
|
+
## Framework Comparison Matrix
|
|
374
|
+
|
|
375
|
+
| Feature | React Native | Flutter | Native iOS | Native Android |
|
|
376
|
+
|---------|--------------|---------|------------|----------------|
|
|
377
|
+
| **Language** | JavaScript/TS | Dart | Swift | Kotlin |
|
|
378
|
+
| **Learning Curve** | Easy | Medium | Medium | Medium |
|
|
379
|
+
| **Performance** | 80-90% | 85-95% | 100% | 100% |
|
|
380
|
+
| **Hot Reload** | Yes | Yes (fastest) | Previews | Live Edit |
|
|
381
|
+
| **Code Sharing** | Web (React) | Web/Desktop | No | No |
|
|
382
|
+
| **Community Size** | Huge | Growing | iOS only | Android only |
|
|
383
|
+
| **UI Paradigm** | Components | Widgets | Declarative | Declarative |
|
|
384
|
+
| **Third-party** | npm (3M+) | pub.dev (23K+) | SPM | Maven |
|
|
385
|
+
| **App Size** | 40-50MB | 15-20MB | 10-15MB | 10-15MB |
|
|
386
|
+
| **Build Time** | Medium | Fast | Slow (Xcode) | Medium |
|
|
387
|
+
| **Debugging** | Chrome/Safari | DevTools | Xcode | Android Studio |
|
|
388
|
+
| **Platform Feel** | Needs work | Needs work | Native | Native |
|
|
389
|
+
| **Startup Time** | Medium | Fast | Fastest | Fastest |
|
|
390
|
+
| **Best For** | JS teams | Performance | iOS-only | Android-only |
|
|
391
|
+
|
|
392
|
+
## Migration Paths
|
|
393
|
+
|
|
394
|
+
### React Native → Flutter
|
|
395
|
+
- **Effort**: High (complete rewrite)
|
|
396
|
+
- **Timeline**: 3-6 months for medium app
|
|
397
|
+
- **Benefits**: Better performance, smaller app size
|
|
398
|
+
- **Challenges**: New language (Dart), different ecosystem
|
|
399
|
+
|
|
400
|
+
### Flutter → React Native
|
|
401
|
+
- **Effort**: High (complete rewrite)
|
|
402
|
+
- **Timeline**: 3-6 months for medium app
|
|
403
|
+
- **Benefits**: Larger community, web code sharing
|
|
404
|
+
- **Challenges**: Lower performance, larger app size
|
|
405
|
+
|
|
406
|
+
### Cross-Platform → Native
|
|
407
|
+
- **Effort**: Very High (separate iOS and Android apps)
|
|
408
|
+
- **Timeline**: 6-12 months for medium app
|
|
409
|
+
- **Benefits**: Maximum performance, platform features
|
|
410
|
+
- **Challenges**: Maintain two codebases, 2x team size
|
|
411
|
+
|
|
412
|
+
### Native → Cross-Platform
|
|
413
|
+
- **Effort**: High (consolidate to one codebase)
|
|
414
|
+
- **Timeline**: 4-8 months for medium app
|
|
415
|
+
- **Benefits**: Single codebase, faster development
|
|
416
|
+
- **Challenges**: Performance tradeoffs, platform differences
|
|
417
|
+
|
|
418
|
+
## Decision Framework
|
|
419
|
+
|
|
420
|
+
### Start Here: Do you need native performance?
|
|
421
|
+
- **No** → Cross-platform (React Native or Flutter)
|
|
422
|
+
- **Yes** → Native (Swift or Kotlin)
|
|
423
|
+
|
|
424
|
+
### If Cross-Platform: Does team know JavaScript?
|
|
425
|
+
- **Yes** → React Native
|
|
426
|
+
- **No** → Flutter
|
|
427
|
+
|
|
428
|
+
### If Native: iOS-only or Android-only?
|
|
429
|
+
- **iOS-only** → Swift/SwiftUI
|
|
430
|
+
- **Android-only** → Kotlin/Compose
|
|
431
|
+
- **Both** → Reconsider cross-platform
|
|
432
|
+
|
|
433
|
+
### Additional Factors:
|
|
434
|
+
- **Existing codebase**: Use same technology
|
|
435
|
+
- **Web app exists**: React Native (code sharing)
|
|
436
|
+
- **Desktop needed**: Flutter (multi-platform)
|
|
437
|
+
- **Budget constrained**: Cross-platform
|
|
438
|
+
- **Performance critical**: Native
|
|
439
|
+
- **Complex animations**: Flutter or Native
|
|
440
|
+
- **Commercial focus**: React Native (larger market share)
|
|
441
|
+
|
|
442
|
+
## Resources
|
|
443
|
+
|
|
444
|
+
**React Native:**
|
|
445
|
+
- Official Docs: https://reactnative.dev/
|
|
446
|
+
- New Architecture: https://reactnative.dev/docs/the-new-architecture/landing-page
|
|
447
|
+
- Expo: https://expo.dev/ (recommended framework)
|
|
448
|
+
- Directory: https://reactnative.directory/
|
|
449
|
+
|
|
450
|
+
**Flutter:**
|
|
451
|
+
- Official Docs: https://flutter.dev/
|
|
452
|
+
- Pub.dev: https://pub.dev/
|
|
453
|
+
- Codelabs: https://flutter.dev/codelabs
|
|
454
|
+
- Widget Catalog: https://flutter.dev/widgets
|
|
455
|
+
|
|
456
|
+
**Native iOS:**
|
|
457
|
+
- Swift Docs: https://swift.org/documentation/
|
|
458
|
+
- SwiftUI Tutorials: https://developer.apple.com/tutorials/swiftui
|
|
459
|
+
- iOS HIG: https://developer.apple.com/design/human-interface-guidelines/
|
|
460
|
+
|
|
461
|
+
**Native Android:**
|
|
462
|
+
- Kotlin Docs: https://kotlinlang.org/docs/home.html
|
|
463
|
+
- Compose Docs: https://developer.android.com/jetpack/compose
|
|
464
|
+
- Material 3: https://m3.material.io/
|
|
465
|
+
- Android Guides: https://developer.android.com/guide
|