কম্পিউটার

2018-2019 সালে একটি আধুনিক Android অ্যাপ তৈরি করার জন্য একটি রোডম্যাপ

Kriptofolio অ্যাপ সিরিজ — ভূমিকা

ব্লগ পোস্টের এই সিরিজে স্বাগতম যেখানে আমি একটি আধুনিক অ্যান্ড্রয়েড অ্যাপ তৈরি করব। আমি 2018-2019 সালে উপলব্ধ সেরা সরঞ্জাম এবং অনুশীলনগুলি ব্যবহার করব। আমি এটা করছি কারণ আমি অ্যান্ড্রয়েড জগতের সব আলোচিত বিষয় কভার করতে চাই এবং আপনাকে শিক্ষা দিয়ে সেগুলিতে জ্ঞান অর্জন করতে চাই৷

আপনি যদি এই সিরিজটি অনুসরণ করেন, তাহলে আপনি শিখবেন কীভাবে স্ক্র্যাচ থেকে অ্যাপটি বিকাশ করতে হয়। এই সিরিজের প্রতিটি ব্লগ পোস্ট কিছু নির্দিষ্ট উন্নয়ন বিষয় কভার করবে যা আমি বলতে চাই। আমি একটি ভাল মানের অ্যাপ তৈরি করার এবং উন্নয়ন প্রক্রিয়া ব্যাখ্যা করার জন্য যথাসাধ্য চেষ্টা করব। সিরিজের এই প্রথম ব্লগ পোস্টটি আমরা যা করতে যাচ্ছি তার একটি প্রকল্পের রোডম্যাপ৷

সিরিজ বিষয়বস্তু

  • পরিচয়:2018-2019 সালে একটি আধুনিক অ্যান্ড্রয়েড অ্যাপ তৈরি করার একটি রোডম্যাপ (আপনি এখানে আছেন)
  • পর্ব 1:সলিড নীতিগুলির একটি ভূমিকা
  • অংশ 2:কিভাবে আপনার Android অ্যাপ তৈরি করা শুরু করবেন:Mockups, UI, এবং XML লেআউট তৈরি করা
  • ৩য় খণ্ড:সেই আর্কিটেকচার সম্বন্ধে সমস্ত কিছু:বিভিন্ন আর্কিটেকচার প্যাটার্ন অন্বেষণ করা এবং কীভাবে সেগুলি আপনার অ্যাপে ব্যবহার করবেন
  • পার্ট 4:ড্যাগার 2 এর সাথে আপনার অ্যাপে ডিপেনডেন্সি ইনজেকশন কীভাবে প্রয়োগ করবেন
  • অংশ 5:Retrofit, OkHttp, Gson, Glide এবং Coroutines ব্যবহার করে RESTful ওয়েব পরিষেবাগুলি পরিচালনা করুন

অ্যাপ:"ক্রিপ্টোফোলিও" (আগে "মাই ক্রিপ্টো কয়েন") ধারণা

প্রথমে সমস্ত অ্যান্ড্রয়েড বিকাশের প্রবণতা প্রদর্শন করার পরিকল্পনার কথা ভাবা কঠিন ছিল, কিন্তু অবশেষে, আমি এমন একটি পেয়েছি যা আমি পছন্দ করেছি। এটি আমার বিশাল আগ্রহের ক্ষেত্র - ব্লকচেইন এবং ক্রিপ্টোকারেন্সির সাথে সম্পর্কিত। আমি একটি অ্যাপ তৈরি করার সিদ্ধান্ত নিয়েছি যাতে আপনার ক্রিপ্টোকারেন্সি পোর্টফোলিও থাকবে এবং আপনাকে জানাব যে সেগুলি ফিয়াট মানিতে রূপান্তরিত করার মূল্য কত।

ব্যবহারকারীর জন্য গুরুত্বপূর্ণ বিষয় হল এই অ্যাপটি 100% বিশ্বাস নিশ্চিত করতে যাচ্ছে। এতে কোনো লগইন/রেজিস্ট্রেশন প্রক্রিয়ার প্রয়োজন হবে না। এটি সার্ভারে পাঠিয়ে ব্যবহারকারীদের ডেটা সংগ্রহ করবে না। আমার ধারণা কেউই মালিকানাধীন অর্থের বিষয়ে অনলাইনে তথ্য শেয়ার করতে স্বাচ্ছন্দ্য বোধ করবে না।

ক্রিপ্টোকারেন্সি বিনিয়োগ সম্পর্কে ব্যবহারকারীদের প্রদত্ত ডেটা শুধুমাত্র একটি স্থানীয় ডাটাবেসের মধ্যে সংরক্ষণ করা হবে যা একটি Android ডিভাইসের মধ্যে রাখা হয়। যাইহোক, ফিয়াট মানিতে রূপান্তরিত পোর্টফোলিওর মান জানতে, অ্যাপটি সর্বশেষ রূপান্তর হার পেতে ইন্টারনেট ব্যবহার করতে যাচ্ছে।

তাই আপনি প্রশিক্ষণের উদ্দেশ্যে দেখেন, এই অ্যাপের ধারণাটি দুর্দান্ত। ডেটা নিয়ে কাজ করার জন্য বিভিন্ন পদ্ধতির চেষ্টা করা টেকনিক্যালি চ্যালেঞ্জিং। আধুনিক অ্যাপ তৈরি করার জন্য এটি জানার সবচেয়ে গুরুত্বপূর্ণ দক্ষতাগুলির মধ্যে একটি। মানুষের জন্য অর্থের বিষয়টি খুবই সংবেদনশীল। আরও বেশি বিশ্বাস নিশ্চিত করার জন্য, আমি এই ব্লগ পোস্ট সিরিজ তৈরি করে এবং প্রজেক্ট কোড উপলব্ধ করে এই অ্যাপটি খোলাখুলিভাবে বিকাশ করব যাতে সবাই দেখতে পারে যে লুকানোর কিছু নেই৷

আমরা কি ব্যবহার করতে যাচ্ছি?

প্রথমত, এই অ্যাপটি তৈরি করতে, আমাদের বর্তমান মুহূর্তে বিভিন্ন ক্রিপ্টোকারেন্সির দাম সম্পর্কে জানতে হবে। এই ডেটা ইন্টারনেট থেকে সরবরাহ করা হবে কারণ এটি ক্রমাগত পরিবর্তিত হচ্ছে৷

ডেটা API:

CoinMarketCap — ক্রিপ্টোকারেন্সি মার্কেটের একটি ওভারভিউ পাওয়ার জন্য সবচেয়ে জনপ্রিয় ওয়েবসাইটগুলির মধ্যে একটি। এই ওয়েবসাইটটি একটি বিনামূল্যের API অফার করে যা যে কেউ ব্যবহার করতে পারে এবং এটি ডেটা পরিষেবা প্রদানকারী হিসাবে আমাদের জন্য পুরোপুরি ফিট করে৷

এরপর, আমি অ্যান্ড্রয়েড জগতে আমার সবচেয়ে উল্লেখযোগ্য প্রবণতামূলক জিনিসগুলির একটি তালিকা তৈরি করেছি যা এই প্রকল্পের সাথে মানানসই এবং এটিতে ব্যবহার করা উচিত৷

প্রোগ্রামিং ভাষা:

কোটলিন - অ্যান্ড্রয়েডে একটি অফিসিয়াল ভাষা। এটি অভিব্যক্তিপূর্ণ, সংক্ষিপ্ত এবং শক্তিশালী। সর্বোপরি, এটি বিদ্যমান অ্যান্ড্রয়েড ভাষা এবং রানটাইমের সাথে ইন্টারঅপারেবল।

এই নতুন ভাষা প্রবর্তনটি 2017 সালে Android এর জন্য সবচেয়ে আলোচিত বিষয়গুলির মধ্যে একটি ছিল৷ আমাদের অ্যাপটিতে লিখতে হবে। আমি আমার অতীতের ব্লগ পোস্টে কোটলিন এবং এর বৈশিষ্ট্যগুলি সম্পর্কেও কথা বলেছি "চলুন Android ক্যালকুলেটর অ্যাপ তৈরি করে কোটলিন শিখি"৷

ইন্টিগ্রেটেড ডেভেলপমেন্ট এনভায়রনমেন্ট (IDE):

অ্যান্ড্রয়েড স্টুডিও - অ্যান্ড্রয়েডের জন্য অফিসিয়াল IDE। এটি প্রতিটি ধরণের অ্যান্ড্রয়েড ডিভাইসে অ্যাপ তৈরির জন্য দ্রুততম সরঞ্জাম সরবরাহ করে। নেটিভ অ্যাপস ডেভেলপ করার জন্য এর থেকে ভালো বিকল্প আর নেই। কোনো প্রশ্ন ছাড়াই IDE-এর জন্য এটি আমাদের প্রধান পছন্দ।

প্রকল্প বিল্ড ম্যানেজমেন্ট সিস্টেম:

গ্রেডল — গ্রুভি এবং কোটলিনের উপর ভিত্তি করে একটি উন্নত সাধারণ উদ্দেশ্য বিল্ড ম্যানেজমেন্ট সিস্টেম। এটি নির্ভরতা বা অন্যান্য লাইব্রেরির স্বয়ংক্রিয় ডাউনলোড এবং কনফিগারেশন সমর্থন করে। এটি Google দ্বারা প্রস্তাবিত বিল্ড সিস্টেম। এটি অ্যান্ড্রয়েড স্টুডিওতে ভালভাবে সংহত তাই আমরা এটি ব্যবহার করব।

আর্কিটেকচার:

অ্যান্ড্রয়েড আর্কিটেকচার কম্পোনেন্টস — লাইব্রেরির একটি সংগ্রহ যা আপনাকে শক্তিশালী, পরীক্ষাযোগ্য এবং রক্ষণাবেক্ষণযোগ্য অ্যাপ ডিজাইন করতে সাহায্য করে।

মডেল–ভিউ–ভিউমডেল (MVVM) — একটি স্থাপত্য প্যাটার্ন। ধারণাটি একটি স্পষ্ট পার্থক্যের জন্য একটি নির্দিষ্ট শ্রেণীতে স্থানান্তর করে ব্যবসায়িক যুক্তি থেকে ডেটা উপস্থাপনা যুক্তিকে আলাদা করা। অ্যান্ড্রয়েড দল এই প্যাটার্নটিকে ডিফল্ট পছন্দ হিসাবে চাপ দিচ্ছে। এছাড়াও, এটি MVC এবং জনপ্রিয় MVP প্যাটার্নের বিকল্প।

আমি এই সিরিজে এই প্যাটার্ন পছন্দ, অন্যান্য আর্কিটেকচারের বিকল্পগুলি এবং কীভাবে আমাদের কোডটি সাধারণভাবে ভালভাবে সংগঠিত করা যায় সে সম্পর্কে আলাদাভাবে কথা বলব। আমরা যদি একটি সহজে রক্ষণাবেক্ষণযোগ্য কঠিন প্রকল্প তৈরি করতে চাই তাহলে এটি অপরিহার্য৷

কোরাউটিনস—একটি সঙ্গতি নকশা প্যাটার্ন যা আপনি অ্যাসিঙ্ক্রোনাসভাবে কার্যকর করা কোডকে সহজ করতে Android এ ব্যবহার করতে পারেন।

ডেটা স্থায়ীত্ব:

SQLite ডেটাবেস - এটি একটি ওপেন সোর্স SQL ডাটাবেস যা একটি ডিভাইসে একটি পাঠ্য ফাইলে অবিরামভাবে ডেটা সঞ্চয় করে। অ্যান্ড্রয়েড বিল্ট-ইন SQLite ডাটাবেস বাস্তবায়নের সাথে আসে। SQLite সমস্ত রিলেশনাল ডাটাবেস বৈশিষ্ট্য সমর্থন করে।

ভাগ করা পছন্দগুলি — অ্যাপ্লিকেশন পছন্দগুলি সংরক্ষণ এবং পুনরুদ্ধার করতে Android SDK থেকে একটি API৷ SharedPreferences শুধুমাত্র অবিরামভাবে সংরক্ষণ করা ডেটা মানগুলির সেট। এটি আপনাকে মূল মান জোড়া আকারে ডেটা সংরক্ষণ এবং পুনরুদ্ধার করতে দেয়।

লাইব্রেরি:

Android Jetpack উপাদান:

AppCompat — এটি সমর্থন লাইব্রেরির একটি সেট যা নতুন সংস্করণগুলির সাথে তৈরি করা অ্যাপগুলিকে পুরানো সংস্করণগুলির সাথে কাজ করতে ব্যবহার করা যেতে পারে৷

Android KTX — অ্যান্ড্রয়েড অ্যাপ ডেভেলপমেন্টের জন্য কোটলিন এক্সটেনশনের একটি সেট। অ্যান্ড্রয়েড কেটিএক্স-এর লক্ষ্য হল ভাষার বৈশিষ্ট্য যেমন এক্সটেনশন ফাংশন/প্রপার্টি, ল্যাম্বডাস, নাম দেওয়া প্যারামিটার, এবং প্যারামিটার ডিফল্টগুলি ব্যবহার করে কোটলিনের সাথে অ্যান্ড্রয়েড ডেভেলপমেন্টকে আরও সংক্ষিপ্ত, মনোরম এবং বাজে করা।

ডেটা বাইন্ডিং — একটি সমর্থন লাইব্রেরি যা আপনাকে প্রোগ্রামের পরিবর্তে একটি ঘোষণামূলক বিন্যাস ব্যবহার করে আপনার অ্যাপের ডেটা উত্সগুলিতে আপনার লেআউটের UI উপাদানগুলিকে আবদ্ধ করতে দেয়৷

জীবনচক্র — আপনার কার্যকলাপ এবং খণ্ডিত জীবনচক্র পরিচালনার জন্য।

লাইভডেটা — একটি পর্যবেক্ষণযোগ্য ডেটা হোল্ডার ক্লাস যা সাধারণ অ্যান্ড্রয়েড লাইফসাইকেল চ্যালেঞ্জগুলি সমাধান করতে এবং অ্যাপগুলিকে আরও রক্ষণাবেক্ষণযোগ্য এবং পরীক্ষাযোগ্য করে তোলার জন্য ডিজাইন করা হয়েছিল৷

রুম — এটি SQLite-এর উপর একটি বিমূর্ত স্তর প্রদান করে যাতে SQLite-এর সম্পূর্ণ শক্তি ব্যবহার করার সময় সহজে ডাটাবেস অ্যাক্সেসের অনুমতি দেওয়া হয়।

ViewModel — জীবনচক্র সচেতন উপায়ে UI- সম্পর্কিত ডেটা সঞ্চয় ও পরিচালনা করার জন্য ডিজাইন করা হয়েছে। ভিউমডেল ক্লাস ডেটা কনফিগারেশন পরিবর্তন যেমন স্ক্রিন ঘূর্ণন থেকে বাঁচতে দেয়।

অন্যান্য:

ConstraintLayout — নমনীয় এবং দক্ষ লেআউট তৈরির জন্য। লেআউট এডিটর লেআউটের মধ্যে একটি UI উপাদানের অবস্থান নির্ধারণ করতে সীমাবদ্ধতা ব্যবহার করে। একটি সীমাবদ্ধতা অন্য ভিউ, প্যারেন্ট লেআউট বা একটি অদৃশ্য নির্দেশিকাতে একটি সংযোগ বা প্রান্তিককরণ উপস্থাপন করে৷

কার্ডভিউ — উপাদান যা ড্রপ শ্যাডো (উচ্চতা) এবং কোণার ব্যাসার্ধ সহ কার্ড পদ্ধতিতে তথ্য উপস্থাপন করে যা প্ল্যাটফর্ম জুড়ে সামঞ্জস্যপূর্ণ দেখায়।

RecyclerView — ListView এর একটি নমনীয় এবং দক্ষ সংস্করণ। এটি ভিউগুলির বৃহৎ ডেটা সেট রেন্ডার করার জন্য একটি ধারক যা খুব দক্ষতার সাথে পুনর্ব্যবহৃত এবং স্ক্রোল করা যেতে পারে৷

তৃতীয়-পক্ষ:

ড্যাগার 2 - এটি জাভা এবং অ্যান্ড্রয়েড উভয়ের জন্য সম্পূর্ণরূপে স্থির, কম্পাইল-টাইম নির্ভরতা ইনজেকশন ফ্রেমওয়ার্ক৷

Retrofit 2 — অ্যান্ড্রয়েড এবং জাভার জন্য একটি ওপেন সোর্স টাইপ-সেফ HTTP ক্লায়েন্ট। Retrofit এর সাহায্যে, আমরা একটি API নথির মতই একটি সহজ, অভিব্যক্তিপূর্ণ ইন্টারফেসের মাধ্যমে সহজেই HTTP সংযোগ রচনা করতে পারি।

OkHttp — একটি ওপেন সোর্স আধুনিক, দ্রুত এবং দক্ষ HTTP ক্লায়েন্ট যা HTTP/2 এবং SPDY সমর্থন করে।

Gson — একটি ওপেন সোর্স জাভা লাইব্রেরি যা JSON থেকে জাভা অবজেক্টকে সিরিয়ালাইজ এবং ডিসিরিয়ালাইজ করে।

গ্লাইড — অ্যান্ড্রয়েডের জন্য একটি দ্রুত এবং দক্ষ ইমেজ লোডিং লাইব্রেরি যা মসৃণ স্ক্রলিংয়ের উপর দৃষ্টি নিবদ্ধ করে। গ্লাইড একটি সহজ ব্যবহারযোগ্য API, একটি পারফরম্যান্ট এবং এক্সটেনসিবল রিসোর্স ডিকোডিং পাইপলাইন এবং স্বয়ংক্রিয় রিসোর্স পুলিং অফার করে৷

একটি নতুন প্রকল্প কনফিগার করা

আমরা স্ক্র্যাচ থেকে এই প্রকল্প তৈরি করা হবে. তাই আমি অ্যান্ড্রয়েড স্টুডিও চালু করব, একটি নতুন প্রকল্প তৈরি করব, এটির নাম "মাই ক্রিপ্টো কয়েন" এবং "বেসিক অ্যাক্টিভিটি" নির্বাচন করব। এই মুহুর্তে, আলোচনা করার বিশেষ কিছু নেই। আমাদের লক্ষ্য হল একটি নতুন, পরিচ্ছন্ন শুরু করা এবং অতিরিক্ত বৈশিষ্ট্য (যেমন, তাত্ক্ষণিক অ্যাপ সমর্থন) যোগ করে আমাদের মনে কোনো জটিলতা এড়ানো। উন্নয়ন প্রক্রিয়া চলাকালীন আমরা চাইলে পরে কিছু যোগ করতে পারি।

শুরুতে কোটলিন ভাষা সমর্থন এবং টার্গেট API 23 অন্তর্ভুক্ত করা যাক:Android 6.0 (Marshmallow)।

কেন আমি একটি নিম্ন বা উচ্চতর API টার্গেট করছি না? চলুন মোকাবেলা করা যাক. কিছু পুরানো ডিভাইসের জন্য সমর্থন কাটা ভাল এবং বিকাশের সময় কোনও সামঞ্জস্যের সমস্যা নিয়ে চিন্তা করবেন না। এছাড়াও, আমি একটি পুরানো Nexus 7 (2013) ট্যাবলেটের একজন গর্বিত মালিক, যেটি Android 6.0.1 চালিত। আমি এটিতে আমার অ্যাপটি লাইভ পরীক্ষা করার আশা করি। ? তাই এই স্বতন্ত্র প্রকল্পের জন্য যা আমার ন্যূনতম SDK পছন্দকে প্রভাবিত করেছে।

এছাড়াও আপনি যেমন লক্ষ্য করেছেন, আমি আইডিইকে ফ্র্যাগমেন্ট সমর্থন এবং একটি ভাসমান অ্যাকশন বোতাম সহ স্বয়ংক্রিয়ভাবে তৈরি মৌলিক কার্যকলাপ যোগ করতে বলব। আমি মনে করি যে আমাদের প্রকল্পের জন্য দরকারী হতে পারে।

2018-2019 সালে একটি আধুনিক Android অ্যাপ তৈরি করার জন্য একটি রোডম্যাপ
Android স্টুডিওতে v3.0 Kotlin প্লাগইন ইতিমধ্যেই অন্তর্নির্মিত, শুধু নির্বাচন করুন সমর্থন যোগ করতে চেকবক্স৷
2018-2019 সালে একটি আধুনিক Android অ্যাপ তৈরি করার জন্য একটি রোডম্যাপ
ব্যবসার প্রয়োজনের ভিত্তিতে ন্যূনতম লক্ষ্যযুক্ত SDK নির্বাচন করুন।
2018-2019 সালে একটি আধুনিক Android অ্যাপ তৈরি করার জন্য একটি রোডম্যাপ
প্রাথমিক ক্রিয়াকলাপ চয়ন করুন যা একটি শুরুর জন্য দরকারী কোড তৈরি করবে৷
2018-2019 সালে একটি আধুনিক Android অ্যাপ তৈরি করার জন্য একটি রোডম্যাপ
কন্টেন্টটি টুকরোটিতে রাখতে চেকবক্সটি নির্বাচন করুন।

GitHub - সংস্করণ নিয়ন্ত্রণের জন্য সবচেয়ে জনপ্রিয় ওয়েব-ভিত্তিক হোস্টিং পরিষেবাগুলির মধ্যে একটি। এটি একটি ওপেন সোর্স প্রকল্প, এবং অবশ্যই, আমি এটি ব্যবহার করব৷

এই সিরিজের সমস্ত ব্লগ পোস্টে আলাদা আলাদা শাখা এবং সর্বশেষ সোর্স কোড সংস্করণের জন্য মাস্টার ব্রাঞ্চ হিসেবে এর প্রতিশ্রুতি থাকবে। এখানে আপনার জন্য সংগ্রহস্থলের একটি লিঙ্ক রয়েছে৷

GitHub-এ সোর্স কোড দেখুন

এটি শুরুর জন্য। আপনার যদি কোন প্রশ্ন থাকে, পরামর্শ, মন্তব্য করতে, অনুগ্রহ করে নির্দ্বিধায় মন্তব্যে তা করতে পারেন। এবং এখন আসুন একসাথে শিখি! পার্ট 2 পরবর্তী…?

অ্যাচিউ! পড়ার জন্য ধন্যবাদ! আমি মূলত এই পোস্টটি আমার ব্লগ www.baruckis.com-এর জন্য 12 ফেব্রুয়ারী, 2018 এ প্রকাশ করেছি৷


  1. অ্যান্ড্রয়েড অ্যাপ ভালনারেবিলিটি স্ক্যানার

  2. কীভাবে একটি অ্যান্ড্রয়েড নেভিগেশন উপাদান তৈরি করবেন

  3. প্রতিক্রিয়া নেটিভ এবং নেটিভ বেস সহ একটি অ্যান্ড্রয়েড নিউজ অ্যাপ কীভাবে তৈরি করবেন

  4. কীভাবে আপনার ফোনে একটি ওয়েব অ্যাপ তৈরি করবেন - পাইথন এবং পাইড্রয়েড অ্যান্ড্রয়েড অ্যাপ টিউটোরিয়াল