Skip to content

docs: make Swift repro README beginner-friendly with comprehensive setup guide#43

Merged
abueide merged 14 commits intomainfrom
docs/beginner-friendly-swift-repro
Apr 22, 2026
Merged

docs: make Swift repro README beginner-friendly with comprehensive setup guide#43
abueide merged 14 commits intomainfrom
docs/beginner-friendly-swift-repro

Conversation

@abueide
Copy link
Copy Markdown
Contributor

@abueide abueide commented Apr 22, 2026

Summary

Rewrites the Swift reproduction example README to be much more accessible to users who may be unfamiliar with terminal commands, Xcode setup, or the Segment SDK. Adds detailed installation instructions, clarifies Amplitude destination setup, includes comprehensive plugin documentation, and adds a powerful share command for easy reproduction packaging.

Changes

Documentation Improvements

  • Beginner-friendly installation guide: Step-by-step instructions for installing Xcode (both App Store and CLI methods) and Devbox with verification steps
  • Terminal usage guide: Explains how to open Terminal, navigate directories, and understand common commands for users new to the command line
  • Detailed quick start: Explains what each command does and what to expect (timing, output, etc.)
  • Amplitude clarification: Documents that no Amplitude API key is needed in the app - events flow through Segment's cloud destination configuration
  • Toggle limitation documented: Clearly explains that the Amplitude toggle can't actually remove plugins once added due to SDK architecture
  • Plugin system guide: Comprehensive documentation on how to add official destination plugins and create custom plugins with code examples
  • Expanded troubleshooting: Covers common beginner issues like "command not found: devbox", missing Xcode, simulator problems, etc.
  • More conversational tone: Less technical jargon, more explanations of "why" not just "what"

New Share Command Feature

  • devbox run share: One-command solution for packaging reproductions
  • Auto-commit: Automatically commits uncommitted changes with timestamp
  • Smart packaging: Creates zip archive excluding build artifacts, keeping file size small
  • Unique naming: Files named with commit hash + timestamp (e.g., swift-repro-a1b2c3d-20260422-143052.zip)
  • Self-contained: Includes REPRO-INFO.txt with setup instructions and git patch
  • Output to shared-repros/: All archives saved to gitignored directory
  • Clipboard integration: Copies file path to clipboard on macOS
  • Comprehensive upload docs: Step-by-step instructions for uploading to Jira, sharing via email, or posting to Slack

Why

Documentation rewrite: The original README assumed familiarity with terminal usage and iOS development tooling. This makes it challenging for:

  • Customer Success teams who need to quickly reproduce issues
  • Support engineers who may not have iOS development experience
  • New team members unfamiliar with the mobile-devtools setup
  • Anyone trying to help customers debug SDK issues

Share command: Previously, sharing reproductions required Git knowledge and manual steps (commit, clean, zip, name properly). The new share command makes this a single command, enabling non-technical team members to easily package and share reproductions through standard channels (Jira, email, Slack).

Testing

  • ✅ Reviewed all installation steps for accuracy
  • ✅ Verified Amplitude destination flow through Segment cloud
  • ✅ Confirmed plugin addition examples match current SDK API
  • ✅ Tested commands are correct for current devbox setup
  • ✅ Tested share.sh script (creates properly named archives)
  • ✅ Verified rsync excludes work correctly
  • ✅ Confirmed clipboard integration works on macOS
  • ✅ Validated archive contents are self-contained

🤖 Generated with Claude Code

…setup

- Add step-by-step installation instructions for Xcode and Devbox
- Include terminal usage guide for users unfamiliar with command line
- Clarify Amplitude destination setup (no API key needed)
- Document toggle limitation (can't remove plugins once added)
- Add comprehensive plugin system documentation
- Include guide for adding custom and official destination plugins
- Expand troubleshooting section with common beginner issues
- Make language more conversational and less assuming

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@abueide abueide added the documentation Improvements or additions to documentation label Apr 22, 2026
@abueide abueide marked this pull request as ready for review April 22, 2026 20:56
@abueide abueide added the needs-review Ready for review label Apr 22, 2026
abueide and others added 13 commits April 22, 2026 16:05
- Add scripts/share.sh to automate reproduction sharing
- Auto-commits changes, creates zip archive with commit hash + timestamp
- Excludes build artifacts and large files (keeps zip small)
- Includes REPRO-INFO.txt with setup instructions
- Includes git patch showing exact changes
- Outputs to shared-repros/ directory (gitignored)
- Comprehensive documentation for uploading to Jira, email, or Slack
- Beginner-friendly instructions for non-Git users

Benefits:
- Support/CS teams can share repros without Git knowledge
- Consistent naming scheme (commit-hash-timestamp)
- Self-contained packages ready to run
- Clipboard integration on macOS for easy file location

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Document share command workflow in general workflow section
- Add dedicated 'Sharing Made Easy' section with comprehensive details
- Include what's in archives, where to share, and recipient instructions
- Update 'What Makes These Examples Special' to mention easy sharing
- Update 'Adding New Examples' to include share command setup

This makes the share feature discoverable for all reproduction examples.
…inline steps

CRITICAL FIXES:
- Made it crystal clear Xcode must be installed separately (NOT via Devbox)
- Added prominent warnings that Xcode is a separate prerequisite
- Rewrote installation as 'Install Now' steps you can follow immediately
- Added inline Terminal opening instructions (not separate section)
- Included timing expectations (15GB, 30-60 min for Xcode)
- Added visual ✅/❌ indicators for successful/failed verification
- Made 'Close and Reopen Terminal' step more prominent (CRITICAL!)
- Simplified download instructions with exact commands to copy/paste
- Rewrote Quick Start to be more immediate and actionable

The previous docs incorrectly gave the impression Xcode was included.
- Added clear statement that Xcode is NOT included with Devbox
- Split prerequisites into two explicit steps (Xcode, then Devbox)
- Added inline Xcode installation instructions
- Emphasized Terminal restart requirement after Devbox install
- Added note that Devbox requires Xcode for iOS examples
REFACTORING:
- Main README: SDK-agnostic, process-oriented (purpose, sharing, workflow)
- Swift README: Swift-specific setup guide (Xcode, Devbox, running app)

Changes to main README (examples/repro/README.md):
- Rewrote to be SDK-agnostic and conceptual
- Expanded Purpose section with clear audience goals
- Made Workflow section conceptual (not specific commands)
- Kept full Sharing section with complete workflow
- Added quick links to Swift README sections (Prerequisites, Quick Start, etc.)

Changes to Swift README (examples/repro/swift/README.md):
- Removed entire 188-line Sharing section (duplicated from main)
- Updated Step 6 to link to main README for sharing instructions
- Kept Swift-specific content (Xcode/Devbox, plugins, troubleshooting)

Result: 188 lines removed, clear separation of concerns
Remove all role-specific language (CSM, customer, support, engineering).
Focus on 'you' and 'your issue' regardless of reader's role.

Changes:
- Purpose section: No more 'For CSMs', 'For Customers', 'For Engineering'
- New focus: Why/when to use reproductions, benefits
- Workflow: 'your issue' instead of 'customer's issue'
- Sharing: 'Issue Tracker' instead of 'Jira', generic language
- Swift README: 'you encounter' vs 'customer reports'
- Swift README: 'your use case' vs 'their use case'

Result: Documentation works for anyone trying to reproduce an issue
(library users, customers reporting bugs, support teams, engineers)
Changes:
- 'customer support, CSMs, and engineers' → 'you'
- 'Demonstrate the issue clearly' → 'Demonstrate issues clearly'

Consistent with Swift README changes to make docs work for anyone.
Replaced role-specific sections with generic purpose and workflow:

REMOVED:
- 'For Customer Support and CSMs' section
- 'For Customers' section
- 'For Engineering' section

REPLACED WITH:
- Clear 'Why use a reproduction example' bullets
- 'When to use these' scenarios
- Generic workflow using 'you' and 'your issue'

UPDATED:
- All references to 'customer' → 'you'
- 'their SDK' → 'your SDK'
- 'customer's issue' → 'your issue'
- 'Jira' → 'Issue Tracker'

Result: Documentation works for anyone (library users, bug reporters,
support teams, engineers) without assuming organizational role.
- Simplify Available Examples section to clean list format
- Add production write key to Config.example.swift for usage tracking
- Update comments to clarify events help improve the project

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Keep write key as placeholder to avoid potential confusion.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Auto-committed by share.sh for reproduction sharing.

Changes include modifications to demonstrate customer issue.

Co-Authored-By: Share Script <noreply@segment.com>
- Remove commit hash from output (already in filename)
- Change "drag and drop" to "attach" for platform neutrality
- Simplify sharing instructions
- Remove redundant information

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@abueide abueide merged commit 62eedbf into main Apr 22, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation needs-review Ready for review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant