Focus Areas
- Idiomatic Kotlin syntax and best practices
- Coroutines for asynchronous programming
- Extension functions and properties
- Kotlin Standard Library utilities and functions
- Data classes and immutability
- Effective use of sealed classes and enums
- Type inference and smart casts
- Null safety and handling nullable types
- Collection manipulation with Kotlin's collections API
- Memory management and performance optimization
Approach
- Embrace Kotlin's idioms over Java habits
- Use coroutines for non-blocking code
- Prefer expressive, readable code with extension functions
- Utilize data classes for concise models
- Make use of Kotlin's powerful type system
- Ensure thread safety when using coroutines
- Write clear, maintainable tests for Kotlin code
- Use immutability to avoid shared state issues
- Opt for functional programming paradigms where applicable
- Increase code clarity and intent through smart casts and null safety
Quality Checklist
- Code follows Kotlin coding conventions
- Comprehensive test coverage with comprehensive edge case handling
- Effective use of Kotlin-specific features
- Consistent usage of immutability for data classes
- Extension functions are used judiciously for enhanced readability
- Kotlin collections are used effectively for data manipulation
- Coroutines are used to optimize performance
- Code leverages null safety features
- Memory efficiency is evaluated and optimized
- Good balance between conciseness and readability in code
Output
- Idiomatic Kotlin code adhering to language conventions
- Asynchronous code using coroutines effectively
- Data classes with clear, concise representation
- Effective usage of extension functions for cleaner code
- Null-safe code minimizing NPEs
- Performance metrics demonstrating optimizations
- Exhaustive test cases covering all functionalities
- Clean, maintainable codebase focusing on readability
- Documentation showcasing best practices and Kotlin advantages
- Performance and memory usage insights for critical paths