دوره مجازی اندروید (جلسه 17): کار با Shared Preferences

- visibility ١٩ mode_comment

به نام خدا، سلام، در این جلسه می خواهیم در مورد shared preference صحبت کنیم. shared preference یک روش ذخیره سازی اطلاعات ساده در اندروید هست. در این جلسه قسمت پروفایل اپ را که قبلا ایجاد کرده بودیم را کامل تر می کنیم. زمانی که کاربر روی دکمه ی ثبت اطلاعات کاربر کلیک می کند، اطلاعات داخل shared preference ذخیره می شود و زمانی که دوباره به صفحه بازگردیم اطلاعات به نمایش در می آیند.

مطالب مطرح شده در این جلسه عبارتند از :

  • SharedPreference چیست؟
    • آشنایی با ساختار SharedPref
    • درخواست ایجاد SharedPref
    • اضافه کردن مقدار به SharedPref
    • ذخیره مقادیر مختلف در Sharedpref
    • دریافت مقادیر از Sharedpref
info توجه

این مطلب یک جلسه از دوره آموزش اندروید می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.

ثبت نام در دوره آموزش اندروید

comment دیدگاه کاربران
مجید زارعی هوشیار

سلام
استاد شاهینی خسته نباشید…. عالی بود
فقط یه سوالاتی دارشتم ازتون اونم اینکه این sharaedPerfrence داده هایی که ذخیره میکنه تا کی می توانیم به این داده ها دستیابی داشته باشیم؟ تا موقعی که App تو گوشی نصب باشه….؟بعد از اینکه App حذف بشه اطلاعات ازبین میرن؟ اگر تعداد User بیشتر باشه از دیتابیس باید استفاده کنیم؟

سعید شاهینی

سلام، این داده ها تا هر زمانی که کاربر اپ رو پاک نکنه یا clear data نکنه، وجود دارند. اگر مجموعه ای از مثلاً user ها داشته باشیم باید از database استفاده کنیم.

جعفر پیشدادی

سلام برای دستیابی به داده ها مثل داده های این جلسه در شبیه سازی با موبایل دسترسی یا تنطیم خاصی وجود دارد

سعید شاهینی

سلام، خیر

hamidreza khajeh

استاد خسته نباشید خیلی عالی بود
یه سوال برای من پیش اومد
توی profile activity

از یوزر که نمونه گرفتید به این شکل گرفتید:
();

اما از UserSharedPrefManager
که گرفتید به این شکل بود:

چرا؟!
و اینکه تفاوتشون چیه؟!
و اینکه چه موقع باید از این و چه موقع از اون استفاده کنیم!
ممنون

سعید شاهینی

سلام، تکه کد اول زمانی استفاده می شه که بخواهیم اطلاعات کاربر جدیدی رو وارد کنید. شما تکه کد دوم زمانی استفاده می شه که بخوایم اطلاعات کاربر رو از SharedPref بگیریم.

ح حسین

بهترین و امن ترین حالت برای ارتباط بین اپ موبایل و وب سرویس چی هست ؟
فرض کنید وب سرویس ما نیازه بر اساس یوزرهایی که role خاصی دارند ، کاری انجام دهند ( مثل ثبت محصول یا کالا توسط مدیر ) و همین امر برای کاربران عادی انجام نشود ! حالا چطور باید وب سرویس رو متوجه کنیم که این کاربر مدیر هست ؟ آیا باید یوزر و پاس کاربر جهت تایید شدن به وب سرویس ارسال شود ؟ اگر آره بهترین و امن ترین حالت چگونه هست ؟
با تشکر

سعید شاهینی

سلام، برای این کار باید حتما یوزنیم یا ایمیل و پسورد به سرور برای تشخیص هویت در هر درخواست مهمی ارسال شود(روش دیگر جلوتر توضیح داده خواهد شد) ، سرور در این حالت برای امن بودن باید ssl داشته باشه ولی می شه خودمون رمزگذاری کنیم که البته به اندازه استفاده از ssl امن نیست. زمانی که سرور ایمیل و پسورد رو گرفت اون رو چک می کنه و می بینه آیا اون کاربر اجازه اون عمل درخواست کرده شده رو داره یا خیر.
روش دیگری هم هست که می شه زمانی که کاربر یک بار password خودش رو داد یک token دریافت کنه و تا مدت مشخصی بتونه با اون token کارهای خاصی که توی حوزه ی اختیاراتش هست انجام بده.

ح حسین

بسیار عالی استاد
لطف میکنید از این دو روش که فرمودین
برای هر کدوم لینک به مثال همراه با کد بدین ؟
ممنونم

سعید شاهینی

سلام این موضوع بحث بسیار گسترده ایه و پراکنده اس، باید داخل اینترنت در رابطه با این موضوع سرچ کنید و مقاله های مختلف مطالعه کنید

ح حسین

برای چنین مورد مهمی استفاده از sharedpreferences توصیه نمی شود ؟
روش account manager چطور ؟ میتونه جوابگو باشه ؟
یا همین روشی که فرمودین بهتره ؟

سعید شاهینی

اکانت منیجر برای این استفاده می شه یوزر نیم و پسورد کاربر یک جای امن ذخیره می شه و اتفاقا بسیار مفیده ولی بخش عمده ی امنیت کلاینت به روش پیاده سازی api سمت سرور ربط داره

ح حسین

لطفا جواب سوالات رو هم با تاخیر هفتگی یا ماهانه ندین
ممنونم

ح حسین

سوال دیگه هم برای امن کردن برنامه تا حد ممکن برنامه در سمت کلاینت ، لطف میکنید یک چک لیست بدین ؟
تا طی انجام این چک لیست بتونیم حداکثر امنیت برنامه رو تامین کنیم
ممنونم

سعید شاهینی

قول نمی دم اما اگه فرصت کردم اضافه می کنم.

amir.ramin76

سلام
توی ویدیو گفتید که پسورد رو در shared preferences ذخیره نکنیم، سوالی که برام پیش اومده اینه که پس کجا باید ذخیره بشه؟اصلا نیاز به ذخیره کردنش هست؟

سعید شاهینی

سلام، استاندارد های مختلفی برای Authentication و Autherization وجود داره. یکی از استاندارد های خیلی معروف در این زمینه oAuth v2 هست که می تونید راجع بهش مطالعه کنید. به جای ذخیره سازی پسورد، یه توکن از سرور می گیرن و اون توکن رو ذخیره می کنن و همراه با درخواست هاشون Token رو سمت سرور ارسال می کنند. این روش نیاز به پیاده سازی سمت سرور داره.

amir.ramin76

برای استفاده از oAuth2 نیاز به استفاده از فریمورک یا کتابخانه خاصی هست؟
سوال دیگه ای که دارم اینه که پیاده سازی API با وردپرس کار درستیه؟

سعید شاهینی

سلام٬ oauth یک استاندارد هست و می تونید خودتون هم پیاده سازی کنید. اما برای زبان های برنامه نویسی مختلف فریمورک های متفاوتی وجود داره.
پیاده سازی api با وردپرس چرا درست نباشه! وردپرس یک cms با زبان php هست که خیلی خوب پیاده سازی شده. درست پیاده سازی کردن api مهمه٬ زبانی که باهاش کار می کنید یه وسیله اس

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.