Pure Coder
785 subscribers
189 photos
30 videos
8 files
150 links
⭕️آدرس سایت:
https://purecoder.ir

⭕️گروه پرسش و پاسخ:
@purecoder_gp

⭕️پشتیبانی:
@PureCoder_support
@MohammadTaherri
Download Telegram
🔥Challenge

▶️سناریو :

توی یه قسمتی از اپ قراره که کاربر یه پسورد رو توی یه تکست فیلد وارد کنه و بعد این پسورد توی حافظه (share pref یا database یا...) ذخیره بشه (محل ذخیره سازی مهم نیست) .
🟢تکنولوژی استفاده شده برای ذخیره سازی مهم نیست و میتونه تغییر کنه.

این پسورد قبل از ذخیره سازی توی حافظه باید هش بشه. (پسورد خام توی حافظه ذخیره نمیشه)
🟢الگوریتم مورد استفاده برای هش کردن مهم نیست و میتونه تغییر کنه.

چالش :

یه ساختار طوری طراحی کنید که بخش های مختلف سناریوی بالا رو به بهترین شکل از هم جدا کنه و در مورد طرح خودتون هم توضیح بدید...

#challenge
#architecture_challenge
🔥Challenge

▶️سناریو :

اپلیکیشن دو تمه داریم (dark / light)

🔴یه قسمتی توی تنظیمات اپ کاربر باید تم مورد نظرشو انتخاب کنه و این تم توی حافظه ذخیره بشه

🔴موقع باز شدن اپ و توی MaterialApp بر اساس تم انتخابی کاربر تصمیم میگیریم که از کدوم تم استفاده کنیم.

چالش :

شما برای این سناریو کدتون رو به چه شکل میزنید؟
اگه ساختار خاصی مدنظرتون هست ارایه بدید و یا اگه به هر شکلی که این مساله رو هندل میکنید اون رو کامنت کنید...

اگه طبق کلین یا هر معماری دیگه ای هم مدنظرتون هست خیلی خوبه که تحلیلتون رو ارائه بدید 😍

⛔️راه حل های Getx ای رو کامنت نکنید 🤦‍♂🙏
⛔️هیچ ابزاری حتی بلاک یا... ارائه نکنید.
روش مدنظر هست نه ابزار و پکیج.

فک کنید جلسه مصاحبه هست و بدون هیچ پکیج و ابزاری گفته شده این رو تحلیل کنید و یه روش (حالا با یه ساختار معماری یا...) ارائه کنید.

#challenge
#architecture_challenge
🔥Challenge

▶️سناریو :

یه قسمتی از اپمون قراره که جستجو توی محصولات یا... رو پیاده کنیم.

🔴یه Search Box لازم داریم.

🔴کاربر شروع میکنه به نوشتن و همزمان باید جستجو انجام بشه...

چالش :

فرض کنید ازمون خواسته شده که هر وقت کاربر شروع کرد به نوشتن و دستشو برداشت و ۲ ثانیه طول کشید (ینی بین تایپ کردن کاربر ۲ ثانیه وقفه ایجاد شد) بلافاصله جستجو انجام شه...

🟢یعنی اگه کاربر بدون وقفه (۲ثانیه ای) به تایپ کردن ادامه داد هیچ جستجویی انجام نمیشه.

توضیح بدید که این مساله رو، به خصوص وقفه ۲ ثانیه رو چطوری هندل میکنید؟

⛔️ساختار معماری در این چالش مدنظر نظر نیست.
فقط نحوه هندل کردن این موضوع به خصوص وقفه مهم هست.
در صورت لزوم میتونید کد هم ارائه کنید.

#challenge #flutter_challenge #dart_challenge
#intermediate
🔥Challenge

🔴قسمت های مختلف اپلیکیشن به تم نیاز داریم و هر جایی به تم نیاز داشته باشیم میگیم
Theme.of(context)

🟢خب کد بالا نزدیکترین ویجت Theme رو از درخت در اختیارمون قرار میده.

🟢اگه به غیر از MaterialApp خودمون جای دیگه Theme رو توی درخت قرار نداده باشیم، احتمالا همون ویجت Theme که توسط MaterialApp توی درخت قرار داده شده رو بهمون میده.

چالش :

1⃣ایا این کار درستیه که همه جا از این قاعده استفاده کنیم؟

2⃣آیا این کار بهینه هست؟


#flutter_challenge #challenge
🔥Challenge

▶️سناریو :
میخوایم یک فرایند Sign up و Sign in شبیه به تلگرام رو انجام بدیم.

1⃣Sign up
وقتی که برای اولین بار وارد اپ میشیم و از قبل اکانت نداریم.

✔️شماره موبایل دریافت میشه و کد تایید فرستاده میشه.
✔️کد تایید اعتبار سنجی میشه.
✔️اسم و فامیل دریافت میشه و وارد اپ میشیم.

2⃣Sign in
وقتی که از قبل اکانت داریم.

✔️شماره موبایل دریافت میشه و کد تایید ارسال میشه.
✔️کد تایید اعتبار سنجی میشه و وارد اپ میشیم.

چالش :

ℹ️از دید کاربر معمولی احتمالا فرایند sign up و sign in به صورت کاملا مستقل پیاده سازی شده، توضیح بدید که ایا این فرایند ها مستقل هستند یا اینکه قسمتی از این دو فرایند به صورت مشترک پیاده سازی میشوند.

2⃣این فرایند ها رو تحلیل کنید و بگید چه api هایی و با چه جزییاتی (ساختار api) برای پیاده سازی این فرایندها نیاز دارید.

#challenge #flutter_challenge #intermediate
🔥Challenge

چالش :

تفاوت Future.delayed با Timer چیه؟ 🤔

#challenge
#dart_challenge
#begginer
#intermediate
🔥Challenge

چالش :

اگر بخوایم که یه قطعه کد بلافاصله بعد از کدهای دیگه ولی بدون تاخیر زمانی اجرا بشه چه راه حلی به ذهنتون میرسه ؟ 🤔

#challenge
#dart_challenge
#intermediate
🔥Challenge

▶️سناریو :

همون طور که میدونید توی اپلیکیشن هامون برای ردیابی کاربر یه توکن از سرور می گیریم و اون رو توی حافظه ذخیره میکینم.

🔴در واقع بعد از اینکه کاربر لاگین یا رجیستر کرد یا...، سرور به ما یه توکن میده.

🔴ما باید این توکن رو ذخیره کنیم و توی درخواست های بعدی که به سرور میزنیم این توکن رو توی هدر درخواست ارسال کنیم.

چالش :

فرض کنید یه وب سرویس برای لاگین داریم و بعد از یه لاگین موفقیت امیز، سرور یه توکن توی ریسپانس این درخواست برای ما فرستاده.

🟢حالا این توکن رو باید ذخیره کنیم.

با توجه به معماری و ساختاری که استفاده میکنید توضیح بدید که عملیات مربوط به ذخیره توکن رو چگونه در ساختار معماری خودتون هندل میکنید...

🟢توضیح بدید که عملیات ذخیره سازی توکن کدوم بخش های معماری شما رو درگیر میکنه و هر بخش چه کاری رو انجام میده.


#challenge
#architecture_challenge
🔥Challenge

چالش :

اگه بخوایم معادل سازی کنیم معادل Activity که توی اندروید نیتیو داریم، توی فلاتر چیه؟ 🤔

#challenge
#flutter_challenge
This media is not supported in your browser
VIEW IN TELEGRAM
🔥Challenge

چالش :

بنظرتون بهترین راه برای پیاده سازی قسمت کامنت ها شبیه اپ یوتیوب چیه؟ 🤔

از پایین بیاد بالا .
تا یه جای مشخصی هم بالا بیاد
فقط با زدن ضربدر بسته بشه و بره پایین.

حرکت دست روش تاثیری نداشته باشه.

#challenge
#flutter_challenge
🔥Challenge

چالش :

میخوام در مورد StatefulWidget صحبت کنم.

🟢همون طور که میدونیم ویجت ها توی فلاتر immutable هستن و StatefulWidget یه State داره میتونه mutable باشه و به این ترتیب با استفاده از اون میشه درخت ویجت رو بر اساس فیلد هایی که توی State تغییر میکنن اپدیت کرد.

🟢توی StatelessWidget یه متد build داریم که وظیفش ساختن اون قسمت از درخت هست.

🟢توی StatefulWidget ولی این متد build رو نداریم و به جاش این متد انتقال داده شده به کلاس State.

🤔توی داک فلاتر یه بحثی رو مطرح کرده و گفته اولش به این فکر میکردیم که توی StatefulWidget هم متد build رو بذاریم توی خود کلاس ویجت و نه کلاس State ولی...

حالا فرض کنید که متد build به جای کلاس State توی خود کلاس StatefulWidget بود (شبیه StatelessWidget) و البته کلاس State رو هم داشتیم و این کلاس بقیه متد های مربوط به life cycle مثل initState و... رو داشت و امکان rebuild کردن رو هم با setState داشت.

🟢دقیقا همین چیزی که الان هست فقط با انتقال متد build به کلاس StatefulWidget

حالا شما بگید اگه این اتفاق میوفتاد چه خوبی ها و یا چه بدی هایی داشت.؟


#challenge
#flutter_challenge
🔥Challenge

چالش :

▶️سناریو :

فرض کنید که میخواین توی تیم نقشه نشان استخدام بشید و کار اصلی که از شما میخوان این هست که یه SDK برای فلاتر بنویسید

همچنین به شما گفته میشه که ما الان یه دونه SDK نیتیو داریم و شما باید از همون استفاده کنید و یه دونه SDK برای فلاتر توسعه بدید...

در نهایت باید همه قابلیت های نیتیو اعم از کار کردن با نقشه و مارکر زدن توی نقشه و این ور اون ور کردن نقشه و... رو توی فلاتر هم داشته باشیم

خب پیشنهاد هاتون رو بگید که چکار میکنید و از چه روشی استفاده میکنید


#challenge
🔥Challenge

چالش:

تفاوت extends و implement رو بگید یا با هم مقایسشون کنید.

#challenge
🔥Challenge

ابسترکشن (abstraction) رو توضیح بدید.


کلاس abstract و interface و از این جور داستان ها مد نظر نیست.

مفهومش توی دنیای واقعی چیه (دنیای واقعی، خارج از برنامه نویسی)

میتونید با مثال هایی مفهومش رو توی دنیای واقعی بیان کنید و بعد بگید که برنامه نویس ها چطوری از این مفهوم الگو گرفتن .

و بعد از تحلیلتون به این سوال پاسخ بدید

آیا abstraction فقط فقط مخصوص OOP یا برنامه نویسی شی گرا هست؟ یا بقیه پارادایم های برنامه نویسی هم دارن از این مفهوم استفاده میکنن؟ چرا و چگونه؟

#challenge
#advanced
🔥Challenge

1⃣یه کلاس یوزر داریم که یه فیلد ایمیل داره و یه instance field داخل کلاس از نوع bool داریم که نشون میده ایمیل ولید هست یا نه...

چه اسمی برای این فیلد انتخاب میکنی؟

isValid
emailIsValid
isEmailValid
isValidEmail
hasValidEmail
🤔other...

2⃣یه فانکشن تک و تنها (خارج از هر کلاسی داریم) که قراره یه استرینگ به عنوان ورودی بگیره و یه bool برگردونه که مشخص میکنه این استرینگ یک ادرس ایمیل معتبر هست یا نه...

چه اسمی برای این فانکشن انتخاب میکنی؟

isValid
validate
validateEmail
emailIsValid
isEmailValid
isValidEmail
hasValidEmail
🤔other...

🔥هر گزینه ای انتخاب کردی با ذکر دلیل..
🔥میتونی بین گزینه ها مقایسه انجام بدی و بگی این چرا بده و اون چرا بهتره و... (این مدل پاسخ خیلی خوبه 😍)
🔥میتونی چند گزینه انتخاب کنی یا گزینه دیگه ای پیشنهاد بدی (با ذکر دلیل و تحلیل)


#challenge
🤔بحث

توی زبان JAVA یه مفهومی داریم به اسم inner class

به این صورت که میتونیم داخل یک کلاس , یک کلاس دیگه تعریف کنیم.

public class Order{
private Totals totals;

private class Totals{

private double total;
private double discount;
}

}

توی زبان Dart چنین امکانی وجود نداره!!

به نظر شما چنین امکانی توی زبان Dart لازم هست ؟

#challenge
🔥Challenge

🟢اگه یک متد رو داخل یه کلاس با _ پرایوت کنیم، بقیه کلاس ها یا فانکشن هایی که داخل اون فایل هستن هم میتونن از اون متد استفاده کنن.

چه کار کنیم که یک متد فقط و فقط و فقط داخل همون کلاسی که تعریف شده قابل استفاده باشه و نه کلاس ها و فانکشن های دیگه اون فایل یا library ؟

#challenge
#dart_challenge
🔥Challenge

😍یه چالش جذاب

🔥طراحی انیمیشن Loading اپ Outline

🟢دو تا نمونه قرار داد شده رو با دقت ببینید
یکی از اون ها مربوط به اپ outline هست و یکی رو هم خودم طراحی کردم

یک progress indicator شبیه به این طراحی کنید و لینک کد گیتهابتون رو توی کامنت ها بفرستید...

😍بعضی از دوستان قبلا این چالش انجام دادن که لینک پروژشون رو توی کامنت قرار میدم.

#challenge
🔥Challenge

چالش :

تفاوت exception و error توی دارت چی هست؟

throw Exception()
throw Error()

#challenge
🔥Challenge

یک سوییچ داریم (Switch) و یک لامپ (Light).

یک برنامه ای بنویسید وقتی سوییچ فعال میشه لامپ روشن بشه و وقتیکه غیر فعال میشه لامپ خاموش بشه.

کد فلاتر لازم نیست بنویسید فقط دارت(یا هر زبان دیگه فرقی نداره)

نهایتا 3 تا کلاس قراره بنویسید و چند خط کد (پس پیچیدش نکنید)(راهنمایی هم کردم)

در نهایت در مورد نحوه پکیج بندی کلاس هایی که نوشتید توضیح بدید.

تاکید میکنم کد UI لازم نیست و فقط نحوه مدل سازی و حل مساله و نحوه نگاه به مساله مهمه.

#challenge