Mastering Kotlin (Advanced)
-
ভূমিকা
কটলিন এডভান্সড - বেসিক কোর্সের পরবর্তী ধাপ এই কোর্স
-
অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং - OOP
কটলিনে অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং খুবই গুরুত্বপূর্ণ বিষয়। ভালো কটলিন প্রোগ্রামার হতে গেলে অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং বিষয়ে ভালো ধারণা থাকা আবশ্যক। এই সেকশনে কটলিনের অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং বিষয়ে বিস্তারিত ধারণা দেয়া হয়েছে।
-
Lecture 2.1ক্লাস এবং অবজেক্ট – Class & Object12m
-
Lecture 2.2নাম লেখার কনভেনশন – Naming Conventions7m
-
Lecture 2.3কনস্ট্রাকটর – constructor12m
-
Lecture 2.4কনস্ট্রাকটর ব্লক – constructor block3m
-
Lecture 2.5init ব্লক4m
-
Lecture 2.6অবজেক্ট / কম্পেনিয়ন অবজেক্ট – object/companion object (কী-ওয়ার্ড)9m
-
Lecture 2.7লোকাল ও গ্লোবাল/ইনস্টেন্স ভেরিয়েবল5m
-
Lecture 2.8নেস্টেড ক্লাস – ইনার ক্লাস – Nested & Inner class7m
-
Lecture 2.9গেটার / সেটার – Getters / Setters (Encapsulation)10m
-
Lecture 2.10ইনহেরিটেন্স – inheritance – Part 114m
-
Lecture 2.11ইনহেরিটেন্স – inheritance – part 27m
-
Lecture 2.12পলিমরফিজম – Polymorphism4m
-
Lecture 2.13মেথড ওভাররাইডিং – Runtime Polymorphism12m
-
Lecture 2.14মেথড ওভারলোডিং – Compile-Time or static Polymorphism7m
-
Lecture 2.15ইন্টারফেস – interface – part 1 – (Abstraction)13m
-
Lecture 2.16ইন্টারফেস – interface – part 2 – (Abstraction)10m
-
Lecture 2.17এ্যাবস্ট্রাক্ট ক্লাস – abstract class – (Abstraction)13m
-
Lecture 2.18ডেটা ক্লাস – data class12m
-
Lecture 2.19সীলড ক্লাস, সীলড ইন্টারফেস – sealed class, sealed interface17m
-
Lecture 2.20enum class – ইনাম ক্লাস – পার্ট ১7m
-
Lecture 2.21enum class – ইনাম ক্লাস – পার্ট ২14m
-
Lecture 2.22এক্সটেশনস ফাংশন – extension function9m
-
Lecture 2.23ভিজিবিলিটি/এক্সেস মডিফায়ার – visibility/access modifier17m
-
Lecture 2.24is-a, has-a relationship – ইজ এ, হ্যাজ এ রিলেশনশিপ7m
-
Lecture 2.25Upcasting & Downcasting – আপকাস্টিং ও ডাউনকাস্টিং14m
-
Lecture 2.26this কী-ওয়ার্ড15m
-
Lecture 2.27as / is (instanceof) কী-ওয়ার্ড ও স্মার্ট কাস্ট – Smart Cast9m
-
Lecture 2.28super কী-ওয়ার্ড8m
-
Lecture 2.29lateinit – কী-ওয়ার্ড11m
-
Lecture 2.30lazy – কী-ওয়ার্ড6m
-
Lecture 2.31const – কী-ওয়ার্ড7m
-
Lecture 2.32infix কী-ওয়ার্ড10m
-
Lecture 2.33vararg & spread operator – ভেরিয়েবল আর্গুমেন্ট ও স্প্রেড অপারেটর15m
-
-
নাল সেফটি - Null Safety
নাল ভ্যালু নিয়ে কাজ করা ও নাল পয়েন্টার এক্সেপশন এড়ানো
-
Lecture 3.1নন-নালেবল / নালেবল ডেটা টাইপ8m
-
Lecture 3.2নাল চেক করতে let এর ব্যবহার3m
-
Lecture 3.3এলভিস অপারেটর ব্যবহার করে ডিফল্ট ভ্যালু সেট করা6m
-
Lecture 3.4let এবং এলভিস অপারেটর একসাথে ব্যবহার করা3m
-
Lecture 3.5!! নট-নাল এ্যাসার্সন অপারেটরের ব্যবহার5m
-
Lecture 3.6নালেবল টাইপের ডাটা লিস্ট থেকে নালগুলি বাদ দেয়া5m
-
Lecture 3.7স্মার্ট কাস্ট – নাল চেক3m
-
Lecture 3.8স্মার্ট কাস্ট – is অথবা !is ব্যবহার5m
-
Lecture 3.9সেফ কাস্ট – as/as?11m
-
-
স্কোপ ফাংশন - Scope Functions
স্কোপ ফাংশনগুলো (৫ টি) হলো কটলিনের স্ট্যান্ডার্ড লাইব্রেরি ফাংশন যেগুলো কোন অবজেক্টের উপর এ্যাপ্লাই করলে ল্যাম্বডা এক্সপ্রেশনের মাধ্যমে সেই অবজেক্ট নিয়ে কাজ করার স্কোপ বা ব্লক তৈরি হয়। এগুলো ব্যবহার করে কোডকে সংক্ষিপ্ত রাখা যায় ও কোড বুঝতে সুবিধা হয়।
-
Lecture 4.1Intro – ভূমিকা10m
-
Lecture 4.2apply – এ্যাপ্লাই ফাংশন7m
-
Lecture 4.3with – উইথ ফাংশন4m
-
Lecture 4.4also – অলসো ফাংশন6m
-
Lecture 4.5let – লেট ফাংশন6m
-
Lecture 4.6run – রান ফাংশন5m
-
Lecture 4.7it rename – it কে অন্য নাম দেয়া4m
-
Lecture 4.8takeIf – takeUnless14m
-
-
কটলিন + জাভা একই প্রজেক্টে ব্যবহার - Java-Kotlin Interoperability
জাভার কোড কটলিন প্রজেক্টে কিংবা কটলিনের কোড জাভার প্রজেক্টে ব্যবহার ও জাভার কোড কটলিনে কনভার্ট করা। জাভা কোড থাকায় এই লেসনগুলো IDE তে করুন।
-
Lecture 5.1জাভার প্রজেক্ট তৈরি5m
-
Lecture 5.2জাভা ও কটলিন একটি হতে আরেকটিতে ফাংশন কল করা7m
-
Lecture 5.3জাভা ফাইলকে কটলিনে কনভার্ট করা + এন্ড্রয়েড জাভা প্রজেক্টে কটলিন ব্যবহার10m
-
Lecture 5.4জাভা কোড কপি পেস্ট করে কটলিনে কনভার্ট করা10m
-
-
ফাইল নিয়ে কাজ করা - File Handling
কটলিন দিয়ে কিভাবে ফাইল তৈরি, রিড, রাইট, কপি, ডিলিট করা যায় সেগুলো এই সেকশনে দেখবো।
-
Lecture 6.1পাথ ও ডিরেক্টরি তৈরি – path & directory(folder)11m
-
Lecture 6.2ফাইল তৈরি করা7m
-
Lecture 6.3ফাইল রাইট করা6m
-
Lecture 6.4ফাইলে নতুন লেখা সংযোজন করা5m
-
Lecture 6.5ফাইল রিড করা8m
-
Lecture 6.6ফাইল কপি করা11m
-
Lecture 6.7ফাইল ডিলিড করা6m
-
Lecture 6.8ফাইলের এক্সটেশন বের করা2m
-
-
এনোটেশন - Annotations
এ্যানোটেশন সোর্স ফাইলে অতিরিক্ত কিছু তথ্য (meta data) যুক্ত করার জন্য ব্যবহার করা যায়।
-
Lecture 7.1এ্যানোটেশন কি এবং কেন?3m
-
Lecture 7.2এ্যানোটেশনের ব্যবহার16m
-
Lecture 7.3কাস্টম এ্যানোটেশন – Custom Annotation5m
-
Lecture 7.4টার্গেট – Target3m
-
Lecture 7.5রিটেনশন – Retention14m
-
Lecture 7.6রিপিটেবল – Repeatable2m
-
Lecture 7.7মাস্ট বি ডকুমেন্টেড – MustBeDocumented3m
-
-
ডিবাগিং - Debugging
প্রোগ্রামের বাগ ফিক্স করা বা সমস্যা চিহ্নিত করার জন্য যেসকল পন্থা অবলম্বন করা হয়। অনেকে লগ পড়ে যে সমস্যা বের করা যায় সেটা বুঝতে পারে না সেজন্য লগ প্রিন্ট ও ট্রাই ক্যাচ দেখানো হলো।
-
Lecture 8.1লগ প্রিন্ট করে দেখা3m
-
Lecture 8.2এক্সেপশন প্রিন্ট করা3m
-
Lecture 8.3ডিবাগ – ব্রেক পয়েন্টারের মাধ্যমে ডিবাগ করা – ১6m
-
Lecture 8.4ডিবাগ – ব্রেক পয়েন্টারের মাধ্যমে ডিবাগ করা – ২10m
-
Lecture 8.5মিউট ব্রেক পয়েন্ট3m
-
Lecture 8.6সকল ব্রেক পয়েন্টার রিমুভ করা2m
-
-
জেনেরিকস - Generics
ডেটা টাইপ প্যারামিটার আকারে দেয়ার পদ্ধতি
-
Lecture 9.1জেনেরিকস কি এবং কেন?4m
-
Lecture 9.2প্যারামিটারের নামের কনভেনশন – Naming Convention8m
-
Lecture 9.3ক্লাসে জেনেরিকস যুক্ত করা6m
-
Lecture 9.4ফাংশনে জেনেরিকস যুক্ত করা3m
-
Lecture 9.5নালেবল টাইপ (T?) ও ডিফল্ট ভ্যালু5m
-
Lecture 9.6একাধিক জেনেরিক প্যারামিটার6m
-
-
মাল্টি-থ্রেডিং ও কো-রুটিন - Kotlin Coroutines
লম্বা সময়ের অপারেশনের জন্য মাল্টি-থ্রেডের ব্যবহার ও অল্প মেমোরি ব্যবহার করে মাল্টি-থ্রেডের মতো কাজ করতে কো-রুটিনের ব্যবহার
-
Lecture 10.1এ্যাসিঙ্ক্রোনাস প্রোগ্রামিং কি এবং কেন?10m
-
Lecture 10.2থ্রেডের মাধ্যমে এ্যাসিঙ্ক্রোনাস16m
-
Lecture 10.3থ্রেড ও লুপ দিয়ে এ্যাসিঙ্ক্রোনাস উদাহরন9m
-
Lecture 10.4থ্রেড ও কো-রুটিনের তুলনামূলক আলোচনা3m
-
Lecture 10.5ডিপেন্ডেন্সি যুক্ত করা ও কো-রুটিন বিল্ডার – GlobalScope.async13m
-
Lecture 10.6delay() ফাংশন6m
-
Lecture 10.7কো-রুটিন বিল্ডার – runBlocking7m
-
Lecture 10.8কো-রুটিন বিল্ডার – runBlocking() – 23m
-
Lecture 10.9কাস্টম suspend ফাংশন3m
-
-
বিল্ড টুল, লাইব্রেরি, এক্সিকিউটেবল এবং প্রোডাকশন
বিল্ড টুল কম্পাইলারের সাথে যোগাযোগ করে প্রজেক্ট বিল্ড করে
-
Lecture 11.1ইন্টেলিজে – Intellij – New Project7m
-
Lecture 11.2ইন্টেলিজে – Intellij – Add Library16m
-
Lecture 11.3গ্রেডেল – Gradle – New Project7m
-
Lecture 11.4গ্রেডেল – Gradle – Add Library7m
-
Lecture 11.5মেভেন – Maven – New Project7m
-
Lecture 11.6মেভেন – Maven – Add Library5m
-
-
রিফ্লেকশন - Reflection
ক্লাসের মেটাডেটা পাওয়ার জন্য রিফ্লেকশনের ব্যবহার পদ্ধতি
-
Lecture 12.1ভূমিকা – গ্রেডেল প্রজেক্ট নেয়া ও রিফ্লেকশন লাইব্রেরি যুক্ত করা9m
-
Lecture 12.2সিঙ্গেল ডাটা পাওয়া3m
-
Lecture 12.3ডাটার লিস্ট পাওয়া11m
-
Lecture 12.4ফাংশন কল করতে রিফ্লেকশন15m
-
Lecture 12.5প্রোপার্টির সাথে রিফ্লেকশন8m
-
-
এন্ড্রয়েড ও স্প্রিং বুটে কটলিন নিয়ে কাজ করা
কিভাবে এন্ড্রয়েড ও স্প্রিং বুটে কটলিন ব্যবহার করা হয় সেটার প্রাথমিক ধারনা
-
Lecture 13.1এন্ড্রয়েডে কটলিন8m
-
Lecture 13.2স্প্রিং বুটে কটলিন14m
-
-
উপসংহার
-
Lecture 14.1শেষ হইয়াও হইলোনা শেষ!1m
-
কি কি শিখবো ও কি কি জানা থাকতে হবে?
শুরুতে আপনাকে বেসিক কোর্স করে এই কোর্সটি করতে হবে অথবা বেসিক কটলিন জানা থাকতে হবে।
বেসিক কোর্স লিংক: https://touhidapps.com/learn/courses/mastering-kotlin-part-1-basics/?tab=tab-curriculum