مقالات کامل و جامع طراحی اپلیکیشن

ساخت وبلاگ

نرم افزار نویسی مدام از آن حوزه هایی است که زمانی از خارج به آن نگاه می کنیم، پیچیده و آکنده‌از زبان های متعدد برای شغل های گوناگون به نظر می‌رسد، مخصوصا در صورتی‌که داده ها پراکنده ای هم درباره آن داشته باشید ممکن می باشد گزینه غامض خیس هم بشود. یادم هست وقتی میخواستم نرم‌افزار نویسی اندروید را استارت کنم، تعداد زبان هایی که با استفاده از آنان می‌شد نرم افزار های اندروید ساخت، زیاد بودند.برای همین گزینش یکی‌از این زبان ها برای شروع اپلیکیشن نویسی به یک پرسش بزرگ برای اینجانب تبدیل گردیده بود. یعنی وسواس داشتم که شایسته ترین زبان نرم‌افزار نویسی اندروید را بین این همه مورد متفاوت گزینش کنم تا شایسته ترین تلاش را داشته باشم

بعداز چندین سال متوجه شدم این پرسش در ذهن اکثر عده ای که در مرحله آغاز می‌باشند، وجود داراست: “کدام گویش نرم‌افزار نویسی اندروید را گزینش کنیم؟”. به همین ادله درین نوشته قصد داریم همگی گویش هایی که می توانیم با آنها اپلیکیشن اندروید بسازیم را معرفی، بازرسی و مقایسه کنیم تا تصمیم گیری برای ما شل و ول خیس بشود.

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

Javaزبان جاوا، لهجه اپ نویسی قانونی و دوستداشتنی ترین گویش برنامه نویسی اندروید است. موقتی، اکثر نرم افزار نویس های اندروید از جاوا استفاده میکنند. اکثر برنامه های مو جود در نرم‌افزار استور با این زبان درج شده اند و از طرف گوگل بیشترین تامین را اخذ میکند. علاوه بر تمامی اینها، لهجه جاوا دارنده یک جامعه بسیار توانا و والا میباشد که می‌توانند در کلیه خطاها شما را امداد نمایند (این رو هم بگم که حقیقتا بایستی با اشتباهات متعددی رمز و کله بزنید).
به هر حالا گویش جاوا برای یادگیری اشخاص مبتدی و تازه کار ممکن میباشد کمی سخت باشد. این زبان دارنده مفاهیم غامض ای مانند متدهای تولید کننده، Null Pointer Exception، همزمانی پردازش اوامر، Checked Exception و غیره هست. همینطور با اضافه شدن کیت توسعه و گسترش اپ اندروید (Android SDK)، پیچیدگی های این گویش بیشتر هم خواهند شد.

با وجود کلیه اینها، جاوا زبان فوق العاده ای هست که با استفاده از آن می توانید لذت کامل اپ نویسی اندروید را ادراک کنید. البته ممکن است برای اشخاص تازه کار کمی ابهام داشته باشد و بعضی وقتها نو امور ترجیح می‌دهند با یک لهجه ساده خیس شروع نمایند و آنگاه جاوا را خیال بگیرند. ولی به نظر اینجانب برای صرفه جویی در وقت بهتر میباشد که هرچه سریع خیس شغل با جاوا تحت عنوان یک لهجه نرم افزار نویسی اندروید را استارت نمائید.

Kotlin
کاتلین یکی از زبان های کراس پلتفرم برای نرم‌افزار نویسی هست که ممکن می‌باشد جایگزین جاوا بشود. همینطور در سال 2017، کاتلین تحت عنوان دو‌مین زبان نرم‌افزار نویسی اندروید قانونی به وسیله گوگل معرفی شد. کاتلین می‌تواند بوسیله ماشین مجازی جاوا (JVM) انجام بشود و تشابه های متعددی به جاوا دارااست.

صرفا تفاوت عمده کاتلین با جاوا این میباشد که خصوصیت های اضافه لهجه جاوا مانند Null Pointer Exception دیگر در آن وجود ندارند. همینطور نیاز به استعمال از نقطه ویرگول (Semicolon) در انتهای هر فرمان در این گویش نیست. بصورت خلاصه، گویش کاتلین برای یادگیری تازه کار ها بسیار وارفته خیس است و همینطور میتواند یک نقطه ورود به دنیای اپ نویسی اندروید باشد.

C Plus Plus
زبان سی پلاس پلاس یک کدام از زبان های برنامه نویسی اندروید است که برای پیشرفت ساکن اندروید (NDK) استفاده می شود. طراحی اپلیکیشن ولی این نکته را بایستی بدانید که با سی پلاس پلاس نمیتوانید یک اپ کامل اندروید بنویسید. این لهجه برای طراحی نصیب هایی از نرم‌افزار با لهجه مستقر اندروید به کار برده میگردد. این خصوصیت باعث می‌گردد بتوانیم در مواقعی که نیاز داریم، از لایبرری های سی پلاس پلاس به کارگیری کنیم.

گویش بومی اندروید، یعنی زبانی که‌این سیستم ادله در سطح های تحت با آن شغل میکند، سی پلاس پلاس میباشد. به همین استدلال، برای توسعه و گسترش اپ با این زبان، بایستی از کیت بسط مستقر یا این که Native Development Kit استفاده می‌شود. این کیت برای طراحی بخش هایی از نرم‌افزار که نیاز به همت بسیار بالا دارا هستند (مانند بازی های هنگفت ) و نیاز می‌باشد منابع سیستم را بیشتر کنترل کنیم، همت دارااست.

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

C Sharp
گویش سی شارپ مشابهت های بسیار متعددی به جاوا دارااست و از این لحاظ یکی از مورد ها ایده آل برای نرم افزار نویسی اندروید میباشد. همینطور مانند زبان جاوا، سی شارپ ها دارنده زباله عده کن (Garbage Collector) میباشد که سبب استفاده باصرفه خیس از مموری دستگاه و پایین آمدن Memory Leak می‌شود. ضمن اینها، سی شارپ سینتکس ساده خیس و مرتب تری نسبت به جاوا دارااست که شغل کردن با آن تحت عنوان زبان نرم‌افزار نویسی اندروید را خیلی معمولی خیس میکند.


در گذشته، یکی از نقاط ضعف گویش سی شارپ این بود که صرفا میتوانست روی دستگاه های ویندوزی ایفا بشود و با فریم ورک دات نت به کار برده می‌شد. application البته با استفاده از اطراف برنامه نویسی Xamarin، که یک راه حل کراس پلتفرم با به کارگیری از زیرساخت های سیستم ارائه بخشید، این نقص‌ حل شد. با استفاده از Xamarin شما می توانید برنامه های بومی اندروید بنویسید و آن‌گاه این کدها را روی پلتفرم های گوناگون هم منتشر نمائید.

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

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

Lua (Corona)
Corona اسم یک دور و اطراف نرم‌افزار نویسی هست که قادر است با به کار گیری از گویش نرم افزار نویسی Lua، اپلیکیشن های اندروید بسازد. این اطراف اپلیکیشن نویسی دو سبک سعی داراست: Corona Simulator و Corona Native. از Corona Simulator برای تشکیل داد نرم افزار های اندروید بصورت مستقیم استعمال می شود، ولی Corona Native پروژه ها را با اندروید استودیو یکدست میکند که از این راه می‌توانید به خصوصیت های مستقر اندروید هم دسترسی داشته باشید.


هرچند Lua نسبت به جاوا محدودیت دارد، ولی یادگیری آن معمولی خیس از زبان جاوا میباشد. ولی این لهجه نرم افزار نویسی اندروید دارنده قابلی ها و افزونه های اختصاصی درآمد زایی میباشد که میتواند تجربه تشکیل داد برنامه های اندروید را تغییر بدهد. معمولا Corona برای ساخت نرم افزار های گرافیکی یا این که بازی استفاده می شود ولی بضاعت های آن محصور بدین حوزه ها وجود ندارد.

HTML, Css, Javascript
نادرست نمی کنید، برنامه های اندروید می‌توانند با به کارگیری از Html,Css,Javascript ساخته شوند. برای این فعالیت می بایست از کادر ورک PhoneGap که توسط Apache Cordova مدد می‌شود استعمال نمائید. این فریم ورک به شما کمک میکند از مهارت های توسعه اینترنت برای ایجاد کرد نرم افزار های هیبرید به کارگیری فرمائید که می توانند بوسیله یک WebView داخل اپ های اندروید اکران داده بشوند.

هرچند Adobe PhoneGap می تواند اکثری از شغل های شالوده ای برنامه های اندروید را پوشش بدهد، ولی به کدنویسی بسیار کمتری نیاز داراست (ولی به جز جاوا اسکریپت). اما از آنجایی که برای ساختن اپلیکیشن های بهتر نیاز به سعی و کدنویسی بسیار زیاد دارید، عالی هست از زبان های دیگر درون این لیست به کارگیری فرمائید (و ولی چنانچه دوست دارید تحت عنوان یک بسط دهنده اندروید شناخته گردید خوب است از زبان های تخصصی به کار گیری نمایید).

نکته هایی برای تعیین شل خیس

مدام وقتی موردها زیاد میشوند، روند انتخاب و تصمیم گیری برای ما دشوار خیس می‌گردد. پس میتوانیم با مطالعه نکته ها و قوانینی که برای ما مطلوب خیس می‌باشند، تنی چند از این موردها را کلا حذف کنیم تا تعیین شل و ول تری داشته باشیم.

نکته اولیه: بخش اعظمی از این گویش ها از لحاظ ساختاری، شی گرا می‌باشند. شی گرایی یک مضمون‌ خاص در برنامه نویسی هست که می توانید با تحقیق این نوشته ی علمی درباره آن داده ها بیشتری حصول کنید: “شی گرایی چیست؟”. به این ترتیب هنگامی شما در زمان یادگیری یک لهجه اپلیکیشن نویسی اندروید، این مضمون‌ را خاطر بگیرید، می توانید به راحتی یادگیری سایر زبان ها را هم شروع فرمائید (اما در صورتی به اونها نیاز داشتید). پس مطمئن باشید یادگیری یک زبان خاص شما‌را زندانی نمیکند، بلکه طرز را برای یادگیری های بیشتر گشوده میکند.
نکته دوم: می‌توانید برای تعیین لهجه اپ نویسی مطلوب، این گزینه را در نظر بگیرید که قرار میباشد با کدام محیط اپ نویسی (IDE) شغل فرمایید. برای شناخت بیشتر با IDE ها، این مقاله را تفحص فرمائید: “IDE های رفیعتر برای نرم افزار نویسی اندروید”. برای مثال اندروید استودیو موقتی از لهجه های جاوا، کاتلین و سی پلاس پلاس تامین میکند.
نکته سوم: می‌توانید استاندارد ها را دنبال کنید. همانطور که در بخش های قبل هم گفتیم، استاندارد ترین گویش های برنامه نویسی اندروید، اکنون جاوا، کاتلین (و سی پلاس پلاس برای نرم افزار نویسی Native) میباشند. با انتخاب این زبان ها میتوانید از داکیومنتیشن های آموزشی گوگل برای اپلیکیشن نویسی اندروید استعمال نمائید. همینطور دسترسی به منابع برای زبان های ساکن (یا این که همون استاندارد) روی هر پلتفرم بیشتر و قوی خیس میباشد.
نکته چهارم: یکی از معیار های گزینش، می تواند کراس پلتفرم بودن باشد. IDE هایی برای ایجاد کرد اپلیکیشن های تلفن همراه وجود دارا‌هستند که می توانید یکبار نرم افزار را درون آنان کدنویسی نمایید و از جمله برای پلتفرم های اندروید و iOS خروجی های مخصوص خویش را بگیرید. اپ Xamarin اقتدار این فعالیت را دارااست که از گویش سی شارپ به کارگیری میکند. (ولی مدام عمل به همین راحتی جلو نمیره، گاهی اوقات با به کار گیری از همین ابزار ها هم باید برای هر پلتفرم برنامه رو مجدد نویسی کنین).
نکته پنجم: جامعه جانور میتواند یکی‌از ترازو های کار کشته برای تعیین گویش برنامه نویسی اندروید باشد. در یک کدام از نوشته‌ی علمی های وب سایت درباره این پرسش حرف کردیم: “آیا نرم افزار نویسی اندروید طاقت فرسا میباشد؟”. در این مقاله اشاره شد که بزرگترین حمایتی که در حوزه اپ نویسی وجود دارااست، جامعه یا این که Community قادر این پلتفرم میباشد. می توانید با کاوش در وب درباره جامعه مو جود برای زبانی که قصد گزینش آن را دارید استیناف فرمائید و تصمیم بگیرید.
نکته ششم: رویت کرد کامل به دنیای نرم‌افزار های اندروید داشته باشید. یعنی هیچ وقت اندیشه نکنید که ایجاد کرد اپ تنها و فقط مرتبط با فرانت اند می‌گردد، یک بخش بسیار مهم به اسم بک اند وجود داراست که عالی میباشد خودتان هم بلد باشید آن را بسازید. برای شناخت با فرانت و اند و بک اند این نوشته ی علمی را بازرسی نمایید: “فرانت و بک اند چیست؟”. پس مطمئنا برای ایجاد کرد و تنظیمات صحیح سمت سرور اپلیکیشن، به لهجه های بیشتری که شاید درین نوشته ی علمی وجود نداشته باشند هم نیاز داشته باشید. براین اساس بهتر میباشد مدام ذهن خویش را برای یادگیری گشوده نگه دارید

مقالات کامل و جامع طراحی اپلیکیشن...
ما را در سایت مقالات کامل و جامع طراحی اپلیکیشن دنبال می کنید

برچسب : رایا پارس, طراحی اپلیکیشن, نویسنده : عباسی app02 بازدید : 108 تاريخ : شنبه 5 آذر 1401 ساعت: 15:18

نرم افزار‌های رسانه‌ عده ای از دوست داستنی‌ترین طراحی اپلیکیشن نرم افزار‌های موبایلی می‌باشند. اکثر اشخاص در روز سا‌عتها متعددی را با شبکه‌های‌اجتماعی سپری می نمایند از جمله چهره بوک روزمره بیش تر از 1 بیلیون استفاده کننده فعال دارااست . به طور طبیعی هر طراح و بسط دهنده به‌دنبال این میباشد که دسترسی یوزرها به نرم افزار را هرچه بی آلایش خیس و سهل خیس نماید بنابراین نرم افزار های رسانه جمعی رایا پارس نیز می بایست هرچه اثرگذار خیس و عالی با شبکه های عمومی که از آن‌ها جانبداری می نماید در باب و با آن هماهنگ باشد. امروزه در جامعه معاش اشخاص بسیار بیشتر از قبلی با رسانه های جمعی و شبکه های مردمی در هم آمیخته میباشد. به همین عامل حتی نرم افزار هایی که در زمره نرم افزار های رسانه جمعی قرار نمی گیرند نیز اکثر اوقات از این قاعده مستثنی نیستند. application مثلا بیایید نگاهی به نرم افزار های ورزشی از قبیل دو یا این که دوچرخه سواری بیاندازیم. این نرم افزار ها خلال این که شغل های روزمره شما‌را پیگیری می نمایند این قابلیت و امکان را دارا‌هستند تا داده های عددی و نتیجه ها خویش را با سایر افراد به اشتراک بگذارید حتی می‌توانید که در‌این نرم افزار ها فی مابین خویش و سایرافراد یک دسته تشکیل دهید و پیوسته سوای اینکه حتی یکبار این اعضاوجوارح را از مجاورت ملاقات کرده باشید با آنان در مورد و تعامل باشید . اکثری از این نوع نرم افزار ها این قابلیت و امکان را به استفاده کننده می‌دهند که خبر، مال و یا این که امتیاز بالای خویش در نرم افزار را با بقیه افراد به اشتراک بگذارد، همان این نرم افزار ها می‌خواهند که استفاده کننده توسط آن ها نیازی به دیگر نرم افزار ها نداشته باشند و تا آنجا که ممکن میباشد تجهیزات جانبی دیگر را نیز برای کاربرانشان مهیا نمایند. به همین ادله پیشنهاد میکنیم که خصوصیت اشتراک گذاری را در نرم افزار تان داشته باشید علی الخصوص در صورتیکه نرم افزار تان، یک نرم افزار فروش محصول ها و یا این که سرویس ها باشد به این دلیل که اینکار سبب ساز می‌گردد تا محصولاتتان بارها و بارها به اشتراک گذارده خواهد شد که همین فرمان باعث گسترش و بهره شما گردد. بعضا از وسیع ترین نرم افزار های رابطه جمعی عبارتند از: فیسبوک، پینترست، اینستاگرام و اسنپ چت.

3- نرم افزار های کاربردی:
نرم افزار های کاربردی، نرم افزار هایی میباشند که اکثر وقت ها حتی فارغ از اینکه خودمان بخواهیم از آن‌ها به کارگیری میکنیم ؛ بعضا از این نوع نرم افزار ها به طور پیشفرض بر روی تلفن های هم پا نصب می‌شوند. برخی از مرسوم ترین نرم افزار های این تیم عبارتند از: نرم افزار های تذکر، ماشین اکانت، نرم افزار های موقعیت آب و هوا، لامپ قوه و ... . این نوع نرم افزار ها نسبت به دیگر نرم افزار ها اکثر زمان ها کم کم آیتم استعمال قرار می‌گیرند برای مثال از ماشین اکانت تنها در مواردی که می‌خواهید یک معادله را حل فرمایید به کارگیری میکنید (از جمله احتساب شکل اکانت رستوران) و بعد آن را کنار میگذارید. عالی میباشد که کاری فرمائید تا مخاطب مقطع مجال بیشتری را با این نوع نرم افزار ها سپری نماید زیرا استعمال نادر و به تدریج هیچ سودی برای شما نخواهد داشت و در مقابل درصورتی که کاری فرمایید که استفاده کننده بدین نوع نرم افزار جذب گردد می‌تواند برای شما بسیار سودمند باشد.

مقالات کامل و جامع طراحی اپلیکیشن...
ما را در سایت مقالات کامل و جامع طراحی اپلیکیشن دنبال می کنید

برچسب : طراحی اپلیکیشن, نویسنده : عباسی app02 بازدید : 118 تاريخ : سه شنبه 1 آذر 1401 ساعت: 12:52

JSON مخفف JavaScript Object Notation میباشد، طراحی اپلیکیشن که حالتی جدا از داده و شایسته ترین تعیین برای XML است.
این نوشته‌ی‌علمی توضیح میدهد رایا پارس که به چه شکل یک فولدر JSON را تجزیه کرده و داده ها ما یحتاج را از آن حصول کنیم.

اندروید چهار دسته گوناگون برای application اجرای داده ی JSON ارائه می‌دهد که عبارتند از:

JSONArray
JSONObject
JSONStringer
JSONTokenizer .
او‌لین مرحله مشخص و معلوم کردن فیلد هایی در داده ی JSON میباشد .
در JSON ارائه گردیده در پایین ، تنها علاقمند به تصاحب کردن دما هستیم.

{
"sys":
{
"country":"GB",
"sunrise":1381107633,
"sunset":1381149604
},
"weather":[
{
"id":711,
"main":"Smoke",
"description":"smoke",
"icon":"50n"
}
],

"main":
{
"temp":304.15,
"pressure":1009,
}
}
المان های های JSON :
یک پوشه JSON دارنده مولفه های اکثری است. در اینجا جدول مولفه های JSON و تعریف‌و‌تمجید آنان‌را مشاهده میکنید :

([)Array : در یک فولدر JSON کروشه ( [ ) نشانه دهنده ی یک ستون JSON است.
({ )Objects : در یک فایل JSON این علامت (}) علامت دهنده ی یک آبجکت JSON است.
Key : یک آبجکت JSON کلیدی میباشد که صرفا یک فن میباشد. جفت های کلید/مقدار(value/key) یک آبجکت JSON را تشکیل می‌دهند.
Value : هر کلید می‌تواند یه خرده داشته باشد که‌این مقدار می‌تواند حرفه ، integer یا این که double یا این که غیره باشد

مقالات کامل و جامع طراحی اپلیکیشن...
ما را در سایت مقالات کامل و جامع طراحی اپلیکیشن دنبال می کنید

برچسب : طراحی اپلیکیشن, نویسنده : عباسی app02 بازدید : 120 تاريخ : دوشنبه 30 آبان 1401 ساعت: 12:45

فریمورک اندروید دربرگیرنده یک فریورک تستینگ جامع می‌گردد طراحی اپلیکیشن  که به شما امداد می نماید تا نرم افزار خویش و ابزار SDK را از همگی ی جوانب ، (به عنوان مثال برای تهیه و تنظیم و اجرای نرم افزار های آزمایش) آزمون نمائید.
هنگامی ما  در Eclipse  با ADT عمل میکنیم  یا این که در درحال حاضر فعالیت با command line هستیم ، SDK در یک امولاتور یا این که دستگاه مقصود ، به ما امداد می نماید رایاپارس تا آزمایش های خویش را تهیه و تنظیم و جاری ساختن کنیم .

ساختار آزمایش (Test Structure) :
ساختمان اندروید و ابزار آزمایش ، در یک پروژه آزمایش و در یک ساختار استاندارد از آزمایش ها (standard structure of test)، کلاس های گزینه آزمایش (test case classes) ، application پروژه های آزمایش (test projects)  و پکیج های آزمایش  (test packages) سازماندهی گردیده اند.

ابزار تستینگ (Testing Tools) در اندروید :
ابزارهای اکثری میتوانند برای تستینگ نرم افزار های اندروید به کارگیری شوند.
در‌این نوشته‌ی علمی قصد داریم دو ابزار را برای آزمایش نرم افزار های اندروید توضیح دهیم :

JUnit
Monkey
JUnit :
شما میتوانید از JUnit TestCase برای جاری ساختن تستینگ های واحد روی کلاسی  که Android APIs را فرا نمی خواند، به کار گیری نمایید.
TestCase نیز کلاس محور برای AndroidTestCase است که می‌توانید برای آزمایش آبجکت های متعلق ی اندروید از آن استعمال نمایید. خلال ارائه ی قاب ورک JUnit، TestCase اندروید مورد ها دیگری همانند پیکربندی خاص اندروید، teardown و اسلوب های کمکی نیز  ارائه می‌دهد.

برای استعمال از TestCase، کلاس خویش را با کلاس TestCase گسترش دهید  و متدی را به اسم setUp() انجام فرمائید که سینتکس آن به صورت پایین میباشد :

public class MathTest extends TestCase {
protected double fValue1;
protected double fValue2;

protected void setUp() {
fValue1= 2.0;
fValue2= 3.0;
}
}

برای هر آزمایش ، متدی را ایفا فرمائید که با عضو اثبات به صورت متقابل شغل می نماید. 

public void testAdd() {
double result= fValue1 + fValue2;
assertTrue(result == 5.0);
}
 

این مشی مقادیر  آزمایش را با نتیجه ها حقیقی وواقعی مقایسه می نماید و درصورتی که مقایسه ناموفق باشد، آن را رد می نماید.

وقتی که مشی ها تمجید شدند، میتوانید آن‌ها‌را انجام فرمایید.
سینتکس آن را میتوانید در ذیل مشاهده کنید :

TestCase test= new MathTest("testAdd");
test.run();
Monkey
monkey در UI یا این که Application  یک ابزار command-line (امر خطی)  میباشد که جریان های pseudo-random (رندوم-کاذب)  از فشردن کلید ها، لمس کردن ها و حرکات مرتبط با یک دستگاه را ارسال می نماید. شما می‌توانید آن را با ابزار Android Debug Bridge (adb) جاری ساختن نمایید.

میتوانید جریانی از event ها را با اجرای ابزار، هر توشه  با به عبارتی تعداد تصادفی (یا این که رندوم) ، تکرار نمائید.

خصوصیت های Monkey :

Monkey دارنده خصوصیت های متعددی است، البته همگی ی آنها میتوانند درین چهار مولفه خلاصه شوند.

1)     مورد های پیکره بندی (configuration) اساسی

2)     محدودیت های عملیاتی

3)     نوع حادثه ها و تکرار آن ها

4)     مورد های عیب یابی (Debugging)

مقالات کامل و جامع طراحی اپلیکیشن...
ما را در سایت مقالات کامل و جامع طراحی اپلیکیشن دنبال می کنید

برچسب : طراحی اپلیکیشن, نویسنده : عباسی app02 بازدید : 124 تاريخ : يکشنبه 29 آبان 1401 ساعت: 12:43

روید به نرم افزار های شما اذن میدهد تا به وب یا این که هر کانال ی همگانی دیگر متصل گردیده و عملکردهای متعدد کانال اعمال دهید.

یک دستگاه اندروید می‌تواند طراحی اپلیکیشن گونه های مختلفی از اتصال کانال را داشته باشد. این نوشته‌ی‌علمی بر روی wi-fi و یا این که اتصال کانال گوشی تمرکز می نماید.

ارزیابی کردن اتصال کانال در اندروید:
پیش از اینکه شما عملکردی را در کانال اعمال نمایید ، رایاپارس می بایست نظارت نمائید که آیا به کانال و یا این که وب متصل می باشید یا این که خیر. برای این فعالیت اندروید کلاس ConnectivityManager را ارائه میدهد.
مایحتاج میباشد که یک آبجکت از این کلاس application را با فراخوانی سیاق ()getSystemService تحت عنوان مثال قرار دهید.
سینتکس آن مانند تحت میباشد :

ConnectivityManager check = (ConnectivityManager)
this.context.getSystemService(Context.CONNECTIVITY_SERVICE);
 

هنگامی که شما آبجکت کلاس ConnectivityManager را تحت عنوان مثال قرار دادید، می‌توانید از روال getAllNetworkInfo برای به چنگ آوردن داده ها کلیه ی کانال ها استعمال فرمائید. این مشی آرایه ای از داده ها کانال (Networkinfo) را گزارش می‌دهد.
بدین ترتیب بایستی آن را این چنین اخذ نمایید :

NetworkInfo[] info = check.getAllNetworkInfo();
واپسین کاری که بایستی اجرا دهید این میباشد که Connected State (موقعیت اتصال) مرتبط با کانال را نظارت فرمائید، که سینتکس آن این چنین میباشد :

for (int i = 0; i if (info[i].getState() == NetworkInfo.State.CONNECTED){
Toast.makeText(context, "Inteet is connected
Toast.LENGTH_SHORT).show();
}
}
اجرا عملیات کانال :
بعد از اینکه شرایط اتصال به وب  را پژوهش کردید می‌توانید هر عملیات مرتبط با کانال را ایفا دهید .

در اینجا  کد html سایت را از URL حصول می‌کنیم . کلاس HttpURLConnection و URL تجهیزات ما یحتاج برای اعمال این عملیات را مهیا می نماید.

شما بایستی با تولید لینک و پیوند سایت ، یک شی از کلاس URL ساخت‌و‌ساز نمائید . سینتکس آن به طور ذیل میباشد :

String link = "http://www.google.com";
URL url = new URL(link);
بعداز آن ، می بایست از روال openConnection کلاس url  را فراخوانی فرمائید و آن را در یک شی HttpURLConnection اخذ فرمایید . بعداز آن نیاز به فراخوانی اسلوب connect  از کلاس HttpURLConnection خواهید داشت .

HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.connect();
واپسین چیزی که نیاز میباشد اجرا دهید HTML را از وب سایت بگیرید .برای تحقق آن کلاس های  InputStream وBufferedReader خواهید داشت .

InputStream is = conn.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String webPage = "",data="";

while ((data = reader.readLine()) != null){
webPage += data + "\n";
}
ضمن این روال ها , مشی های دیگری نیز برای کلاس HttpURLConnection در دسترس میباشد که به تفصیل تحت میباشد :

()disconnect : این روال اتصال را آزاد می نماید تا منابع بتوانند مجدد استعمال شوند یااینکه در غایت بسته شوند.

()getRequestMethod : این سیاق ، اسلوب درخواستی را که برای اتصال به سرور remote HTTP آیتم به کار گیری می سازد معین می نماید.

()getResponseCode : این روال پاسخی که بوسیله سرور HTTP ارسال می گردد را retu می نماید.

(setRequestMethod(String method : این روال فرمان (command) درخواست ،  که به سرور HTTP خط مش به دور ارسال می شود را تهیه و تنظیم می نماید.

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

نمونه :

نمونه پایین شیوه ی به کارگیری از کلاس HttpURLConnection را تبیین می نماید. این نرم افزار به شما اذن میدهد کد HTML را از سایت دستیابی نمائید .

این نمونه را می بایست روی یک دستگاه حقیقی و واقعی که به وب متصل میباشد آزمایش نمائید .

مقالات کامل و جامع طراحی اپلیکیشن...
ما را در سایت مقالات کامل و جامع طراحی اپلیکیشن دنبال می کنید

برچسب : طراحی اپلیکیشن, نویسنده : عباسی app02 بازدید : 129 تاريخ : شنبه 28 آبان 1401 ساعت: 12:47

ساختن اپلیکیشن ها با Google Maps به شما قابلیت و امکان میدهد خصوصیت هایی مانند تصاویر ماهواره ای ، در دست گرفتن های سفارشی گردیده برای نقشه ها ، طراحی اپلیکیشن ردیابی جای و نشانگرهای جای را به نرم افزار خویش اضافه فرمائید. می‌توانید با اکران اطلاعاتی از دسته داده های خویش مانند جای های ماهیگیری یا این که کوهنوردی شناخته گردیده ، به نقشه های گوگل داده ها اضافه نمائید. رایاپارس شما همینطور میتوانید بازی هایی بسازید که در آن بازیکن به جستجوی دنیای فیزیکی بپردازید ، مانند بازی های شکار ثروت یا این که حتی حقیقت افزوده.

در‌این نوشته‌علمی ، یک نرم افزار  به اسم Wander  (پرسه زدن) می‌سازیم application که نقشه های سفارشی و شرایط استفاده کننده را در نقشه علامت می‌دهد.

پیش نیازها

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

شیوه ساخت‌و‌ساز یک نرم‌افزار بی آلایش Android و اجرای آن با به کار گیری از Android Studio.
طرز ساخت و رئیس منابع در پروژه ، مانند String ها.
طریق تغییر و تحول کد و تغییر‌و تحول اسم متغیرها با استعمال از Android Studio.
روش استعمال از نقشه گوگل تحت عنوان مخاطب.
طریق درخواست مجوزهای ما یحتاج در حین اعمال.
شناخت مقدماتی با گویش کاتلین

مقالات کامل و جامع طراحی اپلیکیشن...
ما را در سایت مقالات کامل و جامع طراحی اپلیکیشن دنبال می کنید

برچسب : طراحی اپلیکیشن, نویسنده : عباسی app02 بازدید : 142 تاريخ : پنجشنبه 26 آبان 1401 ساعت: 12:31

برای استارت اپ نویسی اندروید طراحی اپلیکیشن بایستی تعدادی اصول اصلی را به صورت ظریف رعایت کنیم. آغاز اپلیکیشن نویسی اندروید استاندارد سبب ساز به ایفا پروژه های ماهر می گردد.

آیا از قدم های استارت اپ نویسی اندروید آگاه میباشید؟ امروزه کلیه جا سخن از نرم‌افزار های اندروید میباشد و بازار نرم افزار ها بسیار داغ میباشد. رایاپارس بارها چشم شد‌ه‌است که یک شخص در ذهن خویش یک ایده ناب داراست البته نمی داند چطور آغاز نماید، بدین ترتیب عالی میباشد زود دست به فعالیت گردید  application و در هنگامی معدود بتوانید ایده خویش را به مرحله فعالیت برسانید. در‌این نوشته‌علمی قصد داریم 5 طرز استارت نرم افزار نویسی اندروید را یادگرفتن دهیم با ما یاروهمدم گردید.

استارت نرم افزار نویسی اندروید با یادگیری مهارت ها

در مجموع هنگامی کلام از اندروید میشود یعنی سیستم عاملی داریم که در آن تیم ای از گویش ها و ابزارها وجود داراست که‌این ابزارها بایستی با هم در تعامل باشند و بتوانند به صورت با جزییات بیشتر همیاری کنند. در شرایطی‌که می‌توانید به صورت ظریف استارت اپ نویسی اندروید داشته باشید می بایست بتوانید با موردها ذیل روبرو گردید. در بالا بایستی منطق اپ نویسی را بدانید در آستانه نرم‌افزار نویسی اندروید منطق به شغل رفته لهجه جاوا میباشد. بدین ترتیب در شرایطی‌که می‌خواهید میانبر اپلیکیشن نویسی اندروید را بدانید بایستی بتوانید با جاوا رابطه بگیرید! آنقدرها هم دشوار وجود ندارد عالی میباشد با جاوا دوست باشیم.

مورد آجل یک استارت اپلیکیشن نویسی اندروید طوفانی اجزای رابط کاربری میباشد، در واقع xml از مورد های مهمی میباشد که بایستی به آن اعتنا کرد. نصیب آتی از مهارت های آغاز اپلیکیشن نویسی اندروید منحصر به فرد به ذخیره سازی داده میباشد که می بایست بتوانید HTTP و SQLite را به صحت بشناسید. اتصال به وب و در غایت کامپایل از تیم مفاد اصلی آغاز اپ نویسی اندروید به حساب آورده می شود.

آغاز نرم افزار نویسی اندروید با شناسایی تجهیزات

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

در لیست قانون ها آغاز نرم افزار نویسی اندروید تاکید متعددی بر روی قطعه کدهای فراهم گردیده‌است، در واقع اشاره گردیده که خوب میباشد برای یادگیری عالی نرم‌افزار نویسی عمل کردن بر روی قطعه کد مهیا را به صورت ظریف اعمال دهیم. در‌صورتی‌که که شما هیچ شناخت بر روی گویش نرم افزار نویسی مربوطه ندارید و همچنین علایم و نماد های آن را نمی شناسید عالی میباشد که در صدر یک لهجه اپ نویسی را به صورت ظریف حافظه بگیرید.

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

مقالات کامل و جامع طراحی اپلیکیشن...
ما را در سایت مقالات کامل و جامع طراحی اپلیکیشن دنبال می کنید

برچسب : طراحی اپلیکیشن, نویسنده : عباسی app02 بازدید : 143 تاريخ : چهارشنبه 25 آبان 1401 ساعت: 13:28

وضعیت مالتی تاچ (Multitouch) وقتی  طراحی اپلیکیشن كه بيش از يك انگشت برگه را لمس كنند حادثه مي افتد. اندرويد اذن اجرا اینگونه عملی را می دهد.

اکشن ها و توضیحات آن به تفصیل ذیل میباشد :

ACTION_DOWN : برای اولين نقطهای كه کاغذ را لمس می كند. اين اکشن gesture را استارت می كند.
ACTION_POINTER_DOWN : هنگامی که نقاط زيادی بر شیت وارد مي خواهد  رایاپارس شد این اکشن کاربرد داراست.
ACTION_MOVE : این اکشن در حین لمس شیت و gesture آن واقعه می افتد.
ACTION_POINTER_UP : هنگامی ارسال میشود یک پیکان non-primary به بالا می رود .
ACTION_UP : این اکشن هنگامی ارسال میگردد  application که واپسین نقطه لمس نیز ، برگه را شکاف نماید .(به طور کامل دست از روی تاچ برداشته گردد)

بنابراين به خواسته تعیین هر كدام از اکشن های بالا نياز به override  كردن روال  onTouchEvent() داريد و event ها را می بایست به طور دستی چك كنيد. سینتکس اصلي در زير آمده میباشد :

public boolean onTouchEvent(MotionEvent ev){
final int actionPeformed = ev.getAction();

switch(actionPeformed){
case MotionEvent.ACTION_DOWN:{
break;
}

case MotionEvent.ACTION_MOVE:{
break;
}
retu true;
}
}
در اين مورد ها توانمند به اعمال هر محاسباتی هستیم . براي نمونه zooming (غلو) و خار کردن و غيره. براي بدست آوردن خصوصیات  x و y مي توانيم از روال هاي getX() و getY() به کار گیری كنيم كه سینتکس آن به قرار زير میباشد :

final float x = ev.getX();
final float y = ev.getY();
خلال اين سیاق ها سیاق هاي ديگري نيز براي به کارگیری از multitouch از روش کلاس MotionEvent وجود دارا هستند که به تفصیل پایین می‌باشند :

()getAction : اين مشی اکشن انجام یافته را گشوده می گرداند (retu می نماید) .
()getPressure : اين سیاق فشار فعلی event را برای او‌لین ایندکس گشوده می گرداند.
()getRawX : اين روال بردار ایكس مهم event را retu می نماید.
()getRawY : اين روال بردار ايگرگ اساسی را retu می نماید.
()getSource : اين سیاق منبع event را میگیرد.
()getXPrecision : اين مشی توجه خصوصیات بردار ایكس را retu می نماید.
()getYPrecision : اين اسلوب توجه خصوصیات بردار ایگرگ را retu می نماید.
 

نمونه :

در اينجا مثالی براي مولتی تاچ (Multitouch) را نظارت می کنیم . نرم افزار ، هماهنگی های gesture مولتی تاچ را ایفا میدهد.

براي آزمايش كردن اين نمونه شما بايد آن را بر روی يك دستگاه حقيقی آزمون كنيد.

از android studio براي ساختن نرم افزار اندرويدی ذیل پکیج com.example.sairamkrishna.myapplication استعمال میکنیم .
پوشه src/MainActivity.java file به منظود اضافه کردن كد هاي مایحتاج تغییر تحول دهید 
پوشه res/layout/activity_main به مراد اضافه کردن تركيبات XML تغییر‌و تحول دهید .
نرم‌افزار را انجام كنيد و يك دستگاه اندرويدي اجرايي را گزینش كنيد آن‌گاه نرم افزار را در آن نصب كنيد و نتيجه را گشوده بينی كنيد.

مقالات کامل و جامع طراحی اپلیکیشن...
ما را در سایت مقالات کامل و جامع طراحی اپلیکیشن دنبال می کنید

برچسب : طراحی اپلیکیشن, نویسنده : عباسی app02 بازدید : 133 تاريخ : پنجشنبه 19 آبان 1401 ساعت: 12:24

برای استعمال از این بررسی کننده ی طراحی اپلیکیشن املا موردنیاز میباشد تا اینترفیس SpellCheckerSessionListener را انجام فرمایید و مشی های آن را به عمل ببرید؛
سینتکس  آن را میتوانید در پایین مشاهده کنید :

public class HelloSpellCheckerActivity extends Activity implements SpellCheckerSessionListener {
@Override
public void onGetSuggestions(final SuggestionsInfo[] arg0) {
// TODO Auto-generated method stub
}

@Override
public void onGetSentenceSuggestions(SentenceSuggestionsInfo[] arg0) {
// TODO Auto-generated method stub
}
}
بعد از آن مایحتاج میباشد یک آبجکت از کلاس SpellCheckerSession ساخت‌و‌ساز نمایید.
با فراخوانی مشی newSpellCheckerSession از کلاس TextServicesManager ، آبجکت رایاپارس ساخت‌و‌ساز گردیده قادر است تحت عنوان مثال قرار بگیرد.
این کلاس به روال میان نرم افزار و خدمت های متن (text service) پژوهش می نماید. همینطور نیاز میباشد که خدمت سیستم را برای مثال گذاری آن درخواست نمائید.
سینتکس آن در ذیل ارائه گردیده‌است  :

private SpellCheckerSession mScs;
final TextServicesManager tsm = (TextServicesManager) getSystemService(
Context.TEXT_SERVICES_MANAGER_SERVICE);
mScs = tsm.newSpellCheckerSession(null, null, this, true);
واپسین کاری که بایستی اعمال دهید، فراخوانی مشی getSuggestions میباشد application تا برای هر متن گزینه نظرتان توصیه (suggestion) داشته باشید. سفارش ها به روال onGetSuggestions منتقل خواهند شد، جایی که شما هر کاری که می‌خواهید می‌توانید اعمال دهید.

mScs.getSuggestions(new TextInfo(editText1.getText().toString()), 3);
این مشی دو پارامتر را تحت عنوان ورودی  میگیرد.
او‌لین پارامتر، حرفه ای به صورت آبجکت TextInfo است و دومی پارامتر شماره ی cookie میباشد که برای معین کردن سفارش ها به کارگیری می‌گردد.
علاوه برا این اسلوب ها ، مشی های دیگری بوسیله کلاس SpellCheckerSession و برای سفارش های عالی ارائه می‌شوند. لیست این اسلوب ها را در جدول ذیل مشاهده میکنید :

()cancel : وضعیت پندینگ (pending) را لغو کرده و عمل نظارت کردن املا را اعمال می نماید.

()close : این سیاق session  را به نقطه نهایی رسانده و به TextServicesManagerService اذن می‌دهد تا از تحلیل کننده املا جداگانه خواهد شد.

(getSentenceSuggestions(TextInfo[] textInfos, int suggestionsLimit : پیشنهاداتی از جمله ها معلوم گردیده می‌گیرد.

()getSpellChecker : داده ها  spell checker service را که مرتبط با این session از ارزیابی کننده باشد، می‌گیرد.

()isSessionDisconnected : این روال True را بر می گرداند در شرایطی‌که اتصال به خدمت متن در‌این نصیب انقطاع گردیده باشد.

مقالات کامل و جامع طراحی اپلیکیشن...
ما را در سایت مقالات کامل و جامع طراحی اپلیکیشن دنبال می کنید

برچسب : طراحی اپلیکیشن, نویسنده : عباسی app02 بازدید : 142 تاريخ : چهارشنبه 18 آبان 1401 ساعت: 12:21

با فراخوانی مشی getSensorList میتوانید لیستی طراحی اپلیکیشن از حسگرهای جانبداری گردیده بوسیله دستگاه خویش را بدست آورید ، که لیستی از حسگرها دربردارنده اسم و شماره ورژن و داده ها بسیار بیشتری را به شما گشوده می گرداند. بعد میتوانید این لیست را پیمایش فرمایید تا داده ها را بدست آورید. به طور تحت:

sMgr = (SensorManager)this.getSystemService(Context.SENSOR_SERVICE);
List list = sMgr.getSensorList(Sensor.TYPE_ALL);
for(Sensor sensor: list){
}

به غیر از این متدها ، متدهای دیگری نیز وجود دارااست رایاپارس که به وسیله کلاس SensorManager برای رئیس حسگرها ارائه شد‌ه‌است. این متدها در ذیل نام برده میباشد:

Sr.No

روال ها و توضیحات

1

getDefaultSensor(int type)

این مشی حسگر پیشفرض از هر نوع دلخواه را میدهد

2

getInclination(float[] I)

این اسلوب زاویه شیب ژئومغناطیسی را برحسب رادیان application با استعمال ماتریس شیب به حساب آوردن می نماید

3

registerListener(SensorListener listener, int sensors, int rate)

این روال مستمع ای برای حسگر به ثبت می رساند

4

unregisterListener(SensorEventListener listener, Sensor sensor)

این سیاق مستمع ای که پیش از اینً برای حسگر تصویب گردیده بود را کنسل به ثبت می رساند

5

getOrientation(float[] R, float[] values)

این مشی جهت گیری دستگاه را مبنی بر ماتریس چرخش به حساب آوردن می نماید

6

getAltitude(float p0, float p)

این روال طول را بر حسب متر از فشار جو و فشار در سطح دریا به حساب آوردن می نماید

 

در اینجا مثالی مشاهده کنید که استعمال از کلاس SensorManager را نماد می‌دهد. این نمونه نرم افزار بی آلایش ای میباشد که به شما قابلیت می‌دهد لیستی از حسگرهای دستگاه خویش را ملاحظه کنید.

برای تست این نمونه ، می‌توانید آن را روی دستگاه حقیقی و واقعی یا این که مشابه ساز اعمال فرمائید.

 

فرآیند فعالیت:

Steps

Description

1

شما از اندروید استودیو برای ساخت یک اپلیکیشن اندرویدی با پکیج com.example.amani.myapplication به کارگیری میکنید

2

فولدر src/MainActivity.java را تغییر‌و تحول می دهید برای افزودن کدهای موردنیاز

3

فولدر res/layout/activity_main را تغییر و تحول می دهید برای افزودن کامپوننت های موردنیاز به فولدر xml

4

اپ را انجام نمایید و دستگاه اندرویدی در درحال حاضر اعمال را گزینش نمائید و اپ را روی آن نصب فرمائید و حاصل را تأیید نمائید.

 

در پایین محتوای اصلاح گردیده MainActivity.java بیان شده میباشد.

 

package com.example.amani.myapplication;

import android.app.Activity;
import android.سخت افزار.SensorManager;
import android.Operating System.Bundle;

import android.util.Log;

import android.view.Menu;
import android.view.MenuItem;
import android.view.View;

import android.widget.TextView;

import java.util.List;
import android.سخت افزار.Sensor;
import android.سخت افزار.SensorManager;

public class MainActivity extends Activity {
TextView tv1=null;
private SensorManager mSensorManager;
@Override

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

tv1 = (TextView) findViewById(R.id.textView2);
tv1.setVisibility(View.GONE);

mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
List mList= mSensorManager.getSensorList(Sensor.TYPE_ALL);

for (int i = 1; i < mList.size(); i++) {
tv1.setVisibility(View.VISIBLE);
tv1.append("\n" + mList.get(i).getName() + "\n" + mList.get(i).getVendor() + "\n" + mList.get(i).getVersion());
}
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
retu true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.

int id = item.getItemId();

//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
retu true;
}
retu super.onOptionsItemSelected(item);
}
}
 

در تحت محتوای اصلاح گردیده activity_main.xml گفته شده میباشد.

مقالات کامل و جامع طراحی اپلیکیشن...
ما را در سایت مقالات کامل و جامع طراحی اپلیکیشن دنبال می کنید

برچسب : طراحی اپلیکیشن, نویسنده : عباسی app02 بازدید : 113 تاريخ : سه شنبه 17 آبان 1401 ساعت: 12:38