Why I Use Claude Code as My Daily Driver (And How I Set It Up)
Claude Code isn't just autocomplete. Here's how I use it as a real pair programmer for Android development — with custom skills, hooks, and MCP integrations that encode my exact workflow.
On this page
I've tried every AI coding tool. GitHub Copilot, Cursor, Codeium, Tabnine. They're all autocomplete at different quality levels.
Claude Code is something different. It's a pair programmer that works in your terminal, understands your whole codebase, and can be taught your exact conventions.
Here's how I actually use it — not the marketing version, the real setup.
What Makes Claude Code Different
Most AI tools are text-in, text-out. You paste code, you get suggestions, you paste them back.
Claude Code operates in your repo. It reads files, edits files, runs commands, checks build output, reads error messages, and iterates. It has a feedback loop.
The difference in practice:
| Autocomplete tools | Claude Code |
|---|---|
| Suggest the next line | Implement the full feature |
| No codebase awareness | Reads your actual files |
| No feedback loop | Runs tests, fixes errors, iterates |
| Generic conventions | Learns your patterns |
That last point is why I'm still using it 6 months in.
Custom Skills: Teaching Claude My Conventions
The killer feature is skills — markdown files that encode a specific workflow. I have 20+ skills that cover every repeating task in my Android development process.
Example: New Screen Skill
When I say "add a settings screen," without a skill Claude gives me generic Compose code that I'd need to adapt. With my skill, it generates exactly this structure:
// presentation/ui/screen/settings/SettingsScreen.kt
@Composable
fun SettingsScreen(
viewModel: SettingsViewModel = hiltViewModel(),
onNavigateBack: () -> Unit
) {
val uiState by viewModel.uiState.collectAsStateWithLifecycle()
SettingsContent(
uiState = uiState,
onAction = viewModel::onAction,
onNavigateBack = onNavigateBack
)
}
@Composable
private fun SettingsContent(
uiState: SettingsUiState,
onAction: (SettingsAction) -> Unit,
onNavigateBack: () -> Unit
) {
// ...
}My exact architecture. My exact naming. My exact state pattern. Zero adaptation needed.
The Skill File Structure
~/.claude/skills/
├── new-screen.md # New Composable screen + ViewModel
├── new-room-entity.md # Room entity + DAO + Repository method
├── new-feature.md # Full feature scaffold
├── release-sudarshan.md # Release checklist
├── debug-sudarshan.md # Debugging approach
└── android-sudarshan.md # Core Android conventionsEach skill is just markdown. A good skill has:
- When to use — so Claude knows when to load it
- The exact output format — code templates, not descriptions
- Conventions — naming, structure, patterns
- Verification steps — how to confirm it worked
Hooks: Automated Quality Gates
Claude Code supports hooks that run before/after tool use. I use a security hook that blocks any write containing hardcoded credentials:
# ~/.claude/hooks/security-scan.py
import sys
import json
import re
PATTERNS = [
r'password\s*=\s*["\'][^"\']{4,}["\']',
r'api_key\s*=\s*["\'][^"\']{8,}["\']',
r'SUD@\d+\.', # my actual password pattern
r'-----BEGIN.*PRIVATE KEY-----',
]
def main():
data = json.load(sys.stdin)
content = data.get("content", "")
for pattern in PATTERNS:
if re.search(pattern, content, re.IGNORECASE):
print(json.dumps({
"decision": "block",
"reason": f"Potential credential detected. Review before writing."
}))
return
print(json.dumps({"decision": "allow"}))
main()This runs before every file write. If it matches a credential pattern, the write is blocked and I have to confirm. It's caught real mistakes.
MCP Integrations
MCP (Model Context Protocol) lets Claude connect to external tools. I use:
Firebase MCP — Claude can query Firestore, check auth rules, and read crash reports without me leaving the terminal.
GitHub MCP — Claude creates PRs, reviews diffs, and checks CI status directly.
Context7 — fetches live documentation for any library. When I'm using a new Compose API, Claude reads the actual docs instead of guessing from training data.
# In practice — asking about a new Jetpack API
Me: "How do I use PredictiveBackHandler in Compose?"
Claude: [fetches current docs via Context7]
Claude: "Here's the current API — it changed in 1.7.0..."No more hallucinated APIs from outdated training data.
My Daily Workflow
Morning:
claude "what changed in the codebase since yesterday?"Claude reads the git log, summarizes what was done, flags anything that looks incomplete.
Feature work:
/new-feature "add push notification preferences screen to MyFamilyTracker"Claude scaffolds the feature, I review and refine, Claude iterates based on feedback.
Before release:
/release-sudarshan MyFamilyTrackerClaude runs through my full release checklist: version bump, ProGuard check, screenshots current, changelog updated, signing config correct.
Debugging:
/debug-sudarshan "crash in LocationService on Android 12"Claude reads the crash logs, traces the code path, proposes a fix with reasoning.
What It Doesn't Replace
Claude Code isn't magic. I still:
- Make all architectural decisions — Claude implements, I design
- Review every generated PR — AI makes mistakes, especially with business logic
- Write tests for critical paths — generated tests miss domain-specific edge cases
- Handle Play Store interactions — account management, policy decisions, user responses
The mental model: Claude Code handles the implementation grunt work. I handle the product thinking.
Getting Started
If you want to set this up:
- Install Claude Code: code
npm install -g @anthropic-ai/claude-code - Authenticate: code
claude auth login - Start with a single skill for your most repetitive task
- Add a security hook before anything else
- Add MCP servers one at a time, verify each works
The compounding effect takes about 2-3 weeks to kick in. Once Claude knows your conventions, the output quality jumps significantly.
The best AI tool isn't the most capable one. It's the one that knows how you work.
Sudarshan Chaudhari
AI Systems Builder / Product Engineer
Bangkok, Thailand
Solo Android developer with 13+ years in QA, building Android apps, AI automation systems, and developer tools at SudarshanTechLabs.
Related Posts
Building something? Available for Android dev and QA consulting.
Work with meComments — powered by Giscus
