سلام به همگی
من اپلیکیشنی رو با استفاده از فلاتر طراحی کردم، ولی هنوز منتشر نکردم. چون می خوام قبل از انتشار، این قابلیت رو پیاده سازی کنم که وقتی ورژن جدید اپ منتشر شد، به کاربر اطلاع بده که ورژن جدیدی از اپلیکیشن موجوده و در صورت رضایت کاربر او رو به صفحه به روزرسانی اپ منتقل کنه.
نمی دونم چطوری باید این ویژگی رو پیاده سازی کنم، آیا بهتره از پکیج خاصی استفاده کنم یا بدون استفاده از پکیج هم میشه این قابلیت رو پیاده سازی کرد؟
خیلی ممنون میشم اگه اطلاعاتی در این زمینه دارین در اختیارم بذارین.
میتونید با بک اند دولپرتون هم پیاده سازی کنید
من همیشه یک ارتباط با Socket Programming پیاده سازی میکنم و اگر آپدیت جدیدی برای اپلیکیشن بدم توی Socket اون رو Emit میکنم که برای همه ی دیوایس ها این پوش بشه که آپدیت جدید اومده .
حالا با Rest یا GraphQL هم بخواین پیاده سازی کنین میتونین توی Load شدن صفجه ی Main اپلیکیشنتون یک Request بزنید و از Cache سرورتون آپدیت جدید رو چک کنید با چند تا If ساده !
خیلی ممنون که پاسخ دادین آقای بشکنی..
این پکیج رو نگاه کردم، خودم هم دوباره در این باره سرچ کردم ولی به چیزی بیشتر از این پکیج نرسیدم.. ولی مساله ای که هست اینه که در این پکیج از کلاس Appcast و فریمورک Sparkle استفاده می کنه که به نظرم یک مقدار پیچیده است و استفاده ازش رو سخت می کنه و راستش من نتونستم ازش استفاده کنم..
اگه امکانش بود توضیحاتی در مورد مفاهیمی که در این پکیج مطرح شده مثل Appcast و نحوه استفاده از Sparkle بفرمایین..
بازم ممنون
خیلی ممنون و سپاسگزارم آقای پاکروان که هم کامل توضیح دادین و هم روشی که خودتون استفاده می کنین رو بیان کردین.
فقط می خواستم بگم اگه امکانش بود، لینک آموزشی یا توضیحات بیشتر در مورد این روش رو در اختیارم بذارین.
خیلی ممنون میشم.
اگه امکانش بود توضیحاتی در مورد مفاهیمی که در این پکیج مطرح شده مثل Appcast و نحوه استفاده از Sparkle بفرمایین
متاسفانه در رابطه با این موضوع اطلاعی ندارم
درمورد روش @mahdipakravan79 شما توی اسپلش اسکرین یا همون صفحه اصلی برنامه، یه تابع بنویسید که بره از توی دیتابیستون چک کنه نسخه فعلی با نسخه ای که شما توی دیتابیس گذاشتین فرق داره یا نه ، اگه فرق میکرد یه دیالوگ به کاربر نشون بدین که نسخه جدیدی از برنامه وجود داره و لینک بدین که آپدیت کنه
توی دیتابیس یه فیلد بذارین نسخه فعلی رو وارد کنین و هر دفعه نسخه برنامه عوض شد اون عدد رو یکی ببرین بالاتر
چیزی که به ذهن من میرسه اینجوریه
@elyasbeshkani
@m.sandoghdar6927
حالا این که توی کدوم مرحله از اپلیکیشن ارسال بشه رو برنامه نویس اپلیکیشن تشخیص میده چون LifeCycle اپلیکیشن رو شما میدونین مثلا من توی ReactJS درخواست های HTTP رو کلا توی ComponentDidMount میفرستم حالا توی فلاتر نمیدونم میشه کدوم مرحله .
اما یک پیشنهادی که من به شما میکنم اینه که برای این کار کوچیک از دیتابیستون استفاده نکنید چون که امکان داره Query زدن به دیتابیس زمان بر باشه و الکی یک درخواست دارید به دیتابیستون میزنید که میتونید به جای دیتابیس از Cache استفاده کنید .
البته باید هم توی دیتابیس ذخیره کنید هم توی Cache .
من همیشه دو تا مقدار رو توی دیتابیس و Cache میزارم یکی LastVersion و یکی EssentialUpdate که توی Request شما چک میکنم اگر ورژنی که فرستادی برابر این مقادیر نباشه و EssentialUpdate من True باشه به شما Dialog غیر قابل بستن نشون بده و اگر EssentialUpdate من False بود اون موقع یک دیالوگ نشون بده که آپدیت اجباری نیست ولی میتونی با این کلیک ورژن آخر رو دانلود کنی.
حالا الان به سرم زد که یک سرویس Nodejs بسازم و توی Git بزارم که توسعه دهنده ها به راحتی بتونن از این سرویس استفاده کنن
نظرتون چیه ؟
@mahdipakravan79
من منظورتون از Cache رو متوجه نشدم
در رابطه با این
الان به سرم زد که یک سرویس Nodejs بسازم و توی Git بزارم
بله خیلی خوبه ولی به شرطی که راحت ازش استفاده کرد، واسه امثال منی که از nodejs چیزی نمیدونیم :)
@elyasbeshkani
دیتابیس های NoSqlی هستش مانند Redis .
سرعت بسیار بالایی دارند و میتونیم ازشون به عنوان دیتابیس اصلی هم استفاده کنیم اما هیچ کس پیشنهاد نمیکنه به خاطر خیلی دلایل...
ولی میتونیم ازش به عنوان حافظه موقت (Cache) استفاده کنیم .
این یعنی یک دیتابیس دیگه داریم که دیتا هایی که زیاد باهاشون سر و کار داریم اما زیاد هم ضروری نیستن رو توی اون ذخیره میکنیم .
مثلا میتونیم آخرین ورژن اپلیکیشن رو توی Redis ذخیره کنیم و هر بار که اومدیم چک کنیم ورژن اپلیکیشن رو از Redis به جای دیتابیس اصلیمون استفاده کنیم .
یا مثلا میتونیم کد تاییدی که به کاربرامون Sms میکنیم و Id کاربر رو توی Redis سیو کنیم و بعد از این که کاربر کد رو وارد کردش با Redis چک کنیم و اگر درست بودش فقط یک دستور Update به دیتابیس اصلی بزنیم !
@elyasbeshkani
خیلی ممنون آقای بشکنی، بسیار راه خوب و کاربردی رو پیشنهاد دادین. مخصوصا برای من که nodejs رو بلد نیستم و php رو تازه شروع کردم، (بیشتر در زمینه front کار کردم.)
در واقع تصمیم هم گرفتم از روشی که شما پیشنهاد دادین استفاده کنم. ولی خب با توجه به صحبت هایی که آقای پاکروان فرمودند،
( پیشنهادی که من به شما میکنم اینه که برای این کار کوچیک از دیتابیستون استفاده نکنید چون که امکان داره Query زدن به دیتابیس زمان بر باشه و الکی یک درخواست دارید به دیتابیستون میزنید که میتونید به جای دیتابیس از Cache استفاده کنید.) مطمئن نیستم چه روشی بهتره؟!
ولی به هرحال واقعا ممنونم، چون اگه در حال حاضر (با دانش فعلیم) نتونم از روشی که آقای پاکروان گفتن استفاده کنم، حداقل می تونم اپ رو منتشر کنم و کارم رو راه بندازم و در نسخه های بعدی از روش های بهتر استفاده کنم.
@mahdipakravan79
خیلی ممنون آقای پاکروان که در مورد LastVersion و EssentialUpdate صحبت کردین. اصلا ذهنم به این سمت نرفته بود. اگه اپ به صورتی که گفتین پیاده سازی شه (که فقط در صورت نیاز حتما آپدیت انجام شه و در مواقع غیرضرور، انتخاب ورژن جدید به اختیار خود کاربر باشه.) خیلی حرفه ای تر و تخصصی تر میشه.
در مورد پیشنهادتون (یک سرویس Nodejs بسازم و توی Git بزارم که توسعه دهنده ها به راحتی بتونن از این سرویس استفاده کنن) که خب قطعا خیلی عالیه البته اگه فرصتش رو داشته باشین..
اگه این سرویس رو ساختین بی زحمت از طریق همین بحث و گفتگو ما رو هم در جریان بذارین.
فقط اگه امکانش بود یه راهنما و توضیح روش استفاده هم براش بذارین..
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟