A multi-modular Gradle project that encapsulates various modules to learn Kotlin language, tools and frameworks.

Related tags

App KotlinLearn
Overview

KotlinLearn

This is a gradle project for the sole basis of exploring and learning Kotlin language, tools and frameworks. The root project wil encapsulate various modules which will be covering different topics.

Prerequisites

Code Analysis

The root project contains the codeAnalysis script which when ran, will run linting and formatting tasks using KtLint, Detekt and Spotless.

For the first time, you must guarantee some running permissions:

chmod +x codeAnalysis.sh

After that, you just need to run:

./codeAnalysis

Dependency Management

All dependencies need to be defined in the buildSrc module inside the Dependencies.kt file. From there, each project can implement their required dependencies that have been defined in the buildSrc.

Adding modules

To add a module to the project do the following:

  • Add the module folder in the root of the project.
  • Add the module gradle file inside module folder.
  • Open the settings.gradle.kts file in the project root.
  • Add an include function call with the module folder name as its parameter at EOF i.e
    • include("module-folder")
  • Sync the project, and you are good to go 🚀

Gradle

Gradle is used for build automation and dependency management in this multi-modular project.

  • Gradle Kotlin DSL - Kotlin DSl is used for Kotlin syntax and better IDE support. Trying to expand kotlin knowledge here 😃
  • Plugins
    • Ktlint - Creates convenient tasks in a Gradle project that run linting and auto-formatting.
    • Detekt - A static code analysis tool for the Kotlin programming language.
    • Spotless - Versatile code formatter and adds license headers.
    • Dokka - A documentation engine for Kotlin, performing the same function as javadoc for Java.
    • jacoco - A Code Coverage Library
    • Kotlin - A modern programming language that makes developers happier.

Modules

  • Ktor App

    This module explores Ktor which is a framework for building asynchronous servers and clients in connected systems using the powerful Kotlin programming language.

    Tech stack

    • Ktor - Asynchronous server framework.
    • Netty - An asynchronous event-driven network application framework used as the engine for ktor.
    • Logback Classic - A reliable, generic, fast and flexible logging framework.
    • Ktor Serialization - Allows you to use content converters provided by the kotlinx.serialization
    • Ktor Gson - A built-in Gson converter for handing JSON data in your application.
    • Ktor Auth - Used to provide authentication for the server.
    • Kotlinx DateTime - A multiplatform Kotlin library for working with date and time.
You might also like...
Ride-Sharing Uber Lyft Android App - Learn to build a ride-sharing Android Taxi Clone App like Uber, Lyft - Open-Source Project By MindOrks
Ride-Sharing Uber Lyft Android App - Learn to build a ride-sharing Android Taxi Clone App like Uber, Lyft - Open-Source Project By MindOrks

Ride-Sharing Uber Lyft Android App - Learn to build a ride-sharing Android Taxi Clone App like Uber, Lyft - Open-Source Project By MindOrks

It is a project that contains lessons and examples about Kotlin programming language. 🇰
It is a project that contains lessons and examples about Kotlin programming language. 🇰

Kotlin Tutorials What is Kotlin? I added the platforms it supports and great resources. You can access the article from the link below: https://medium

This project shows trending github repositories using MVI (Model View Intent) using kotlin flows and multi module clean architecture

GithubTrendingMVIFlow Build Architecture: This project shows trending github repositories using MVI (Model View Intent) using kotlin flows and multi m

A news application through which you can learn and browse all the news that interests you by choosing the country and type of news with the ability to browse and add some news to your favorites
A news application through which you can learn and browse all the news that interests you by choosing the country and type of news with the ability to browse and add some news to your favorites

MY-NEWS-Android A news application through which you can learn and browse all the news that interests you by choosing the country and type of news wit

An educational android app that provides services like notes, online videos and visualization calculator to learn and understand deep concepts of DSA.
An educational android app that provides services like notes, online videos and visualization calculator to learn and understand deep concepts of DSA.

Aldo ALDO is a free education app for the young programmers who are desiring to master the concepts of Data Structure and Algorithms. ALDO offers prac

MovieLibrary -An android application which uses tmdb API to fetch the data for various movies and TV Shows
MovieLibrary -An android application which uses tmdb API to fetch the data for various movies and TV Shows

MovieLibrary -An android application which uses tmdb API to fetch the data for various movies and TV Shows

My attempt at completing Advent of Code for the first time, might also learn Kotlin while doing so.

AdventOfCode2021 Welcome to the Advent of Code1 Kotlin project created by debskipawel using the Advent of Code Kotlin Template delivered by JetBrains.

A single repository to learn the basics of Android in Kotlin without all the fluff.

Android-Concepts-Reference-Kotlin A single repository to learn the basics of Android in Kotlin without all the fluff. How to use this repository Each

📒 NotyKT is a complete 💎Kotlin-stack (Backend + Android) 📱 application built to demonstrate the use of Modern development tools with best practices implementation🦸.
📒 NotyKT is a complete 💎Kotlin-stack (Backend + Android) 📱 application built to demonstrate the use of Modern development tools with best practices implementation🦸.

NotyKT 🖊️ NotyKT is the complete Kotlin-stack note taking 🖊️ application 📱 built to demonstrate a use of Kotlin programming language in server-side

Comments
  • Add Kotlinx:LocalDateTime Gson converter

    Add Kotlinx:LocalDateTime Gson converter

    There's a need to add explicit DateTime converters for Gson to convert the kotlinx:DateTime classes to string and back.

    WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.google.gson.internal.reflect.UnsafeReflectionAccessor (file:/C:/Users/Mes/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.8.6/9180733b7df8542621dc12e21e87557e8c99b8cb/gson-2.8.6.jar) to field java.time.LocalDateTime.date WARNING: Please consider reporting this to the maintainers of com.google.gson.internal.reflect.UnsafeReflectionAccessor WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release

    enhancement 
    opened by victorkemboi 0
Owner
Victor Kiprop
I am an Android Engineer from Nairobi, Kenya with a background major in Business Computing.
Victor Kiprop
Smart-flight - This app was created to learn and practice Kotlin language

Smart Flight This app was created to learn and practice Kotlin language. Works o

Kamil 1 Feb 9, 2022
📚 Sample Android Components Architecture on a modular word focused on the scalability, testability and maintainability written in Kotlin, following best practices using Jetpack.

Android Components Architecture in a Modular Word Android Components Architecture in a Modular Word is a sample project that presents modern, 2020 app

Madalin Valceleanu 2.3k Jan 3, 2023
🌄 Photo editor using native modules for iOS and Android. Inherit from 2 available libraries, Brightroom (iOS) and PhotoEditor (Android)

React Native Photo Editor (RNPE) ?? Image editor using native modules for iOS and Android. Inherit from 2 available libraries, Brightroom (iOS) and Ph

Baron Ha. 242 Dec 28, 2022
A modular and portable open source XMPP client library written in Java for Android and Java (SE) VMs

Smack About Smack is an open-source, highly modular, easy to use, XMPP client library written in Java for Java SE compatible JVMs and Android. Being a

Ignite Realtime 2.3k Dec 28, 2022
A modular and portable open source XMPP client library written in Java for Android and Java (SE) VMs

Smack About Smack is an open-source, highly modular, easy to use, XMPP client library written in Java for Java SE compatible JVMs and Android. Being a

Ignite Realtime 2.3k Dec 21, 2021
Modular android app for searching Movies on Filmnet.ir and show the details of each Move based on MVVM.

Movie_Search Modular android app for searching Movies on Filmnet.ir and show the details of each Move based on MVVM. Android MVVM Architecture Table o

ehsan kolivand 3 Nov 26, 2022
Open-source modular Android App IDE for Android

Blokkok Blokkok is an open-source modular Android App IDE for Android. Every components of the IDE are separated from each other by modules, every mod

null 14 Dec 16, 2022
A Modular Firebase plugin (Android) for godot

GDFirebase GDFirebase is a Modular Godot Plugin for using Firebase Depends on Godot game engine: git clone https://github.com/godotengine/godot Avail

FrogSquare 10 Dec 9, 2022
Alkaa is a to-do application project to study the latest components, architecture and tools for Android development

Alkaa (begin, start in Finnish) is a to-do application project to study the latest components, architecture and tools for Android development. The project evolved a lot since the beginning is available on Google Play! ❤️

Igor Escodro 851 Jan 9, 2023
A simple Android project using modern Android development tools and libraries.

A simple Android project using modern Android development tools and libraries.

Ahmed Sumeiry 0 Feb 3, 2022