Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/me-moghadasian/kotlin-learners-package

This package offers a concise introduction to Kotlin (using JupyterLab), focusing only on the essential concepts and skills. It covers the fundamental topics necessary for understanding and practicing (or reviewing) Kotlin.
https://github.com/me-moghadasian/kotlin-learners-package

android async asynchronous concurrency concurrent coroutines java jupyter kotlin lambda oop summary

Last synced: about 1 month ago
JSON representation

This package offers a concise introduction to Kotlin (using JupyterLab), focusing only on the essential concepts and skills. It covers the fundamental topics necessary for understanding and practicing (or reviewing) Kotlin.

Awesome Lists containing this project

README

        

# Kotlin Learners Package

## Description

This package offers a concise introduction to Kotlin (using JupyterLab), focusing only on the essential concepts and skills. It covers the fundamental topics necessary for understanding and practicing (or reviewing) Kotlin, including:

- [Introduction](01-intro.ipynb)
- [Functions](02-functions.ipynb)
- [Lambdas](03-lambdas.ipynb)
- [Collections](04-collections.ipynb)
- [Objects](05-objects.ipynb)
- [Classes](06-classes.ipynb)
- [OOP: Introduction](07-oop-intro.ipynb)
- [Useful Kotlin Classes](08-useful-classes.ipynb)
- [OOP: interfaces](09-oop-interfaces.ipynb)
- [Equality check, `is` and `as` operators](10-equal-is-as.ipynb)
- [Async/Concurrent: Introduction](11-async-concurrent-intro.ipynb)
- [Async/Concurrent: Basics](12-async-concurrent-basics.ipynb)
- [Async/Concurrent: Coroutine Context](13-async-concurrent-context.ipynb)
- [Async/Concurrent: Cooperative Cancellation](14-async-concurrent-cancellation.ipynb)
- [Async/Concurrent: Best Practices](15-async-concurrent-best.ipynb)
- [Generics](16-generics-intro.ipynb)
- [Flows](17-flows.ipynb)
- [TBD]

## Who should use this?

This project is designed for **intermediate-level** developers who are looking to deepen their understanding of *core concepts* in [Kotlin](https://kotlinlang.org/). It is particularly beneficial for those who want to expand their knowledge, **review general principles**, or gain a broader perspective on [Kotlin](https://kotlinlang.org/). If you are an **expert** in this field, you might find the material **NOT** directly applicable to advanced scenarios. However, if you are eager to refresh your foundational skills or explore different approaches, this resource may still offer valuable insights

## Active Development

Please note that this package is *actively being modified and updated*. We are continuously working to improve and expand the content based on feedback and new developments in [Kotlin](https://kotlinlang.org/). New features, topics, and enhancements will be added over time.

## Features

- **Introduction** and **Basics**
- **Collections**
- **Object** and **Classes**
- **Functions** and **Lambdas**
- **OOP**
- **Async/Concurrent** programming
- and more...

To get started with this package, follow these steps:

1. **Install Python** (if not already installed):
- Refer to [Python](https://www.python.org/downloads/) to download and install Python.

2. **Install Kotlin and Java**:
- Ensure you have [Kotlin](https://kotlinlang.org/docs/command-line.html) and the [Java Development Kit (JDK)](https://www.oracle.com/java/technologies/javase-jdk11-downloads.html) installed. Kotlin runs on the JVM (Java Virtual Machine), so you'll need both.

3. **Install the Kotlin Jupyter Kernel**:
- You need the [Kotlin Jupyter Kernel](https://github.com/Kotlin/kotlin-jupyter) for Jupyter to run Kotlin code. You can install it using the following commands:
```bash
pip install kotlin-jupyter-kernel
python -m kotlin_jupyter_kernel.install
```

4. **Clone the Repository**:
```bash
git clone https://github.com/me-moghadasian/kotlin-learners-package.git
```

5. **Navigate into the Project Directory**:
```bash
cd kotlin-learners-package
```

6. **Install JupyterLab** (if not already installed):
- If you don't have JupyterLab installed, you'll need Python and JupyterLab. You can install JupyterLab using:
```bash
pip install jupyterlab
```

7. **Start JupyterLab**:
```bash
jupyter lab
```

8. **Open and Explore the Notebooks and Scripts**:
- Use JupyterLab to open and explore the notebooks and scripts provided in the package.

## Note

This package is still under development. New features and improvements will be added over time.

## Useful References

- [Kotlinlang](https://kotlinlang.org/docs/home.html)
- [An article by Jim Steinberger](https://www.baeldung.com/kotlin/coroutines-runblocking-coroutinescope)

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Author

Mehdi Moghadasian