কটলিন এ্যাবস্ট্রাক্ট ক্লাস: সহজ কথায় যে ক্লাসে abstract কী-ওয়ার্ড ব্যবহার করা হয় সেটাই এ্যাবস্ট্রাক্ট ক্লাস। এ্যাবস্ট্রাক্ট ক্লাস দিয়ে কিন্তু অবজেক্ট তৈরি করা বা ইনস্টেন্স তৈরি করা যায় না। এই ক্লাসের মেথড/ফাংশন ও প্রোপার্টি/ভেরিয়েবল গুলো কিন্তু এ্যাবস্ট্রাক্ট নয় তাই এদেরকে এ্যাবস্ট্রাক্ট করার জন্য আলাদাভাবে abstract কী-ওয়ার্ড ব্যবহার করতে হয়। এ্যাবস্ট্রাক্ট ক্লাস কেন দরকার? কোডের তথ্য লুকিয়ে […]
weak self ব্যবহার করা হয় মেমোরি ম্যানেজমেন্টের জন্য। একটি অবজেক্ট অন্য অবজেক্টের রেফারেন্স ধরে রাখলে প্যারেন্ট অবজেক্ট ডিএলোকেট বা মেমোরি থেকে মুছে গেলে যাতে চাইল্ড অবজেক্টেও মুছে যায় কিংবা চাইল্ড অবজেক্টের জন্য মেমোরি দখল করে না রাখে সে জন্য weak self ব্যবহার করা হয়। এক্ষেত্রে self অপশনাল হয়ে যায় তাই self রেফারেন্সে নাল চেক কিংবা […]
জাভা/কটলিন যেহেতু জাভা ভার্চুয়াল মেশিনের (JVM) উপর রান করে। তাই প্রথমে JVM, JRE এবং JDK এগুলো সম্পর্কে ধারণা থাকা জরুরি। JVM = Java Virtual Machine JRE = Java Runtime Environment JDK = Java Development Kit JVM: জাভা ভার্চুয়াল মেশিন হলো জাভার জন্য একটা কৃত্রিম যন্ত্র। ভার্চুয়াল মেশিন বা কৃত্রিম যন্ত্র বলার কারন হলো এটার বাস্তব […]
কটলিন কি? কটলিন হলো ওপেন সোর্স, স্ট্যাটিক্যালি টাইপ (statically-typed) এবং জেনারেল পারপাস প্রোগ্রামিং ল্যাঙ্গুয়েজ। এটা JVM এর উপর রান করে। যে সব ক্ষেত্রে জাভা ল্যাঙ্গুয়েজ ব্যবহার করা যায় সেসব ক্ষেত্রে কটলিনও ব্যবহার করা যায়। যেমন: এন্ড্রয়েড এ্যাপ ডেভলপমেন্ট, সার্ভার সাইড সফটওয়্যার ডেভলপমেন্ট, ডেস্কটপ সফটওয়্যার ইত্যাদি। কটলিন ডেভলপমেন্টের প্রধান আন্দ্রে ব্রেস্লাভ (Andrey Breslav) এর মতে এটা […]
কটলিনের স্ট্যান্ডার্ড ইনপুট আউটপুট অপারেশন হয়ে থাকে বাইট স্ট্রীমের (byte stream) প্রবাহের মাধ্যমে। এটা ইনপুট ডিভাইস (keyboard) থেকে মেইন মেমোরি (RAM) এবং মেইন মেমোরি থেকে আউটপুট ডিভাইসে (Monitor) যায়। এখানে আমরা প্রিন্ট শব্দটি ব্যবহার করব, এর মানে হলো টার্মিনালে কোন লেখাকে প্রদর্শন করা। কটলিন আউটপুট: কটলিনের আউটপুট অপারেশন হয়ে থাকে কটলিনের স্ট্যান্ডার্ড মেথড print() এবং […]
গাণিতিক, তুলনামূলক, যৌক্তিক ইত্যাদি কাজের জন্য কটলিনে কিছু অপারেটর রয়েছে।অপারেটর গুলো হলো বিশেষ কিছু চিহ্ন যা এসব কাজ করার জন্য ব্যবহার করা হয়। অপারেটর গুলো হলো: ম্যাথমিটিকাল অপারেটর: যোগ, বিয়োগ, গুণ, ভাগ ইত্যাদি গাণিতিক কাজ করার জন্য ম্যাথমিটিকাল অপারেটর ব্যবহার করা হয়। অপারেটর ব্যবহার কাজ + a + b a এবং b দুটির ভ্যালু যোগ […]
এক ধরনের ডাটাকে অন্য ধরনের ডাটায় রুপান্তর করা হলো টাইপ কনভার্সন। কটলিনে ক্ষুদ্রতর ডাটা টাইপ থেকে বৃহত্তর ডাটা টাইপে সরাসরি এ্যাসাইন করা যায় না। অর্থাৎ ইন্টিজার কে লং টাইপের ভেরিয়েবলে এ্যাসাইন করা যাবে না অর্থাৎ Implicit conversion করা যাবে না, ইরর হবে। কিন্তু এখন যদি ইন্টিজারের ডাটা লং টাইপের ভেরিয়েবলে রাখার প্রয়োজন হয় তখন কি […]
ভেরিয়েবল বলতে বুঝায় মেমোরির অবস্থান, অর্থাৎ একটি ডাটা রাখার জন্য বা স্টোর করার জন্য মেমোরির কোন যায়গাটি দখল করবে তা এই ভেরিয়েবল নির্দিষ্ট করে। সহজভাবে: ভেরিয়েবলে হলো মেমোরির কোন একটা অবস্থান যেখানে আমরা ডাটা রাখতে পারি। কিভাবে ভেরিয়েবল লিখব? কটলিনে ভেরিয়েবল লেখার জন্য দুটি কী-ওয়ার্ড আছে ( var এবং val ) শুরুতে var অথবা val […]
ডেলিগেট কি: ডেলিগেট হলো ডিজাইন প্যাটার্ন যা কোন একটা নির্দিষ্ট ইভেন্ট ঘটলে একটা অবজেক্ট থেকে অন্য অবজেক্টে মেসেজ পাঠাতে সহায়তা করে। iOS ডেভলপারদের জন্য ডেলিগেশন খুব গুরুত্বপূর্ণ ডিজাইন প্যাটার্ণ । মনে করি, A অবজেক্ট B অবজেক্টকে কল করে কোন একটি কাজ করার জন্য। পরবর্তী কাজগুলো করার জন্য যখন কাজটি শেষ হবে, A অবজেক্টকে জানতে হবে যে B অবজেক্ট কাজটি শেষ করেছে। এটা করার জন্য […]
যারা iOS app ডেভলপমেন্ট করতে চান, অন্য কোন ল্যাঙ্গুয়েজে কাজ করে অভ্যস্ত এবং দ্রুত অবজেকটিভ সি আয়ত্ব করতে চান তাদের জন্য এই ডকুমেন্ট কোন প্রোগ্রামিং ল্যাঙ্গুয়েজ জানা থাকতে হবে কারন টিউটোরিয়াল লেখার সময় ধরেই নেয়া হয়েছে আপনি কোন প্রোগ্রামিং ল্যাঙ্গুংয়জ জানেন, আগে কোন ল্যাঙ্গুলেয় না জানা থাকলে এই ডকুমেন্ট দুর্বোধ্য মনে হতে পারে। ফোকাস করা […]
