loading...

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

بازدید : 20
يکشنبه 31 فروردين 1404 زمان : 14:41


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

1- Gmail :
در صدر برای به کار گیری از هریک از سرویس ها گوگل شما نیاز به یک جیمیل دارید و گوگل پلی نیز مشمول این نیازمندی است.
ولی نکته ای که در‌این نصیب وجود داراست این میباشد که جیمیل شما نباید با حالت کشور‌ایران و پیش شماره ی اهل ایران باشد به همین انگیزه شما بایستی در بالا یک جیمیل نو ساخته و شرایط مکانی خویش را به کشوری غیر از کشور ایران اختصاص دهید.
در مرحله ی آینده آن شماره یاروهمدم شما نیز می بایست وابسته به کشوری سوا لیست سیاه تحریم ها باشد.
برای مثال در صورتیکه شما حالت مکانی خویش را ایالات متحده تعیین کردید، پیش شماره ی شما نیز می بایست وابسته به ایالات متحده باشد.

2- تنظیم ی شماره :
همان گونه که در توضیحات بالا نیز گفته شد شما در دو مرحله مستلزم یک پیش شماره ی فرنگی میباشید.
مرحله ی اولیه برای تشکیل داد جیمیل و مرحله ی دوم در ایجاد کرد حساب دولوپری.
برای تنظیم ی یک پیش شماره ی فرنگی کافی میباشد به تارنما هایی که سرویس ها فروش شماره ی
مجازی فرنگی را اعمال می‌دهند مراجعه نمایید.

3- به کار گیری از VPS یا این که VPN:
شما برای دسترسی به حساب دولوپری خویش بایستی در کلیه پروسه از یک فیلترشکن (VPN) یا این که یک سرور مجازی (VPS) به کار گیری فرمایید.
فقط نکته ی موردنیاز در به کار گیری از VPN یا این که VPS به اینصورت میباشد که IP شما نباید تغییر تحول نمائید.
در غیر اینصورت گوگل متوجه ی استعمال ی شما از غربال شکن گردیده و حساب شمارا خواهد بست.
در به کارگیری از سرور مجازی خاطر شما شل میباشد که آی پی شما اصلا تغییر تحول نخواهد یافت.
ولی در استعمال از غربال شکن این خطر وجود داراست به همین خیال بایستی بسیار مراقب باشید که هر توشه برای اتصال به به عبارتی کشوری که تا قبل از این متصل بوده اید متصل گردید.

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

۵- نام‌و‌نشان :
یکی‌از دیگر از داده ها دریافتی گوگل پلی (و نسبتاً هر مارکت حرفه‌ای) اخذ نام‌و‌نشان گسترش دهندگان میباشد.
که‌این نام‌و‌نشان دربرگیرنده اسم تا اطلاعاتی همانند کارت شناسایی میباشد که درین مرحله نیز قائدتا نام‌و‌نشان اهل ایران به نقص‌ خواهد خورد مگر اینکه شما یک اهل ایران باشید که شهروند رسمی یک مرزوبوم فرنگی گردیده باشد.

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

یادگرفتن ایجاد کرد حساب دولوپری گوگل پلی (برای یوزرها سوا جمهوری اسلامی ایران)
1- در مرحله ای اولیه برای تشکیل داد حساب در بالا به جیمیلی که در مرحله ی پیشین
خصوصیات آن گفته شد متصل گردید و به پیوند ذیل بروید :

https://play.google.com/console/signup


2- در مرحله ی دوم بعداز داخل شدن به لینک و پیوند دو آیتم برای شما مو جود میباشد که از شما می‌پرسد برای خویش قصد ساخت و ساز حساب دولپری را دارید یا این که برای استحصال و کارتان ؟
شما Get started را در بخش yourself گزینش و بر روی آن کلیک فرمایید.


3- در مرحله ی آتی از شما اطلاعاتی را می‌خواهد که طبق تصویر ذیل و توضیحاتی
که در پایین داده شد‌ه‌است داده ها را مالامال فرمائید :

Developer name : اسم حساب دولوپری شما

Contact name : وارد کردن اسم دلخواه

Contact email address : وارد کردن جیمیل

Contact address : وارد کردن کشوری به غیر از جمهوری اسلامی ایران
(ترجیحا کشوری که درین قسمت گزینش میکنید مبتنی بر با کشوری
باشد که برای جیمیل و شماره ی مجازی خویش تعیین نموده اید.)

Contact phone number : وارد کردن شماره ی مجازی یا این که شماره سوا کشور‌ایران

Website : در حالتی‌که که تارنما دارید نشانی آن را وارد نمایید در غیر اینصورت
تیک آیتم ی I don’t have a website را بزنید.

- درین مرحله تیک های جانور در ذیل نصیب Terms (ضوابط و ضوابط) را زده و بعد بر روی آیتم ی creat account and pay کلیک فرمایید.


5- در مرحله ی آنگاه طبق تصویر بالا می بایست مبادرت به پرداخت 25 دلار با استعمال از به عبارتی روادید کارتی که شیوه اخذ آن گفته شد بکنید.

بازدید : 18
شنبه 30 فروردين 1404 زمان : 15:49


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

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


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

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

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

بازدید : 60
پنجشنبه 28 فروردين 1404 زمان : 12:51


افزودن دکمه ها
در مرحله آن‌گاه، دو دکمه را به کاغذ ورود خویش اضافه میکنیم: « Cancel » طراحی اپلیکیشن در مشهد و « Next ».
ما از مولفه MDC Button به کار گیری خوا هیم کرد که با یک استایل موج دار جوهری Material Design دکمه ها را اضافه می نماید .

در shr_login_fragment.xml، یک را به ، در تحت ارکان TextInputLayout اضافه فرمائید.
آنگاه دو عنصر را به اضافه فرمایید.

فولدر XML نتیجه ها بایستی به صورت ذیل باشد:

android:layout_width="match_parent"
android:layout_height="wrap_content">

android:id="@+id/next_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:text="@string/shr_button_next" />

android:id="@+id/cancel_button"
style="@style/Widget.MaterialComponents.Button.TextButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="12dp"
android:layout_marginRight="12dp"
android:layout_toStartOf="@id/next_button"
android:layout_toLeftOf="@id/next_button"
android:text="@string/shr_button_cancel" />


COPY

درحال حاضر می‌بینید وقتی که نرم افزار را انجام می‌کنید، با ضربه زدن روی هر دکمه، یک موج جوهر نشان داده میشود.


رفتن به بخش آتی
در غایت، کد جاوا را به LoginFragment.java اضافه می‌کنیم تا دکمه “NEXT” خویش را به قطعه دیگری متصل کنیم.
متوجه خواهید شد که هرمورد از مؤلفه هایی که به طرح خویش اضافه کردیم، یک شناسه به آن تخصیص داده گردیده‌است.
ما از این شناسه‌ها برای ارجاع به مؤلفه‌های کدمان به کار گیری می کنیم و بعضی از امکان ها مانند رسیدگی مشکلات و پیمایش را اضافه میکنیم.

بیایید یک سیاق بولی محرمانه isPasswordValid در LoginFragment.java در تحت () onCreateView اضافه کنیم که منطقی برای گزینش اینکه آیا سر عبور دارای اعتبار میباشد یا این که خیرمی باشد.
برای هدف ها این دمو، ما صرفا مطمئن می شویم که راز عبور دستکم 8 کاراکتر باشد:

/*
In reality, this will have more complex logic including, but not limited to, actual
authentication of the username and password.
*/
private boolean isPasswordValid(@Nullable Editable text) {
return text != null && text.length() >= 8;
}
COPY
در مرحله آن گاه، یک کلیک listener به دکمه « NEXT» اضافه نمایید که نادرست را مبنی بر اسلوب () isPasswordValid که تولید کردیم تهیه و تمیز می نماید.
در () onCreateView، این کلیک listener می بایست میان خط inflater و خط نمای بازگشتی قرار گیرد.
در مرحله آن‌گاه، بیایید یک listener کلیدی به سر عبور TextInputEditText اضافه کنیم تا به رویدادهای کلیدی که غلط را منزه می نمایند دقت داشته باشیم.
این listener همینطور بایستی از () isPasswordValid برای رسیدگی دارای اعتبار بودن یا این که نبودن راز عبور به کارگیری نماید.
میتوانید این آیتم را مستقیماً تحت کلیک مستمع در () onCreateView اضافه فرمایید.
مشی onCreateView شما اینک می بایست چیزی مشابه به‌این باشد:

@Override
public View onCreateView(
@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.shr_login_fragment, container, false);
final TextInputLayout passwordTextInput = view.findViewById(R.id.password_text_input);
final TextInputEditText passwordEditText = view.findViewById(R.id.password_edit_text);
MaterialButton nextButton = view.findViewById(R.id.next_button);

// Set an error if the password is less than 8 characters.
nextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (!isPasswordValid(passwordEditText.getText())) {
passwordTextInput.setError(getString(R.string.shr_error_password));
} else {
passwordTextInput.setError(null); // Clear the error
}
}
});

// Clear the error once more than 8 characters are typed.
passwordEditText.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View view, int i, KeyEvent keyEvent) {
if (isPasswordValid(passwordEditText.getText())) {
passwordTextInput.setError(null); //Clear the error
}
return false;
}
});
return view;
}
COPY
Structure و Layout
در قسمت قبلی ، شما از دو جزء متریال (MDC) برای ساختن یک کاغذ ورود استعمال کردید: فیلدهای متنی و دکمه ها.
در حال حاضر اذن دهید این اساس را با اضافه کردن ناوبری، ساختار و اطلاعات توسعه و گسترش دهیم.

درین نصیب از دکان ما مستلزم دو قسمت دیگر هستیم که عبارتند از :

نوار نرم‌افزار بلندتر
لیست کانال ای از تولید ها

بازدید : 59
چهارشنبه 27 فروردين 1404 زمان : 12:52


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

@Override
protected void onPause() {

Toast.makeText(this, "onPause MainActivity", Toast.LENGTH_SHORT).show();
Log.d(TAG, "onPause MainActivity");

super.onPause();
}
COPY
زمانی که () onPause فراخوانی میگردد ، ممکن میباشد بعضا منابع را از یاد آزاد نماید.
با این درحال حاضر، مطمئن گردید که آن ها را مجدداً در طی فراخوانی ()onResume مقداردهی فرمایید.

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

() onStop
در‌این مرحله، اکثر فرآیندهای شغل و عملکردی متوقف گردیده‌است. با این اکنون، شغل همچنان در بک گراند کارس جاری ساختن میشود.
این چرخه حیات معمولاً بعداز اجرای مشی () onPause به جهت تغییر و تحول استفاده کننده به بقیه شغل‌ها یا این که فشردن دکمه منزل حادثه می‌ افتد.
این فرخوان در واقع برای آزادسازی منابع هنگفت و توقف عملیات فشرده به کارگیری می گردد.
از آنجایی که () onPause مختصر و موقت میباشد، در قبال () onStop قادر است برای ذخیره اطلاعات در شبکه های دیگر مانند مقر های داده استعمال شود.

@Override
protected void onStop() {

Toast.makeText(this, "onStop MainActivity", Toast.LENGTH_SHORT).show();
Log.d(TAG, "onStop MainActivity");

super.onStop();
}
COPY
دقت: فعلا در‌این مثال کد شغل ها به طور بدون نقص متوقف نشده اند و
مثال های عمل در یک پشته ذخیره می گردند. این بدان مفهوم میباشد که تمامی موردها مذکور، برای مثال نماها، هنوز فعال میباشند.
هنگامی استفاده کننده مجدد آن را گشوده می نماید، نرم افزار کلیه مثال ها را مجدد بارگیری نمی نماید.
در قبال، آنان را از یاد بازیابی می نماید. این مشتمل بر اجزای UI مانند TextViews نیز میگردد.

() onRestart
از آنجایی که موقعیت های اکتیویتی هنوز وجود داراست، روال () onRestart قادر است وقتی که مخاطب شغل
را مجدداً فعال‌ساز‌ی می نماید فراخوانی خواهد شد.
این بدان معناست که کار به ورقه مهم گشوده می شود و مخاطب می‌تواند تعامل با اجزای آن را از رمز بگیرد.
همان طور که گفته شد، تابع () onCreate فقط یک توشه در چرخه حیات یک شغل فراخوانی می گردد.
به این ترتیب، هنگامی که مشی () onRestart انجام می گردد، شغل با اجرای () onStart بعد () onResume ادامه پیدا خواهد کرد.

@Override
protected void onRestart() {

Toast.makeText(this, "onRestart MainActivity", Toast.LENGTH_SHORT).show();
Log.d(TAG, "onRestart MainActivity");

super.onRestart();
}
COPY
()onDestroy
این فراخوان در واقع برای از میان بردن دسته ای از عمل ها و عملکردها آیتم استعمال قرار میگیرد.
مثلا فرض نمایید شما پیکربندی جدیدی را حیث کرده و دوباره سیستم را ری آغاز میکنید در این‌حالت پیکربندی قبل با فراخوانی این روال از میان رفته و پیکربندی نو صدا زده خواهند شد.

@Override
protected void onDestroy() {

Toast.makeText(this, "onDestroy MainActivity", Toast.LENGTH_SHORT).show();
Log.d(TAG, "onDestroy MainActivity");

super.onDestroy();
}
COPY
آزمایش چرخه حیات
ما این اپلیکیشن را ایفا می‌کنیم و پیام های Logcat خویش را می‌خوانیم تا ببینیم این طرز های متفاوت به چه شکل جاری ساختن میگردند.
درین مرحله، MainActivity.java شما بایستی کد پایین را داشته باشد:


برای تست اپلیکیشن، یک شغل دیگر اضافه میکنیم تا بتوانیم این نحوه ها را با تغییر و تحول از نقطه A به B بخوانیم.
در اندروید استودیو، یک اکتیویتی خالی دیگر ساخت نمائید و اسم آن را Activity2.java بگذارید،
به عبارتی کد فولدر MainActivity.java را اضافه می‌کنیم. با این هم اکنون، ما پیام های Toast و Log را بر طبق صورت تحت تغییر و تحول میدهیم:

public class Activity2 extends AppCompatActivity {

private static final String TAG = "Activity2";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_2);
Toast.makeText(this, "onCreate Activity2", Toast.LENGTH_SHORT).show();
Log.d(TAG, "onCreate Activity2");
}

@Override
protected void onStart() {
super.onStart();
Toast.makeText(this, "onStart Activity2", Toast.LENGTH_SHORT).show();
Log.d(TAG, "onStart Activity2");
}

@Override
protected void onRestart() {
super.onRestart();
Toast.makeText(this, "onRestart Activity2", Toast.LENGTH_SHORT).show();
Log.d(TAG, "onRestart Activity2");
}

@Override
protected void onResume() {
super.onResume();
Toast.makeText(this, "onResume Activity2", Toast.LENGTH_SHORT).show();
Log.d(TAG, "onResume Activity2");
}

@Override
protected void onPause() {
super.onPause();
Toast.makeText(this, "onPause Activity2", Toast.LENGTH_SHORT).show();
Log.d(TAG, "onPause Activity2");
}

@Override
protected void onStop() {
super.onStop();
Toast.makeText(this, "onStop Activity2", Toast.LENGTH_SHORT).show();
Log.d(TAG, "onStop Activity2");
}

@Override
protected void onDestroy() {
super.onDestroy();
Toast.makeText(this, "onDestroy Activity2", Toast.LENGTH_SHORT).show();
Log.d(TAG, "onDestroy Activity2");
}
}
COPY
در MainActivity خویش، نحوه تحت را اضافه فرمایید تا به ما یاری فرمایید در میان عمل‌ها تکان کنیم:

public void gotoActivity2(View view) {
Intent intent = new Intent(this, Activity2.class);
startActivity(intent);

}
COPY
غرض بالا به ما در ایفا و پیمایش به Activity2 امداد می نماید.
برای اجرای این سیاق، همانگونه که در پایین مشخص و معلوم گردیده‌است، یک دکمه در activity_main.xml اضافه می‌کنیم:

android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Watch the Log in Android Studio when you run the application"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.056" />

android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="52dp"
android:layout_marginEnd="50dp"
android:layout_marginStart="50dp"
android:layout_weight="50"
android:onClick="gotoActivity2"
android:text="go to Activity2"
app:layout_constraintTop_toBottomOf="@+id/text"
tools:layout_editor_absoluteX="15dp" />
COPY
این نرم‌افزار بایستی در دستگاه اندروید شما این چنین باشد :


فورا بعداز راه‌اندازی اپ، طرز های پایین به طور پی در پی ایفا می گردند :


اپلیکیشن با اجرای تابع () onCreate آغاز میشود. در‌این مرحله، اجزای نرم افزار هنوز قابل مشاهده نیستند.
بعد از آن اسلوب () onStart و به‌دنبال آن () onResume فراخوانی میگردد. درین چرخه حیات، استفاده کننده می‌تواند با اجزای UI تعامل داشته باشد.

حال بیایید با کلیک روی دکمه go-to Activity2 به Activity2 برویم.

درین لحظه، Activity2 در اکنون مسدود کردن MainActivity میباشد.
این بدان معناست که MainActivity با استعمال از جواب به تماس ()onPause متوقف گردد. این آیتم در پایین پر رنگ گردیده‌است :


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


همانگونه که می‌بینید، سه مشی در اینجا انجام می گردد: () onRestart ()، onStart و () onResume.
زمانی back را صدا میزنید ، بدین مضمون‌ میباشد که از شغل بیرون می شوید و تماس‌های برگشتی مبنی بر صورت پایین جاری ساختن میگردند:


همان گونه که میبینید، هنگام خروج از نرم‌افزار،() onDestroy آغاز فراخوانی نمیشود. این عمل همچنان چرخه حیات خویش را دنبال می نماید.

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

بازدید : 53
يکشنبه 24 فروردين 1404 زمان : 15:34


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

Java script: این لهجه یکی پرکاربردترین گویش‌های مو جود در مورد نرم افزار‌نویسی زیر اینترنت بوده و شما می توانید با به کار گیری از این گویش، صفحاتی پویا، زنده و تعاملی را بنویسید. صفحه ها درج شده بوسیله جاوا اسکریپت، این قابلیت و امکان را به شما می دهند تا همه نکات آن را تغییر‌و تحول داده و به دلخواه خویش، تزئین فرمائید.
Html: یکی‌از اشکال گویش‌ های نرم‌افزار نویسی، HTML اسم داراست. از این لهجه برای نماد‌گذاری در صفحه ها و متمایز کردن ارکان آن به کار گیری می گردد. این لهجه به سایت شما ظاهری به طور کامل گوناگون را کادو کرده و سبب ساز می شود تا مراجعین در اولی گام، مجذوب پیاده سازی و المان‌های گوناگون تارنما شما شوند.
Css: لهجه سی اس اس یکی گویش‌های استایل‌دهی به حساب می‌آید. شما میتوانید با به کارگیری از این گویش، به وب سایت‌ها و صفحاتی که تا قبل از این اپ‌نویسی کرده‌اید را مجدد پیاده سازی کرده و ظواهر زیباتری به آنها کادو دهید.
لهجه‌های اپلیکیشن‌نویسی گوناگون و متنوع دیگری نیز در مورد نرم افزار‌نویسی زیر اینترنت وجود دارا‌هستند مانند جی کوئری، ELM ،RUBY ،ASP.NET ،java ،phyton php و غیره.

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

Swift: لهجه نرم افزار نویسی سوئیفت یکی لهجه‌هایی میباشد که منحصر به فرد نرم افزار‌نویسی برای آیفون و سیستم استدلال IOS پیاده سازی شد‌ه‌است. این گویش با اعتنا به امکان‌های بسیار بالای خویش، می تواند اپلیکیشن‌ها و نرم افزار‌های بسیار مدرنی را پیاده سازی کرده و اطراف کاربری‌ آن را بر پایه ی سیستم استدلال آی وی اس پردازش نماید.
Objective-c: این گویش به طور اختصاصی برای پیاده سازی نرم افزار آیفون و اندروید پیاده سازی شد‌ه‌است. با این گویش می‌اقتدار تایپ‌های متفاوت جزئی و کلی، پارامترهای اسم‌گذاری گردیده و شماره‌گذاری گردیده و بخش اعظمی از آیتم‌ها و آپشن‌های دیگر را به یک نرم افزار، اضافه نمود.
Python: لهجه اپلیکیشن نویسی پایتون نیز یکی‌از گویش‌های اثر گذار و مطلوب برای نرم افزار‌نویسی نرم افزار محسوب میشود. این گویش به شما این توان را میدهد تا به شل‌ترین صورت ممکن و سوای نیاز به تغییر و تحول کدها، اپ خویش را برای دو سیستم برهان متفاوت عرضه کرده و یک نرم افزار چند‌منظوره داشته باشید.
میان گونه های گویش‌های اپلیکیشن نویسی نرم افزار‌های گوشی می‌اقتدار به java، javascript، kotlin، C#، phyton و Ruby اشاره نمود.

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

بازدید : 58
شنبه 23 فروردين 1404 زمان : 16:00


Zoho Creator
4

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

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

در ZOHO با code editors قوی ، visual builders ، پوسته های از پیش تشکیل‌شده و مورد ها دیگر، پروسه پیشرفت نرم افزار خویش را تسریع فرمایید.
افزون بر آن، میتوانید به راحتی گردش‌های کاری را در اپ‌های خویش با تکرارها و پروسه معمولی تنظیمات و اتوماتیک فرمائید.

Knack
5

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

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

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

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


Bubble
6

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

Mendix
7

یکی از دیگر از ابزارهای پیاده سازی نرم افزار سوای کد Mendix میباشد که تجهیزات جامع و فوق العاده ای را مانند بقیه ابزارها در چنگ شما قرار می‌دهد.

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

Airtable
8

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

خلال این، الگوهای اثر گذار متعددی برای طراحی برنامه مال، کاتالوگ جنس، ردیابی گونه های، ردیابی متاع، فعال سازی کالا و مفاد دیگر اخذ می‌کنید. شغل تیمی خویش را با اعلان های سفارشی و خودکارسازی شغل های مازاد تسریع نمایید.
همینطور در‌این پلتفرم میتوانید با مخلوط نرم افزار های خویش با خدمت هایی مانند Slack، Gmail، Facebook، Twitter، Teams، Google Sheets و .. ، گردش فعالیت خویش را معمولی نمائید.
Airtable به شما قابلیت و امکان میدهد با ابزارهای نرم‌افزار خویش به راحتی با هر کسی، به هر‌جا و در هر مجال همیاری نمائید.

بازدید : 21
پنجشنبه 21 فروردين 1404 زمان : 11:37


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

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

به کار گیری از WebViwe
از آنجایی که WebView محتوای اینترنت را مصرف می‌نماید که قادر است مشمول HTML و جاوا اسکریپت باشد،
استعمال خطا قادر است سبب ساخت اشتباهات رایج امنیتی اینترنت مانند cross-site-scripting (JavaScript injection) خواهد شد.
Android مشتمل بر چند سازوکار برای کاهش دامنه این اشتباهات بالقوه با محصور کردن قابلیت و امکان WebView به دست کم سعی مایحتاج نرم‌افزار شما میباشد.
در صورتی نرم افزار شما مستقیماً از جاوا اسکریپت در WebView استعمال نمی نماید، () setJavaScriptEnabled را فراخوانی نکنید.
بعضا از کدهای مثال از این طرز استعمال می نمایند، که ممکن میباشد در نرم افزار مجدداً از آن به کار گیری فرمایید،
براین اساس در شکل عدم نیاز، آن فراخوانی را حذف فرمائید.
به صورت پیش فرض، WebView جاوا اسکریپت را ایفا نمی نماید، به این ترتیب قابلیت اسکریپت cross-site-scripting نیست.

از addJavaScriptInterface با تمرکز خاصی استعمال فرمائید چون به جاوا اسکریپت اذن میدهد تا
عملیاتی را که معمولاً برای اپلیکیشن‌های Android رزرو گردیده است فراخوانی نماید.
در‌حالتی که از آن استعمال می‌کنید،() addJavaScriptInterface را صرفا در صفحه ها وبی قرار دهید که مجموع ورودی های آن ایمن میباشد.

در صورتیکه اپ شما با WebView به داده های حساس دسترسی پیدا می نماید، ممکن میباشد بخواهید
از طریق () clearCache برای حذف پوشه های ذخیره گردیده محلی استعمال نمائید.
همینطور می‌توانید از هدرهای سمت سرور مانند no-cache استعمال فرمایید تا آرم دهید که یک نرم افزار نباید محتوای خاصی را در یاد مخفی ذخیره نماید.

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

مجموعاَ، بایستی بدانید که اپ شما از کدام ارائه دهندگان امنیتی Java Cryptography Architecture (JCA) استعمال می نماید.
عملکرد فرمائید از بالاترین سطح طراحی چارچوب از قبلی جانور استعمال نمائید که میتواند گزینه استعمال شمارا مدد نماید.
در شکل وجود، از ارائه‌دهندگان ارائه‌گردیده بوسیله Google به ترتیب معین گردیده به وسیله Google به کارگیری فرمایید.

در شرایطی‌که نیاز به بازیابی ایمن یک پوشه از یک جای کانال شناخته گردیده دارید، یک URI بی آلایش HTTPS ممکن میباشد کافی باشد و نیازی به علم رمز گذاری نداشته باشد.

در صورتی‌که به یک تونل امن نیاز دارید، به مکان تایپ کردن پروتکل خویش، از HttpsURLConnection یا این که SSLSocket به کارگیری فرمائید.

در شرایطی‌که از SSLSocket استعمال میکنید، اعتنا داشته باشید که تأیید اسم صاحب خانه را اعمال نمی دهد.

در صورتیکه متوجه شدید که می بایست پروتکل خویش را طراحی نمایید، نباید الگوریتم های کد گذاری خویش را طراحی فرمایید.
از الگوریتم های کد گذاری جان دار، مانند AES و RSA ارائه گردیده در کلاس Cipher به کارگیری نمایید.
خلال این، شما بایستی شایسته ترین نحوه ها را دنبال فرمائید:

از AES 256 بیتی برای هدف ها تجاری به کار گیری فرمائید. (در صورتیکه در دسترس وجود ندارد، از AES 128 بیتی به کار گیری نمایید.)

برای رمز گذاری elliptic curve (EC) از کلید همگانی 224 یا این که 256 بیتی به کار گیری نمائید.

بدانید چه وقتی از وضعیت های بلوک CBC، CTR یا این که GCM به کار گیری فرمائید.

از به کار گیری دوباره IV/counter در موقعیت CTR اجتناب نمائید. مطمئن گردید که از نگاه کدگذاری تصادفی میباشند.

هنگام به کار گیری از رمزگذاری، یکپارچگی را با به کار گیری از وضعیت CBC یا این که CTR با یکی‌از عملکردهای ذیل طراحی فرمایید:

HMAC-SHA1
HMAC-SHA-256
HMAC-SHA-512
Mode GCM
از یک مولد اعداد تصادفی ایمن، SecureRandom، برای مقداردهی اول کلیدهای کد گذاری ساخت و ساز گردیده بوسیله KeyGenerator به کارگیری فرمایید.
به کارگیری از کلیدی که با مولد اعداد تصادفی ایمن ساخت‌و‌ساز نمیشود، اقتدار الگوریتم را به واحد سنجش قابل توجهی ضعیف می نماید و ممکن میباشد حمله ها آفلاین را قابلیت و امکان پذیر نماید.

(در صورتی نیاز به ذخیره کلید برای استعمال مکرر دارید، از مکانیزمی مانند KeyStore استعمال نمائید
که مکانیزمی را برای ذخیره وقت گیر بازه زمانی و بازیابی کلیدهای رمز گذاری مهیا می نماید.)

بازدید : 23
چهارشنبه 20 فروردين 1404 زمان : 11:45


Operators
عملگر نمادی میباشد که به کامپایلر میگوید ویرایش های ریاضی یا این که منطقی خاصی را اعمال دهد.
Kotlin از لحاظ operators داخلی بی نیاز میباشد و اشکال عملگرهای تحت طراحی اپلیکیشن در مشهد را ارائه می‌دهد:

Arithmetic Operators
Relational Operators
Assignment Operators
Unary Operators
Logical Operators
Bitwise Operations
عملگرهای Arithmetic

عملگرهای حسابی کاتلین برای ایفا عملیات ریاضی محور مانند توده، تفریق، ضرب و تقسیم و … استعمال میگردند.

Operator

Name

Description

Example

+

Addition

Adds together two values

x + y

Subtraction

Subtracts one value from another

x – y

*

Multiplication

Multiplies two values

x * y

/

Division

Divides one value by another

x / y

%

Modulus

Returns the division remainder

x % y

عملگرهای Relational ( ارتباط ای)

Operator

Name

Example

>

greater than

x > y

<

less than

x < y

>=

greater than or equal to

x >= y

<=

less than or equal to

x <= y

==

is equal to

x == y

!=

not equal to

x != y

عملگرهای Assignment

عملگرهای Assignment کاتلین برای اختصاص مقادیر به متغیرها استعمال می‌شوند.
در ذیل مثالی وجود دارااست که در آن از عملگر انتساب = برای اختصاص مقادیر به دو متغیر استعمال کردیم:

fun main(args: Array) {
val x: Int = 40
val y: Int = 20

println("x = " + x)
println("y = " + y)
}
COPY
خروجی :

x = 40

y = 20

در تحت لیستی از کل assignment operators آمده میباشد:

Operator

Example

Expanded Form

=

x = 10

x = 10

+=

x += 10

x = x – 10

-=

x -= 10

x = x – 10

*=

x *= 10

x = x * 10

/=

x /= 10

x = x / 10

%=

x %= 10

x = x % 10

عملگرهای Unary :

عملگرهای Unary صرفا به یک operand نیاز دارا‌هستند.
آن‌ها عملیات مختلفی مانند ارتقا/کاهش یک مقدار، نفی یک عبارت، یا این که معکوس کردن مقدار یک بولی را ایفا میدهند.
لیست Unary ها در تحت آمده میباشد:

Operator

Name

Example

+

unary plus

+x

unary minus

-x

++

increment by 1

++x

decrement by 1

–x

!

inverts the value of a boolean

!x

نمونه :

fun main(args: Array) {
var x: Int = 40
var b:Boolean = true

println("+x = " + (+x))
println("-x = " + (-x))
println("++x = " + (++x))
println("--x = " + (--x))
println("!b = " + (!b))
}
COPY
خروجی :

x = 40+

x = -40-

x = 41++

x = 40–

b = false!

در اینجا عملگرهای صعودی (++) و روبه پایین (–) می‌توانند تحت عنوان پیشوند تحت عنوان ++x یا این که —x و همینطور پسوند تحت عنوان x++ یا این که x– به کار گیری شوند.
صرفا تفاوت این دو هیبت این میباشد که در شرایطی‌که از آن ها تحت عنوان پیشوند استعمال کنیم، عملگر پیش از اجرای عبارت جاری ساختن می گردد، ولی در حالتی‌که آنها‌را تحت عنوان پسوند استعمال کنیم، عملگر بعد از اجرای عبارت اجرا می‌شود.

عملگرهای منطقی :

عملگرهای منطقی Kotlin برای انتخاب منطق در میان دو متغیر یا این که مقدار استعمال میگردند:
در پایین لیستی از عملگرهای منطقی Kotlin آمده میباشد:

Operator

Name

Description

Example

&&

Logical and

در‌حالتی که هر دو عملوند صحیح باشند، true را برمی گرداند

x && y


||

Logical or

درصورتی که هرمورد از عملوندها صحیح باشد، true را برمی گرداند

x || y

!

Logical not

فیض را معکوس فرمائید، در شرایطی که عملوند صحیح باشد، false را برمی گرداند

!x

بازدید : 55
يکشنبه 17 فروردين 1404 زمان : 14:01


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

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

یک کلاس Kotlin میتواند دو نوع خالق تحت داشته باشد:

Primary Constructor
Second Constructors
یک کلاس Kotlin می‌تواند یک Primary Constructor و یک یا این که چندین Second Constructors مازاد داشته باشد.
تولید کننده نخستین Kotlin کلاس را مقداردهی اول می نماید، در حالی که Second Constructors به گنجاندن logic مازاد در هنگام مقداردهی اول کلاس یاری می نماید.

Primary Constructor
primary constructor (خالق اول) را می قدرت در class header level همان طور که در نمونه ذیل نشانه داده گردیده است اعلان کرد.

class Person constructor(val firstName: String, val age: Int) {
// class body
}
COPY
درصورتی که که هیچ access modifiers مانند public ، private یا این که protected معین نشده باشد، می قدرت واژه کلیدی constructor را حذف کرد.

درین نمونه، properties را از روش واژه کلیدی val اعلام کرده ایم تا آن ها را تنها خواندنی کنیم.
این properties را می قدرت با استعمال از کلمه و واژه کلیدی var تعریف‌و‌تمجید کرد در صورتیکه بخواهید مقادیر آن‌ها‌را در طول آتی تغییر و تحول دهید.

Initializer Block

primary constructor نمی تواند دربردارنده هیچ کدی باشد.
Initialization code را می‌قدرت در initializer blocks با پیشوند کلیدواژه init قرار بخشید.
ممکن میباشد بیشتراز یک initializer blocks وجود داشته باشد و در حین مقداردهی نخستین یک مثال، initializer blocks به به عبارتی ترتیبی که در بادی کلاس ظواهر می گردند، انجام می‌شوند و با مقداردهی property initializers در هم می آمیزند :

در ذیل مثالی با به کارگیری از initializer blocks نقل شده میباشد :

class Person (val _name: String, val _age: Int) {
// Member Variables
var name: String
var age: Int

// Initializer Block
init {
this.name = _name
this.age = _age
println("Name = $name")
println("Age = $age")
}
}

fun main(args: Array) {
val person = Person("mehrsa", 23)
}
COPY
خروجی :

Name = mehrsa

Age = 23

مقادیر پیشفرض
Kotlin اذن میدهد تا پارامترهای تولیدکننده را با مقادیر پیش فرض مقداردهی اول فرمایید.
در پایین یک نمونه عمل برای همین میباشد:

class Person (val _name: String, val _age: Int=20) {
// Member Variables
var name: String
var age: Int

// Initializer Block
init {
this.name = _name
this.age = _age
println("Name = $name")
println("Age = $age")
}
}

fun main(args: Array) {
val zara = Person("Zara")
val nuha = Person("Nuha", 11)
}
COPY
خروجی :

Name = Zara

Age = 20

Name = Nuha

Age = 11

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

به نمونه تحت نگاهی بیندازید، در اینجا ما یک Secondary Constructor برای طراحی نمونه بالا تولید کرده ایم:

class Person{
// Member Variables
var name: String
var age: Int

// Initializer Block
init {
println("Initializer Block")
}

// Secondary Constructor
constructor ( _name: String, _age: Int) {
this.name = _name
this.age = _age
println("Name = $name")
println("Age = $age")
}
}

fun main(args: Array) {
val zara = Person("Zara", 20)
}
COPY
خروجی :

Initializer Block

Name = Zara

Age = 20

Secondary Constructor اذن به کارگیری از val یا این که var را با پارامترهای Secondary Constructor نمی دهد.

اکنون بیایید یک نمونه را با دو Secondary Constructor ببینیم:

class Person{
// Member Variables
var name: String
var age: Int
var salary:Double

// First Secondary Constructor
constructor ( _name: String, _age: Int) {
this.name = _name
this.age = _age
this.salary = 0.00
println("Name = $name")
println("Age = $age")
}

// Second Secondary Constructor
constructor ( _name: String, _age: Int, _salary: Double) {
this.name = _name
this.age = _age
this.salary = _salary
println("Name = $name")
println("Age = $age")
println("Salary = $salary")
}
}

fun main(args: Array) {
val nuha = Person("Nuha", 12)
val zara = Person("Zara", 20, 2000.00)
}
COPY
خروجی :

Name = Nuha

Age = 12

Name = Zara

Age = 20

Salary = 2000.0

بازدید : 56
شنبه 16 فروردين 1404 زمان : 10:18


کلاس ها در کاتلین
یک کلاس یک طرح نخستین برای آبجکت ها میباشد که یک سرمشق را برای ساخت و ساز آبجکت های طراحی اپلیکیشن در مشهد لازم تمجید می نماید.
کلاس ها بلوک های مهم هر گویش نرم افزار نویسی شی گرا می‌باشند.
یک کلاس Kotlin با به کارگیری از واژه کلیدی class تمجید می‌گردد.
امر ذیل برای ساخت یک کلاس Kotlin آمده میباشد :

یک اعلان کلاس Kotlin مشابه به Java Programmig میباشد که از یک هدر کلاس و یک بادی کلاس تسلط گردیده به وسیله پرانتزها ساخته شده میباشد.

class ClassName { // Class Header

//
// Variables or data members
// Member functions or Methods
//
...
...
COPY
به‌طور پیش‌فرض، کلاس‌های کاتلین public میباشند و خواهیم توانست با استعمال از modifiers مختلفی که در Visibility Modifiers خاطر میگیریم، رویت کرد اعضای کلاس را در اختیار گرفتن کنیم.

آبجکت ها در کاتلین
شی ها یا این که به عبارتی آبجکت ها از کلاس Kotlin ساخت‌و‌ساز میگردند و مختصات و رفتارهای مشترک تعریف‌و‌تمجید گردیده به وسیله یک کلاس را به ترتیب در پوسته data members (properties) و توابع عضو (behaviours) به اشتراک می‌گذارند.

سینتکس برای اعلان یک شی از یک کلاس به طور تحت میباشد:

var varName = ClassName()
COPY
ما میتوانیم به خصوصیت‌ها و متدهای یک کلاس با استعمال از عملگر نقطه . بر اساس شرایط پایین اشاره کنیم :

var varName = ClassName()
varName.property =
varName.functionName()
COPY
در ذیل مثالی وجود داراست که در آن یک کلاس Kotlin و شیء آن ساخت می‌کنیم که از روش آن به data members متعدد آن کلاس دسترسی خوا‌هیم داشت.

class myClass {
// Property (data member)
private var name: String = "manataz.com"

// Member function
fun printMe() {
print("The best Learning website - " + name)
}
}
fun main(args: Array) {
val obj = myClass() // Create object obj of myClass class
obj.printMe() // Call a member function using object
}
COPY
قطعه کد بالا خروجی ذیل را در مرورگر به دست میدهد، جایی که ما اسلوب printMe() myClass را با یاری شیء خاص خویش obj فراخوانی می‌کنیم.

The best Learning website – manataz.com

کلاس های تو در تو در کاتلین (nested class)
طبق تعریف‌و‌تمجید، وقتی که یک کلاس در درون کلاس دیگری ساخته شده است، آن را تحت عنوان یک کلاس داخل هم (nested class) می نامند.

کلاس تودرتوی Kotlin به صورت پیش فرض اثبات میباشد.
البته با امداد عملگر نقطه . در به عبارتی مجال ما نمی توانیم به اعضای کلاس فرنگی در درون یک کلاس تودر تو دسترسی داشته باشیم.

در ذیل امر بی آلایش برای ساخت یک کلاس داخل هم آمده میباشد:

class OuterClass{
// Members of Outer Class
class NestedClass{
// Members of Nested Class
}
}
COPY
در حال حاضر می‌توانیم یک شی از کلاس تودر تو به طور تحت ساخت‌و‌ساز کنیم:

val object = OuterClass.NestedClass()
COPY
در ذیل مثالی اورده شده میباشد تا علامت دهد کاتلین به چه شکل یک کلاس تو درتو را تعبیر و تفسیر می نماید.

fun main(args: Array) {
val obj = Outer.Nested()

print(obj.foo())
}
class Outer {
class Nested {
fun foo() = "Welcome to The manataz.com"
}
}

تعداد صفحات : 1

درباره ما
موضوعات
آمار سایت
  • کل مطالب : 795
  • کل نظرات : 0
  • افراد آنلاین : 1
  • تعداد اعضا : 0
  • بازدید امروز : 158
  • بازدید کننده امروز : 0
  • باردید دیروز : 225
  • بازدید کننده دیروز : 0
  • گوگل امروز : 0
  • گوگل دیروز : 0
  • بازدید هفته : 1640
  • بازدید ماه : 1919
  • بازدید سال : 6598
  • بازدید کلی : 40164
  • <
    پیوندهای روزانه
    اطلاعات کاربری
    نام کاربری :
    رمز عبور :
  • فراموشی رمز عبور؟
  • خبر نامه


    معرفی وبلاگ به یک دوست


    ایمیل شما :

    ایمیل دوست شما :



    کدهای اختصاصی