{"id":19382782,"url":"https://github.com/smartherd/kotlintutorial","last_synced_at":"2025-04-06T17:12:14.448Z","repository":{"id":53092944,"uuid":"148912411","full_name":"smartherd/KotlinTutorial","owner":"smartherd","description":"Learn Kotlin programming from scratch","archived":false,"fork":false,"pushed_at":"2022-03-08T04:01:50.000Z","size":80,"stargazers_count":268,"open_issues_count":0,"forks_count":195,"subscribers_count":23,"default_branch":"master","last_synced_at":"2025-03-30T16:12:20.453Z","etag":null,"topics":["android","functional-programming","kotlin","kotlin-android","kotlin-coroutines","kotlin-language","kotlin-library","kotlin-native","object-oriented-programming"],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/smartherd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-09-15T15:05:34.000Z","updated_at":"2025-03-22T14:14:41.000Z","dependencies_parsed_at":"2022-09-13T16:51:21.473Z","dependency_job_id":null,"html_url":"https://github.com/smartherd/KotlinTutorial","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smartherd%2FKotlinTutorial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smartherd%2FKotlinTutorial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smartherd%2FKotlinTutorial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smartherd%2FKotlinTutorial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smartherd","download_url":"https://codeload.github.com/smartherd/KotlinTutorial/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247517915,"owners_count":20951719,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","functional-programming","kotlin","kotlin-android","kotlin-coroutines","kotlin-language","kotlin-library","kotlin-native","object-oriented-programming"],"created_at":"2024-11-10T09:23:14.294Z","updated_at":"2025-04-06T17:12:14.429Z","avatar_url":"https://github.com/smartherd.png","language":"Kotlin","readme":"# Kotlin Programming Tutorial for Beginners \nLearn Kotlin Programming, its basics and Fundamentals from scratch. \n\n## Topics to be covered\n0. Overview\n    - Course introduction, prequisites and software required\n1. Installation\n    - Install required softwares for Windows, MAC and Linux ( Ubuntu )\n2. Getting Started with Kotlin Programming\n    - Run your first app in Kotlin\n3. Exploring Data Types and Variables \n    - Data Types and Variables\n    - String, Literals and String Interpolation\n    - Comments \n4. Constants, Variables and Data Types\n5. Control Flow Statements \n    - IF ELSE \n    - IF Expressions\n    - WHEN Expressions\n6. Loop Control Statements \n    - What are Iterators?\n    - FOR Loop and how it works\n    - WHILE Loop\n    - DO WHILE Loop \n    - BREAK statements \n    - CONTINUE keyword \n    - Labelled FOR Loop \n7. Functions and Interoperability \n    - Declaring functions \n    - Interoperability with Java code \n    - Function as Expressions \n    - Extension Functions\n    - Infix Functions\n    - Default Parameters\n    - Named Parameters\n    - Tailrec Functions \n8. Object Oriented Programming in Kotlin \n    - Defining Class and creating Objects\n    - INIT block\n    - Primary and Secondary Constructors \n    - Properties ( Field variables )\n    - Inheritance\n    - Method and Property Overriding \n    - Polymorphism \n    - Abstract Class, Property and Method\n    - Interface \n    - Data Class\n    - Object Declaration\n    - Enum class \n    - Sealed class\n    - Companion Object\n9. Functional Programming in Koltin\n    - Lambdas\n    - Higher-Order Functions\n    - Closures\n    - 'it' keyword\n    - 'with' function\n    - 'apply' function\n10. Collections in Kotlin\n    - Arrays\n    - List\n    - Map and HashMap\n    - Set and HashSet  \n11. Sorting and Filtering\n    - \"filter\" function\n    - \"map\" function\n    - Predicates: all, any, find, count. \n12. Kotlin NULL Safety\n    - Safe call\n    - with Let\n    - Elvis\n    - Lateinit keyword\n    - Lazy delegation and 'lateinit' vs. 'lazy'\n13. Scope Functions\n    - with\n    - apply\n    - let\n    - also\n    - run\n14. Coroutines\n    - What are Coroutines? How are they related to Threads? \n    - launch, async, runBlocking, withContext, withTimeoutOrNull, \n    - Suspending function \n    - Cancellation and Timeouts \n    - Cooperative suspending functions and isActive flag\n    - Exception Handling in Coroutines \n    - Sequential execution of suspending function in Coroutines \n    - Concurrency within Coroutine \n    - lazy 'async'\n    - CoroutineScope and CoroutineContext \n    - Dispacthers: Confined dispatcher, Default Dispatcher, and Unconfined Displatcher \n15. Conclusion \n\n## Authors \n\n* **Sriyank Siddhartha** \n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmartherd%2Fkotlintutorial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmartherd%2Fkotlintutorial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmartherd%2Fkotlintutorial/lists"}