Kotlin

Build robust Android and multiplatform apps with Kotlin idioms, coroutines, and null safety.

MIT-0 · Free to use, modify, and redistribute. No attribution required.
2 · 1k · 8 current installs · 8 all-time installs
byIván@ivangdavila
MIT-0
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description (Kotlin learning/reference) match the manifest and files. The only declared runtime requirement is the 'kotlin' binary, which is reasonable for a Kotlin-focused skill that may compile or run examples.
Instruction Scope
SKILL.md and the included .md files are documentation and coding guidance; they do not instruct the agent to read unrelated files, access external endpoints, or exfiltrate data. No vague instructions granting broad discretion are present.
Install Mechanism
No install specification or downloaded code is present — the skill is instruction-only, so nothing will be written to disk by the install process.
Credentials
The skill requests no environment variables, secrets, or config paths. The absence of credentials is proportionate to an educational/reference skill.
Persistence & Privilege
Flags show no persistent/always-true behavior and model invocation is standard. The skill does not request to modify other skills or system-wide settings.
Assessment
This skill is a documentation-only Kotlin reference and appears internally consistent and low-risk. It does declare the 'kotlin' binary as a requirement — if you allow the agent to run tools, it could invoke that local binary to compile or run examples, so ensure you only enable the skill in environments where running user-provided code is acceptable. If you want extra caution: review the included .md files (they are plain text docs), and run the agent in a sandboxed environment or with restricted tool access before granting broader permissions.

Like a lobster shell, security has layers — review code before you run it.

Current versionv1.0.1
Download zip
latestvk9717a4raabks7dhxgw373z94x8141hq

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Runtime requirements

🟠 Clawdis
OSLinux · macOS · Windows
Binskotlin

SKILL.md

Quick Reference

TopicFile
Null safety operators and patternsnullsafety.md
Coroutines, flows, structured concurrencycoroutines.md
Collections, sequences, data classescollections.md
Scope functions, extensions, sealed classesidioms.md
Java interop and common Kotlin mistakesinterop.md
Android lifecycle, Compose stateandroid.md
Delegation, inline, reified, multiplatformadvanced.md

Critical Rules

Null Safety

  • !! asserts non-null — crashes on null, use only when you've already checked
  • Platform types from Java are risky — add null checks or use @Nullable/@NonNull annotations
  • Elvis with return/throw for early exit — val name = user?.name ?: return

Coroutines

  • viewModelScope auto-cancels on ViewModel clear — don't use GlobalScope in Android
  • Structured concurrency: child coroutine failure cancels parent — use supervisorScope to isolate
  • StateFlow needs initial value and never completes — SharedFlow for one-shot events
  • Inject dispatchers for testability — don't hardcode Dispatchers.IO

Collections & Data Classes

  • first() throws on empty — use firstOrNull() for safe access
  • Only constructor properties in equals/hashCode — body properties ignored
  • mutableStateListOf for Compose — wrapping mutableListOf in state won't track changes

Scope Functions & Extensions

  • Don't nest scope functions — readability drops fast, extract to named functions
  • Extensions are resolved statically — not polymorphic, receiver type matters at compile time

Android/Compose

  • repeatOnLifecycle(STARTED) for flow collection — launchWhenStarted is deprecated
  • remember survives recomposition only — use rememberSaveable for config changes
  • collectAsStateWithLifecycle is the gold standard — lifecycle-aware + Compose state

Java Interop

  • == is structural equality in Kotlin — === for reference, opposite of Java
  • SAM conversion only for Java interfaces — Kotlin interfaces need explicit fun interface
  • @JvmStatic, @JvmOverloads, @JvmField for Java-friendly APIs

Files

8 total
Select a file
Select a file to preview.

Comments

Loading comments…