atVSG

0011001000110100

وحید امیری مطلق

توسعه دهنده وب و موبایل

معرفی کلاس های jDateTimePlus و EasyDateTime برای PHP


jDateTimePlus

کلاس jDateTimePlus بر پایه ی نسخه 2.2.0 کلاس jDateTime هست. هدف از نوشتنش برطرف کردن بعضی مشکلات کلاس قبلی و به روز کردن الگوریتم توابع تبدیل شمسی به میلادی و میلادی به شمسی با استفاده از توابع jdf 2.60 بود. کلاس jDateTime توسط سالار کابلی ساخته شده. انصافا کار خوبی کرده و مستندات خوبی هم داره به خاطر همین دیگه من تکرار مکررات نمیکنم و برای نحوه ی استفاده میتونید مستندات سالار رو در وبلاگش بخونید.

صفحه jDateTimePlus در گیت هاب + راهنمای نصب و استفاده

اما برسیم به اصل مطلب. کلاس EasyDateTime!

 

EasyDateTime

 

EasyDateTime در واقع یک کلاس سطح بالا برای مخفی کردن اون پیچیدگی هایی از کلاس jDateTimePlus هست که عملا برای کاربر نهایی استفاده کننده گیج کننده هستن و غیر ضروری. این یک کلاس آماده برای ورورد و استفاده سریع و راحت در اپ های واقعیه. تعداد زیادی از متود های jDateTimePlus پارامتر Timezone رو دریافت میکنن که این کار کاملا بیهوده هست و نیازی بهش نیست. خیلی از متود ها هم تعریف دقیقی از کارکردشون در دنیای واقعی (!) ارائه نمیکنن و مثلا به ندرت به طور مستقیم مورد استفاده قرار میگیرن. این کلاس علاوه بر موارد قبلی، ظاهر بسیار تمیزی داره و همچنین یکی دو متود جدید هم معرفی میکنه که کاملا کاربردی هستن. (تبدیل DateTime شمسی به میلادی و فرمت اون، تبدیل Timezone ها به یکدیگر)

صفحه ی EasyDateTime در گیت هاب + راهنمای نصب و استفاده

توضیحات در ادامه مطلب.



تبدیل کردن اعداد انگلیسی به فارسی و برعکس در سی شارپ


خیلی پیش میاد که بخواهید اعداد انگلیسی موجود در یک متن رو به فارسی تبدیل کنید یا برعکس اون. در این پست 2 اکستنشن متود برای این کار معرفی میکنم.

میتونیم عمل تغییر اعداد رو با فراخوانی پیاپی متود replace روی یک رشته انجام بدیم.



اسلاید های “Cross-Platform App Development”


اینجا میتونید اسلاید های ارائه ی Cross Plaform App Development که کاری از وحید امیری مطلق و یزدان تکبیری هست رو دانلود کنید. براساس مجوز CC-BY-4.0 ارائه میشود.

دانلود


تغییر زبان اپ در زمان اجرا در Xamarin.Android


android-localization_298x244یکی از ویژگی های مثبت اندروید پشتیبانی کامل اون از محلی سازی است. اندروید با توجه به اهمیت پشتیبانی از زبان های مختلف از ابتدا با ویژگی های منحصر به فردی همراه شده. به طور پیش فرض شما باید در تمام قسمت های برنامه ی خودتون و هر جا نیاز به استفاده از یک رشته (string) دارید به جای hard code کردن اون ها، از resource ها استفاده کنید. برای زبان های مختلف فولدر های مختلفی رو در برنامه در نظر بگیرید. خود سیستم عامل در زمان اجرای برنامه با توجه به تنظیمات دستگاه، فایل های زبانی رو load میکنه. مثلا اگر من یک فولدر به نام values و یکی دیگه به نام values-fa داشته باشم، و زبان دستگاه انگلیسی (یا یک زبان دیگر که فولدر خاص اون در برنامه ی من موجود نیست) باشه، اندروید فایل های درون پوشه ی values رو load میکنه. به همین صورت در صورتی که زبان دستگاه فارسی باشه، فایل های درون values-fa لود میشن.

این خیلی خوبه اما شاید گاهی اوقات بخواهید یک اپشن (option) در برنامه داشته باشید که به کاربر اجازه ی تغییر زبان برنامه رو بدون نیاز به تغییر زبان دستگاه بده. چیزی که در سیستم عامل ویندوز (Windows) خیلی استفاده میشه. این کار در اندروید هم امکان پذیر هست.



جلوگیری از بارگذاری مجدد دیتا در Activity در Xamarin.Android هنگام تغییر Orientation


xamarin

سیستم عامل اندروید به طور پیش فرض هنگام چندین اتفاق Activity رو Restart میکنه. یکی از این وضعیت ها تغییر وضعیت دستگاه از حالت Portrait به Landscape و برعکس و همچنین در نسخه های جدید تر، تغییر سایز صفحه نمایش هست. اکثر مواقع اطلاعات درون activity حاصل یکسری عملیات سنگین هست و ریلود کردن دوباره ی اون ها صرفا به خاطر تغییر حالت دستگاه، عاقلانه نیست. برای این منظور میتونیم از کد زیر در قسمت attributes هر activity که میخواهیم اطلاعاتش موقع تغییر orientation حفظ بشه استفاده کنیم:

ConfigurationChanges = Android.Content.PM.ConfigChanges.Orientation | Android.Content.PM.ConfigChanges.ScreenSize)

برای مثال در این activity:

[Activity (Label = "@string/app_name", MainLauncher = true, Icon = "@mipmap/icon", ConfigurationChanges = Android.Content.PM.ConfigChanges.Orientation | Android.Content.PM.ConfigChanges.ScreenSize)]
public class HomeActivity : Activity
{
	protected override void OnCreate (Bundle savedInstanceState)
	{
		base.OnCreate (savedInstanceState);
	}
}

با این روش احتیاجی هم به تغییر فایل manifest نیست.


ایجاد پروژه ی Laravel در PhpStorm


laravel

برای همه مشخصه که بهترین IDE برای PHP برنامه ی Cross-Platform شرکت JetBrains به نام PhpStorm هست. این برنامه علاوه بر هماهنگی کامل با جدیدترین نسخه های PHP، با پکیج منیجر معروف PHP یعنی Composer هم هماهنگی کامل داره. در این پست نحوه ی ایجاد یک پروژه ی فریمورک Laravel رو در این برنامه توضیح میدم. با این روش میشه هر پکیجی که در Composer موجوده رو با استفاده از PhpStorm دانلود کرد.