This project showcases common mistakes in Kotlin programming and alternate approaches to avoid them, as well as useful learnings and techniques.
- Clone the repository:
git clone https://github.com/ArjunJadeja/Something.git
- Open the project in your favorite IDE.
- Explore the
mistakes
andlearnings
folders.
Here's a list of the mistakes added:
- Uninitialized Properties
- Null Safety
- Unsafe Casting
- Nullable Collections
- Custom Getters
- Lambda Variable Shadowing
Here's what we've learned so far:
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
The goal is to continuously learn and grow from real-world mistakes and discoveries.
There's no fixed roadmap for this project. The approach is to:
- Add new learnings and mistakes as we encounter them.
- Welcome contributions from the community.
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.
If you find this project helpful, please give it a star on GitHub. It helps others discover this resource!
Feel free to connect with me:
Happy coding, and remember: every mistake and learning is an opportunity! 🚀
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.