«

»

এপ্রিল 19

iOS অ্যাপ্লিকেশন ডেভেলপমেন্ট – লেকচার ১ – প্ল্যাটফর্ম পরিচিতি

iOS অ্যাপ্লিকেশন ডেভেলপমেন্ট কোর্সে সবাইকে স্বাগতম 🙂

[কোর্সের মূল পাতা | নিবন্ধনের লিঙ্ক]

প্রথমেই একটা প্রশ্ন দিয়ে শুরু করি , আচ্ছা আপনাদের কি মনে আছে জীবনে প্রথম কোন হ্যান্ডসেট দিয়ে মোবাইল ফোন ব্যবহার করা শুরু করেছিলেন ? যেটাই দিয়ে শুরু করে থাকুন এখানে একটা মিল আছে আমাদের মধ্যে , ফোনগুলো মোটামুটি নকিয়া, সনি এরিকসন, সিমেন্স এই কোম্পানিগুলোর কিছু ফিচার ফোনের মধ্যেই সীমাবদ্ধ ছিল। মাল্টিমিডিয়া ফোন তখন মোটামুটি একটু সামর্থ্যবান লোকজনের জিনিস ছিল। এরপর সেগুলো বাজারে সহজলভ্য হওয়া শুরু করে চায়নিজ ফোনগুলো আসার পর থেকে। স্মার্টফোন অনেক পরের ঘটনা। তো ঐ সময়ের দামি ফোন কিংবা সস্তা ফোন যেটাই বলি না কেন, তাদের কিছু বৈশিষ্ট্য ছিল যেমন, ছোট একটা ডিসপ্লে, কিপ্যাড, পলিফনিক রিংটোন ইত্যাদি। আর এখন ? এখন আমরা ফোন কিনতে গেলে প্রথমেই দেখি ফোনের স্ক্রিন কমপক্ষে ৩.৫ ইঞ্চি কিনা , রেসলিউশন কত , প্রসেসরের ক্লকস্পিড কত , প্রসেসরে কতগুলো কোর আছে , RAM কমপক্ষে 512 মেগাবাইট কিনা ইত্যাদি ইত্যাদি।

এখন প্রশ্ন হল, এই বিরাট পরিবর্তন কিভাবে আসলো যেখানে আগের মোবাইল ফোনের যায়গায় এখন আমরা মোটামুটি কম্পিউটারের মত হার্ডওয়্যার দেখে ফোন কিনি। কি এমন ঘটলো গত ৫-৭ বছরে যা সারা বিশ্বের মোবাইল ফোনের ইন্ডাস্ট্রিকেই রাতারাতি বদলে দিল ? উত্তরটা হল আইফোন , পৃথিবীর সবচেয়ে ব্যাবসাসফল স্মার্টফোন। আইফোন যে অসম্ভব কাজটা করেছে তা হল, মোবাইল ফোনকে দুইটা আলাদা জেনারেশনে ভাগ করে ফেলেছে , একটা হল আইফোনের আগে ও আরেকটা আইফোনের পরে। নিচের ছবিটা দেখলে ব্যাপারটা আরো ভালো বোঝা যাবে , ফোনগুলোর চেহারাই যেন বদলে গিয়েছে।

IntroIOS.005

 

এখন একটু দেখা যাক এই বৈপ্লবিক পরিবর্তন কিভাবে এলো , সহজ কথায় অ্যাপল কি এমন করল যেটা রাতারাতি আমাদের চেনাজানা মোবাইল ফোনগুলো বদলে গেল।

IntroIOS.006

  1. প্রথমেই বলতে হবে অ্যাপস্টোর এর কথা। আমরা আগে আমাদের ফোনগুলোতে খুব বেশি হলে মাত্র কয়েকটা জাভা অ্যাপ/গেমস ইন্সটল করতে পারতাম। অ্যাপল প্রথম অ্যাপস্টোরের ধারনাটা সফলভাবে বাস্তবায়ন করে। এর ফলে আইফোন বাবহারকারিরা পেয়ে গেল লক্ষ লক্ষ আপস , গেমস। কিভাবে ? অ্যাপস্টোর চালু করার অর্থ হল , বাইরের প্রোগ্রামাররা প্রথমবারের মত অ্যাপল প্রডাক্ট এর জন্য সফটওয়্যার ডেভেলপ করার অনুমতি পেয়ে গেল। এর আগে অ্যাপলের বাইরের কেউ তাদের জন্য সফটওয়্যার ডেভেলপ করতে পারত না। তো অ্যাপস্টোর আসার পর ইউজাররা যেমন বিভিন্ন কাজের জন্য লক্ষ লক্ষ অ্যাপ পেয়ে গেল , তেমনি সেগুলো ডেভেলপ ও অ্যাপস্টোরে বিক্রি করার জন্য সারা বিশ্বে হাজার হাজার নতুন কোম্পানি গড়ে উঠল। ফলাফলটা মনে হয় বলে দিতে হবেনা। মজার ব্যাপার হল, স্টিভ জবস অ্যাপস্টোর এর ধারনাটা পছন্দ করেননি , তিনি চাইতেন না অ্যাপল এর বাইরের কেউ তাদের সফটওয়্যার ডেভেলপ করুক।
  2.  এরপর, Multitouch & Gestures এর কথা আসবে। একটা ফোনের স্ক্রিনে টাচ করলে সেটা কাজ করবে সেটা আমরা আগে ভাবতে পারতাম না । একটা ছবি ওপেন করে ছবির উপর দুই আঙ্গুল ঘোরালে ছবিটা ঘুরতে পারে সেটা আগে আমাদের কল্পনা হলেও এখন আর সেটা নয়।
  3.  আগে কিপ্যাড ছাড়া ফোন ছিল না। আমাদের দেশে যখন চায়নিজ টাচ ফোনগুলো আসা শুরু করে , ওখানকার কিছু ফোনে টাচ ইনপুট দেয়ার জন্য ইনপুট পেন কিংবা একটা ছোট ম্যাচের কাঠির মত দেখতে জিনিস থাকত , অনেকেরই বোধহয় মনে আছে 🙂 আইফোন আসার পর সেগুলো অতীত হয়ে যায় মোটামুটি। এখন আমরা স্মার্টফোনের স্ক্রিনেই আঙ্গুল দিয়ে স্পর্শ করেই সফট কিবোর্ড দিয়ে ইনপুট দিতে পারি।IntroIOS.009
  4. এখন আমাদের স্মার্টফোনে বিভিন্ন সেন্সর থাকে। যেমন, জিপিএস সেন্সর , গাইরোস্কোপ , এক্সিলারোমিটার ইত্যাদি। এর ফলে আমাদের ফোন বুঝতে পারে এখন সে কোথায় আছে , কেউ ফোন ধরে ঝাঁকুনি দিল কিনা ইত্যাদি। আইফোন প্রথম এই চমৎকার জিনিসগুলো নিয়ে আসে ইউজারদের সামনে।IntroIOS.010

iOS এবং iOS ডিভাইস


IntroIOS.012

iOS একটা অপারেটিং সিস্টেম, আমরা আমাদের পিসিতে উইন্ডোজ, লিনাক্স ইত্যাদি অপারেটিং সিস্টেম ব্যবহার করি iOS ঠিক তেমনই একটা সিস্টেম। তবে এটা পিসির জন্য নয়, এটা অ্যাপল এর তৈরি কিছু স্মার্ট ডিভাইসের অপারেটিং সিস্টেম। কোন ডিভাইসগুলো ? সহজভাবে চেনার উপায় হল, যেগুলোর নাম আইপড (i) দিয়ে শুরু হয়। যেমন, আইফোন, আইপ্যাড, আইপ্যাড মিনি, আইপড, আইপড টাচ, অ্যাপল টিভি ইত্যাদি এখন পর্যন্ত।

এখন দেখে নিই, iOS প্লাটফর্মে আপ্লিকেশন ডেভেলপ করতে হলে আমাদের কি কি দরকার হবে

  1. প্রথমেই দরকার হবে ম্যাকিনটোশ বা ম্যাক অপারেটিং সিস্টেম। এটা ছাড়া কোনভাবেই iOS প্লাটফর্মে কাজ করা সম্ভব না। ম্যাক অপারেটিং সিস্টেম চলে অ্যাপল এর পিসিতে , যেমন ম্যাকবুক , ম্যাকবুক প্রো, ম্যাকবুক এয়ার , ম্যাক মিনি, আইম্যাক ও ম্যাক প্রো। যেহেতু অ্যাপল এর কম্পিউটার আমাদের জন্য একটু ব্যায়বহুল।সবচেয়ে কম দামে ম্যাক মিনি পাওয়া যায়। খুব ভালো হয় অ্যাপল এর একটা পিসি কিনে ফেলতে পারলে। তবে না পারলে আর কি করা , উপায় আছে তবে একটু কষ্ট সহ্য করতে হবে। ২ টা উপায় আছে…IntroIOS.017
    •  টরেন্ট এ খুঁজলে ম্যাক ওএস এর Virtual Box অথবা VMware ইমেজ পাওয়া যাবে। সেটা ডাউনলোড করে উইন্ডোজ পিসিতে ইন্সটল করতে হবে। এক্ষেত্রে পিসিতে র‍্য্যাম বেশি থাকতে হবে।
    • ম্যাক অপারেটিং সিস্টেমকে উইন্ডোজ পিসিতে চালানোর জন্য অনেকগুলো হ্যাকার গ্রুপ অনেক বছর ধরে কাজ করছে কয়েকটা প্রজেক্টে। তাদের কাজ এখন অনেকটাই সফল। তাদের মেথড অনুসরণ করে আমাদের উইন্ডোজ মেশিনে ম্যাক সেটআপ দেওয়া যায়। এটাকে হ্যাকিনটোশ বলা হয়। তবে এটা একটু কঠিন। আমি এটা নিয়ে একটা পোস্ট লিখব সামনে।
  2.  Xcode হল অ্যাপল এর একটা IDE , এটা আমাদের লাগবে। Xcode আসলে শুধু IDE না , এটা IDE , iOS SDK , iOS সিমুলেটর এর একটা কমপ্লিট প্যাকেজ। এখানে আমরা কোড লিখব, ডিবাগ করব, সিমুলেটর এ অ্যাপ রান করব , মোটকথা সবকিছুই করব Xcode দিয়ে 🙂IntroIOS.015
  3. এছাড়াও আরও কিছু জিনিস লাগবে আমাদের তবে এগুলো অপশনাল। থাকলে ভালো, না থাকলেও তাতে সমস্যা হবে না। যেমন,
    •  কোন একটা iOS ডিভাইস যেমন আইফোন বা আইপ্যাড।
    • একটা iOS ডেভেলপার একাউন্ট। এটা ছাড়া আমরা নিজেদের বানানো অ্যাপ অ্যাপস্টোরে পাবলিশ করতে পারব না, সত্যি কথা বলতে নিজের ডেভেলপ করা অ্যাপ নিজের ডিভাইসে চালাতেও পারব না। এটা ফ্রি নয়, iOS ডেভেলপার একাউন্ট ব্যবহার করতে অ্যাপলকে বছরে ৯৯ ডলার চার্জ দিতে হয়।

এখন এই কোর্সে আমরা কি কি শিখব সেগুলো এক নজরে দেখে নিই

  1.  iOS অ্যাপ ডেভেলপ করতে আমাদের নতুন একটা প্রোগ্রামিং ল্যাংগুয়েজ শিখতে হবে। এটার নাম অবজেক্টিভ সি (Objective C)। এটার একটা বড় অংশ সি থেকে আসলেও এটা একটু অন্যরকম, ঠিক আমাদের পরিচিত ল্যাংগুয়েজ এর মত না। আমরা সামনের লেকচারগুলোতে শিখব অবজেক্টিভ সি। তবে এই কোর্সের জন্য একটা পূর্বশর্ত হল, আপনি অবজেক্টিভ সি জানেন না সেটা সমস্যা নয়, কিন্তু এটা দিয়ে প্রোগ্রামিং শুরু করতে চাইলে সেটা খুব সহজ হবেনা। কাজেই অবজেক্টিভ সি এর সাথে দ্রুত পরিচিত হওয়ার জন্য আপনাকে অবশ্যই যেকোনো একটা অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ল্যাঙ্গুয়েজ জানতে হবে।IntroIOS.023
  2. MVC বা মডেল-ভিউ-কন্ট্রোলার প্যাটার্ন সম্পর্কে আমাদের মোটামুটি জানার কথা। iOS আপ্লিকেশন এই MVC প্যাটার্ন পুরোপুরি ফলো করে। কাজেই এটা আমাদের দরকার হবে।
  3. iOS SDK অনেকগুলো ফ্রেমওয়ার্ক এর একটা সমন্বয় । এখান থেকে কিছু গুরুত্বপূর্ণ ফ্রেমওয়ার্ক কিভাবে ব্যবহার করতে হয় আমরা শিখব ও সেটা নিয়ে কাজ করব।  আমরা আমাদের অ্যাপ্লিকেশনে যে কাজগুলো করি, সেই কাজগুলোর জন্য কোন না কোন ফ্রেমওয়ার্ক বা লাইব্রেরি আছে। সবচেয়ে গুরুত্বপূর্ণ হল কোকো টাচ (Cocoa Touch) ফ্রেমওয়ার্ক, বলা যায় এটা আমাদের iOS অ্যাপ এর মোটামুটি সবকিছু । এখানে অনেকগুলো ফ্রেমওয়ার্ক আছে , কোন কাজের জন্য কোন ফ্রেমওয়ার্ক সেটা আমরা একনজরে দেখে নিই।
    •  অডিও ও ভিডিও নিয়ে কাজ করার জন্য Core Audio, OpenAL, Media Library, AV Foundation ফ্রেমওয়ার্ক।
    • ডেটা ম্যানেজমেন্ট বা ডেটাবেজ নিয়ে কাজ করার জন্য  আছে  Core Data ও SQLite ।
    • গ্রাফিক্স ও এনিমেশনের জন্য Core Animation, OpenGL ES, Quartz 2D আমাদের দরকার হবে।
    • নেটওয়ার্কিং ও ইন্টারনেট নিয়ে কাজ করতে আমাদের সাহায্য করবে Bonjour, WebKit, BSD Sockets ।
    • এছাড়া ইউজার অ্যাপ্লিকেশনে জন্য  Address Book, Core Location , Map Kit , Store Kit ইত্যাদি আছে। এর মধ্যে Core Location দিয়ে আমরা জিপিএস বা অন্য সোর্স থেকে লোকেশন পেতে পারি , Map Kit ফ্রেমওয়ার্ক অনেকটা গুগল ম্যাপের মত, অ্যাপল ম্যাপে বিভিন্ন ফাংশানালিটি নিয়ে কাজ করার জন্য। আমাদের অ্যাপ্লিকেশনে যদি ইন-অ্যাপ-পেমেন্ট থাকে তবে সেটার জন্য Store Kit ফ্রেমওয়ার্ক আমাদের ব্যবহার করতে হবে।
  4. অ্যাপল তাদের যেকোন সফটওয়্যারের কোয়ালিটি ও ইউজার এক্সপেরিয়েন্সকে সবসময়ই খুবই গুরুত্ব দেয়। যেমন, iOS এর জন্য আমরা চাইলেই আমাদের ইচ্ছামত ইউজার ইন্টারফেস বানাতে পারব না। এর জন্য অ্যাপল এর সুনির্দিষ্ট নীতিমালা আছে যেটার নাম Human Interaction Guideline , এটা আমাদের অবশ্যই মেনে চলতে হবে। অন্যথায় অ্যাপল তাদের অ্যাপস্টোরে আমাদের অ্যাপ পাবলিশ করতে দিবেনা। এই কোর্সে আমরা এই গাইডলাইনগুলো নিয়ে আলোচনা করব।
  5. iOS অ্যাপ ডেভেলপমেন্ট থেকে শুরু থেকে অ্যাপস্টোরে সাবমিট পর্যন্ত অনেকগুলো প্রসেস জড়িত। যেমন, কিভাবে Xcode ব্যবহার করতে হয়, কিভাবে অ্যাপ ডিবাগ করতে হয়, নিজের ফোনে কিভাবে অ্যাপ চালাতে হয়, কিভাবে অ্যাপস্টোরে অ্যাপ সাবমিট করতে হয় এই জিনিসগুলোও আমরা দেখব পর্যায়ক্রমে ।  এছাড়া ভালো প্র্যাকটিস, খারাপ প্র্যাকটিস, পরিচিত ভুল ভ্রান্তি এগুলো নিয়ে আলোচনা থাকবে।

সবশেষে, কোন ভুলত্রুটি , পরামর্শ থাকলে নিচে কমেন্ট সেকশনে লিখুন। আজকে এ পর্যন্তই , আশা করি সাথে থাকবেন। ধন্যবাদ  🙂

Comments

comments

About the author

Ashiq Uz Zoha

আমি আশিক-উজ-জোহা (অয়ন)। বুয়েট কম্পিউটার সায়েন্স ও ইঞ্জিনিয়ারিং বিভাগ থেকে ২০১৩ সালে আমি গ্রাজুয়েশন সম্পন্ন করি। ছাত্র থাকা অবস্থাতেই ফ্রিল্যান্সার হিসেবে আইওএস ও অ্যান্ড্রয়েড প্ল্যাটফর্মে মোবাইল অ্যাপ ডেভেলপমেন্ট শুরু করি। এরপর পড়াশোনা শেষ করে বুয়েটেরই দুই বন্ধু মিলে ধ্রুবক ইনফোটেক সার্ভিসেস লিমিটেড নামে একটি স্টার্টআপ সফটওয়্যার কোম্পানি শুরু করি, এখানে আমরা মূলত স্মার্টফোন বেইজড ইনফরমেশন সিস্টেম, অ্যাপস ও গেমস ডেভেলপ করি। এছাড়া বুয়েটে মোবাইল অ্যাপ ডেভেলপমেন্ট বিষয়ক বিভিন্ন ওয়ার্কশপ, ট্রেনিং প্রোগ্রাম ও  সফটওয়্যার ডেভেলপমেন্ট কন্টেস্ট এর সাথে জড়িত আছি। বর্তমানে ধ্রুবক ইনফোটেক সার্ভিসেস লিমিটেড এর চেয়ারম্যান হিসেবে দায়িত্বরত আছি ।

Leave a Reply