<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های علی عبداللهی</title>
        <link>https://virgool.io/feed/@aliabdolahi</link>
        <description>یک برنامه نویس کنجکاو</description>
        <language>fa</language>
        <pubDate>2026-06-30 23:08:14</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/1974/avatar/zKpo0V.jpg?height=120&amp;width=120</url>
            <title>علی عبداللهی</title>
            <link>https://virgool.io/@aliabdolahi</link>
        </image>

                    <item>
                <title>تاثیر CI/CD در تیم اندروید اسنپ</title>
                <link>https://virgool.io/snapp-eng/%D8%AA%D8%A7%D8%AB%DB%8C%D8%B1-cicd-%D8%AF%D8%B1-%D8%AA%DB%8C%D9%85-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF-%D8%A7%D8%B3%D9%86%D9%BE-wdcxqnnljynh</link>
                <description>https://unsplash.com/photos/U3sOwViXhkYبرای بهبود پیوسته و همچنین کاهش هدر رفت زمان برنامه‌نویسان راه‌های مختلفی وجود دارد که یکی از آن راه‌ها استفاده از CI/CD می‌باشد.اجازه دهید در ابتدا تعریف CI/CD که در ویکیپدیا منتشر شده است را مرور کنیم.در مهندسی نرم‌افزار به‌طور کلی به مجموعه اعمال یکپارچه‌سازی مداوم و تحویل پیوسته یا استقرار پیوسته، CICD یا CI/CD می‌گویند. CI/CD وادار می‌کند که فرآیندهای ساخت، تست و استقرار برنامه‌ها به صورت خودکار انجام شوند. بدین وسیله پلی بین فعالیت‌های تیم‌های «توسعهٔ نرم‌افزار Development» و «عملیات فناوری اطلاعات Operations» ایجاد می‌شود. فعالیت‌های DevOps شامل توسعه پیوسته، آزمون پیوسته، یکپارچه‌سازی مداوم، استقرار پیوسته و نظارت مداوم بر نرم‌افزار در طول فرایند توسعه می‌باشد. اقدامات CI/CD زیربنای فعالیت‌های دواپس را تشکیل می‌دهد.علاوه بر موارد ذکر شده از دیگر دستاوردهای مهم CI/CD در تیم اندروید اسنپ٬ بهبود تجربه برنامه‌نویسان از توسعه نرم افزار بوده است.برای توضیح اینکه چطور و چگونه این دستاورد حاصل شد لازم است که اندکی درباره فرآیند فعلی توسعه تا انتشار در اسنپ بدون در نظر گرفتن CI/CD توضیح دهم و پس از آن نقش CI/CD در کاهش این زمان را مشخص کنم.این مقاله شامل دو بخش است، بخش اول توضیح خلاصه‌ای از نحوه پیاده سازی CI/CD در تیم اندروید اسنپ می‌باشد و بخش دوم شامل تاثیرات مثبت و منفی CI/CD بر عملکرد تیم است. در نتیجه اگر فقط به دنبال تاثیر CI/CD بر یک تیم نرم افزاری هستید می‌توانید تنها بخش دوم مقاله را دنبال کنید.بخش اول: تو بساز تا من بسازم.درباره CI/CD و اهمیت آن در صدها صفحه مختلف در اینترنت صحبت شده است و به همین دلیل درباره جزئیات دقیق و مرحله به مرحله پیاده سازی در اینجا صحبت نمی‌کنیم. ما در تیم اندروید اسنپ از Gitlab برای مدیریت کدها استفاده می کنیم. طبیعتا اولین و بهترین گزینه برای ما Gitlab CI است که توسط اپلیکیشن نصب شده روی سرور همراه با کمک تیم devops تنظیم و راه اندازی شده است. استفاده از این سرویس روی سرورهای اسنپ که در ایران میزبانی می‌شوند برای ما مزایای بسیاری دارد و خیالمان از بابت نگهداری و در دسترس بودن سرویس همیشه راحت است.برای شروع ما بر اساس ubuntu 20.04 برای اندروید یک custom Image - با توجه به اینکه باید docker image برای Gitlab استفاده کنیم - ساختیم و در آن محیط، jdk و بقیه sdk اندروید را دانلود و نصب کردیم.در شروع از این image و image استفاده کردیم ولی در نهایت ما نسخه کنترل‌پذیرتری نیاز داشتیم؛ به دلایلی که در ادامه به آنها اشاره خواهم کرد.استفاده از dexguardدر اپلیکیشن های اندرویدی استفاده از proguard ابزاری مرسوم برای مبهم سازی کد به منظور دشوار کردن مهندسی معکوس و همچنین بهینه سازی نسخه نهایی برای انتشار در store‌ های نرم‌افزاری می‌باشد. البته که proguard ابزاری بسیار خوب برای اهداف ذکر شده است ولی هدف نهایی تولید این ابزار بهینه‌سازی فایل apk نهایی بوده است و خُب شرکت تولید کننده ابزاری کامل‌تر جهت تامین اهداف امنیتی نرم‌افزار به نام dexguard را ارائه داده است که همزمان با R8 و proguard میتواند استفاده شود. برای اینکه بتوانیم از dexguard استفاده کنیم نسخه‌ای از sdk را به image انتقال دادیم تا مشکل build با dexguard حل شود و در زمان صرفه جویی شود. لایسنس‌ها را هم در env variable گذاشتیم و به این شکل برای هر پروژه میتوانیم از لایسنس خودش استفاده کنیم. در نهایت کافیست در فایل yml که برای ci درست کردیم این ۲ خط را به before script اضافه کنیم تا خیالمان از آماده بودن dexguard راحت شود.Before_script:
- echo &amp;quotdexguard_sdk_path=/dexGuard/lib&amp;quot &gt;&gt; gradle.properties
- echo &amp;quotsystemProp.dexguard.license=dexguard-license.txt&amp;quot &gt;&gt; gradle.propertiesاسکریپت کمکی!برای تسهیل در فرآیند آپلود apk نهایی٬ ارسال ایمیل/پیام‌های اطلاع رسانی و کارهای شبیه به این مورد یک سری اسکریپت نوشتیم. این اسکریپت‌ها وظایف مختلفی را انجام میدهند، از جمله این که اسم فایل apk یا aab را برای ما بر اساس ساختارهای توافق شده تیم مرتب میکنند و یا فایل‌ را روی Minio اپلود می‌کنند که در ادامه توضیح خواهم داد و یا اینکه در پیام رسان داخلی شرکت ‏(element) اطلاع رسانی می‌کنند.البته درست است که قابلیت آپلود روی object storage هایی شبیه S3 بعد از پیاده‌سازی ما در اسنپ به Gitlab اضافه شد اما ما با اسکریپت‌هایی که آماده کرده بودیم مشکلی نداشتیم و همچنان هم از اسکریپت خودمان استفاده میکنیم.- python3 /deployscript/deploy.py
--release.dir=app/build/outputs/apk/Dev/release
--app.name=Driver
--riot.hook=&amp;quot$RIOT_HOOK_ADDRESS&amp;quot
--riot.msg=&amp;quot$RIOT_MSG&amp;quot
--minio.url=&amp;quot$MINIO_URL
--minio.accessKey=&amp;quot$MINIO_ACCESSKEY&amp;quot
--minio.secretKey=&amp;quot$MINIO_SECRETKEY&amp;quot
--minio.bucket=&amp;quotdriver&amp;quot
--app.desc=&amp;quot$CI_COMMIT_MESSAGE&amp;quot
--app.branch=&amp;quot$CI_COMMIT_REF_NAME&amp;quot
--app.flavor=&amp;quotDev&amp;quotذخیره فایلامکان اینکه فایلهای نهایی را به عنوان Artifact در Gitlab ذخیره کرد وجود دارد، اما دسترسی به فایل و همچنین سرعت دانلود فایل مورد توافق تیم نبود. در نتیجه ما از Minio استفاده کردیم. برای هر اپلیکیشن bucket جدا تعریف کردیم و build های مربوط به flavor های مختلف در پوشه‌های مختلفی با timestamp خودشان ذخیره میشوند. مثلا فایل آپلود شده روی Minio به اسم زیر در باکت driver ذخیره می‌شود.تصویر۱: نمونه اسم فایل ذخیر شده بر روی سرورنگهداریبرای اینکه بتوانیم تکه های مختلف CI/CD را بهتر مدیریت کنیم، ایمیج‌ها را بر اساس نسخه dexguard تگ گذاری کردیم. همچنین برای سهولت در فرآیند تولید image جدید، ابتدا یک image اندروید ساخته شده است و image حاوی dexguard و همچنین اسکریپت‌های نهایی بر اساس image پایه اندروید ساخته می‌شود. به این شکل هر زمان نیاز بود که نسخه جدیدی از dexguard را پشتیبانی کنیم دیگر نیازی نیست که کل image اندروید از ابتدا ساخته شود.تصویر۲: نمونه image هایی که بر روی سرور وجود داردبخش دوم: کد! کد! تا پیروزیبعد از اضافه شدن CI/CD به پروژه‌ها بهبودهایی حاصل شد که در این قسمت به این موارد اشاره خواهم کرد. نیازهای مربوط به کار تیمی ما در زمان‌های مختلف راه حل‌های مختلفی داشتند که اکنون CI/CD با روش پیاده‌سازی شده فعلی تغییر مثبتی در آنها داشته است و performance تیم را بهبود خوبی داده است.حل نقطه گلوگاهی توسعهفرآیندی که برای توسعه یک feature جدید در اسنپ و احتمالا خیلی از شرکت‌های دیگر طی میشود به این شکل است:دریافت نیازمندی‌ها و مشخصات فیچر (spec) از تیم پروداکت و طراحی‌های مربوطه از تیم دیزاینبرگزاری جلسات discovery / solution designبرنامه‌ریزی (planning) اسپرینت پیش‌روشروع پیاده‌سازی و تحویل نمونه اولیه (release candidate)در این مراحل بخش گلوگاهی که ما با CI/CD در آن بهبود دادیم بخش چهارم بوده است. شکل زیر مرحله ۴ را به صورت شماتیک نشان میدهد:تصویر ۳: جریان کاری در پیاده سازی و تست یک featureدر مراحلی که در بالا مشخص شد برای تیم ما رساندن فایل apk که شامل دو بخش build گرفتن و همچنین آپلود apk برای تیم QA است در بعضی روزها بر اساس شرایط اینترنت به شدت خسته کننده و وقت گیر بوده است. همچنین در این بخش تغییرات ساده٬ زمان متفاوتی با تغییرات اصلی ندارند. مثلاً تغییر یک متن شامل دوباره build گرفتن و همچنین آپلود دوباره فایل میشود که برابر با زمان build و آپلود یک قابلیت اساسی و بزرگ است. ما به کمک CI/CD به طور محسوسی در زمان و انرژی که برنامه‌نویس در این بخش از دست می‌داد صرفه جویی کردیم. بعد از هر تغییری که نیاز به رساندن build جدید به تیم QA باشد کافیست برنامه‌نویس بر روی پنل Gitlab درخواست build دهد و از اینجا به بعد میتواند به ادامه کارهای توسعه بپردازد و رساندن APK نهایی را به CI/CD واگذار کند. Apk به طور کامل بر روی سرور ساخته و امضا (sign) شده و در نهایت بر روی ObjectStorage تیم اندروید آپلود می‌شود. پس از آن در گروه مشخصی پیامی حاوی لینک دانلود همراه با مشخصات branch و flavor و همچنین آخرین کامیت ارسال می‌شود. تیم QA از اینجا به بعد به راحتی میتواند Apk را دانلود و فرآیند QA را شروع کند. شکل زیر نمونه‌ای از پیام ارسال شده در گروه release است:تصویر ۵: نمونه پیام ارسال شده در elements برای تیماینکار همچنین یکپارچگی را بر روی سیستم ایجاد کرده است به طوری که Apk‌ ها در یک فضای مشخص جمع آوری شده‌اند و دسترسی به آخرین build یک branch ساده‌تر و سریعتر شده است. همچنین نیاز به اطلاع رسانی دوباره به تیم QA وجود ندارد و هر زمان برنچ آماده تست شود تیم QA به طور خودکار متوجه نسخه (build) جدید می‌شود و نهایتا اتلاف زمانی که نقطه گلوگاهی به خود اختصاص می‌داد به طور محسوسی کاهش پیدا می‌کند.حل مشکل کتابخانه‌هادر اسنپ کتابخانه‌ها و SDK‌ های درون سازمانی بر روی مخزنی جداگانه نگهداری می‌شوند. تا قبل از استفاده از CI/CD فرآیند انتشار روی مخزن باید به صورت دستی و توسط owner آن پروژه انجام می‌شد، اما پس از استفاده از CI/CD و انتشار خودکار، نسخه‌ای که روی برنچ main قرار می‌گیرد حالا دیگر نسخه منتشر شده و آخرین کد قرار گرفته بر روی مخازن با هم یکی هستند و احتمال خطای انسانی کاهش یافته است. همچنین CI/CD قبل از انتشار با اجرا کردن تست‌ها جلوی انتشار کدی که تست‌ها را pass نکرده است میگیرد. در کنار این موارد ما میتونیم به code coverage هم دسترسی داشته باشیم و طبیعتا در صورت کاهش coverage اقدامات آتی را انجام دهیم.تصویر۶: وضعیت code coverage در پروژه network module تصویر۷: پایپلاین بیلد برای کتابخانه UI-KIT بیلد پروداکشنزمانی که نیاز به نسخه پروداکشن برای مارکت‌های اندرویدی باشد طبیعتا env‌ ها و متغیر‌های بیلد دستخوش تغییراتی می‌شوند که توضیح آنها خارج از حوصله این متن است ولی در گذشته ما داکیومنتی مرحله به مرحله برای آماده سازی نسخه‌های مختلف داشتیم ولی حالا به کمک CI/CD نسخه‌های مختلف برای env‌های مختلف بر روی سرور آماده میشود. به این روش احتمال خطای انسانی در فرآیند انتشار کاهش چشمگیری خواهد داشت و همچنین زمان آماده‌سازی نسخه هم به همین شکل کاهش خوبی داشته است. دیگر اینکه همیشه آماده سازی نسخه نهایی وابسته به یک یا چند نفر بود که با فرآیند‌ها آشنایی داشتند و همچنین به env‌های خاص پروداکشن دسترسی داشتند اما حالا به کمک CI/CD این وابستگی‌ها برداشته شده و وظیفه تولید نسخه نهایی در حیطه کاری سرور است.تصویر۸: ساخت نسخه‌های مختلف بر اساس flavorکمک به کاهش خطاهای انسانیفرایند خودکار سازی اجرای تست‌ها و همچنین build پروژه پیش از merge کردن یک PR در Gitlab به کمک CI/CD کمک شایانی به جلوگیری از مشکلات بعد از merge دارد. قبل از این ممکن بود به‌روزرسانی یک کتابخانه که API جدیدی دارد باعث build نشدن پروژه به طور کلی شود ولی پس از CI/CD ما حتی قبل از merge از تغییرات code coverage هم مطمئن میشویم.تصویر۹: نمایش وضعیت تست‌ها برای هر PR در Gitlabانجام Static Analysisاگر سورس کد یا binary یک اپلیکیشن را بدون اجرا کردن آن و بدون در نظر گرفتن محیط اجرای برنامه بررسی کنیم در حقیقت static-analysis را انجام داده‌ایم. با استفاده از ابزارهای رایج static analysis می‌توان بررسی کد را قبل از مرج کردن یک PR یا بیلد شدن نهایی پروژه انجام داد. با این روش همیشه مطمئن می‌شویم استانداردهایی که برای کدبیس خود در نظر گرفته‌ایم رعایت میشوند و در نهایت تیم خوشحال‌تر و مطئمن‌تر به کارش ادامه میدهد. ابزارهای آماده و رایگان زیادی برای هر بخشی از کد وجود دارد به عنوان مثال می‌توان به Detekt اشاره کرد. نکته مهم در این ابزارها اینست که به طور پیوسته از صحت و تطابق کد با استانداردهای مشخص شده مطمئن شویم. در این زمینه نیز CI/CD به ما کمک می‌کند که این از انجام static analysis پیش از merge کردن branch جدید مطمئن شویم.انجام Security Analysisدرست مثل بخش قبلی انجام تسک‌های مربوط به چک لیست‌های امنیتی هم که توسط تیم امنیت انجام می‌شود می‌تواند تا حدی خودکار سازی شود یا حداقل به شروع فرآیندهای تیم امنیت توسط CI/CD سرعت داده شود. یکی از ابزارهای پیشنهادی تیم امنیت اسنپ برای بررسی کدبیس mobsf است. Mobsf یک چارچوب pen-testing کامل هست که به انجام خودکار static-analysis و dynamic-analysis و همچنین malware-analysis می‌پردازد. در اسنپ نسخه نهایی پیش از انتشار توسط CI/CD برای سرور mobsf تیم امنیت ارسال میشود تا بررسی‌های اولیه تیم امنیت بتواند راحت‌تر و سریعتر شروع شود.جمع‌بندیبا اینکه CI/CD تاثیر بسیار مطلوبی بر روی عملکرد تیم دارد ولی در نهایت این تصمیم شماست که بر اساس تیم خودتان٬ نوع پروژه و همچنین میزان منابع در دسترس تصمیم به استفاده از آن بگیرید. سرویس‌های زیادی سعی در حل مشکلات نگهداری CI/CD کردند که طبیعتا اگر پروژه شما بزرگتر از حد تعیین شده باشد یا اینکه close source باشید احتمالا گزینه رایگانی در اختیار نداشته باشید. به هر حال به روز نگهداشتن image‌ی که در ابتدا در موردش صحبت کردیم و همچنین نگهداری از runner‌هایی که قرار است نقش اجرا کننده دستورات را داشته باشند هزینه‌بر و زمان‌بر خواهد بود. پس پیش از اینکه به سمت این راهکار برای حل برخی از مشکلات تیم بروید حتما به فکر روش‌های نگهداری از سیستم CI/CD خود باشید تا در آینده همین CI/CD برای شما دست و پاگیر نباشد.</description>
                <category>علی عبداللهی</category>
                <author>علی عبداللهی</author>
                <pubDate>Sun, 08 May 2022 18:44:30 +0430</pubDate>
            </item>
                    <item>
                <title>چرا آخه فیدیبوک؟</title>
                <link>https://virgool.io/@aliabdolahi/%DA%86%D8%B1%D8%A7-%D8%A2%D8%AE%D9%87-%D9%81%DB%8C%D8%AF%DB%8C%D8%A8%D9%88%DA%A9-b5scflbf7kfd</link>
                <description>تصویر فیدیبوک از سایت دیجیاتواگر علاقه ای به مطالعه کتاب داشته باشید و برای این موضوع تلاش هایی کرده باشید کاملا با راحتی و سختی مطالعه کتاب آشنایی دارید. هر کدام از ابزارهای مطالعه کتاب ویژگی های مثبت و منفی خودشون رو دارن که با سنجیدن این ویژگی ها میشه ابزار مناسب مثل کاغذ، تبلت، لپ تاپ و کتابخوان رو برگزید. اما نکته ای که حداقل برای ما ایرانی ها اهمیت بیشتری پیدا میکنه زمانی هست که شما دنبال کتاب های انگلیسی در زمینه تخصصی خودتون میگردید! اونوقت متوجه میشید که تهیه این کتاب ها چه فرآیند سخت و گاها هزینه بری می تونه داشته باشه. به دلایلی که تو همین پست توضیح میدم ترجیح دادم که فیدیبوک رو تهیه کنم و این مطلب رو برای کسانی مینویسم که دنبال خرید وسیله ای این چنینی هستند و شاید جواب بعضی سوال هاشون رو هنوز تو اینترنت پیدا نکردن. اینجا فیدیبوک رو مورد بررسی فنی قرار نمیدم و اونقدر ها هم با دیگر رقباش مقایسه نمیکنم چرا که تو اینترنت کلی مطلب بررسی تخصصی براش هست.نکته: اگر فقط میخواهید درمورد فیدیبوک بخونید از بخش فیدیبوک چی هست اصلا؟! شروع کنید و بخش های قبلیش رو رد کنید.راه حل های پیش رو من برای مطالعه کتاب۱) تهیه نسخه اصلی و چاپیاولین راه حلی که به نظر میرسه منطقی باشه، تهیه نسخه اصلی و چاپی کتاب هست. اما خب متاسفانه ما تحریم هستیم و قرار نیست این فرآیند ساده باشه. شخصا از وب سایت های متعددی که از آمازون کتاب تهیه میکنند و داخل ایران بهت تحویل میدن استفاده کردم و مشکل بزرگ زمان زیاد تحویل و بد قولی همراه با هزینه عجیب غریب یک جلد کتاب معمولی باعث شد که بعد از تهیه یکی دو جلد بیخیال این روش بشم.۲) چاپ افستحقیقتا زیاد دنبال این موضوع نبودم. اما مشکل پیگیری از چاپ خونه و پیدا کردن pdf مناسب و اگه اشتباه نکنم هزینه میانگین ۶۰ تا ۱۰۰ هزار تومان برای هر کتاب رو دنبال میکنه.۳) چاپ خانگیچند تا از کتاب ها رو با پرینتر خونه به صورت فصل به فصل چاپ کردم ولی دردسر مرتب کردن و منگنه و چاپ کتابی و پشت رو گاها زمان زیادی رو به خودش اختصاص میداد. مشکل دوم بهم ریختگی محتوی بود و محل نگهداری این همه کاغذ اما به هرحال به صرفه ترین راه و راحت ترین راه اگر پرینتر لیزری داشته باشید  شاید این راه باشه.۴) مطالعه بر روی تبلتاین راه حل رو برای ۱ سال گذشته دنبال کردم. مشکل بزرگ علاوه بر خستگی زیاد چشم، سنگینی ایپد مینی بود. به هر حال دست پس از یه مدت کوتاه خسته میشه و مجبور میشید که ایپد رو یه جایی تکیه بدید و بدنتون رو بر اساس شرایط ایپد منطبق کنید. مثلا در تخت خواب مطالعه کردن کاریست بس دشوار! ۵) مطالعه بر روی کتابخوانکتابخوان ها در حقیقت فاصله بین نسخه چاپی و تبلت ها هستند. هزینه پایین تهیه کتاب دیجیتال همراه با سبکی و عدم وجود نور پشت زمینه کاغذ با هم ترکیب میشه و وسیله ای فوق العاده عالی برای مطالعه رو تشکیل میده. طبیعی هست که به عنوان گزینه راه حل بهش نگاه کنم و تصمیم بگیرم که یک کتابخوان تهیه کنم.کتابخوان خوبه، اما چه کتابخوانی؟!تو بازار بین المللی به کمک چینی ها نمونه های زیادی وجود داره اما تو بازار داخلی چندتایی بیشتر نیستن. که بهترینشون برای مطالعه کتاب انگلیسی Kindle آمازون هست. من وقتی دنبال خرید یه کتابخوان میگشتم. دلار در بازار غیر رسمی به عدد بیش از ۱۰ هزار تومان رسیده بود! و طبیعتا هر کالایی به قیمت نزدیک به ۳ برابر رشد کرده بود. این موضوع تبدیل به فرصتی برای فیدیبوک شد تا بتونه با فاکتور قیمت یک سر و گردن منطقی تر به بنظر برسه و در نتیجه من متقاعد شدم که فیدیبوک بخرم.فیدیبوک چی هست اصلا؟!فیدیبوک یک کتابخوان -وسیله ای با صفحه نمایش E-Ink- هست که توسط وب سایت فیدیبو به وجود اومده! سیستم عامل دستکاری شده از پایه اندروید ۴.۲ داره و ساخت چین اما با نرم افزار داخلی هست. در ادامه در رابطه فیدیبوک مینویسم و یه سری از سوال هایی که برای خودم قبل از خرید بدون جواب بود رو جواب میدم.آیا در فیدیبوک ما به اندروید دسترسی داریم؟!به طور خلاصه، نه! تنها بخش هایی که از اندروید ۴.۲ برای شما به نمایش گذاشته میشه مروگر وب پیشفرض اندروید ۴.۲ به همراه مدیریت دانلود پیشفرض خود سیستم عامل هست. صفحه تنظیمات تا حد زیادی تخلیه شده و یه سری تنظیمات محدود در دسترس شماست.آیا میشه رو فیدیبوک نرم افزار اندرویدی نصب کرد؟به طور خلاصه، نه! در حقیقت مسیر نصب برنامه مسیر ساده ای نیست. نصاب پیشفرض اندروید با خطا مواجه میشه و adb در حالت پیشفرض در دسترس نیست. علاوه بر این بهتره که سراغ این کار نرید. چرا که به توجه به منابع سخت افزاری در دسترس، حتی اگه برنامه ای هم نصب کنید فیدیبوک رو از اینی که هست کند تر میکنه!آیا فیدیبوک کنده؟!به طور خلاصه، بله! در مقایسه به kindle فیدیبوک سرعت بارگذاری پایینی داره. کتاب های epub با کندی قابل توجهی باز میشوند و اگر تحمل کمی داشته باشید و هی صفحه رو برای نتیجه لمس کنید ممکنه به طور زیادی با خطا عدم پاسخ برنامه فیدیبو مواجه شوید. منظور من از سرعت طبیعتا سرعت ریفرش صفحه EInk نیست چرا که کاملا در جریانش هستم و در این زمینه اختلاف چشم گیری با kindle مشاهده نکردم. اما بعد از اینکه کتاب epubتون بارگذاری میشه سرعت باز شدندش خیلی سریعتر از دفعه اول هست.آیا کیفیت مطالعه با kindle تفاوت زیادی داره؟به طور خلاصه، نه! کیندل یکی از دوستان رو در کنار فیدیبوک قرار دادم و از لحاظ کیفیت صفحه نمایش درسته که kindle بهتر بود اما نه اونقدر که بگیم فیدیبوک دیگه به درد نمیخوره.آیا به درد خوندن کتاب های Epub انگلیسی میخوره؟به طور خلاصه، بله! درسته که فیدیبوک کتاب های epub رو به کندی باز میکنه، اما آخرش بالاخره  بعد از ۱ یا ۲ دقیقه ای باز میکنه! و بعد از اینکه کتاب نمایش داده شده، همه چی تمومه، سرعت عوض کردن صفحه ها خوبه و سریع و فهرست و بقیه موارد هم به خوبی بارگذاری میشوند. و واقعا مطالعه کتاب epub غیر از مورد بارگذاری اولیه کاملا راحت و بی دردسر هست. البته در دفعات بعدی زمان بارگذاری از دفعه اول کمتر هست.آبا به درد خوندن کتاب های PDF میخوره؟ بستگی داره ولی به طور خلاصه، نه! اگر شما نسخه kindle کتاب های pdf رو دارید یا میتونید حاشیه های اضافی رو برش بدید و خلاصه سایز کتاب برای صفحه نمایش ۶ اینچی آماده بشه. اونوقت مطالعه pdf میتونه حتی لذت بخش تر از epub باشه. چرا که حداقل فیدیبوک pdf ها رو خیلی سریع و روون باز میکنه. اما اگه قرار به اسکرول کردن باشه. اونوقت باید یکم صبور تر باشید تا بتونید میزان zoom و اسکرول و این چیزا رو اول تنظیم کنید بعد یک صفحه رو مطالعه کنید.آیا به راحتی میشه روش کتاب ریخت؟به طور خلاصه بله! وقتی فیدیبوک رو به کامپیوتر وصل میکنید. مثل بقیه دستگاه های اندروید به کامپیوتر وصل میشه و میشه رو حافظه دستگاه همونطوری که روی دیوایس های اندرویدتون فایل هاتون رو کپی میکنید روی فیدیبوک هم کپی کنید. فایل های epub و  pdf به طور خودکار بعد از اینکه کپی شدن تو کتابخونه فیدیبوکتون اضافه خواهند شد. در حقیقت فایل منیجری وجود نداره. اما خب نیازی هم بهش احساس نمیشه.میشه باهاش از اینترنت دانلود کرد؟به طور خلاصه، بله! رفتار فیدیبوک در زمان دانلود، درست مثل یک دستگاه اندروید ۴.۲ هست. هر فایلی میتونه روش از اینترنت و مرورگر داخلش دانلود بشه و در مدیریت دانلود سیستم، دانلودش دنبال بشه. طبیعتا اگر فرمت فایل مطابق فرمت های مورد پشتیبانی فیدیبوک باشه، بدون کار اضافی فیدیبوک فایل رو براتون باز میکنه و اگر pdf یا epub باشه به کتابخونه فیدیبوکتون اضافه میشه.فیدیبوک به درد خوندن مطالب وب سایت ها میخوره؟تقریبا میشه گفت، بله! کافیه لینک اون مقاله رو با url shortner ها کوتاه کنید و مستقیم به صفحه مورد نظر برید و بعد با کمی حوصله zoom و بقیه موارد رو تنظیم کنید و از مطالعه لذت ببرید. شخصا این مورد رو در حالتی استفاده میکنم که یک مقاله طولانی در وب سایتی وجود داره.چه چیزاییش هاییش دوست داشتنی نیست، اما، زیاد اعصاب خورد کن هم نیست؟سرعت لود کردن کتاب epub! اصلا دوست داشتنی نیست. یه کتاب ۱ یا ۲ دقیقه طول می کشه تا بارگذاری بشه و تو این مدت مثلا ۱ دقیقه صفحه نمایش دستگاه سیاه هست! اما خب چون بعد از بارگذاری دیگه همه چی تقریبا خوبه، میشه بیخیال حساسیت رو این بخش شد. تصویر روی lock screen تغییر نمیکنه. (حداقل من جایی رو پیدا نکردم برای تغییرش)وقتی wifi روشن باشه مصرف باطری واقعا زیاد میشه اما وقتی خاموش باشه اعصاب خورد کن نیست.بعضیا میگن وقتی به اینترنت وصل میشه و sync میشه صفحه مطالعه کتاب تغییر میکنه. من اصلا زیاد وصل نمیشم به اینترنت و این اصلا تجربه نکردم.برای اینکه مصرف باطری کاهش پیدا کنه بعد از چند ساعتی خاموش میشه. البته میشه این قابلیت رو خاموش کرد. اما خب امکان بدی نیست. موضوع اینه که چرا اصلا باید وقتی چند ساعتی دستگاه استفاده نمیشه باطری مصرف کنه که حالا این قابلیت کاربردی به نظر برسه؟!فیدیبوک بخش های اعصاب خورد کن هم داره؟من با توجه به شرایط موجود کشور عزیزمون آدم صبوری شدم. بنابراین به نظرم بخش اعصاب خورد کن نداشت و دستگاهی دوست داشتنی و خوب هست. اما دیدم که تو توئیتر بعضیا خیلی از دست فیدیبوک عصبانی هستند و گاها حرفشون تو context خودشون منطقی هست. اما خب برای من مورد اعصاب خوردکنی که باعث بشه دستگاه رو پرت کنم اونطرف! یا بخوام که از دستش خلاص بشم وجود نداشت.در نهایت آیا ارزش خرید داره؟!با شرایطی که در ادامه میگم، به طور خلاصه بله! کاری به صحبت ها و مقایسه های تخصصی با کیندل ندارم. فیدیبوک برای من این ویژگی های مثبت رو داشت و من به خاطر این ویژگی های ترجیح دادم که فیدیبوک رو تهیه کنم:قیمت ارزان تر از رقباپشتیبانی خوب از زبان فارسی۱۰۰ هزار تومان کوپن خرید کتاب از سایت فیدیبوکامکاناتی که در اختیارم قرار میده اونقدر کمتر از اندازه اختلاف قیمتش با kindle نیست</description>
                <category>علی عبداللهی</category>
                <author>علی عبداللهی</author>
                <pubDate>Mon, 27 Aug 2018 16:41:54 +0430</pubDate>
            </item>
            </channel>
</rss>