UIKit এবং AppKit হলো অ্যাপল-এর দুটি মৌলিক ফ্রেমওয়ার্ক, যেগুলি যথাক্রমে iOS এবং macOS অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য ব্যবহৃত হয়। এই ফ্রেমওয়ার্কগুলি ইউজার ইন্টারফেস (UI) তৈরি, গ্রাফিক্স রেন্ডারিং, ইভেন্ট হ্যান্ডলিং এবং অন্যান্য মৌলিক ফিচারের জন্য প্রয়োজনীয় ক্লাস এবং মেথড প্রদান করে।
1. UIKit
UIKit হল iOS অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য একটি শক্তিশালী ফ্রেমওয়ার্ক যা UI তৈরি এবং ইন্টারঅ্যাকশনের জন্য প্রয়োজনীয় উপাদান সরবরাহ করে। এটি আইফোন, আইপ্যাড, এবং অন্যান্য iOS ডিভাইসের জন্য অ্যাপ্লিকেশন তৈরি করতে ব্যবহৃত হয়।
UIKit এর প্রধান উপাদান:
- UIView: সমস্ত UI উপাদান (যেমন বাটন, টেক্সট ফিল্ড, লেবেল) UIView-এর উপর ভিত্তি করে তৈরি হয়।
- UIViewController: UI স্ক্রীন বা ভিউ কন্ট্রোলার, যা UI উপাদানগুলির মধ্যে যোগাযোগ এবং লজিক পরিচালনা করে।
- UIControl: ইউজার ইন্টারঅ্যাকশনের জন্য, যেমন বাটন ট্যাপ, স্লাইডার, সুইচ ইত্যাদি।
- UIWindow: UI উপাদানগুলি প্রদর্শন করার জন্য একটি উইন্ডো তৈরি করে।
UIKit ব্যবহার করার উদাহরণ:
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@property (nonatomic, strong) UILabel *label;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// UILabel তৈরি করা
self.label = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 200, 40)];
self.label.text = @"Hello, UIKit!";
self.label.textAlignment = NSTextAlignmentCenter;
[self.view addSubview:self.label]; // label কে ভিউতে যোগ করা
// UIButton তৈরি করা
UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
button.frame = CGRectMake(100, 200, 200, 40);
[button setTitle:@"Tap Me" forState:UIControlStateNormal];
[button addTarget:self action:@selector(buttonTapped) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
}
- (void)buttonTapped {
self.label.text = @"Button Tapped!";
}
@endএখানে:
- UILabel এবং UIButton ব্যবহার করা হয়েছে UIKit ফ্রেমওয়ার্ক থেকে।
- UIButton-এর মাধ্যমে ইভেন্ট হ্যান্ডলিং (যেমন বাটন ট্যাপ) করা হয়েছে।
- UIViewController একটি কন্ট্রোলার যা UI উপাদানগুলির মধ্যে লজিক পরিচালনা করে।
2. AppKit
AppKit হল macOS অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য ব্যবহৃত একটি ফ্রেমওয়ার্ক। এটি ম্যাক ডিভাইসের জন্য ইউজার ইন্টারফেস তৈরি করতে ব্যবহৃত হয় এবং অনেকটা UIKit-এর মতো, তবে এটি ম্যাক প্ল্যাটফর্মের বিশেষ বৈশিষ্ট্যগুলি সমর্থন করে, যেমন এপ্লিকেশন উইন্ডো, মেনু বার, ফাইল সিস্টেম, এবং ড্র্যাগ-এন্ড-ড্রপ।
AppKit এর প্রধান উপাদান:
- NSView: সমস্ত UI উপাদান, যেমন বাটন, টেক্সট ফিল্ড, লেবেল, এটি একটি NSView এর উপর ভিত্তি করে তৈরি হয়।
- NSWindow: এটি অ্যাপ্লিকেশন উইন্ডো তৈরি এবং পরিচালনা করে।
- NSButton: এটি বাটন তৈরি এবং ইভেন্ট হ্যান্ডলিং জন্য ব্যবহৃত হয়।
- NSApplication: অ্যাপ্লিকেশন চালানো এবং রানটাইম ইভেন্ট পরিচালনা করে।
AppKit ব্যবহার করার উদাহরণ:
#import <Cocoa/Cocoa.h>
@interface AppDelegate : NSObject <NSApplicationDelegate>
@property (strong) NSWindow *window;
@property (strong) NSButton *button;
@property (strong) NSTextField *label;
@end
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
// উইন্ডো তৈরি করা
self.window = [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, 400, 300)
styleMask:(NSWindowStyleMaskTitled |
NSWindowStyleMaskClosable |
NSWindowStyleMaskResizable)
backing:NSBackingStoreBuffered
defer:NO];
[self.window setTitle:@"AppKit Example"];
// NSTextField (label) তৈরি করা
self.label = [[NSTextField alloc] initWithFrame:NSMakeRect(100, 200, 200, 40)];
[self.label setStringValue:@"Hello, AppKit!"];
[self.label setBezeled:NO];
[self.label setEditable:NO];
[self.window.contentView addSubview:self.label];
// NSButton (button) তৈরি করা
self.button = [[NSButton alloc] initWithFrame:NSMakeRect(100, 100, 200, 40)];
[self.button setTitle:@"Click Me"];
[self.button setTarget:self];
[self.button setAction:@selector(buttonClicked:)];
[self.window.contentView addSubview:self.button];
[self.window makeKeyAndOrderFront:nil];
}
- (void)buttonClicked:(id)sender {
[self.label setStringValue:@"Button Clicked!"];
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
return NSApplicationMain(argc, argv);
}
}এখানে:
- NSWindow তৈরি করা হয়েছে ম্যাক অ্যাপ্লিকেশনের উইন্ডো হিসেবে।
- NSTextField এবং NSButton ব্যবহার করে UI উপাদান তৈরি এবং ইভেন্ট হ্যান্ডলিং করা হয়েছে।
3. UIKit এবং AppKit এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | UIKit | AppKit |
|---|---|---|
| উদ্দেশ্য | iOS অ্যাপ্লিকেশন ডেভেলপমেন্ট | macOS অ্যাপ্লিকেশন ডেভেলপমেন্ট |
| প্রধান উপাদান | UIView, UIViewController, UIButton | NSView, NSWindow, NSButton |
| প্ল্যাটফর্ম | iOS, iPadOS | macOS |
| উইন্ডো ব্যবস্থাপনা | UIWindow (অ্যাপ্লিকেশন স্ক্রীন) | NSWindow (ম্যাক উইন্ডো ব্যবস্থাপনা) |
| মেনু বার | না | হ্যাঁ, মেনু বার এবং মেনু আইটেম সমর্থিত |
| ড্র্যাগ-এন্ড-ড্রপ | না | হ্যাঁ, macOS এ ড্র্যাগ-এন্ড-ড্রপ সমর্থিত |
4. সারাংশ
- UIKit: iOS অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য ব্যবহৃত হয়। এটি UI উপাদান তৈরি করতে, ব্যবহারকারী ইন্টারঅ্যাকশন এবং ইভেন্ট হ্যান্ডলিংয়ের জন্য প্রয়োজনীয় ক্লাস এবং মেথড সরবরাহ করে।
- AppKit: macOS অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য ব্যবহৃত হয়। এটি UI উপাদান তৈরি করতে এবং macOS এর বিশেষ বৈশিষ্ট্যগুলি (যেমন মেনু বার, উইন্ডো সিস্টেম, ড্র্যাগ-এন্ড-ড্রপ) সমর্থন করে।
যেহেতু UIKit এবং AppKit দুটি আলাদা প্ল্যাটফর্মের জন্য ডিজাইন করা হয়েছে, তাই এগুলোর মধ্যে কিছু সাধারণ বৈশিষ্ট্য আছে, তবে প্ল্যাটফর্মের ভিন্নতার কারণে কিছু পার্থক্যও রয়েছে।
Read more