মোবাইল অ্যাপ কীভাবে তৈরি হয়েছে তার ব্যাখ্যা এবং কিছু সিদ্ধান্ত নেওয়ার প্রক্রিয়া।
হ্যাকারনুন মোবাইল অ্যাপ( উপলব্ধ এবং এখন অনেক দিন ধরে অনুমোদনের জন্য অপেক্ষা করা হচ্ছে) পুরো হ্যাকারনুন লাইব্রেরিতে অ্যাক্সেস বাড়ানোর উদ্দেশ্যে 2023 Q4 এ প্রকাশিত হয়েছে। মোবাইল অ্যাপটি পাঠকদের সুবিধা দেয় কারণ এটি অ্যাপটির অন্যতম প্রধান উদ্দেশ্য ছিল। আমরা ওয়েবে যা করি তা প্রায় সবই মোবাইলে সহজ, কারণ এটি একটি ব্যক্তিগতকৃত অভিজ্ঞতা প্রদান করে এবং আপনি যে কোনো সময় যেকোনো জায়গা থেকে অ্যাপটির মূল বৈশিষ্ট্য উপভোগ করতে পারেন। রিলিজ 1.9, আজই লাইভ, এখনও পর্যন্ত আমাদের সবচেয়ে বড় উন্নতি, বিশেষ করে 12টি ভাষা উপলব্ধ এবং আমাদের অ্যাপ-মধ্যস্থ লেখার অভিজ্ঞতা। বিশ্বব্যাপী লেখক চিয়ার্স!
প্রধান বৈশিষ্ট্য:
পড়ুন - পুরো 100k+ গল্প HackerNoon লাইব্রেরি উপলব্ধ।
অডিও প্লেয়ার প্লেলিস্ট- নিবন্ধগুলি শুনুন এবং আপনার প্রিয় গল্পগুলির সাথে প্লেলিস্ট তৈরি করুন।
লেখা (নতুন!) - মানব সম্পাদকদের কাছে গল্প লিখতে এবং জমা দেওয়ার ক্ষমতা।
পোল এবং মন্তব্য - ভোট দিন এবং সর্বশেষ প্রযুক্তির প্রবণতা নিয়ে আলোচনা করুন।
মোবাইল অ্যাপে আপনি সেই দিনের ট্রেন্ডিং গল্পগুলির সাথে TechBeat পৃষ্ঠার মতো পৃষ্ঠাগুলি, আপনার পছন্দের বিষয়গুলির দ্বারা কিউরেট করা নিবন্ধগুলির সাথে কিউরেশন পৃষ্ঠা, বিভাগ / ট্যাগ করা পৃষ্ঠাগুলি যা বিষয় অনুসারে নিবন্ধগুলিকেও কিউরেট করে এবং আরও অনেক কিছু দেখতে পারেন৷ এই 1.9 রিলিজের সাথে, আমরা এখন শীঘ্রই অ্যাপটিতে অনুবাদ এবং লেখা যোগ করেছি, তাই এটি আরও ভাল হতে চলেছে।
বিকাশকারীর দৃষ্টিকোণ থেকে, মোবাইল অ্যাপটি অনেক বেশি প্রয়োজন ছিল। এটি প্রকাশের আগে প্রায় প্রতিটি HackerNoon পণ্য সভায় উল্লেখ করা হয়েছিল। কিছু কারণে, অনেক কথোপকথন হয়েছে:
xy বা z করার জন্য আমাদের একটি মোবাইল অ্যাপ থাকলে ভালো হবে।
একজন দেব এবং এমন একজন যিনি চ্যালেঞ্জ পছন্দ করেন, আমি সবসময় নিজেকে জিজ্ঞাসা করি কেন শুধু একটি মোবাইল অ্যাপ তৈরি করা এত কঠিন। সত্যের পরে, উত্তরটি আমি যা ভেবেছিলাম তার চেয়ে সহজ ছিল।
কীভাবে এটা ঘটেছিল?
দেখা যাচ্ছে যে আমি কয়েক বছর আগে আয়নিক ফ্রেমওয়ার্ক জুড়ে এসেছি এবং ভেবেছিলাম এটি আকর্ষণীয় কিন্তু এটি পরীক্ষা করার জন্য সত্যিই কোনও কোড লিখেনি। সেই সময়ে, ফ্রেমওয়ার্কটি শুধুমাত্র অ্যাঙ্গুলারের সাথে কাজ করেছিল যা সম্ভবত এটি চেষ্টা করার ক্ষেত্রে আমার সিদ্ধান্তকে প্রভাবিত করেছিল, এই বিবেচনায় যে আমি একজন প্রতিক্রিয়া বিকাশকারী। তখন, আয়নিক ততটা জনপ্রিয় ছিল না, এবং শুধুমাত্র একটি হাইব্রিড অ্যাপ্লিকেশন তৈরি করার ধারণাটি অনেকের মনে মানায় না। যাইহোক, একবার যখন একটি পণ্যের মিটিংয়ে, তারা মোবাইল অ্যাপ সম্পর্কে কথা বলছিলেন এবং আমি সিদ্ধান্ত নিয়েছিলাম যে Ionic-এ ফিরে তাকাব এবং অনুমান করব কি, তারা তাদের কাঠামো Vue এবং প্রতিক্রিয়াতে প্রসারিত করেছে যা হয় বা, আমি সত্যিই স্বাচ্ছন্দ্য বোধ করি।
আমি প্রথম কাজটি করেছি ফ্রেমওয়ার্ক ইনস্টল করা এবং একটি দ্রুত অ্যান্ড্রয়েড অ্যাপ তৈরি করা। আমি কত সহজ এবং বোঝার প্রক্রিয়া দ্বারা প্রভাবিত ছিল. শুধুমাত্র কয়েকটি উপাদান ড্রপ করতে সক্ষম হওয়া এবং একটি মোবাইল অ্যাপ আছে যা চিন্তা করার জন্য পাগল, কিন্তু Ionic এটি সম্ভব করেছে শুধুমাত্র কিছু কমান্ড চালানো এবং iOS এবং Android সহ একাধিক প্ল্যাটফর্মে একটি অ্যাপ তৈরি করা। আমি ফ্রেমওয়ার্কের সাথে সত্যিই স্বাচ্ছন্দ্য বোধ করেছি এবং সেই মুহুর্তে আমি এক ধরণের নতুন যে আমি চ্যালেঞ্জের মুখোমুখি ছিলাম। কাকতালীয় ঘটনাটি ঘটেছিল, যখন আমি প্রথম হ্যাকারনুন মোবাইল অ্যাপ তৈরির বিষয়ে একটি নতুন প্রকল্প দেখেছিলাম। আমি দ্রুত পিক আপ এবং এটি কাজ শুরু.
প্রক্রিয়া
আমি প্রথমে আমার লিনাক্স মেশিনে Ionic ইনস্টল করে শুরু করেছি, একটি একেবারে নতুন অ্যাপ তৈরি করেছি এবং তাদের কিছু ডকুমেন্টেশন নিয়ে গবেষণা করেছি। বিকাশ শুরু করার জন্য এই ম্যাজিক কমান্ডগুলি চালান: npm install -g @ionic/cli ionic start // create ionic serve // রান স্থানীয়ভাবে এটির সাথে খেলার পরে, আমি এই নতুন প্রকল্পে HackerNoon ওয়েব সংস্করণ থেকে উপাদানগুলি সরানো শুরু করেছি। কয়েক ঘন্টার মধ্যে আমি কয়েকটি পেজ তৈরি করেছি। হ্যাকারনুন ডিজাইনাররা ( @Devans এবং @Kien ) সত্যিই একটি দুর্দান্ত কাজ করেছেন সবকিছু মিলিয়ে এবং অ্যাপটিকে একটি ভাল সারমর্ম এবং চেহারা দিয়েছেন। আইওনিক টাইপস্ক্রিপ্ট ব্যবহার করে, তাদের জন্য ভাল, ব্যতীত এটির বেশিরভাগই তৈরি করা হয়েছিল যেভাবে আপনি প্রতিক্রিয়াতে বিকাশ করবেন। আমার লিনাক্স মেশিনটি একটি ভাল সূচনা পয়েন্ট যেখানে আমি অ্যান্ড্রয়েডের উপর ভিত্তি করে প্রায় 50% অ্যাপ তৈরি করেছি, কিন্তু iOS সংস্করণ পরীক্ষা করতে খুব কষ্ট হচ্ছিল। লিনাক্সের সাথে একটি কাজ ছিল যা একটি ভার্চুয়াল মেশিনে ম্যাক ওএস ইনস্টল করা, তারপরে এক্সকোড ইনস্টল করা এবং তারপরে আইওএস-এ অ্যাপটি পরীক্ষা করা, কিন্তু তারপরে আমি পিছিয়ে যাওয়া এবং ধীরগতির সাথে মোকাবিলা করতে পারিনি। একবার আমি অ্যাপের অগ্রগতি নিয়ে আত্মবিশ্বাসী ছিলাম, আমি iOS এর জন্য বিকাশ শুরু করার জন্য আমার MacBook Pro আপগ্রেড করার সিদ্ধান্ত নিয়েছি। এখনও অবধি, এটি একটি ভাল সিদ্ধান্ত ছিল কারণ এটি আমাকে অনেক স্তরে সমস্ত প্ল্যাটফর্মের জন্য বিকাশের গুরুত্ব দেখিয়েছে, যদিও আমি এখনও লিনাক্স পছন্দ করি। তাই আমার নতুন MacBook Pro এর সাথে এই অ্যাপটিতে কাজ করা সত্যিই চোখ খোলা ছিল।
চ্যালেঞ্জ
এটি পরাস্ত করার চ্যালেঞ্জ পূর্ণ একটি শেখার অভিজ্ঞতা ছিল. এমনকি সহজতম বাগটি বের করতে কয়েক ঘন্টা সময় নেয়। আনন্দের সাথে, আমি যতবার আটকে গিয়েছিলাম ততবার নথিভুক্ত করছিলাম, যাতে পরের বার এটি না ঘটে। এই প্রকল্পের প্রধান বিকাশকারী হওয়ার কারণে, আমাকে অ্যাপের পরিকাঠামোর পরিপ্রেক্ষিতে কিছু কঠিন পছন্দ করতে হয়েছিল, সম্পূর্ণ এপিআই তৈরি করতে হয়েছিল এবং একই সাথে Ionic শিখতে হয়েছিল এবং এতে অভ্যস্ত হতে হয়েছিল। এখানে কিছু প্রধান চ্যালেঞ্জ ছিল:
ডিবাগিং/পরীক্ষা: সমস্ত devs জানে যে কোনও স্তরের একটি অ্যাপ্লিকেশন বিকাশ করার সময় পরীক্ষা কতটা গুরুত্বপূর্ণ। মোবাইল অ্যাপে কাজ করার সময়, আমি প্রথমে ওয়েবে বিকাশ শুরু করি। আমি আসলে ভেবেছিলাম যে মোবাইলে পরীক্ষা করার জন্য আমাকে প্রতিবার স্থাপন করতে হবে। আমি কিছুটা সময় ব্যয় করেছি কারণ আমি জানতাম না যে আয়নিকের মোবাইলে কিন্তু স্থানীয়ভাবে পরীক্ষার একটি উপায় আছে। তাই বেশিরভাগ সময়, আমার সিএসএস বা কিছু ইভেন্ট হ্যান্ডলার ভেঙে যাবে কারণ এটি একই বাস্তবায়ন নয়। স্থানীয়ভাবে মোবাইলে পরীক্ষা করার পর প্রক্রিয়াটি বেশি তরল হওয়ায়।
বিজ্ঞপ্তি : যখন আমি প্রথম মোবাইল অ্যাপে কাজ শুরু করি, তখন আমি দুটি আকর্ষণীয় প্লাগইন দেখেছিলাম যা আমি বিজ্ঞপ্তিগুলির জন্য ব্যবহার করতে পারি যেগুলি ছিল স্থানীয় বিজ্ঞপ্তি এবং পুশ বিজ্ঞপ্তি৷ স্থানীয় বিজ্ঞপ্তিগুলি, ব্যাকএন্ড সার্ভারের সাথে ইন্টারঅ্যাক্ট না করেই অ্যাপে স্থানীয়ভাবে পরিচালিত বিজ্ঞপ্তিগুলি। আমি স্বয়ংক্রিয়ভাবে ভেবেছিলাম যে স্থানীয় বিজ্ঞপ্তিগুলি পছন্দ বাস্তবায়নের জন্য সঠিক এবং দ্রুত, তাই আমি এটিকে বেশ সহজভাবে প্রয়োগ করেছি। যাইহোক, আমরা যা খুঁজছিলাম তা ছিল না। পুশ বিজ্ঞপ্তিগুলি যাওয়ার উপায় ছিল, তবে এটি বাস্তবায়ন করা কিছুটা কঠিন ছিল এবং এটির জন্য অতিরিক্ত সেট আপ এবং একটি ব্যাকএন্ড সার্ভার প্রয়োজন। আমরা প্রতিদিন দুপুরের পর্বত সময়ে শুধুমাত্র একটি বিজ্ঞপ্তি পাঠিয়ে এটিকে সহজ রাখি, যদিও আমরা একটু বেশি পাঠাতে চাই। আপনার যদি মোবাইল অ্যাপ থাকে এবং নোটিফিকেশন গৃহীত হয়, তাহলে আপনি হ্যাকারনুনের দিনের সেরা গল্প সম্পর্কে এই ধরনের বিজ্ঞপ্তি পাবেন।
প্লেলিস্ট/প্লেয়ার : এটি অ্যাপটির অন্যতম প্রধান বৈশিষ্ট্য। এটি তৈরি করা আনন্দদায়ক কিন্তু ডিবাগ করা বেদনাদায়ক কারণ এটিতে অনেকগুলি কার্যকারিতা রয়েছে৷ পরীক্ষা করার সময় প্রতিটি বোতাম যা করতে চায় তা করে তা নিশ্চিত করা। আমি মোবাইলে কাজ করার জন্য একাধিক অডিও প্লাগইন চেষ্টা করেছিলাম বলে স্টোরি অডিও প্লেয়ার তৈরি করা অদ্ভুত ছিল। আমি যে প্রধান সমস্যাটির সম্মুখীন হয়েছিলাম তা হল আমি প্লেয়ার তৈরি করেছি কিন্তু অডিওটি প্লে হয়নি বা অডিওর মান সত্যিই খারাপ ছিল। কখনও কখনও অডিও উন্নয়ন মোডে কাজ করবে কিন্তু উৎপাদনে নয়। আসলে যা কাজ করেছিল তা ছিল নেটিভ অডিও এপিআই। এর পরে এটি সোজা ছিল, শুধু উত্স url পাস করুন এবং অ্যাকশন বোতামগুলি যুক্ত করুন৷ প্লেলিস্টটি একটি চ্যালেঞ্জের কম ছিল কারণ একটি প্লেলিস্ট তৈরি করতে ডাটাবেসে গল্পগুলি সংরক্ষণ করা প্রয়োজন। প্লেলিস্টটি ক্রমানুসারে রাখা, ভয়েস পরিবর্তন করা, পুনরায় অর্ডার করা এবং আপনার প্লেলিস্টে গল্পের একটি সম্পূর্ণ গ্রুপ যুক্ত করার ক্ষমতার মতো কার্যকারিতাগুলি বাস্তবায়িত করার জন্য সত্যিই দুর্দান্ত ছিল। হয়তো ভবিষ্যতে আমাদের কাছে সর্বজনীন প্লেলিস্ট থাকতে পারে যেখানে আপনি অবশ্যই তাদের উদ্বেগের সাথে অন্য লোকেরা কী শুনছেন তা দেখতে পাবেন। আমার প্লেলিস্ট এখন কেমন দেখাচ্ছে:
আয়নিক আপডেট বনাম iOS আপডেট বনাম এক্সকোড আপডেট: আমি মনে করি এটি সবচেয়ে হতাশাজনক অংশ ছিল, যখন আপনার কাছে একটি সত্যিই চমৎকার সংস্করণ 100% কাজ করে এবং তারপর বুম করলে এটি কাজ করে না, বা এটি লোড হয় না, বা এটি লগ হয় না ইন. আমার মনে আছে যে ইনপুট ফর্মগুলি Ionic-এ কাজ করছে কিন্তু তারপর Ionic সংস্করণগুলি আপগ্রেড করা হয়েছে এবং ইনপুট ইভেন্টগুলি কাজ করছে না, তাই আমি মনে করি যে ত্রুটিগুলি ব্যাকএন্ডে ছিল৷ অথবা অ্যাপটি পরীক্ষা করে বুঝতে পারি যে আমি আর সাফারিতে লগগুলি দেখতে পাচ্ছি না কারণ আমি আমার ফোন আপডেট করেছি এবং সেই বৈশিষ্ট্যটি আর অ্যাপল দ্বারা সমর্থিত নয়। অথবা অ্যাপটির একটি নতুন সংস্করণ তৈরি করার চেষ্টা করা হয়েছে কিন্তু ব্যর্থ হয়েছে কারণ xcode আপডেট হয়েছে এবং আমার কোডে কিছু পরিবর্তন করা দরকার। যে সত্যিই হতাশাজনক মুহূর্ত এবং সময় গ্রাসকারী ছিল. অন্তত এটি শুধুমাত্র উন্নয়নের সময় ঘটেছে.
অ্যান্ড্রয়েডে গুগল লগইন: এটি অ্যাপের একটি বাগ, অ্যান্ড্রয়েড ব্যবহারকারীরা আক্ষরিক অর্থে গুগল পদ্ধতি ব্যবহার করে লগইন করতে পারেনি। এটি একটি পাগল বাগ কারণ এটি উত্পাদন ঘটেছে. যদিও এটি সত্যিই সহজ ছিল, মোবাইল বিকাশের ক্ষেত্রে এটি শেখার প্রক্রিয়ার অংশও ছিল। দেখা যাচ্ছে যে গুগল লগইনের জন্য দুটি ধরণের কী প্রয়োজন, একটি ফায়ারবেসে সেট আপ করা ডেভেলপমেন্টে এবং আরেকটি উত্পাদনের জন্য যা ফায়ারবেসে সেট আপ করতে হবে৷ এখানে সমস্যা হল যে গুগল প্লে স্টোর আসলে একটি প্রোডাকশন কী তৈরি করে যা ডেভেলপমেন্ট কী প্রতিস্থাপন করতে হবে। আমার জানার কোন উপায় ছিল না এবং এর ফলে সমস্যাটি কী ছিল তা বের করার চেষ্টা করার জন্য ঘণ্টার পর ঘণ্টা কেটে গেছে। একবার আমি বুঝতে পেরেছিলাম যে কীগুলি প্রতিস্থাপন করা দরকার তা ঠিক করতে 30 সেকেন্ডের কম সময় লেগেছে।
লেখা: … এটি সত্যিই একটি রোলার কোস্টার ছিল। মূল সমস্যাটি ছিল কেবল অনুসন্ধান এবং সম্পাদক যা মোবাইল এবং আয়নিক এ কাজ করবে। আমি প্রায় 20 টি ভিন্ন সম্পাদকের চেষ্টা করেছি, এবং ওয়েবে পুরোপুরি কাজ করার সময় বেশিরভাগ মোবাইলে ব্যর্থ হয়েছি। কেউ কীবোর্ড লোড করেনি, কেউ কেউ বিভিন্ন অক্ষর লেখেন যা চাপা হচ্ছে, এবং কেউ কেউ ইনস্টল করতে পারেনি। যখন আমি অবশেষে কাজ করে এমন একটি খুঁজে পেয়েছি, তখন টাইপ করার সময় এটি সাপার ল্যাজি ছিল তাই এটি সত্যিই ক্লান্তিকর ছিল। সৌভাগ্যক্রমে, আমি এটিকে অন্য সম্পাদক, QuillJS(!) এ একটি শট দিয়েছি এবং এটি প্রত্যাশার চেয়ে ভাল কাজ করছে বলে মনে হচ্ছে। এটা আসলে সম্পাদক আমি এই গল্প লিখতে ব্যবহার করছি. এই বৈশিষ্ট্যটি মূলত নতুন আপডেটগুলি প্রকাশ করা থেকে বিরত রাখে কারণ আমরা সত্যিই ব্যবহারকারীদের মোবাইল অ্যাপে লেখার অনুমতি দিতে চেয়েছিলাম।
আমি কি পছন্দ করেছি?
পুরো বিকাশ প্রক্রিয়াটি খুব দুর্দান্ত ছিল এবং আমি অবশ্যই এটিকে শট দেওয়ার জন্য অন্যান্য বিকাশকারীদের সুপারিশ করছি। আমি অ্যাপটির সাথে যত বেশি কাজ করেছি ততই আমি এটিতে অভ্যস্ত হয়েছি এবং বিকাশ প্রক্রিয়ার সাথে আরও আরামদায়ক হয়েছি। আমার ফোনে অ্যাপটি দেখতে এবং সমস্ত পৃষ্ঠাগুলিতে নেভিগেট করা সত্যিই সন্তোষজনক ছিল। আমার কাছে সবচেয়ে চিত্তাকর্ষক বৈশিষ্ট্যটি ছিল প্লেলিস্ট/প্লেয়ারটি হ্যাকারনুনের অর্গানিক কিছু এবং অ্যাপটির অন্যতম প্রধান বৈশিষ্ট্য। পুশ বিজ্ঞপ্তিগুলি এমন একটি বৈশিষ্ট্য যা আমি সম্ভবত সবচেয়ে বেশি শিখেছি কারণ এটি সম্পূর্ণ নতুন কিছু ছিল এবং আমি দেখতে পেয়েছি যে মোবাইল বিজ্ঞপ্তিগুলি কীভাবে কাজ করে এবং এই ধরনের জ্ঞান ভবিষ্যতে অন্যান্য বৈশিষ্ট্যগুলিতে অবশ্যই প্রয়োগ করা যেতে পারে।