আইফোন এপ্লিকেশন ডেভেলপমেন্ট [পর্ব-৩]

স্বাগতম আইফোন এপ্লিকেশন ডেভেলপমেন্ট এর তৃতীয় পর্বে. আগের পর্বগুলো যারা পড়েননি তারা একবার ঢু মেরে আসতে পারেন. এই পর্বটি মূলত আইফোন ডেভেলপমেন্ট এর প্রধান টুল XCode এর উপর পরিচিতিমূলক এবং একটু programming দেখানো হবে. আমি programming এর খুব ভিতরে যাওয়ার চেষ্টা করবনা, যারা ইতিমধ্যে C ++ অথবা JAVA অথবা অন্য কোনো OOP language করেছেন তারা আশা করি বুঝতে পারবেন, অন্যরা আমার দ্বিতীয় পর্বে উল্লেখ করা বই ও অন্যান্য link / resource গুলো থেকে iPhone basic programming শিখে নিন. আশা করছি পর্বটি আপনাদের ভালো লাগবে, যদিও programming এর জিনিসগুলি বরাবর ই বোরিং হয়ে থাকে 🙂

একটি update: সম্প্রতি Apple World Wide Developer Conference (WWDC 2011) এ আইফোন OS 5 (iOS 5) এর ঘোষণা দেন Apple প্রধান স্টিভ জবস, যা আগামী ২-১ মাস এর মাঝে ব্যবহার করা যাবে. প্রায় ২০০ টি তনুন feature সমৃদ্ধ এই OS টি হবে smartphone এর জগতে একটি মাইলফলক, বোদ্ধারা এটাই মনে করছেন. আরো বিস্তারিত জানতে http://www.apple.com/ios/ios5/ লিঙ্ক থেকে ঘুরে আসতে পারেন.

XCode IDE পরিচিতি

নিচের ScreenShot টি তে XCode এর বিভিন্ন অংশ দেখানো হয়েছে. আমি চেষ্টা করব সবগুলো গুরুত্বপূর্ণ part গুলার বর্ণনা করতে. আমার অনুরুধ থাকবে আপনারা XCode খুলে তারপর এই অংশগুলোর বর্ণনা পরবেন ও মিলিয়ে দেখবেন, তাহলে বুঝতে সহজ হবে.

  • ১. বামদিকে "ToolBar " অংশে আছে, "Run /Stop ": আপনি বর্তমান কোড/প্রজেক্ট টি Simulator / iPhone এ চালিয়ে দেখতে পারবেন/বন্ধ করতে পারবেন. "Set an active scheme ": আপনি Simulator নাকি iPhone এ প্রজেক্ট টি চালাবেন, কোন OS এ চালাবেন ইত্যাদি এখান থেকে select করে দিতে পারবেন. "Active or deactivate breakpoints ": আপনি আপনার debugger এর জন্য যেসব Breakpoint সিলেক্ট করে রেখেছেন সেগুলো active / deactive করতে পারবেন.

  • ২. বামদিকে "Navigation area " অংশে মূলত আপনার প্রজেক্ট এর সকল ফাইল ও resource (যেমন ছবি, fonts ইত্যাদি) দেখতে পারবেন. এই area তে উপরে দেখবেন ৭ টি button / Icon আছে, "Navigator selector bar :", এর মাধ্যমে আপনি বিভিন্ন organization এ ফাইল দেখতে পাবেন, error / warning , code search results, breakpoints navigation ইত্যাদি দেখতে পাবেন. আর "Navigation area " নিচে দেখবেন ৪ টি button আছে, প্রথম "+" টি দিয়ে আপনি নতুন কোনো ফাইল প্রজেক্ট এ add করতে পারবেন, এরপর পাশাপাশি ৩ টি button আছে, "Filter Bar ": যার দ্বারা আপনি আপনার recent এডিট করা ফাইল, SVN changed ফাইল ও Unsaved ফাইল গুলো আলাদা করে দেখতে পাবেন. তার পাশে একটি text field আছে যার মাধ্যমে আপনি একধরনের ফাইল filter করে দেখতে পারবেন. বড় প্রজেক্ট এর ক্ষেত্রে এইগুলো খুব দরকারী.
  • ৩. উপরে "Jump Bars " এর মাঝে কোন ফাইল, কোন মেথড এ আপনি আছেন( মূলত আপনার এডিটর এ show করছে ) সেটি দেখা যাবে, এবং আপনি চাইলে এখানে ক্লিক করে অন্য ফাইল, অন্য method এ jump করতে পারবেন. এছাড়াও "Related files ": মাধ্যমে আপনি বর্তমান ফাইল এর যেসব counterparts ও related ফাইল আছে সেগুলো দেখতে পাবেন.
  • ৪. ডানদিকে উপরে "Inspector selector bar " এর উপরে ৭ টি button আছে, প্রথম ৩ টি হলো "Editor " যার মাধ্যমে standard এডিটর, assistant এডিটর ও SVN Version এডিটর এর মাঝে shitch করতে পারবেন. পরের তিনটি button হলো "View" যার মাধ্যমে আপনি navigator /Debug area / Utilities pane গুলো show / Hide করতে পারবেন. শেষের button টি ক্লিক করলে আপনি organizer window দেখতে পাবেন যার মাধ্যমে আপনি আপনার iPhone Devices , Provisioning profiles ও অন্যান্য information দেখতে পারবেন.
  • ৫. ডানদিকে উপরে "Inspector selector bar " এর বিভিন্ন option ক্লিক করে নিচে "Inspector Pane " এর মাধ্যমে আপনি আপনার এডিটর এ বর্তমানে ওপেন অবস্থায় থাকা source কোড ফাইল অথবা XIB (design ফাইল) এর বিভিন্ন properties দেখতে পারবেন ও change / modify করতে পারবেন.
  • ৬. ডানদিকে মাঝে "Library Selector Bar " এ আপনি বিভিন্ন কোড template , কোড snippets , object library (যেটি থেকে আপনি view, Button, textField ইত্যাদি টেনে এনে Interface builder এ বসাতে পারবেন) ও Media library (যেখানে আপনি আপনার প্রজেক্ট এর সকল image ও অন্যর resource দেখতে পারবেন) আছে. যেকোনটা select করে আপনি library pane এ details দেখতে পাবেন.
  • ৭. মাঝখানে হলো "Editor Area " যেটিতে আপনি আপনার কোড লিখতে পারবেন, এবং যেকোনো XIB ফাইল (Interface builder ফাইল, যা আপনার iphone app এর প্রতিটি window এর design) এর জন্য button, label, view ইত্যাদি object library থেকে টেনে এনে বসাতে ও rearrange করতে পারবেন.
  • ৮. সবশেষে নিচে আছে "debug area" যাতে আপনি iPhone app টি চালানো অবস্থায় বিভিন্ন লগ print দেখতে পারবেন ও DEBUG এর বিভিন্ন variable এর value দেখতে পারবেন. এর মাধ্যমে আপনার app এর যেকোনো ত্রুটি দূর করা ও কাজ করার সময় লগ করে দেখার সুবিধা পাবেন.
    XCode এর বিভিন্ন অংশগুলো পরিচিতি'র জন্য এই লিঙ্ক এ ঘুরে আসতে পারেন.

শুরু করুন একটি নতুন প্রজেক্ট

প্রথমে আপনারা আপনাদের setup দেয়া XCode ওপেন করুন.(ডেস্কটপ এ খুঁজে না পেলে আপনার Machintose HD > Developer > Applications > XCode ওপেন করুন) দেখবেন শুরুতেই একটি welcome screen আসবে. আপনি যদি প্রথম বার কোনো প্রজেক্ট করেন তাহলে ডানদিকের "Recents" খালি থাকবে. এখন "Create a new XCode project" এ ক্লিক করুন ...

পরের স্ক্রীন এ "Navigation based Application " সিলেক্ট করে next দিন

এবং পরবর্তী স্ক্রীন এ আপনার নতুন প্রজেক্ট এর নাম দিন ও একটি কোম্পানি নাম দিন,(Include Unit Test দেবার দরকার নাই)

লক্ষ্য করুন আপনি যে নামে project টি খুলেছেন সেটি কিন্তু iPhone app এর নাম হবেনা, সুতরাং আপনি ইচ্ছামত নাম দিয়ে প্রজেক্ট করুন. আর কোম্পানি নাম ও গুরুত্বপূর্ণ কিছু না. আমি এখানে একটি প্রজেক্ট খুলেছি যার নাম হলো MyiPhoneProject ও কোম্পানি নাম দিয়েছি test. এরপর Next দিলে দেখবেন আপনার নতুন প্রজেক্ট টি শুরু হয়ে গেছে.

উপরের ছবিটিতে দেখতে পাচ্ছেন নতুন প্রজেক্ট খোলার পর XCode যেরকম দেখা যাবে. প্রথমেই দেখবেন যে MyiPhoneProject টি navigaton area তে select হয়ে আছে এবং এর বিভিন্ন properties দেখা যাচ্ছে, যেমন App version , Device (iPhone নাকি iPad কোন device এর জন্য বানাবেন), Deployment টার্গেট(কোন version এর OS এ আপনি app টি release করবেন) , Device orientation (সোজা নাকি বাকা করে আপনার app টি চলবে), স্প্লাশ স্ক্রীন (App load হউযার সময় আপনার নাম/কোম্পানি নাম সহ যে wecome স্ক্রীন টি দেখাবে) ইত্যাদি.

এই ছবিটি হলো আপনার code লেখার জন্য প্রথম ফাইল RootViewController.h এর editing mode.

প্রতিটা ফাইল এর header গুলো interface হিসাবে ".h" ফাইল এ থাকে এবং details কোড ও implementation গুলো ".m" ফাইল এ থাকে. আপনার application স্টার্ট / termination / background mode enter / Exit সবগুলো condition কন্ট্রোল আপনি পাবেন AppDelegate ফাইলগুলোতে (এইখানে MyiPhoneProject.h ও MyiPhoneProject.m ফাইল). আর আপনার application এর মাঝে প্রথম যে window / page আছে সেটির কন্ট্রোল থাকবে RootViewController ফাইলদুটোতে এ, যা RootViewController.Xib নামের design ফাইল এর উপর কাজ করবে. সহজ কোথায়, আপনি কোনো XIB ফাইল এ একটি button টেনে বসালেন, ওই button এ ক্লিক করলে কি হবে সেটার কোড থাকে একই নামের .h ও .m ফাইল এ. নিচের ছবিটি লক্ষ্য করুন, এখানে RootViewController.Xib এর একটি screenshot দেয়া হলো, যেখানে "Hello world " লিখা একটি label আছে ও "Voila " লেখা একটি button আছে.

মনে রাখবেন, আপনি যখন প্রথম RootViewController.xib খুলবেন তখন objects tree তে শুধু একটি tableView থাকবে, আপনি tableView টি delete করে সেখানে একটি view বসাবেন প্রথমে(ডানদিকের objects library থেকে টেনে এনে বসাবেন), তারপর view টির উপর অন্যান্য button label ইত্যাদি বসাবেন(কেন tableView delete করছেন তা একটু নিচে বর্ণনা করা হবে), আরেকটি গুরুত্বপূর্ণ কাজ হলো, objects এর উপর যে "File owner " আছে, সেটিতে right click করে ধরে রেখে drag করে টেনে আনবেন objects এর এর মাঝে থাকা view এর উপর, দেখবেন outlets এর মাঝে "view " দেখাচ্ছে, সেটি অবশ্যই select করবেন

এই পর্ব এখানেই সমাপ্ত. পরবর্তী পর্বে আপনারা কোড এর বিস্তারিত ও বিভিন্ন লিঙ্কআপ গুলো দেখতে পাবেন. আশা করি পর্বগুলো নিজে চেষ্টা করে দেখবেন, তাহলে অনেক কিছু যা পরে বুঝতে পারছেন না তা সহজ হবে. সবাইকে ধন্যবাদ.

Level 0

আমি শিমুল। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 15 বছর যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 12 টি টিউন ও 153 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 0 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।

Working on iPhone development...and i just wanna be myself....


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস

Level New

ভাই আপনি যে ভাবে লিখছেন আমার বুজতে অনেক সমস্যা হয়েছে। লিখাগুলো সাজিয়ে লিখতে পারলে আর সুন্দর হত। কষ্ট করে লিখার জন্য tk .

    আসলে এত সল্প পরিসরে এর বেশি সাজিয়ে লেখা খুব কষ্টকর, হয়ত যেত, আমার ব্যর্থতা. মূলত আমি যখন শিখি তখন পুরা ৩০০ পৃষ্ঠার বই পড়েও আমার কাছে মনে হয়েছে কিছুই শিখলাম না 🙂 আর যাদের আগে থেকে programming experience নাই বা অল্প তাদের জন্য তো আরো অসুবিধা. যাই হোক, ধন্যবাদ আপনার মন্তব্যের জন্য.

আই হাভ এ আইফন……। তাই খুব মনোযোগ দিয়া পরার চেষ্টা করসি…..আমার মাথায় গোবর থাকা বশত কিছুই বুঝি নাই।
আফসুস

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

Level 0

ভাই আমরা আপনার সাথে আছি ……
আরো টিউন চাই…… (tnx)^n