atVSG

0011001000110100

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

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

خروجی گرفتن از اپ iOS بدون نیاز به حساب پولی Apple Developer


برای منتشر کردن اپ در مارکت هایی مثل سیب اپ (SibApp) که میتونن به عنوان جایگزینی برای App Store مورد استفاده قرار بگیرند، باید بهشون خروجی اپ رو با فرمت .ipa بدید که البته به طور معمول این مدل خروجی گرفتن بدون داشتن حساب Apple Developer پولی که قیمتش حدود ۱۰۰ دلاره (بدون مالیات) به سختی امکان پذیره و هر نسخه از Xcode هم مدام دچار تغییر توی این قسمت میشه که واقعا کاربر رو کلافه میکنه. این رو مقایسه کنید با خروجی گفتن اپ Android که بسیار ساده و سریع و بدون دردسر انجام میشه. ممنون Apple! در ادامه نحوه خروجی گرفتن بدون Signing رو توضیح میدم.



سریع تر کردن انیمیشن Dock در macOS


اگه بخواید از فضای صفحه بیشترین استفاده رو در مک ببرید باید Dock رو به طور پیش فرض مخفی کنید. به این صورت که در مواقع عادی Dock مخفی شده و فقط وقتی که نشانگر موس رو پایین صفحه ببرید، اون موقع Dock ظاهر میشه (به صورت Overlay). برای فعال کردن این قابلیت باید به System Prefrences برید و از قسمت Dock چک باکس Automatically hide and show the dock رو بزنید. مشکلی که این قابلیت داره اینه که خیلی کنده و وقت رو تلف میکنه. برای همین ما باید یا انیمیشن رو غیر فعال کنیم یا مدتش رو کوتاه تر که اینجا مدتش رو کمتر میکنیم. البته یه پارامتر دیگه هم به اسم Delay داره که اون رو به کلی 0 میکنیم. داخل ترمینال کد های زیر رو به ترتیب اجرا کنید.

 

defaults write com.apple.dock autohide-delay -int 0

defaults write com.apple.dock autohide-time-modifier -float 0.4

killall Dock


نصب و راه اندازی Apache + PHP-FPM با استفاده از Homebrew


apache + phpfpm on macos

بعد از مدت ها سر و کله زدن با MAMP چند ساعت پیش مجبور شدم ماژول mongodb رو آپدیت کنم. متاسفانه نسخه جدید بخاطر تغییرات macOS High Sierra در زمینه SSL با Apache کار نمیکنه بنابراین اگر میخواید PHP رو با mod_php اجرا کنید با مشکل مواجه میشید. راه حلش هم یا استفاده از نسخه های قدیمی تر php_mongodb یا اجرای PHP در یک پروسه جداگانه و مستقل از Apache مثل PHP-FPM. برای من راه اول مناسب نیست بنابراین مجبور شدم MAMP رو به کلی پاک کنم و Apache و PHP رو هم از اول نصب کنم. در این مطلب توضیح میدم که چطوری PHP-FPM رو به همراه Apache روی macOS با استفاده از ابزار Homebrew نصب کنید.



مثال های استفاده از MongoDB + PHP


mongodb and php

خودم که میخواستم استفاده از MongoDB رو شروع کنم در کمال تعجب دیدم که تقریبا اصلا نمیشه نمونه کد به روز پیدا کرد. وقتی هم میخواید از PHP با MongoDB استفاده کنید کار از این هم سخت تر میشه به خاطر اینکه اکثر کاربران MongoDB از پلتفرم Node.js استفاده میکنند. دلیل دیگش هم اینه که PHP یک درایور قدیمی برای MongoDB داشت که الان پشتیبانی نمیشه و مثال هایی هم که توی وب پیدا میشن هنوز برای درایور جدید به روز نشدند.

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

مشاهده صفحه مثال ها در GitHub


یونیورسیتی و الکامپ و دانشگاه و سرکار و …


یونیورسیتی | وحید امیری مطلق، یزدان تکبیری، مجید شهبانی، علی بشیری

افراد درون عکس از راست به چپ: علی بشیری، مجید شهبانی، وحید امیری مطلق، یزدان تکبیری

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

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

مطلب طولانی در ادامه!



رفع احتمالی مشکلات عجیب و به ظاهر غیر منطقی در Android


android weird issues

چندین ماه بود که یکی از اپ هایی که در دست توسعه داشتم داشت مشکلات عجیب و غریبی رو تجربه میکرد. اولیش این بود که هیچ سرویس push notification در برنامه کار نمیکرد. هیچ یعنی به واقع هیچکدوم از سرویس هایی که میشد استفاده کرد مثلا OneSignal یا Pushwoosh یا حتی سرویس ایرانی پوشه. تنها سرویسی هم که حداقل یه خطایی از طریق logcat میداد همین OneSignal بود. خطاش هم OneSignal AppId format is invalid بود.

گوگل کردن خطا هم متاسفانه هیچ کمکی نمیکرد. در بهترین حالت یه issue در github پیدا میشد که [تقریبا] مثل همیشه با پست های بی معنی و راه حل های تخیلی پر شده بود. چون این مساله push notification خیلی هم برای این برنامه حیاتی نبود من زیاد اهمیت ندادم ولی اخیرا متوجه شدم که هیچکدوم از library هایی که برای آپلود فایل استفاده میشن هم کار نمیکنن! در ادامه توضیح میدم مشکل چی بود و چطوری برطرفش کردم.