بهترین منابع آموزشی برنامه نویسی فارسی

این وبلاگ برای معرفی بهترین منابع آموزشی برنامه نویسی ساخته شده است

بهترین منابع آموزشی برنامه نویسی فارسی

این وبلاگ برای معرفی بهترین منابع آموزشی برنامه نویسی ساخته شده است

سلام خوش آمدید

۱ مطلب با کلمه‌ی کلیدی «کاتلین دیجیکالا» ثبت شده است

در این مقاله ی آموزشی من قصد دارم یاد بدم که چطور یک فایل نصبی اندرویدی را باز کنیم و درونش را نگاه کنیم . 

 

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

 

قصد ما در این مقاله ی آموزشی این نیست که سورس کد دیجیکالا را بصورت کامل بدست بیاوریم زیر این امر تقریبا امری غیر ممکن و نشدنی است چون اپلیکیشن های اندرویدی قبل از بیلد شدن به باید کدهای جاوا تبدیل میشوند و برعکس کردن آنها اصولا به ما سورس کد نوشته شده را تحویل نمیدهد . 

اما هدف ما از این مقاله ی آموزشی این است که ببینیم اپلیکیشن دیجیکالا با کدام زبان برنامه نویسی توسعه داده شده است و برخی چیزهای دیگر را از درون سورس واکشی کنیم مثلا فونت استفاده شده تصاویر استفاده شده و ....

 

برای اینکه بفهمیم اپلیکیشن اندرویدی دیجیکالا با چه زبانی نوشته شده است ابتدا باید ماهیت فایل نصبی اندرویدی یا همان APK را درک کنیم . 

apk مخفف Android application package است و یک فایل نصبی برای سیستم عامل اندروید است درست مثل فایل های نصبی ویندوزی که دانلود میکنیم و یک برنامه را نصب میکنیم . 

در حقیقت apk یک فایل فشرده از کدهای برنامه نویسی شده شامل فایل های .dex و resources, assets, certificates, و فایل manifest می باشد . 

فایل های apk میتواند هر نامی داشته باشد ولی باید فرمت آن فایل حتما apk باشد . 

apk را شما همانند یک فایل zip یا rar در نظر بگیرید که یک سری فایل ها را در یکجا زیپ کرده است . 

معمولا بعد از بازگشایی apk درون آن پوشه ها و فایل های زیر را خواهیم دید . 

 

  • پوشه ی META-INF 
    شامل فایل مانیفست و گواهینامه ها و ...
  • پوشه ی lib
    این پوشه شامل کد کامپایل های مربوط به معماری های مختلف پلتفرم های مختلف است مثلا armeabi فایلی است که کد کامپایل مربوط به پردازنده های ARM درونش قرار دارد و ...
  • پوشه ی res
    منابعی که نیاز به compile نیست در اینجا قرار میگیرد
  • پوشه ی assets
    دارایی های یک برنامه که کامپایل نمیشوند مثل تصاویر و ... که توسط AssetManager قابل دسترسی هستند
  • فایل AndroidManifest.xml
    این فایل شناسنامه ی برنامه های اندرویدی هست شامل مجوز ها ، ورژن برنامه ، نام پکیج برنامه و ...
  • فایل classes.dex
    این فایل توسط ماشین دالویک که هسته ی اندروید هست قابل فهمه و میشه گفت کدهای کامپایل شده هستند در فرمت dex
  • فایل resources.arsc
    این فایل شامل منابع از پیش کامپایل شده است برای مثال منبع xml گرافیکی 

 

علاوه بر موارد بالا ممکن است اپلیکیشنی که شما آنرا آنزیپ میکنید یک سری فایل ها و فولدرهای اضافی داشته باشد .

خب برای فهم اینکه یک اپ با چه زبانی نوشته شده است نیاز نیست خیلی عمیق وارد بحث محتویات آن زیپ شده ی یک فایل APK شویم ولی فهمیدن موارد بالا احتیاج است . 

ما اینجا فایل نصبی دیجیکالا را از اینترنت دانلود کردیم و شما هم میتوانید به راحتی دانلود کنید . نسخه ای که بعنوان اخرین نسخه ی  دیجی کالا پیدا کردیم ۱,۹.۳ بود .

فایل APK دیجیکالا را دانلود کردیم و سپس فرمت فایل را به zip تغییر دادیم ( کاری که شما هم باید انجام دهید ) . 

سپس با استفاده از یک نرم افزار کمک کننده مثل WinRar آنرا اکسترکت کردیم . 

 

چیزی که بدست آوردیم مشابه تصویر زیر است : 

 

زبان برنامه نویسی اپلیکیشن دیجی کالا - زبان مورد استفاده دیجی کالا - سورس اپلیکیشن دیجی کالا

 

در تصویر بالا میبینید بعد از اینکه فایل APK دیجی کالا را به فرمت zip تبدیل میکنیم برای مثال digikala.zip و سپس انرا توسط wiinrar باز میکنیم تمام فایل ها و فولدرهایی که در بالا ذکر کردیم درونش وجود دارد 

 

خب بعد از اینکه عمل بازگشایی اپلیکیشن دیجی کالا را انجام دادیم اگر یکی از فایل ها را باز کنیم مثلا فایل AndroidManifest.xml چیزی که خواهیم دید مشابه تصویر زیر خواهد بود . 

 

سورس اپلیکیشن دیجی کالا - زبان برنامه نویسی اپلیکیشن دیجی کالا - دیجیکالا با چی نوشته شده

 

دلیل این اتفاق این است که ما فقط فایل فشرده شده ی digikala را باز کردیم و سپس تمامی محتویات آن کامپایل شده است و فقط ماشین مجازی dalvik میفهمد که درون این  فایل ها چی به چیه !

برای اینکه ما بتوانیم سورس کد درون یک APK را بفهمیم وقت آن رسیده است که فایل apk را دیکامپایل ( عمل معکوس کامپایل کردن ) کنیم .

برای راحتی کار دیکامپایل کردن یک فایل نصبی APK بهتره از ابزارهای انلاین برای این کار استفاده کنیم 

مثلا وقتی عبارت decompile apk را در گوگل جستجو کنید میتوانید به سایت apkdecompilers.com برسید که ابزار مفیدی برای دیکامپایل کردن فایل های apk است . 

بعد از باز کردن سایت مذکور کافیست روی انتخاب فایل یا Choose File کلیک کنید سپس دکمه ی decompile your apk را کلیک کنید . 

 

سورس کد اپلیکیشن دیجی کالا - آموزش ساخت اپلیکیشن دیجی کالا - بررسی زبان برنامه نویسی اپلیکیشن دیجی کالا

 

بعد از چند دقیقه apk دیکامپایل شده بصورت فایل zip به شما تقدیم میشود و میتوانید دانلود کنید 

خب بعد از اینکه ما فایل apk اپلیکیشن دیجی کالا را به این وب سایت ارسال کردیم و سورس کد آنرا دریافت کردیم محتویاتی مشابه تصویر زیر برای ما تحویل داده شد . 

 

سورس اپلیکیشن دیجی کالا - آموزش ساخت دیجی کالا - آموزش ساخت اپلیکیشن دیجی کالا

 

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

اگر یادتان باشد ما بالاتر محتویات درون فایل AndroidManifest.xml را باز کرده بودیم و علائم عجیب غریب مشاهده میکردیم در حالیکه الان اگر AndroidManifest.xml را باز کنیم کدهای واقعی xml مربوط به AndroidManifest.xml اپلیکیشن اندرویدی دیجیکالا را مشاهده خواهیم کرد . 

در تصویر زیر محتویات AndroidManifest.xml را میبینید که کاملا نام مجوز  ها ، اکتیویتی ها ، ریسایور ها و ... مشخص است : 

 

سورس کد اپلیکیشن دیجی کالا - آموزش ساخت اپلیکیشن دیجی کالا - زبان برنامه نویسی اپ دیجیکالا

 

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

 

همه ما میدانیم که فریمورک ها و زبان های برنامه نویسی که با آنها میشود اپلیکیشن اندرویدی پیاده سازی کرد کدام ها هستند . من آنها را اینجا لیست میکنم : 

 

  • اپ React Native 
  • اپ Cordova 
  • اپ flutter
  • اپ نیتیو که جاوا و کاتلین نوشته میشود 

 

ما بعد از اینکه سورس کد را بدست آوردیم ( همانطور که در بالا گفته شد ) میتوانیم بر اساس سناریو های زیر زبان برنامه نویسی را پیدا کنیم : 

 

  1. اگر درون پوشه ی assets هر نوع فایلی با فرمت .bundle وجود داشته باشد ( بطور پیشفرض یک فایل با نام index.android.bundle ) اپلیکیشن با React Native ساخته شده است . 
  2. اگر درون پوشه ی assets پوشه ای با نام www وجود داشته باشد و محتوای مسیر assets/www مشابه تصویر زیر باشد پس این اپلیکیشن با cordova پیاده سازی شده است : 
    ساختار اپلیکیشن دیجی کالا - زبان برنامه نویسی دیجی کالا - دیجی کالا با چی نوشته شده است
     
  3. اگر گزینه ی 1 و 2 درست نبود به احتمال بسیار زیادی با زبان های نیتیو مثل جاوا و یا کاتلین نوشته شده است و وجود پوشه ای به نام kotlin بیانگر این است که حتما زبان برنامه نویسی کاتلین در اپ استفاده شده است . 

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

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

 

تصویر زیر هم فرمت یکی از فایل های درون سورس است که گویای این است که زبان کاتلین در این پروژه حتما به کار گرفته شده است : 

سورس اپلیکیشن دیجیکالا - آموزش ساخت دیجیکالا - آموزش ساخت اپلیکیشن دیجیکالا

 

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

 

زبان برنامه نویسی اپلیکیشن دیجی کالا - آموزش ساخت اپلیکیشن دیجی کالا

اما اگر به دنبال توسعه ی اپلیکیشن دیجی کالا هستید ما دوره ای کامل برای آن داریم با جاوا / کاتلین آنرا از دست ندهید 

اتمام مقاله 


مطالب زیر ممکن است برای شما مفید باشد

 انتشار پروژه ی لاراولی روی هاست های اشتراکی 5 دلیل برای یادگیری کاتلین دیباگ کردن پروژه های لاراولی با Laravel Debugbar در نسخه ی 6 لاراول چه چیزی اضافه شده است ؟‌ اطلاعات مفید کاتلین که نباید از دست بدید

محصولات برگزیده مناسب شما

 دوره ی آموزش پروژه محور ساخت دیجیکالا به همراه اپ و سورس کامل دوره ی آموزش ساخت اپ گالری تصاویر آنلاین با کاتلین دوره ی آموزش کامل فریمورک لاراول Laravel دوره ی طلایی لاراول 6

پایان 👍

  • نفس کریمی زاده

تمامی مطالب مفید برنامه نویسی که پیدا میکنم میزارم اینجا