Skip to content

ArjunJadeja/Something

Repository files navigation

Kotlin Logo Something to avoid and learn

License Kotlin Weekly GitHub GitHub last commit GitHub issues GitHub stars

💡 About Project

This project showcases common mistakes in Kotlin programming and alternate approaches to avoid them, as well as useful learnings and techniques.

🚀 Quick Start

  1. Clone the repository:
    git clone https://github.com/ArjunJadeja/Something.git
    
  2. Open the project in your favorite IDE.
  3. Explore the mistakes and learnings folders.

🎓 Mistakes

Here's a list of the mistakes added:

  1. Uninitialized Properties
  2. Null Safety
  3. Unsafe Casting
  4. Nullable Collections
  5. Custom Getters
  6. Lambda Variable Shadowing

📚 Learnings

Here's what we've learned so far:

  1. Using then with Modifier in Jetpack Compose

📁 Project Structure

The project is organized into mistakes and learnings folders, each containing specific examples.

Something/
├── src/
│   └── main/
│       └── kotlin/
│           ├── Main.kt
│           ├── Something.kt
│           ├── mistakes/
│           │   ├── CustomGetter.kt
│           │   ├── LambdaVariableShadowing.kt
│           │   ├── NullSafety.kt
│           │   ├── NullableCollection.kt
│           │   ├── UninitializedProperties.kt
│           │   └── UnsafeCasting.kt
│           └── learnings/
│               └── ThenWithComposeModifier.kt
├── .gitignore
├── LICENSE
├── README.md
└── build.gradle.kts

🎯 Future Goals

The goal is to continuously learn and grow from real-world mistakes and discoveries.

🗺️ Roadmap

There's no fixed roadmap for this project. The approach is to:

  1. Add new learnings and mistakes as we encounter them.
  2. Welcome contributions from the community.

🤝 Contributing

Contributions from Kotlin developers of all experience levels are welcomed! Whether you're a beginner or an experienced developer, your contribution can help others learn.

Please check our Contribution Guidelines for more details on how to contribute.

⭐ Show Your Support

If you find this project helpful, please give it a star on GitHub. It helps others discover this resource!

🔗 Connect

Feel free to connect with me:

Arjun Jadeja - LinkedIn

📚 Additional Resources

Happy coding, and remember: every mistake and learning is an opportunity! 🚀

📄 License

Copyright (C) 2024 Arjun Jadeja (arjunjadeja.com)

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.