অ্যান্ড্রয়েড অ্যাপ্লিকেশন ডেভেলপমেন্ট (Android Application Development)

Android এপ্লিকেশন ডেভেলপমেন্ট

(A course offered under the HEQEP Project CP-2080 being implemented at CSE, BUET)

 

এই কোর্সে যারা নিবন্ধন করবেন এবং কোর্স শুরু ও শেষের সার্ভে/কোর্স এসাইনমেন্ট জমা দিবেন, তাদেরকে সিএসই বুয়েটে বাস্তবায়নাধীন হেকেপ উপ-প্রকল্প সিপি-২০৮০ (HEQEP Project CP-2080) ও শিক্ষক.কম এর পক্ষ থেকে কোর্স কম্প্লিশন সার্টিফিকেট দেয়া হবে।

 

সার্টিফিকেট পেতে হলে আপনাদের দুইটি কাজ অবশ্যই করতে হবে

১) এখানে ক্লিক করে কোর্সে রেজিস্ট্রেশন করে নিন।

২) এখানে ক্লিক করে প্রি-কোর্স সার্ভে পূরণ করুন।

(উপরের দুইটাই করতে হবে, এবং দুইখানেই একই ইমেইল দিতে হবে। )

 

 

এই কোর্সের উদ্দেশ্য Android এপ্লিকেশন ডেভেলপমেন্টের জন্যে প্রয়োজনীয় বিষয়গুলো বিভিন্ন উদাহরণ ও এক্সপেরিমেন্টের মাধ্যমে তুলে ধরা। বিভিন্ন সময়ে প্রোজেক্ট করতে গিয়ে যে বিষয়গুলো শেখা হয়েছে, সেগুলোকেই একত্র করার চেষ্টা করেছি। ইতোপূর্বে এই কোর্স-এর রিসোর্সসমূহ Buet এবং BASIS (Bangladesh Association of Software & Information Services)-এর বিভিন্ন প্রোফেশনাল ট্রেনিং প্রোগ্রামে ব্যবহৃত হয়েছে।

আশা করছি এই কোর্স শেষে আপনিঃ

  • নিজে নিজে সম্পূর্ণ একটি এপ্লিকেশন ডিজাইন, ডেভেলপ এবং ডেপলয় করতে পারবেন।
  • কিভাবে একটা এপ্লিকেশন কাজ করে, কিভাবে এপ্লিকেশনের বিভিন্ন রকম কম্পোনেন্ট নিজেদের মধ্যে কমিউনিকেট করে, মোবাইলের বিভিন্ন হার্ডওয়্যারগুলোকে API-এর মাধ্যমে ব্যবহার করে ইত্যাদি সম্পর্কে জানবেন।
  • এন্ড্রয়েডের Communication-এর বিভিন্ন API, যেমন-Telephony, SMS, Internet Resources (HTTP)  সম্পর্কে ধারণা পাবেন এবং ব্যবহার করতে পারবেন। Location API ও Google Maps API ব্যবহার করে লোকেশন-বেসড এপ্লিকেশন বানাতে পারবেন। এছাড়া কোর্সের বিভিন্ন উদাহরণ থেকে পাওয়া ধারণাগুলো ব্যবহারে করে Camera ও multimedia-ভিত্তিক এপ্লিকেশনও তৈরি করতে পারবেন।

কোর্সের রিসোর্স হিসাবে ভিডিওর পাশাপাশি স্লাইড সমূহ এবং সোর্সকোডের লিঙ্ক দিয়ে দেওয়া হবে।

 

কাদের জন্য কোর্স?

এই কোর্সটি আপনার জন্যেঃ

  • যদি আপনি পেশাগতভাবে মোবাইল এপ্লিকেশন ডেভেলপার হতে চান।
  • যদি ফ্রিল্যান্সিং মার্কেটে মোবাইল এপ্লিকেশন ডেভেলপমেন্টের কাজ করতে চান।
  • যদি বিশ্ববিদ্যালয়ের বিভিন্ন প্রোজেক্টে বা গবেষণায় মোবাইল প্ল্যাটফর্মে কোন প্রোটোটাইপ বানাতে চান।
  • যদি আপনার মোবাইল প্ল্যাটফর্ম ভিত্তিক কোন বিজনেস আইডিয়া থাকে যেটাকে আপনি বাস্তবে রূপ দিতে চান।

এই কোর্সের জন্যে দরকার হবে জাভা (এবং অবজেক্ট ওরিয়েন্টেড) প্রোগ্রামিং ল্যাঙ্গুয়েজ সম্পর্কে প্রাথমিক কিছু ধারণা। এন্ড্রয়েড প্ল্যাটফর্মে (বা যে কোন মোবাইল প্ল্যাটফর্মে) জাভাস্ক্রিপ্ট-এর বিভিন্ন ফ্রেমওয়ার্ক ব্যবহার করেও এপ্লিকেশন তৈরি করা যায়। আপনি চাইলে শুধু নেটিভ C++ ব্যবহার করেও এপ্লিকেশন বানাতে পারেন। কিন্তু Android SDK বা Android এর বিভিন্ন API এর সবচেয়ে ভালো ব্যবহারের উপায় হল জাভা ল্যাঙ্গুয়েজ ব্যবহার করা। এই কোর্সের জন্যে জাভা প্রোগ্রামিং ল্যাঙ্গুয়েজে দীর্ঘদিন কাজ করার অভিজ্ঞতা দরকার নেই। কিছু প্রাথমিক ধারণাই যথেষ্ঠ। জাভার প্রয়োজনীয় বিভিন্ন এডভান্সড বিষয় আমরা বিভিন্ন লেকচারে কাভার করার চেষ্টা করব। কিন্তু কোর্স শুরুর আগে আশা করব আপনি নিচের প্রশ্নগুলোর উত্তর জানেনঃ

  • একটা Class এবং একটা object এর মধ্যে পার্থক্য কি?
  • Abstract class এবং Interface কি?
  • extends ও implements কি-ওয়ার্ডের মধ্যে কোনটা কখন ব্যবহৃত হয়?
  • static এবং non-static ফিল্ডের মধ্যে পার্থক্য কি? ইত্যাদি

জাভা প্রোগ্রামিং ল্যাঙ্গুয়েজের ধারণাগুলোকে ঝালাই করে নিতে শিক্ষক ডট কমের “Java, অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ও Android”- কোর্সটি ফলো করতে পারেন।

 

কোর্সে কয়টি লেকচার থাকবে?

প্রাথমিক পরিকল্পনা অনু্যায়ী ১৬টি লেকচার থাকবে।

 

লেকচারগুলোর বর্ণনা/কোর্সের সিলেবাস

প্রাথমিকভাবে ১৬টি লেকচারের পরিকল্পনা করা হয়েছে।

 

লেকচার 0- কোর্স ওভারভিউ

লেকচার ১

লেকচার ১ (ক)- শুরুর আগেঃ এন্ড্রয়েড প্ল্যাটফর্ম পরিচিতি

লেকচার ১ (খ)- শুরুঃ প্রয়োজনীয় টুলস এবং প্রথম এপ্লিকেশন

লেকচার ২

লেকচার ২ (ক)- প্রজেক্ট স্ট্রাকচার (ক্যালকুলেটর প্রোজেক্ট)

লেকচার ২ (খ)- Android Internals:সংক্ষিপ্ত পরিচিতি

লেকচার ৩

লেকচার ৩[ক]- প্রশ্নোত্তর পর্বঃ

লেকচার ৩[খ]- এপ্লিকেশনের কম্পোনেন্টসমূহ ও এক্টিভিটির লাইফসাইকেল

লেকচার ৩[গ]- মাল্টিপল স্ক্রিন এপ্লিকেশন ও নেভিগেশন

লেকচার ৪

লেকচার ৪: ইউজার ইন্টারফেস ১০১ (ক)- ইনপুট কন্ট্রোলস ও ইনপুট ইভেন্টস

অ্যান্ড্রয়েড অ্যাপ্লিকেশন ডেভেলপমেন্ট: এসাইনমেন্ট ১

এসাইনমেন্ট ১ এর মার্কস

লেকচার ৫

লেকচার ৫: ডেটা স্টোরেজঃ SQLite ডেটাবেজ

লেকচার ৬

লেকচার ৬(ক): ডেটা স্টোরেজঃ Prepopulated SQLite ডেটাবেজের ব্যবহার

লেকচার ৬(খ): ডেটা স্টোরেজঃ DatabaseHelper এর ডিজাইনের কিছু সমস্যা ও সমাধান

লেকচার ৬(গ): ডেটা স্টোরেজঃ এনক্রিপ্টেড স্টোরেজ ও SQLCipher

লেকচার ৭

লেকচার ৭(ক): ইউজার ইন্টারফেসঃ ListActivity-র ব্যবহার

লেকচার ৭(খ): ইউজার ইন্টারফেসঃ ListView-র ব্যবহার

লেকচার ৭(গ): ইউজার ইন্টারফেসঃ Customized ListView-এর ব্যবহার

লেকচার ৮

লেকচার ৮(ক): এপ্লিকেশনের কম্পোনেন্টঃ BroadcastReceiver কি এবং কিভাবে ব্যবহার করা যায়

লেকচার ৮(খ): এপ্লিকেশনের কম্পোনেন্টঃ BroadcastReceiver- এর আরো কিছু ব্যবহার

লেকচার ৮(গ): AlarmManager এর ব্যবহার

লেকচার ৯

অ্যান্ড্রয়েড অ্যাপ্লিকেশন ডেভেলপমেন্ট: লেকচার ৯(ক): এপ্লিকেশনের কম্পোনেন্টসমূহঃ ব্যাকগ্রাউন্ড সার্ভিস basics

অ্যান্ড্রয়েড অ্যাপ্লিকেশন ডেভেলপমেন্ট: লেকচার ৯(খ): ব্যাকগ্রাউন্ড সার্ভিস: Restart Behavior, Lifecycle and Bound Service

লেকচার ১০- ওয়েব সার্ভিসের সাথে Communication (HTTP GET, POST etc)

লেকচার ১১- Fragment এবং ActionBar (ইউজার ইন্টারফেস ও নেভিগেশন)

লেকচার ১২- Location API এবং Google Maps API-১

লেকচার ১৩- Location API এবং Google Maps API-২

লেকচার ১৪- Sensors এবং Gestures

লেকচার ১৫- ContentProvider কম্পোনেন্ট

লেকচার ১৬- Deployment to Google Play এবং অন্যান্য রিসোর্স

**প্রতি ২-৩টি লেকচারের পরে একটি প্র্যাকটিস হোমওয়ার্ক থাকবে।

 

কোর্স কবে থেকে শুরু হবে? কয় সপ্তাহ চলবে?

কোর্স আগামী ২১ জানুয়ারি, ২০১৪ থেকে শুরু করে ৮ সপ্তাহ ব্যাপী চলবে। প্রতি সপ্তাহে ২ টি করে লেকচার থাকবে।

 

কোর্স শিক্ষকের সংক্ষিপ্ত পরিচিতি

আমি আহসানুল করিম। ২০০৭ সালে বুয়েট(CSE) থেকে স্নাতক পর্যায়ের লেখাপড়া শেষ করি এবং কয়েকজন বন্ধুসহ Sentinel Solutions Ltd, নামের একটা স্টার্ট-আপ শুরু করি। এর পাশাপাশি পরবর্তীতে আমি বেসিস ও বুয়েটে মোবাইল এপ্লিকেশন ডেভেলপমেন্টের কয়েকটি ট্রেনিং-এ যুক্ত হই। এছাড়া মোবাইল এপ্লিকেশন ডেভেলপমেন্টের উপর বুয়েট ছাড়াও কুয়েট, চুয়েট, ডুয়েট-সহ বিভিন্ন বিশ্ববিদ্যালয়ে কিছু ওয়ার্কশপ ও ট্রেনিং প্রোগ্রামে কাজ করেছি। বর্তমানে আমি Stony Brook University-তে লেখাপড়া করছি এবং CA Technologies নামে একটি কোম্পানিতে রিসার্চ এসিস্ট্যান্ট হিসাবে মোবাইল সিকিউরিটি নিয়ে কাজ করছি।