Skill

অবজেক্টিভ-সি (Objective-C)

310

Objective-C হল C প্রোগ্রামিং ভাষার উপর ভিত্তি করে একটি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ভাষা, যা মূলত macOS এবং iOS অ্যাপ্লিকেশন ডেভেলপমেন্টে ব্যবহৃত হয়। এটি Apple এর ইকোসিস্টেমে বেশ গুরুত্বপূর্ণ ভূমিকা পালন করেছে এবং এখনও বহু ডেভেলপারদের জন্য প্রয়োজনীয় একটি ভাষা।


Objective-C একটি বিস্তারিত গাইড

Objective-C হল একটি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ভাষা যা C এর উপর ভিত্তি করে তৈরি হয়েছে। এটি মূলত macOS এবং iOS অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য ব্যবহৃত হয়। এই গাইডে আমরা Objective-C এর সূচনা থেকে শুরু করে এর ইতিহাস, বৈশিষ্ট্য, ব্যবহারের কারণ, প্রয়োজনীয়তা, ভাষার মৌলিক ধারণা উদাহরণসহ, মেমরি ম্যানেজমেন্ট, প্রোটোকল এবং ডেলিগেট, ক্যাটাগরি এবং এক্সটেনশন, প্রয়োজনীয় টুলস এবং ফ্রেমওয়ার্ক, ভবিষ্যৎ চ্যালেঞ্জ, অন্যান্য প্রোগ্রামিং ভাষার সাথে পার্থক্য, অতিরিক্ত সম্পদ এবং গুরুত্বপূর্ণ কিওয়ার্ডগুলি আলোচনা করব।


সূচনা

কেন Objective-C?

  • Apple-এর সমর্থন: macOS এবং iOS প্ল্যাটফর্মে অ্যাপ ডেভেলপমেন্টের জন্য Objective-C একটি প্রধান ভাষা।
  • অবজেক্ট-ওরিয়েন্টেড: অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের শক্তিশালী বৈশিষ্ট্য।
  • C-এর সম্প্রসারণ: C ভাষার সাথে সম্পূর্ণ সামঞ্জস্যপূর্ণ।
  • বৃহৎ লাইব্রেরি: Cocoa এবং Cocoa Touch ফ্রেমওয়ার্ক ব্যবহার করা যায়।

ইতিহাস

Objective-C তৈরি করেছিলেন Brad Cox এবং Tom Love ১৯৮০-এর দশকে। এটি C এর সাথে Smalltalk এর অবজেক্ট-ওরিয়েন্টেড ধারণাগুলির মিশ্রণ। ১৯৮৮ সালে NeXT কোম্পানি Objective-C কে তাদের NeXTSTEP অপারেটিং সিস্টেমের জন্য ব্যবহার করে, যা পরে Apple দ্বারা গ্রহণ করা হয়। এটি macOS এবং iOS ডেভেলপমেন্টের মূল ভাষা হয়ে ওঠে।


প্রয়োজনীয়তা

  • Xcode: Apple এর অফিসিয়াল IDE যা MacOS-এ ব্যবহার করা হয়।
  • C ভাষার জ্ঞান: C এর বেসিক ধারণা জানা থাকলে সুবিধা হবে।
  • Mac কম্পিউটার: MacOS অপারেটিং সিস্টেমের প্রয়োজন।

ভাষার মৌলিক ধারণা

সিনট্যাক্স

Objective-C এর সিনট্যাক্স C এর উপর ভিত্তি করে, তবে মেসেজ পাসিংয়ের জন্য Smalltalk-এর স্টাইল ব্যবহার করে।

ভেরিয়েবল ডিক্লেয়ারেশন

int count = 10;
float price = 99.99;
NSString *message = @"স্বাগতম";

মেসেজ পাসিং

[object method];
[object methodWithParameter:param];

ক্লাস এবং অবজেক্ট

ক্লাস ডিক্লেয়ারেশন

@interface Person : NSObject
@property (nonatomic, strong) NSString *name;
- (void)displayName;
@end

ক্লাস ইমপ্লিমেন্টেশন

@implementation Person
- (void)displayName {
    NSLog(@"Name: %@", self.name);
}
@end

অবজেক্ট তৈরি

Person *person = [[Person alloc] init];
person.name = @"রহিম";
[person displayName];

ডেটা টাইপ

  • প্রাথমিক টাইপ: int, float, double, char, BOOL
  • অবজেক্ট টাইপ: NSString, NSArray, NSDictionary, NSNumber

মেমরি ম্যানেজমেন্ট

ARC (Automatic Reference Counting)

Objective-C তে মেমরি ম্যানেজমেন্টের জন্য ARC ব্যবহার করা হয়, যা স্বয়ংক্রিয়ভাবে অবজেক্টের লাইফসাইকেল পরিচালনা করে।

প্রোপার্টি অ্যাট্রিবিউট

  • strong: অবজেক্টের একটি শক্তিশালী রেফারেন্স ধরে।
  • weak: অবজেক্টের একটি দুর্বল রেফারেন্স ধরে, যা অবজেক্ট ডিলোকেট হলে nil হয়ে যায়।
  • copy: অবজেক্টের একটি কপি তৈরি করে।

প্রোটোকল এবং ডেলিগেট

প্রোটোকল

প্রোটোকলগুলি এমন একটি ইন্টারফেস যা ক্লাসগুলি গ্রহণ করতে পারে।

@protocol MyProtocol 
@required
- (void)requiredMethod;
@optional
- (void)optionalMethod;
@end

ডেলিগেট

ডেলিগেট প্যাটার্ন ব্যবহারে এক অবজেক্ট অন্য অবজেক্টের ইভেন্ট হ্যান্ডল করতে পারে।

@interface MyClass : NSObject 
@end

ক্যাটাগরি এবং এক্সটেনশন

ক্যাটাগরি

ক্যাটাগরি ব্যবহার করে বিদ্যমান ক্লাসে নতুন মেথড যোগ করা যায়।

@interface NSString (ReverseString)
- (NSString *)reverseString;
@end

@implementation NSString (ReverseString)
- (NSString *)reverseString {
    NSUInteger length = [self length];
    NSMutableString *reversedString = [NSMutableString stringWithCapacity:length];
    while (length > 0) {
        [reversedString appendString:[NSString stringWithFormat:@"%C", [self characterAtIndex:--length]]];
    }
    return reversedString;
}
@end

এক্সটেনশন

এক্সটেনশন ব্যবহার করে প্রাইভেট মেথড এবং প্রোপার্টি ডিক্লেয়ার করা যায়।

@interface MyClass ()
@property (nonatomic, strong) NSString *privateProperty;
- (void)privateMethod;
@end

প্রয়োজনীয় টুলস এবং ফ্রেমওয়ার্ক

Xcode

Apple এর অফিসিয়াল IDE যা macOS এবং iOS অ্যাপ ডেভেলপমেন্টের জন্য ব্যবহৃত হয়।

Cocoa এবং Cocoa Touch

  • Cocoa: macOS অ্যাপ্লিকেশনের জন্য ফ্রেমওয়ার্ক।
  • Cocoa Touch: iOS অ্যাপ্লিকেশনের জন্য ফ্রেমওয়ার্ক।

Interface Builder

GUI তৈরি করার জন্য ব্যবহৃত টুল।


ভবিষ্যৎ চ্যালেঞ্জ

  • Swift এর জনপ্রিয়তা: Swift এর আগমনের ফলে Objective-C এর ব্যবহার কমছে।
  • নতুন ডেভেলপারদের আকর্ষণ: নতুন ডেভেলপাররা Swift শেখার দিকে ঝুঁকছেন।
  • আধুনিক ফিচারের অভাব: Objective-C তে কিছু আধুনিক প্রোগ্রামিং ফিচার নেই যা Swift এ রয়েছে।

অন্যান্য প্রোগ্রামিং ভাষার সাথে পার্থক্য

Objective-C বনাম Swift

  • সিনট্যাক্স: Swift এর সিনট্যাক্স আরও সহজ এবং পরিষ্কার।
  • টাইপ সেফটি: Swift টাইপ সেফটি সমর্থন করে, Objective-C তে এটি সীমিত।
  • পারফরম্যান্স: Swift সাধারণত দ্রুততর।
  • কোমিউনিটি: Swift এর কোমিউনিটি দ্রুত বাড়ছে।

Objective-C বনাম C++

  • মাল্টিপল ইনহেরিটেন্স: C++ মাল্টিপল ইনহেরিটেন্স সমর্থন করে, Objective-C করে না।
  • মেমরি ম্যানেজমেন্ট: Objective-C তে ARC ব্যবহার হয়, C++ তে ম্যানুয়াল মেমরি ম্যানেজমেন্ট।

অতিরিক্ত সম্পদ

  • Apple এর অফিসিয়াল ডকুমেন্টেশন: Apple Developer
  • Objective-C টিউটোরিয়াল: Ray Wenderlich
  • বই: Objective-C Programming: The Big Nerd Ranch Guide

কিওয়ার্ড

  • Objective-C
  • Xcode
  • Cocoa
  • Cocoa Touch
  • মেমরি ম্যানেজমেন্ট
  • প্রোটোকল
  • ডেলিগেট
  • ক্যাটাগরি
  • এক্সটেনশন
  • ARC
  • iOS ডেভেলপমেন্ট
  • macOS ডেভেলপমেন্ট

উপসংহার

Objective-C একটি শক্তিশালী এবং কার্যকরী প্রোগ্রামিং ভাষা যা Apple এর ইকোসিস্টেমে গুরুত্বপূর্ণ ভূমিকা পালন করেছে। যদিও Swift এর আগমনের ফলে এর ব্যবহার কিছুটা কমে গেছে, তবে পুরনো কোডবেস এবং স্থিতিশীলতার কারণে এটি এখনও প্রাসঙ্গিক। যারা macOS বা iOS অ্যাপ ডেভেলপমেন্ট করতে চান, তাদের জন্য Objective-C জানা একটি বড় সুবিধা।

Objective-C হল C প্রোগ্রামিং ভাষার উপর ভিত্তি করে একটি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ভাষা, যা মূলত macOS এবং iOS অ্যাপ্লিকেশন ডেভেলপমেন্টে ব্যবহৃত হয়। এটি Apple এর ইকোসিস্টেমে বেশ গুরুত্বপূর্ণ ভূমিকা পালন করেছে এবং এখনও বহু ডেভেলপারদের জন্য প্রয়োজনীয় একটি ভাষা।


Objective-C একটি বিস্তারিত গাইড

Objective-C হল একটি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ভাষা যা C এর উপর ভিত্তি করে তৈরি হয়েছে। এটি মূলত macOS এবং iOS অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য ব্যবহৃত হয়। এই গাইডে আমরা Objective-C এর সূচনা থেকে শুরু করে এর ইতিহাস, বৈশিষ্ট্য, ব্যবহারের কারণ, প্রয়োজনীয়তা, ভাষার মৌলিক ধারণা উদাহরণসহ, মেমরি ম্যানেজমেন্ট, প্রোটোকল এবং ডেলিগেট, ক্যাটাগরি এবং এক্সটেনশন, প্রয়োজনীয় টুলস এবং ফ্রেমওয়ার্ক, ভবিষ্যৎ চ্যালেঞ্জ, অন্যান্য প্রোগ্রামিং ভাষার সাথে পার্থক্য, অতিরিক্ত সম্পদ এবং গুরুত্বপূর্ণ কিওয়ার্ডগুলি আলোচনা করব।


সূচনা

কেন Objective-C?

  • Apple-এর সমর্থন: macOS এবং iOS প্ল্যাটফর্মে অ্যাপ ডেভেলপমেন্টের জন্য Objective-C একটি প্রধান ভাষা।
  • অবজেক্ট-ওরিয়েন্টেড: অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের শক্তিশালী বৈশিষ্ট্য।
  • C-এর সম্প্রসারণ: C ভাষার সাথে সম্পূর্ণ সামঞ্জস্যপূর্ণ।
  • বৃহৎ লাইব্রেরি: Cocoa এবং Cocoa Touch ফ্রেমওয়ার্ক ব্যবহার করা যায়।

ইতিহাস

Objective-C তৈরি করেছিলেন Brad Cox এবং Tom Love ১৯৮০-এর দশকে। এটি C এর সাথে Smalltalk এর অবজেক্ট-ওরিয়েন্টেড ধারণাগুলির মিশ্রণ। ১৯৮৮ সালে NeXT কোম্পানি Objective-C কে তাদের NeXTSTEP অপারেটিং সিস্টেমের জন্য ব্যবহার করে, যা পরে Apple দ্বারা গ্রহণ করা হয়। এটি macOS এবং iOS ডেভেলপমেন্টের মূল ভাষা হয়ে ওঠে।


প্রয়োজনীয়তা

  • Xcode: Apple এর অফিসিয়াল IDE যা MacOS-এ ব্যবহার করা হয়।
  • C ভাষার জ্ঞান: C এর বেসিক ধারণা জানা থাকলে সুবিধা হবে।
  • Mac কম্পিউটার: MacOS অপারেটিং সিস্টেমের প্রয়োজন।

ভাষার মৌলিক ধারণা

সিনট্যাক্স

Objective-C এর সিনট্যাক্স C এর উপর ভিত্তি করে, তবে মেসেজ পাসিংয়ের জন্য Smalltalk-এর স্টাইল ব্যবহার করে।

ভেরিয়েবল ডিক্লেয়ারেশন

int count = 10;
float price = 99.99;
NSString *message = @"স্বাগতম";

মেসেজ পাসিং

[object method];
[object methodWithParameter:param];

ক্লাস এবং অবজেক্ট

ক্লাস ডিক্লেয়ারেশন

@interface Person : NSObject
@property (nonatomic, strong) NSString *name;
- (void)displayName;
@end

ক্লাস ইমপ্লিমেন্টেশন

@implementation Person
- (void)displayName {
    NSLog(@"Name: %@", self.name);
}
@end

অবজেক্ট তৈরি

Person *person = [[Person alloc] init];
person.name = @"রহিম";
[person displayName];

ডেটা টাইপ

  • প্রাথমিক টাইপ: int, float, double, char, BOOL
  • অবজেক্ট টাইপ: NSString, NSArray, NSDictionary, NSNumber

মেমরি ম্যানেজমেন্ট

ARC (Automatic Reference Counting)

Objective-C তে মেমরি ম্যানেজমেন্টের জন্য ARC ব্যবহার করা হয়, যা স্বয়ংক্রিয়ভাবে অবজেক্টের লাইফসাইকেল পরিচালনা করে।

প্রোপার্টি অ্যাট্রিবিউট

  • strong: অবজেক্টের একটি শক্তিশালী রেফারেন্স ধরে।
  • weak: অবজেক্টের একটি দুর্বল রেফারেন্স ধরে, যা অবজেক্ট ডিলোকেট হলে nil হয়ে যায়।
  • copy: অবজেক্টের একটি কপি তৈরি করে।

প্রোটোকল এবং ডেলিগেট

প্রোটোকল

প্রোটোকলগুলি এমন একটি ইন্টারফেস যা ক্লাসগুলি গ্রহণ করতে পারে।

@protocol MyProtocol 
@required
- (void)requiredMethod;
@optional
- (void)optionalMethod;
@end

ডেলিগেট

ডেলিগেট প্যাটার্ন ব্যবহারে এক অবজেক্ট অন্য অবজেক্টের ইভেন্ট হ্যান্ডল করতে পারে।

@interface MyClass : NSObject 
@end

ক্যাটাগরি এবং এক্সটেনশন

ক্যাটাগরি

ক্যাটাগরি ব্যবহার করে বিদ্যমান ক্লাসে নতুন মেথড যোগ করা যায়।

@interface NSString (ReverseString)
- (NSString *)reverseString;
@end

@implementation NSString (ReverseString)
- (NSString *)reverseString {
    NSUInteger length = [self length];
    NSMutableString *reversedString = [NSMutableString stringWithCapacity:length];
    while (length > 0) {
        [reversedString appendString:[NSString stringWithFormat:@"%C", [self characterAtIndex:--length]]];
    }
    return reversedString;
}
@end

এক্সটেনশন

এক্সটেনশন ব্যবহার করে প্রাইভেট মেথড এবং প্রোপার্টি ডিক্লেয়ার করা যায়।

@interface MyClass ()
@property (nonatomic, strong) NSString *privateProperty;
- (void)privateMethod;
@end

প্রয়োজনীয় টুলস এবং ফ্রেমওয়ার্ক

Xcode

Apple এর অফিসিয়াল IDE যা macOS এবং iOS অ্যাপ ডেভেলপমেন্টের জন্য ব্যবহৃত হয়।

Cocoa এবং Cocoa Touch

  • Cocoa: macOS অ্যাপ্লিকেশনের জন্য ফ্রেমওয়ার্ক।
  • Cocoa Touch: iOS অ্যাপ্লিকেশনের জন্য ফ্রেমওয়ার্ক।

Interface Builder

GUI তৈরি করার জন্য ব্যবহৃত টুল।


ভবিষ্যৎ চ্যালেঞ্জ

  • Swift এর জনপ্রিয়তা: Swift এর আগমনের ফলে Objective-C এর ব্যবহার কমছে।
  • নতুন ডেভেলপারদের আকর্ষণ: নতুন ডেভেলপাররা Swift শেখার দিকে ঝুঁকছেন।
  • আধুনিক ফিচারের অভাব: Objective-C তে কিছু আধুনিক প্রোগ্রামিং ফিচার নেই যা Swift এ রয়েছে।

অন্যান্য প্রোগ্রামিং ভাষার সাথে পার্থক্য

Objective-C বনাম Swift

  • সিনট্যাক্স: Swift এর সিনট্যাক্স আরও সহজ এবং পরিষ্কার।
  • টাইপ সেফটি: Swift টাইপ সেফটি সমর্থন করে, Objective-C তে এটি সীমিত।
  • পারফরম্যান্স: Swift সাধারণত দ্রুততর।
  • কোমিউনিটি: Swift এর কোমিউনিটি দ্রুত বাড়ছে।

Objective-C বনাম C++

  • মাল্টিপল ইনহেরিটেন্স: C++ মাল্টিপল ইনহেরিটেন্স সমর্থন করে, Objective-C করে না।
  • মেমরি ম্যানেজমেন্ট: Objective-C তে ARC ব্যবহার হয়, C++ তে ম্যানুয়াল মেমরি ম্যানেজমেন্ট।

অতিরিক্ত সম্পদ

  • Apple এর অফিসিয়াল ডকুমেন্টেশন: Apple Developer
  • Objective-C টিউটোরিয়াল: Ray Wenderlich
  • বই: Objective-C Programming: The Big Nerd Ranch Guide

কিওয়ার্ড

  • Objective-C
  • Xcode
  • Cocoa
  • Cocoa Touch
  • মেমরি ম্যানেজমেন্ট
  • প্রোটোকল
  • ডেলিগেট
  • ক্যাটাগরি
  • এক্সটেনশন
  • ARC
  • iOS ডেভেলপমেন্ট
  • macOS ডেভেলপমেন্ট

উপসংহার

Objective-C একটি শক্তিশালী এবং কার্যকরী প্রোগ্রামিং ভাষা যা Apple এর ইকোসিস্টেমে গুরুত্বপূর্ণ ভূমিকা পালন করেছে। যদিও Swift এর আগমনের ফলে এর ব্যবহার কিছুটা কমে গেছে, তবে পুরনো কোডবেস এবং স্থিতিশীলতার কারণে এটি এখনও প্রাসঙ্গিক। যারা macOS বা iOS অ্যাপ ডেভেলপমেন্ট করতে চান, তাদের জন্য Objective-C জানা একটি বড় সুবিধা।

Promotion

Are you sure to start over?

Loading...