আমার দেখা সবচেয়ে গোছানো ডেভেলপমেন্ট এনভারনমেন্ট হচ্ছে আইওএস অ্যাপ ডেভেলপমেন্ট। Xcode এ iOS অ্যাপ তৈরি করার জন্য সব কিছু সুন্দর করে সাজানো। যে কেউ একটু চেষ্টা করলেই আইফোন বা আইপ্যাডের জন্য অ্যাপ তৈরি করতে পারে। Xcode ফ্রিতে ডাউনলোড করে ইন্সটল করলেই ডেভেলপমেন্ট এনভায়রনমেন্ট তৈরি। এক্সকোড শুধু মাত্র ম্যাক অপারেটিং সিস্টেমে ইন্সটল করা যায়। তাই iOS অ্যাপ তৈরি করতে হলে আপনার ম্যাকবুক বা আইম্যাক লাগবে। আপনার আইফোন না থাকলেও অ্যাপনি অ্যাপ ডেভেলপ করতে পারবেন। অ্যাপ ডেভেলপ করে সিমুলেটরে রান করে দেখতে পারবেন।
iOS অ্যাপ ডেভেলপমেন্টের অফিশিয়াল প্রোগ্রামিং ল্যাঙ্গুয়েজ হচ্ছে অবজেক্টিভ সি এবং সুইফট। অবজেক্টিভ সি অনেক পুরাতন ল্যাঙ্গুয়েজ। নতুন, দারুণ এবং মডার্ণ একটা ল্যাঙ্গুয়েজ হচ্ছে সুইফট। নতুন যারা আইওএস অ্যাপ ডেভেলপমেন্ট শুরু করতে চাচ্ছেন, তারা সুইফট প্রোগ্রামিং দিয়ে শুরু করতে পারেন। সুইফট প্রোগ্রামিং ল্যাঙ্গুয়েজ শেখার জন্য অনেক রিসোর্স রয়েছে। অ্যাপল নিজেও ফ্রি ইবুক প্রকাশ করেছে। আইটিউন্সে গিয়ে The Swift Programming Language লিখে সার্চ করলে পেয়ে যাবেন।
শুরু করার জন্য সুইফটের Basic syntax, Optionals, Control Flow, Classes, Error handling এই কনসেফট গুলো ভালো করলে জানলেই হবে। এরপর সুইফট প্রোগ্রামিং এর অন্যান্য ফিচার গুলো আস্তে আস্তে শিখে নেওয়া যাবে। এসব শেখার জন্য Xcode এ রয়েছে প্লে-গ্রাউন্ড।
অ্যাপ গুলোর প্রধান দুইটা অংশ। ভিজুয়াল অংশ, যা আমরা দেখি, আরেকটা হচ্ছে লজিক অংশ বা কোড। iOS অ্যাপের ভিজুয়াল অংশ তৈরি করার করার জন্য রয়েছে স্টোরিবোর্ড। যেখানে বিভিন্ন UI ইলিম্যান্ট যুক্ত করা যায়। এই UI ইলিম্যান্ট গুলোর মধ্যে রয়েছে বিভিন্ন বাটন, টেক্সট ভিউ, টেক্সট এরিয়া, ইমেজ বাটন, ইমেজ প্লেসহোল্ডার, ভিডিও প্লেসহোল্ডার ইত্যাদি। এই UI ইলিম্যান্ট গুলো সাজানোর জন্য রয়েছে বিভিন্ন লেআউট, যেমন অটোলেআউট।
আইওএস অ্যাপ MVC বা Model View Controller সফটওয়ার ডিজাইন প্যাটার্ণ মেনে তৈরি করতে হয়। যে ভিউ গুলো আমরা স্টোরিবোর্ডে যুক্ত করেছি, সে গুলো কাজে লাগাতে ভিউকন্ট্রোলার নামক ক্লাস ব্যবহার করতে হয়। নাম থেকেই বুঝা যায় যে এই ক্লাসটি ভিউ গুলোকে কন্ট্রোল করে। এ ছাড়া ডেটা নিয়ে কাজ করলে দরকার হয় মডেল এর।
শিখতে গেলে অনেক কিছু শেখার রয়েছে। আপনাকে এক দিনে সব কিছু শিখতে হবে না। আস্তে আস্তে শিখতে পারবেন। কম্পিউটার সাইন্স এবং প্রোগ্রামিং এর প্রায় সব গুলো সেক্টরের ফাউন্ডেশন একই রকম। যার ফাউন্ডেশন তত ভালো, সে তত ভালো করতে পারে। ফাউন্ডেশন এক দিনে তৈরি হয় না। সময় লাগে। একজন ভালো আইওএস ডেভেলপার হওয়ার জন্য আপনাকে একজন ভালো প্রোগ্রামার হতে হবে।
অনেক ধরণের অ্যাপ রয়েছে। এক একটা অ্যাপ তৈরিতে এক এক ধরনের টেকনিক বা টুল ব্যবহার করতে হয়। যেমন গেম তৈরি করার জন্য রয়েছে SpriteKit বা GameplayKit, ইমেজ নিয়ে কাজ করার জন্য রয়েছে Core Image, ডেটা নিয়ে কাজ করার জন্য রয়েছে Core Data, লোকেশন ভিত্তিক অ্যাপ তৈরি করার জন্য দরকার হবে GPS sensor & Map API ইত্যাদি। আপনাকে সব কিছু শিখতে হবে না। প্রথমে সব গুলো অ্যাপে যে সব জিনিসের দরকার হয় সে গুলো জানতে হবে। এরপর আপনি কি ধরণের অ্যাপ তৈরি করবেন, ঐ ধরণের বিষয় গুলো শিখে নিবেন। যেমন গেম তৈরি করতে চাইলে SpriteKit শিখতে পারেন। একটা শেখা হয়ে গেলে পরে ইচ্ছে করলে আরেকটা শিখে নিতে পারেন। তখন নতুন আরেকটা বিষয় শেখা সহজ হয়ে যাবে, শিখতেও কম সময় লাগবে।
ভিন্ন ভিন্ন অ্যাপ তৈরি করার জন্য iOS রিলেটেড টপিক্স গুলোর পাশা পাশি অন্যান্য অনেক গুলো বিষয় জানতে হয়। যেমন কেউ যদি API রিলেটেড কোন অ্যাপ তৈরি করে, তখন তাকে HTTP protocol, REST API ইত্যাদি সম্পর্কে জানতে হয়। ডেটা নিয়ে কাজ করার জন্য iOS এ কোর ডেটা রয়েছে। এর পাশা পাশি অন্য কোন ডেটাবেজ ম্যানেজমেন্ট যেমন SQLite নিয়ে কাজ করতে হলে জানতে হয় SQL Query সম্পর্কে।
এখানেই শেষ নয়। আপনি হয়তো অনেক এডভান্স একটা অ্যাপ তৈরি করতে চাইবেন। তখন আপনাকে আর্টিফিশাল ইন্টিলেজেন্স, মেশিন লার্নিং, নাচ্যারাল ল্যাঙ্গুয়েজ প্রসেসিং, নিউরাল নেটওয়ার্ক, ইমেজ রিকগনিশন এসব জানতে হতে পারে। ভয় পাওয়ার কিছু নেই। আমরা এসব এক দিনে শিখে ফেলব না। কেউ এক দিনে বা তিন মাস বা তিন বছরে এসব শিখে না। একটা শিখার পর মনে হয়, আরে ঐটাও আমি শিখতে পারি, এরপর ঐটা শিখে। এরপর আরেকটা নতুন বিষয় শিখে।
আইওএস অ্যাপ ছোট্ট একটা টপিক্স মনে হতে পারে প্রথমে। কিন্তু শুরু করার পর কম্পিউটার সাইন্স এর সব গুলো টপিক্সই কাজে লাগানো যায়। শুধু আইওএস অ্যাপ না, ওয়েব হোক, অ্যান্ড্রয়েড হোক, সফটওয়ার হোক, কম্পিউটার সাইন্স এর মূল বিষয় গুলো সব জায়গাতেই কাজে লাগানো যায়। আমরা শুরু করি ছোট্ট একটা অ্যাপ Hello World! দিয়ে। এখানেই আমরা থেকে থাকি না। আমরা প্রতিনিয়ত শিখতে থাকি। শেখার পাশা পাশি কাজে লাগাতে থাকি।
অ্যাপল ডিজাইনের ক্ষেত্রে খুবই কঠিন। আইটিউন্সে অ্যাপ আপলোড করার পর যদি অ্যাপের ডিজাইন তাদের ডিজাইন গাইড ফলো না করে তৈরি করা হয়, তাহলে ঐ অ্যাপ পাবলিশ করা হয় না। ডিজাইন গাইডটি পাওয়া যাবে iOS Human Interface Guidelines লিখে সার্চ করে। এটা হচ্ছে ভিজুয়াল ডিজাইন গাইডলাইন। আবার কোডিং বা সফটওয়ার ডিজাইন প্যাটার্ণ ও রয়েছে। বড় প্রজেক্টে কাজ করতে গেলে ঐসব ও জানতে হবে।
শুধু আইওএস অ্যাপ ডেভেলপমেন্ট নয়, সকল প্রোগ্রামার এবং ডেভেলপারের গিট সম্পর্কে ধারণা থাকা দরকার। গিট ভার্সন কন্ট্রোল সিস্টেম। প্রজেক্টের একটা অংশ লেখার পর তা কমিট করে রাখা যায়। পরে আরো কোড লেখার পর কোন কারণে যদি মনে হয় যে আগের কোডে ফিরে যাওয়া উচিত, তখন সহজেই ফেরা যায়। এটা শুধু একটা মাত্র ফিচার। একই প্রজেক্টে অনেকেই কাজ করবে। তখন কি ভাবে কোড গুলো লেখা হবে? এরকম অনেক গুলো সমস্যা সমাধানের জন্যই গিট। সোর্স কন্ট্রোল বা ভার্সন কন্ট্রোলের জন্য আরো অনেক গুলো টুলস রয়েছে। গিট তাদের মধ্যে সেরা।
অ্যান্ড্রয়েডের মত আইটিউন্সেও গেম থেকে রেভিনিউ জেনারেট হয় সবচেয়ে বেশি। আইওএস গেম তৈরি করার জন্য এক্সকোডে SpriteKit নামক বিল্টইন ফ্রেমওয়ার্ক রয়েছে। এ ছাড়া অন্য সব ক্রস প্লাটফরম গেম ইঞ্জিন দিয়েও আইওএস এর জন্য গেম তৈরি করা যায়। সহজে গেম তৈরি করার জন্য রয়েছে অনেক গুলো ফ্রেমওয়ার্ক। জনপ্রিয় কিছু লাইব্রেরী এবং ফ্রেমওয়ার্ক হচ্ছে libGDX, Unity, Cocos2D, Construct 2, Corona SDK ইত্যাদি। এগুলো ছাড়াও আরো অনেক অনেক গেম ইঞ্জিন রয়েছে।
এ ছাড়া HTML, CSS & JavaScript জানলে আইওএস এর জন্য হাইব্রিড বা ক্রস পাল্টফরম অ্যাপ ও তৈরি করতে পারেন। ক্রসপ্লাটফরম অ্যাপ তৈরি করার জন্য অনেক গুলো প্লাটফরম রয়েছে। জনপ্রিয় কয়েকটা হচ্ছে Cordova, Ionic, React Native, Sencha, Xamarin ইত্যাদি।
অ্যাপ তৈরি করার পর হচ্ছে পাবলিশিং। পাবলিশ করতে হয় আইটিউন্সে। আইটিউন্সে অ্যাপ সাবমিট করতে হলে প্রতিবছর ৯৯ ডলার পে করতে হয় অ্যাপলকে। আপনি বাংলাদেশ থেকেও অ্যাপ সাবমিট করতে পারবেন, অ্যাপ বিক্রি করতে পারবেন। আবার অ্যাপ বিক্রি না করেও এড নেটওয়ার্ক এর মাধ্যমে আপনার অ্যাপে এড দেখিয়েও রেভিনিউ জেনারেট করেতে পারেন। এটাও অনেক লাভজনক। এ ছাড়া অ্যাপে যুক্ত করতে পারেন ইন-অ্যাপ-পারসেস সুবিধে। আপনি অ্যাপের কোন একটা বাড়তি ফিচারের জন্য ইউজারকে চার্জ করতে পারেন।
সারা বিশ্বের পাশাপাশি বাংলাদেশেও একজন আইওএস ডেভেলপারের অনেক চাহিদা। জব করার পাশাপাশি রয়েছে নিজে নিজে দারুণ কিছু করার সুযোগ। এ ছাড়া ফ্রিল্যান্সিং মার্কেটপ্লেসেও রয়েছে প্রচুর জব। জানুন, জেনে দারুণ কিছু করুন। অনেক শুভকামনা।
নিচের লিঙ্ক থেকে বাংলায় শুরু করার জন্য ব্যাসিক ধারণা গুলো পেতে পারেনঃ
খুব ইচ্ছে আছে, আগে ভালো করে Android টা শিখে নেই তারপর শুরু করবো।
আমি একটা বড় গেমস এপস বানাতে চাই