اگر ایده ای خلاقانه دارید و به دنبال ساخت اپلیکیشن اندروید هستید، این مقاله می تواند شما را یاری کند.
مطمئنا ترس از کدنویسی می تواند شما را در ساخت اپلیکیشن شخصی دو دل کرده و یا شما را وادار کند تا به دنبال بهترین نرم افزار ساخت اپلیکیشن باشید. خبر خوب این است که ورود به بازار اپلیکیشن های تلفن همراه آسان تر است ( بدون نیاز به تجربه کدنویسی). خواه برای کسب و کار، وبلاگ، محصول، خدمات یا موارد دیگر باشد، گزینه های ایجاد اپلیکیشن برا ی اندروید بسیار فراوان بوده و به سادگی یافت می شوند. با صرف اندکی زمان و تمایل به یادگیری و آموزش جاوا و اندروید، می توانید اپلیکیشن تلفن همراه خود را با استفاده از یکی از سیستم عامل های ساخت برنامه ذکر شده در زیر ایجاد و مدیریت کنید. (تعدادی از این برنامه ها در سیستم عامل هایی به جز اندروید هم کاربرد دارند).
Appery یک سازنده برنامه تلفن همراه مبتنی بر ابر (Cloud) است که می توانید از آن برای ایجاد اپلیکیشن در اندروید استفاده کنید؛ و شاملApache Cordova (Phone Gap) ، Ionic و jQuery Mobile با دسترسی به اجزای داخلی آن است. از آنجایی که سازنده در ابر اجرا می شود ، هیچ نصب یا دانلودی لازم نیست و به راحتی می توان کار را شروع کرد.
Appery شامل یک ویرایشگر بصری است که از اجزای کشیدن و رها کردن (drag and drop) برای ساخت UI استفاده می کند. Appery به طور خودکار برای هر مؤلفه کد ایجاد می کند. می توانید به هر REST API (رابط برنامهنویسی کاربردی) متصل شده و در برنامه خود از آن استفاده کنید؛ و در صورت نیاز به ذخیره داده، سریعا یک پایگاه داده ابری اضافه کنید. همچنین با استفاده از Appery می توانید عملکردهای قدرتمندی را اضافه کرده و یا افزونه های شخصی و دلخواه خود را ایجاد کنید. اگر به صورت گروهی فعالیت می کنید، می توانید به طور همزمان پروژه خود را با افراد گروه به اشتراک بگذارید.
Mobile Roadie یک سازنده اپلیکیشن است که به هر کسی امکان می دهد تا اپلیکشن اندروید خود را ایجاد و مدیریت کند. نکته مثبت این است که فرایند ساختن به شکل بصری اتفاق می افتد. این پلتفرم انواع رسانه ها را پشتیبانی کرده و کیفیت و مناسب بودن محتواها را بررسی می کند. همچنین می توانید برنامه خود را از طریق Mobile Roadie’s back end پیش نمایش دهید. به علاوه این سازنده اپلیکیشن گزینه ارسال پوش نوتیفیکیشن (Push Notification) را به شما می دهد. و این می تواند از سایت خود شما یا از طریق خود پلتفرم محتوا باشد. این پلتفرم به طور کلی زبان agnostic است ، بنابراین می توانید داده ها را در قالب های مختلفی از جمله XML ، JSON ، PHP ، CSV و HTML قرار دهید. در شروع کار چندین گزینه طرح بندی به شما ارائه می شود؛ اما می توانید هر یک از آنها را به دلخواه خود تنظیم کنید. Mobile Roadie برای برندها و سرویس ها مناسب تر از کالاها است.
TheAppBuilder مجموعه ای از برنامه های مناسب برای کارمندان، مشتریان، رویدادها و بروشورها را با دو رویکرد متفاوت فراهم می کند. اگر می خواهید یک اپلیکیشن اندروید را به صورت اینترانت برای یک شرکت طراحی کنید، این یک پلتفرم مناسب خواهد بود.
با استفاده از AppLibrary اختصاصی می توانید پنجره ای را در چندین برنامه در اختیار کاربران خود قرار دهید و حتی آن را با برند شخصی خود اختصاصی کنید. شما می توانید برنامه عمومی و خصوصی را با نام کاربری و رمزعبور محافظت کنید و آنها را از طریق فروشگاه اپلیکیشن توزیع کنید. بروزرسانی ساختار و محتوای اپلیکیشن های شما آسان است، زیرا می توانید بروزرسانی های نامحدودی انجام داده و تنها با چند کلیلک آن را بر روی سیستم عامل های تلفن همراه منتشر کنید.
Good Barber یک بستر برای ساخت اپلیکیشن های اندروید به همراه برنامه های وب بهینه ارائه می دهد. برای هر یک از سیستم عامل ها، بدون کدنویسی می توانید تمام جزئیات اپلیکیشن را کنترل کنید. چندین قالب قابل تنظیم، با آیکون های زیبا و با دسترسی به فونت های گوگل برای شروع کار وجود دارند. این اپلیکیشن ها می توانند به صورت تئوری جایگزین وب سایت فعلی شما شوند؛ زیرا می توانند برای دسک تاپ ، موبایل و تبلت بهینه شوند. به علاوه می توانید اپلیکیشن خود را سازماندهی کرده و بخش هایی از فیلم، عکس، صدا و موارد دیگر را اضافه کنید.
AppMachine یک پلتفرم با کاربرد آسان برای ساخت و طراحی اپلیکیشن های بومی حرفه ای برای اندروید است. با استفاده از رابط کشیدن و رها کردن، می توانید بلوک های ساختمانی مختلفی را ترکیب کنید که ویژگی های مختلفی از جمله اطلاعات، عکس و فیلم را ارائه می دهند. بلوک ها همچنین به شما امکان می دهند تا برنامه خود را به فیس بوک، توییتر یا فروشگاه های آنلاین پیوند دهید. شما می توانید برنامه را به سبک منحصر به فرد خود طراحی کرده و مسیرهای ناوبری، رنگ ها، فونت ها و نمادهای خود را انتخاب کنید.
GameSalad به شما امکان می دهد بازی هایی را برای انواع مختلف سیستم عامل مانند اندروید ایجاد و منتشر کنید. رابط کشیدن و رها کردن آن به شما امکان می دهد تا بدون نیاز به دانش برنامه نویسی به سرعت شروع به کار کنید. به علاوه به شما این امکان را می دهد تا علوم کامپیوتر را از طریق فرآیند ساختن یاد بگیرید.
سازنده اپلیکیشن بازی دارای ویرایشگر صحنه و ویرایشگر بازیگر (کاراکتر) است. شما بیشتر وقت خود در ساخت بازی را صرف تنظیم کاراکترها در صحنه، تنظیم ویژگی ها، تصاویر، صداها و پیمایش بین بازیگران می کنید.
GameSalad دو پلن ارائه می دهد؛ یکی برای مربیان و دیگری برای توسعه دهندگان. اما هر دو به شما امکان می دهند بدون کدنویسی، یک بازی ایجاد کنید.
ShoutEm یک سازنده اپلیکیشن با مدیریت کامل محتوا، ابزارهای قدرتمند جذب کاربر و گزینه های کسب درآمد همراه با یک فرآیند انتشار یکپارچه است. سازنده رابط گزینه های سفارشی سازی زیادی را ارائه می دهد و هر برنامه را می توان با منابع محتوا موجود مانند WordPress، Facebook ، Twitter ، و موارد دیگر کاملا یکپارچه کرد. گزینه های کسب درآمد متعدد بدان معنی است که شما می توانید به سرعت یک جریان درآمد از اپلیکیشن خود ایجاد کنید.
می توانید برنامه های خود را تحت حساب توسعه دهنده خود در Google Play منتشر کرده و برنامه یا محتوای خود را به طور همزمان به روز کنید. ShoutEm همچنین برای اطمینان از هماهنگ بودن اپلیکیشن با نسخه نهایی اندروید، بروزرسانی خودکار را ارائه می دهد.
http://feedproxy.google.com/~r/amanjacademy2/~3/VNjrvoiCi7M/
در دنیای امروز و پس انقلاب تکنولوژی واژه اپلیکیشن (application) که به اختصار app نامیده می شود به عنوان یکی از پرتکرار ترین کلمات، در مکالمات روزمره ما نقش ویژه ای پیدا کرده است.
این گسترش روز افزون اپلیکیشن ها در تمامی حوزه ها برای ما چه معنایی دارد؟ درست است، بازارکار خوب!
در راستای آموزش طراحی اپلیکیشن در ابتدا من قصد دارم در این مقاله شما را با تعریف اپلیکیشن، انواع اپلیکیشن و همچنین گام های طراحی اپلیکیشن که تمامی تیم ها باید به آن پایبند باشند آشنا سازم؛ پس با ما همراه باشید.
اپلیکیشن در دنیای دیجیتال به معنای نرم افزار یا ابزاری است که ما میتوانیم آن را بر روی سیستم هوشمند خود (کامپیوتر، تلفن همراه، تبلت و …) نصب کرده و از آن برای انجام و یا سهولت در انجام برخی کارها و وظایف خود استفاده می کنیم.
اپلیکیشن ها به طور کلی به چند دسته بسیار مهم تقسیم میشوند:
برنامه های آب و هوا، آشپزی و رستوران، آموزشی، ارتباطی، امور مالی، پزشکی، تناسب اندام، خرید، رفت و آمد، سبک زندگی، سفر، شبکه های اجتماعی، شخصی سازی، عکاسی و ویدئو، کتاب ها و مطبوعات، کودک، مذهبی، موسیقی و ورزشی و …
اپلیکیشن ها برای آنکه نیازهای ما را بتوانند رفع کنند ساخته خواهند شد، در واقع وظیفه اصلی این برنامه ها استفاده از منابع سخت افزاری برای پیشبرد و ارائه اهداف نرم افزاری در جهت سهولت انجام یک کار میباشد.
به طور خلاصه:
برنامه نویس های اپلیکیشن برای ایجاد نیاز یا پاسخ به یک نیاز، با ترکیب منابع سخت افزاری و نرم افزاری، اپلیکیشن های متنوع و خلاقانه ای تولید و آن را ارائه میکنند و در ازای آن مبلغی قابل توجه به دست میآورند.
به صورت کلی به تمام گام هایی که برای کدنویسی، طراحی گرافیکی، تست و نسخه برداری از یک برنامه انجام میشود، طراحی اپلیکیشن میگویند. این طراحی به صورت کلی کاری بسیار تخصصی و گاهی اوقات سخت می باشد مخصوصا اگر قرار باشد برای سیستم عامل های مختلف ارائه گردد.
طراحی اپلیکیشن به صورت کلی از ۸ گام اساسی تشکیل شده است، که البته بسیاری از این مراحل جزلاینفک طراحی، ساخت و ارائه هر محصول یا خدماتی در بازار پر رقابت امروزی میباشد.
در ابتدا شما باید بتوانید یک تصویر کلی از نیاز یا مشکلی که میتواند توسط ایده شما در قالب نرم افزار مرتفع شود، داشته باشید. برنامه شما باید بتواند این نیاز را توام با کاهش هزینه، زمان و … برای مخاطب انجام دهد و بازدهی بالایی داشته باشد.
بجای اینکه سعی کنید تور خود را در اقیانوس پهن کنید، وارد یک برکه شوید و تمام ماهی ها را شکار کنید. داشتن جامعه هدف مشخص، بهترین راه برای بالا بردن بازدهی و استفاده از اپلیکیشن شما میباشد. در این قدم باید بدانید جامعه هدف شما دارای چه جنسیتی است، چه بازه سنی داشته و مهم تر از همه از چه پلتفرمی برای رفع نیاز خودش بیشتر استفاده میکند.
نکته: اگر مخاطب شما ممکن است از چند پلتفرم و یا سیستم عامل برای همگام سازی برنامه شدما استفاده کند، باید این مورد را نیز مدنظر داشته باشید.
اپلیکیشن شما برچه اساس قرار است سود آفرینی کند؟ در حال حاضر چند مدل متفاوت برای سود آفرینی از طریق برنامه های کاربردی وجود دارد:
اپلیکیشن های پولی
اپلیکیشن های رایگان با پرداخت درون برنامه ای
اپلیکیشن های تبلیغاتی
اپلیکیشن ها با حق دانلود
برای انتخاب هرکدام ازین مدل های کسب درامد، توجه به جامعه هدف اهمیت بالایی داشته و جدا از آن شما باید به مسائل مالی اعم از توسعه، بازاریابی، تبلیغات و انتشار نیز اهمیت بدهید.
در گام چهارم شما باید در نهایت دست به کار شده و ایده خود را از کاغذ خارچ کنید، برای طراحی اپلیکیشن شما دو راه اصلی دارید:
ـ برون سپاری طراحی به شرکت های مختلف
ـ یادگیری طراحی اپلیکیشن
به شما توصیه میکنم، اگر میخواهید کاری جدی و مهم انجام دهید و طراحی اپلیکیشن برای شما از اهمیت بالایی برخوردار است، آموزش برنامه نویسی اپلیکیشن را در برنامه خود قرار داده و سپس با همکاری با تیم های با تجربه، آنچه مدنظر دارید را به طور کامل پیاده سازی کنید.
پس از طراحی اپلیکیشن، وقت آن رسیده که یک نمونه اولیه از برنامه خود را توسعه دهید.
اما اینکار چرا واجب است؟
توسعه نمونه اولیه در اصل تبدیل ایده شما به برنامه با قابلیت های پایه ای آن است. با این کار شما میتوانید خریداران را برای خرید ایده شما مجاب کرده و فرایند بازاریابی و جذب سرمایه را تسهیل کنید و از طرفی ایده خود را نیز فاش نکنید.
نکته: بدون ارائه نسخه اولیه، باگ ها و ایرادات فنی به چشم نمی آید، ایرادات امنیتی که جز جدایی ناپذیر طرح های جدید است از نظر پنهان بوده و جذب سرمایه و تثبیت در بازار پر رقابت اپلیکیشن کار بسیار سختی خواهد بود.
آنالیز اپلیکیشن هایی که در حوزه شما فعالیت میکنند اولین قدم و در ادامه پیش بینی روند بازار و کارایی برنامه شما در رفع نیاز بازار نقشه راه شما را به شکل قابل توجهی برای شما روشن میسازد.
استفاده از ابزارهای آنالیز مثل Flurry، localytics، preemptive و در ادامه اگر وبسایت دارید آنالیز مخاطبان با ابزار googleanalytics به شما توصیه میشود.
تست بتا در واقع اولین فرصت برای شماست تا از جامعه هدف خود بازخورد بگیرید.
با این روش شما نه تنهای میتوانید ریسک برنامه خود را کاهش دهید بلکه احتمال دیده شدن خود را در مارکت های اپلیکیشن مانند اپ استور به شکل قابل توجی میتوانید افزایش دهید.
قبل از تست بتا چند نکته مهم را در نظر بگیرید:
بتا تسترها را شناسایی کنید؛ تحقیقات بازار و درک درست از جامعه هدف، تحلیل بازار فرایند بتا تستینگ را به شکل قابل ملاحظه ای برای شما آسان میکند.
ایرادات را حذف کنید؛ اپلیکیشن شما باید در پلتفرم های متفاوت به شکلی روان اجرا شود و باگ خاصی ایجاد نکند. تست آلفا به شما کمک میکند بیشترین ایرادات و باگ ها را حذف کنید.
بازخورد بگیرید؛ در اصل هدف از تست بتا بازخورد گرفتن از کاربران هدف میباشد، با تحلیل درست این بازخوردها شما می توانید ایرادات جزئی را حذف و رابط و تجربه کاربری اپ خود را بهبود ببخشید.
در ابتدا سعی کنید معیارهای ورودی خود را بسنجید، قیف فروش و بازاریابی خود را گام به گام چک کرده و رفتار کاربران را به شکل ویژه تحلیل کنید و با توجه به بازخوردها، اپلیکیشن خود را اصلاح کنید.
پس از طی مراحل فوق شما میتوانید اپ خود را ارتقا و در نهایت انتشار دهید.
نکته: توجه داشته باشید که انتشار اپلیکیشن پایان راه نیست، بلکه شما باید بتوانید با آپدیت های ماهانه تجربه کاربری خود را دائما بهبود ببخشید تا بتوانید در مارکت خود را پیشتاز کنید.
همانطور که مطالعه فرمودید، طراحی اپلیکیشن یک کار تیمی، گسترده، دقیق و البته بسیار مهم است که میتواند شما را در اجرایی کردن ایده هایتان کمک کند.
از آنجایی که اغلب شرکت های طراحی اپلیکیشن توانایی اجرای دقیق ایده های شما را ندارند به شما توصیه می کنیم اگر آینده پروژه و اجرای دقیق آن برای شما اهمیت بالایی دارد، خودتان دست به کار شده و مبانی برنامه نویسی جاوا اندروید را به شکل عملی و کاربردی بیاموزید.
تصمیم گرفتید که توسعهدهندهی اپلیکیشنهای اندرویدی بشید؟ بسیار خوب! البته باید بدونید که تصمیم کافی نیست، یادگیری این پروسه می تونه پیچیده باشه. بعضی اوقات حتی مشخص نیست از کجا باید شروع کرد! پس، احتمالاً شما هم قبل از شروع به کار، سوالات زیادی دارید که نیاز به پاسخ دارن.
چه زبان برنامه نویسی را باید یاد گرفت؟
از کجا میتونید درباره زبان انتخابی خودتون اطلاعات کسب کنید؟
پس از یادگیری اصول اولیه، چطوری باید نوشتن کد رو شروع کرد؟
توی این مقاله، ما میخوایم به سوال اول جواب بدیم. بخاطر همین نیازه که اول از همه با خودتون کنار بیاین! انتخاب یک زبان برنامهنویسی کاملا به این بستگی داره که میخواید به چه چیزی دسترسی پیدا کنید.
آنچه در این نوشته خواهیم داشت
برای توسعه اپلیکیشنهای اندروید، قدم اول انتخاب زبان برنامهنویسیه. تفاوتهای بین زبانهای برنامهنویسی مختلف میتونن یه مقدار پیچیده و ظریف باشن. اما چیزی که حتی مهمتر از خود زبان هستش، ابزار متصل بهش و قابلیتها و مقاصد اون ابزار هستن.
زبانهای رایجی که ممکنه برای برنامهنویسی اندروید در نظر بگیرین عبارتند از:
جاوا) زبان رسمی توسعهی برنامههای سیستمعامل اندروید که توسط اندروید استودیو نیز پشتیبانی میشه. برای مدت طولانیتری نسبت به کاتلین، زبان رسمی اندروید بوده و خب خارج از برنامهنویسی اندروید هم کاربردهای بیشماری داره.
کاتلین) یکی دیگه از زبانهای رسمی اندروید. شباهتهای زیادی به جاوا داره ولی خب یه مقدار آسونتر هم میتونه باشه. گرچه خارج از برنامهنویسی اندروید کاربرد زیادی نداره اما در حال حاضر زبان ترجیحی گوگل برای برنامهنویسی اندروید هستش. اما در هر صورت میتونه واسهی افرادی که قصد دارن توسعهدهنده توی پروژههای مختلف (جدا از اندروید) باشن، خیلی جذاب به نظر نیاد.
سی پلاس پلاس) اندروید استودیو از طریق جاوا اندیکی از سی پلاس پلاس پشتیبانی میکنه. سی پلاس پلاس یه مقدار پیچیده تره البته، و معمولا مورد توجه تیمهای حرفهای و بزرگ هستش و خب همچنین به علت پشتیبانی شدن توسط Unreal Engine میتونه برای بازیسازی بسیار مناسب باشه.
سیشارپ) یک جایگزین سادهتر برای سی و یا سی پلاس پلاس. این زبان حتی مقداری از جاوا هم آسونتره ولی در عین شباهات بسیاری بینشون هست. توسط ابزارهای کاربردی زیادی از جمله Unity و Xamarin پشتیبانی میشه که برای توسعههای بین پلتفرمی و همچنین توسعهی بازی بسیار مناسبن.
جاوا اسکریپت (PhoneGap)) اگه بلدین که چطوری صفحات وب پویا بسازین، میتونین از طریق PhoneGap از این دانشتون برای ساختن اپلیکیشنهای بین پلتفرمی استفاده کنین.
وقتی بحث توسعه اپلیکیشنهای اندرویدی پیش میآد، جاوا یکی از دو گزینهی رسمیه. و این مساله به این معنی هستش که این زبان از طریق گوگل پشتیبانی بسیاری دریافت میکنه. اکثر برنامههای اندرویدی (غیر بازیها) احتمالا توسط جاوا و یا کاتلین نوشته شدن. راه اول برای توسعهی اپلیکیشنهای اندرویدی، دانلود کردن اندروید استودیو هستش. این برنامه Android SDK رو هم داخل پکیجش داره که مجموعا به شما هر ابزار که برای توسعه نیاز دارین رو میده. منابع رسمی گوگل همواره برای جاوا (و یا کاتلین) هستن و پشتیبانی زیادی توی فضای نت متوجه این زبان هستش.
خود زبان جاوا در سال ۱۹۹۵ توسط Sun Microsystems انتشار پیدا کردش و از اون زمان تا حالا برای بازهی بسیار بزرگی از برنامهنویسی اپلیکیشن استفاده شده. حتی حالا که گوگل کاتلین رو زبان ترجیحی خودش قرار داده هم، جاوا به شکلی برای همه آشنا و جا افتادهست که تیمهای توسعهی خیلی زیادی هنوز هم این زبان رو انتخاب میکنن.
کاتلین مدتیه که یک زبان رسمی برای توسعه اندروید هست و گوگل حتی تا اونجا پیش رفته که این گزینه را به گزینهای مناسب برای توسعه اندروید تبدیل کرده. مانند جاوا ، کاتلن هم روی ماشین مجازی جاوا کار میکنه. همچنین کاملاً قابل جابجایی با جاوا است و باعث کاهش یا افزایش اندازه پرونده نمیشه. کاتلین یک سیستم سادهتر و آسون برای خواندن کدها داره و همچنین خطاهایی مانند null point exceptions رو از بین می بره و حتی شما رو مجبور نمیکنه آخر هر لاینتون سمیکالن بذارین.
عادلانه است که بگیم اکثر افرادی که این مطلب را می خونن ، نباید این مسیر را برای توسعه برنامه های اندروید انتخاب کنند.
Android Studio با استفاده از Android NDK (کیت توسعه بومی) پشتیبانی از کد C / C ++ را ارائه میده. این یعنی شما کدی رو مینویسید که در دستگاه مجازی جاوا اجرا نمیشه ، بلکه بصورت محلی روی دستگاه اجرا میشه و کنترل بیشتری بر چیزهایی مثل تخصیص حافظه میده.
برای برنامههای سنگین، مثل بازیهای سه بعدی، این به شما امکان میده بتونید عملکرد بیشتری از دستگاه اندرویدی خودتون بکشید. همچنین یعنی که شما قادر خواهید بود از کتابخانه هایی که در C یا ++C نوشته شده اند استفاده کنید. با این حال ، تنظیم اون هم بسیار سختتره ، اشکالات زیاد و انعطاف پذیری کمتری داره و اگه میخواید یک بازی رایانهای درست کنید ، احتمالاً بهتره از یک موتور بازی آماده مانند Unity استفاده کنید.
C # توسط مایکروسافت با هدف ترکیب قدرت ++C و سهولت ویژوال بیسیک ساخته شده. خیلی شبیه به جاوا عمل میکنه و اگه یکی از این زبانها رو بدونید ، یادگیری زبان دیگه خیلیی ساده خواهد شد.
درست مثل جاوا، سیشارپ هم قابلیت بازیافت حافظه رو داره. به این معنی که نیاز نیست نگران مشکلات مربوط به استفادهی نادرست از حافظه و تمیز کردنش به صورت دستی رو داشته باشین.
PhoneGap برنامهای است که از Apache Cordova پشتیبانی میکنه و در اصل به شما این امکان میده برنامههایی رو با استفاده از همان کدی که معمولاً برای ایجاد یک وب سایت استفاده میکنید ایجاد کنید.
سپس از طریق وبویو نمایش داده میشه (ابزاری که یک وبسایت رو از طریق اپلیکیشن نمایش میده). PhoneGap مانند یک پل عمل می کند و به توسعه دهندگان امکان دسترسی به برخی ویژگی های اصلی تلفن یا تبلت مانند شتاب سنج یا دوربین را می دهد.
هرچند این توسعه اندروید “واقعی” نیست و تنها برنامه نویسی واقعی جاوااسکریپت خواهد بود. اما اگر میخواید ادعای یک فرد توسعه دهندهی اندروید رو داشته باشید، بهتره شجاع باشید و یکی دیگه از گزینههای لیست رو انتخاب کنید.
در نتیجه انتخابهای زیادی برای توسعهی اندروید وجود داره: از جاوا و کاتلین تا C# و جاوا اسکریپت.
انتخاب شما به هدف و میزان حساسیت کار شما بستگی داره. اما هر تصمیمی که بگیرید متوجه میشید که هر زبان برنامهنویسی دنیایی از رمزهاست.
امیدوارم الان که شما اطلاعات بیشتری در مورد چگونگی توسعه برنامههای اندرویدی دارید، بتونید راحتتر تصمیم بگیرید.
برنامه نویسی اندروید در حال حاضر به عنوان یکی از پرطرفدارترین مهارت های دنیای دیجیتال و برنامه نویسی در دنیا مطرح میشود و هر ساله افراد زیادی عزم خود را برای شروع مسیر یادگیری برنامه نویسی اندروید جزم میکنند.
برای شروع هر مسیری قطعا باید بدانیم این مسیر از کجا شروع شده و چه تاریخچه ای دارد و اساسا چیست، اما از آنجا که در بستر اینترنت مطالب، پادکست ها و ویدئوهای زیادی در مورد تاریخچه اندروید، شکل گیری هسته مرکزی و البته توسعه آن وجود دارد من تصمیم گرفتم از پرداختن به این موضوع صرف نظر کرده و این مرحله تئوری و البته خواندنی را به خودتان واگذار کنم و بجای آن در این قسمت شما را با اصطلاحات مهم در حوزه زبان برنامه نویسی اندروید آشنا سازم.
به طور حتم، عدم وجود زبان مشترک و فهم اصطلاحات مهم ادامه مسیر را برای شما دانشجویان عزیز سخت خواهد کرد.پس به شما توصیه میکنم؛ مفاهیم و اصطلاحات مهم برنامه نویسی اندروید را به صورت کامل خوانده و از آن لذت ببرید.
SDK یا همان Software Development Kit که از آن به عنوان کیت توسعه نرم افزاری یاد میشود مجموعه ای از ابزارهایی است که برای بالابردن سهولت برنامه نویسی در یک محیط یا پلتفرم خاص طراحی و در اختیار برنامه نویسان قرار داده شده است.
SDK به برنامه نویس این امکان را میدهد تا او بتواند برای نرم افزارخود، چهارچوب، پلتفرم، سیستم کامپیوتر، کنسول گیمینگ و از همه مهم تر سیستم عامل ایجاد نماید. SDK در اندروید نیز در حقیقت همان کیتی است که گوگل در اختیار توسعه دهندگان اندروید قرار داد تا آن ها بتوانند راحت تر اپلیکیشن خود را طراحی کنند.
نکته: پس قبل از شروع هر کاری نیاز است تا شما SDK اندروید را بر روی سیستم خود نصب کرده و با استفاده از ابزارهای موجود ایده خود را پیاده سازی کنید.
نکته۲: شما به عنوان برنامه نویس اندروید اگر قصد دارید از جاوا استفاده کنید باید کیت Java Development Kit یا همان JDK را دانلود کنید برای این مهم شما می توانید از توسعه دهندگان گوگل و یا سایت جاوا اقدام به این کار کنید. (در حال حاضر شما با مفهوم JDK نیز آشنا شدید.)
کیت توسعه بومی یا Native Development Kit، به برنامه نویسان و کاربران این اجازه را میدهد که کدهایی که به زبان C و ++C نوشته شده است را در اپلیکیشن خود اجرا کنند.
لازم به ذکر است که NDK در حال حاضر زیر مجموعه SDK بوده و برنامه نویس، هنگام نصب اندروید استودیو (در ادامه به آن میپردازیم) و SDK، نرم افزارها و ابزارهای مختلفی را نیز همزمان تصب میکند.
نکته: مهم ترین ویژگی NDK در اپلیکیشن های مالتی مدیا میباشد چرا که برنامه نویس میتواند از این طریق سرعت اجرای برنامه را بهشکل قابل توجهی بهبود ببخشد.
گرادل یکی از رایج ترین مفاهیم و البته الفاظی است که برنامه نویسان اندروید از آن استفاده میکنند. در اصل گرادل به معنی گرفتن خروجی از سیستم (اپلیکیشن طراحی شده) میباشد.
از مزیت های گرادل میتوان به امکان شخصی سازی آن اشاره کرد. بدین صورت که شما میتوانید کدهای خود را در فایل خود وارد کرده و خروجی مدنظر خود را به آسانی دریافت نمایید.
نکته: در اندروبد استودیو افزونه ای به اسم گرادل وجود دارد که شما میتوانید از طریق آن به آسانی از برنامه خود خروجی دریافت کنید. این افزونه به زبان groovy نوشته شده است و این موضوع کار برنامه نویس اندروید را بسیار راحت کرده است، چرا که دیگر نیاز به یادگیری این زبان برنامه نویسی نمیباشد.(از مزایای اندروید استودیو)
شناسه اپلیکیشن اندروید یا مانیفست که اصطلاح بسیار رایجی در بین برنامه نویسان است، در اصل نشان دهنده جزییات مربوط هویت اپلیکیشن میباشد، در اصل مانیفست یک فایل در میان اپلیکیشن های اندرویدی است که در آن اطلاعات متفاوتی بیان میشود.
مانیفیست فایل بسیار حساسی است البته به این معنا که هر خطایی در ان میتواند روند اجرای یک اپلیکیشن را با مشکل مواجه سازد. در داخل مانیفست همانطور که گفته شد تمام جزییات اپلیکیشن قرار میگیرد مثل تم، پوسته کلی، دستورات خاص و…
در ادامه به بررسی بسته ها و فایل هایی که داخل مانیفیست قرار گرفته و شما باید با آن ها آشنا شوید، میپردازیم.
نام بسته مثل اثر انگشت ما انسان ها برای تمام اپلیکیشن های اندروید متفاوت است و هر اپلیکیشنی اسم بسته خاص خود را دارد، در اصل اسم بسته همان چیزی است که نرم افزارهای دیگری مثل گوگل پلی یا کافه بازار از آن برای انتخاب و نشان دادن برنامه شما به دیگران استفاده میکنند.
این اسم توسط خود تیم برنامه نویس انتخاب شده و اغلب ترکیبی از سه اسم میباشد.
وب سرویس یا Application Programming Interface یک مرز مشترک بین دو سرویس و سیستم مجزا از هم می باشد. API در اصل کدی است که توسط برنامه نویسان نوشته شده و به دیگر برنامه ها این اجازه را میدهد تا بتوانند به آن متصل شده و با آن تعامل کنند.
برای اینکه کمی این مفهوم برای شما ملموس تر شود آن را با یک مثال پیگیری میکنم. بر فرض مثال اپلیکیشنی با یک API مشخص برنامه نویسی میشود این بدان معنی است که این برنامه در گوشی اندروید با یک ورژن خاص فقط اجرا میشود. به زبان ساده ورژنی که ما در زبان عام از آن برای اندروید یاد میکنیم مثلا اندروید ۱۰ در زبان برنامه نویسی به شکل API بیان میشود.
نکته: API در اندروید وابسته به SDK می باشد.
برنامه نویس باید یک حداقل API را در اپلیکیشن خود و در مانیفست تنظیم کند تا برنامه در API های پایین تر یا همان نسخه های پایین تر اندروید قابل اجرا نباشد، این موضوع همان MinsdkVersion میباشد.
از طرفی اپلیکیشن ها گرچه ممکن است در نسخه های بالاتر و یا پایین تر اندروید کار کنند اما این نکته حائز اهمیت است که هر اپلیکیشنی قطعا برای یک نسخه خاص طراحی شده است، این نسخه خاص همان Targetsdkversion می باشد.
نکته: برنامه نویسان هر دو این تغییرات را می توانند از طریق مانیفست تنظیم کنند.
اکتیویتی در اصل به هر یک از صفحات اپلیکیشن اندرویدی اطلاق میشود، این صفحات در برنامه یا همان اپلیکیشن اندرویدی کنار هم قرار گرفته و از طریق دکمه های مختلف به هم منتقل می شود. مثل یک بازی که بخش تنظیمات، حساب کاربری، ورود به بازی و … دارد. یک activity از دو بخش مجزا تشکیل شده است:
۱) Class
۲) Xml
کدهای نوشته شده به زبان برنامه نویسی جاوا که پشت پرده و موتور فعالیت یک برنامه هستند در class قرارگرفته وآن بخش از اپلیکیشن که ما در حال مشاهده و استفاده از آن هستیم در xml قرار دارد.
در اصل یک متخصص اندروید، کدهای مریوطه را در جاوا یا همان class قرار داده و ظاهر برنامه، قرارگیری المان های مختلف، رنگ و … را در بخش xml ذخیره میکند.
Emulator یا شبیه ساز یکی از پر استفاده ترین بخش ها در طراحی اپلیکیشن اندروید میباشد و برای توسعه دهندگان اپلیکیشن یک نیاز اساسی است. همانطور که در این مقاله عرض کردم برنامه نویسان اپلیکیشن هنگام طراحی بارها و بارها از اپ خود خروجی میگیرند تا ببینند عملکرد اپلیکیشن به چه صورت میباشد.
برای این مهم دو راه اساسی وجود دارد؛ تست کردن اپلیکیشن روی یک دستگاه واقعی!، استفاده از شبیه ساز
اگر دقت داشته باشید تقریبا تمام طراحان اپلیکیشن دو مانیتور پیش روی خود دارند و یک مانیتور را کاملا به بخش emulator اختصاص داده اند.
نکته: از بهترین برنامه های شبیه ساز که سرعت قابل قبولی داشته و به ما دستگاه های مختلفی برای تست اپلیکیشن را ارائه میدهد میتوان به genymotion اشاره کرد.
اندروید استودیو نیز این ویژگی را در پکیج خود دارد اما سرعت و قدرت genymotion بسیار بیشتر از شبیه ساز گوگل میباشد.
اندروید استودیو و همچنین eclipse به عنوان دو تا از معروف ترین و قدرتمند ترین محیط های توسعه اندروید در بین برنامه نویسان، مورد استفاده قرار میگیرد.
گرچه در گذشته eclipse حرف اول را در برنامه نویسی اندروید میزد، اما اندروید استودیو در سال های اخیر با آپدیت های مختلف توانسته به شکل قابل توجهی گوی سبقت را از رقیب خود برباید.
در ادامه به بین برخی از برتری های android studio نسبت به eclipse میپردازیم:
در android studio خطایابی و رفع آن آسان تر است.
طراحی رابط کاربری در android studio بسیار راحت تر است.
در محیط android studio بررسی منابع مصرفی رم و پردازنده بسیار کامل است.
و …
نکته: البته لازم به ذکر است که شما برای استفاده و به اصطلاح ران کردن android studio بر روی سیستم خود باید سیستمی قدرتمند با ویژگی های سخت افزاری بالایی داشته باشید.
در این مقاله ما سعی کردیم شما را با اصلی ترین و مهم ترین مفاهیم و اصطلاحات دنیای برنامه نویسی اندروید آشنا سازیم. اگرچه اصطلاحات و مفاهیم اندروید به این تعداد ختم نمیشود، اما اگر شما قصد ورود به دنیای برنامه نویسی اندروید را دارید این اصطلاحات پیشنیاز کار شما میباشد. در مقالات بعدی، تیم آموزش برنامه نویسی جاوا اندروید آمانج با محتواهای ارزشمند و البته کاربردی شما را در مسیر یادگیری الفبای برنامه نویسی اندروید همراهی خواهد نمود.
اندروید استودیو یک IDE رسمی برای ساخت و توسعه اپلیکیشن برای پلتفرم اندروید هست که برای اولین بار در سال ۲۰۱۳ به عنوان جایگزین اکلیپس معرفی شد.
این IDE انتخاب اول تقریبا تموم توسعهدهندگان اپلیکیشنهای اندرویدی هستش و تقریبا هر وقت نیاز به یک اپلیکیشن بومی اندروید حس میشه، اندروید استودیو پیشتازه. خب، در هر صورت، بیایم با هم مزایای اندروید استودیو رو بررسی کنیم:
اجرای فوری: هر تغییر در کد رو در آنی از واحد اعمال میکنه بدون اینکه نیاز داشته باشید اپلیکیشنتون رو دوباره راهاندازی کنید و یا اونرو مورد بازسازی (Rebuild) قرار بدید. این موجب سریعتر شدن فرآیند ساخت اپلیکیشنتون میشه.
ویرایشگر کد هوشمند: با این امکان، توسعهی اپلیکیشن خیلی سریعتر میشه. وقتی دارید کدتون رو مینویسید، ویرایشگر با توجه به تحلیل و بررسی کدتون به شما لیستی از پیشنهادات پیشرفتهای ارائه میده. تنها با فشردن کلید Tab میتونید هر کدومشون رو که میخواید سریعا توی کدتون وارد کنید!
شبیهساز فوقالعاده: این قابلیت به شما اجازه میده موارد مختلفی رو شبیهسازی کنید. شما میتونید کد خودتون رو روی پیکربندی دستگاههای مختلفی مثل گوشیهای هوشمند، تبلتها، گجتهای پوشیدنی و تلویزیونهای اندرویدی، تست کنید. قابلیتهای فوقالعادهی دیگهای هم مثل لوکیشن GPS، میزان تاخیر شبکه و ورودی مالتیتاچ رو میشه با این امکان شبیهسازی کرد.
قالب و نمونههای اپلیکیشنها: تعداد زیادی قالب و نمونه از اپلیکیشن همراه با IDE فراهم شده که میتونه به عنوان مرجع استفاده بشه و حتی میتونید بخشی از کدتون رو از اونا بردارید! پس اگه قراره یه اپلیکیشن بسازید این قالبها و نمونهها خیلی کمکتون میکنن.
Lintelligence: این قابلیت به شما کمک میکنه خیلی از مشکلات اجرایی، امنیتی و یا صحیح بودن کد رو با یک پیدا کنید. حدود ۲۸۰ Lint check وجود داره که میتونه به شما کمک کنه یک اپلیکیشن بینقص بنویسید.
سیستم ساختهای بسیار مناسب: این سیستم برای راحتی کاربران، بسیار منعطف طراحی شده. IDE همینطور، به شما سیستم مدیریت وابستگی اتوماسیون و پیکربندی ساختهای قابل تنظیم رو نیز ارائه میده. کدهای اندروید میتونن به منظور در بر گرفتن کتابخانهها وساختهای محلی به کار گرفته بشن. این مسئله میتونه ساخت اپهای رو راحتتر کنه.
استفادهی آسان برای تیمهای توسعه: شما میتونید ابزارهایی از قبیل GitHub رو وارد محیط IDE کنید. همچنین میتونید همواره اطلاعات رو با تیمتون همگامسازی کنید. در واقع این سیستم به توسعهدهندگان اجازه میده که یک محیط برای خودشون توی فضای IDE ایجاد کنن.
بهینهسازی برای تمامی دستگاههای اندرویدی: IDE برای همهی انواع دستگاهها بهینهسازی شده. همچنین رویکرد ساختاریافتهی موجود در IDE به شما این امکان رو میده که برای یک طراحی به خصوص، کد منحصر به فرد خودش رو طراحی کنید.
پشتیبانی از C++ و NDK: درست مثل هر زبون برنامهنویسی دیگهای، اینجا هم توسعهی C/C++ پشتیبانی میشه. توی این محیط حتی این امکان هستش که بتونید سینتکسهای مربوط به C/C++ رو بررسی و یا بازنویسی (Refactor) کنید. حتی این قابلیت وجود داره که بتونید CMake و اسکریپتهای مبتنی بر NDK رو بدون ایجاد هیچ تغییری توی IDE اجرا کنید.
وجود سیستم Firebase و Cloud به صورت ادغامشده: این IDE یک دستیار Firebase هم داره. این دستیار به شما کمک میکنه Firebase رو به اپلیکیشن متصل کنید. به وسیلهی اون میتونید قابلیتهایی مثل احراز هویت و نوتیفیکیشن رو داخل محیط بررسی کنید. همچنین با Google Cloud هم ادغام شده که در مجموع یک روش کامل برای ساختن اپلیکیشن فراهم میکنه.
ویرایشگر چیدمان (Layout): برای زمانی که در XML مشغول به توسعه هستید، یک ویرایشگر Drag and drop فراهم شده این فرآیند رو آسونتر میکنه.
بررسی APK: تحلیلگر APK موجود قابلیت این رو داره که از تمومی محتوای داخل APK شما رو بررسی کنه. همچنین میتونه سایز هر مولفه (Component) رو هم نمایش بده. میتونید به راحتی مشکلات فایلهای DEX رو مشاهده کنید و همینطور دو APK رو با هم مقایسه کنین.
استودیوی داراییهای بُرداری: به کمک این میتونین از بازهی بزرگی از تصاویر استفاده کنین. یک دایرکتوری به خصوص برای نگهداری تصاویر فراهم شده و همچنین میتونید یک فایل SVD یا PSD رو هم ادغامسازی کنین.
ویرایشگر ترجمه: این ابزار استفاده میشه تا همهی منابع به کار گرفتهشده رو بررسی و ترجمه کنه. بنابراین نیازی به این که تموم اون فایلهای XML رو به منظور تاثیر منابع بررسی کنید، نیست.
همانطور که گفتیم Android Studio، IDE رسمی Google برای توسعه برنامههای Android هست. این IDE مبتنی بر IntelliJ IDEA هست که ویرایشگر کد قدرتمند و ابزارهای توسعه دهنده رو ارائه میده.
Android Studio 3.2.1 شامل ویژگیهای زیر هست:
یک سیستم ساخت مبتنی بر Gradle
یک شبیه ساز سریع و غنی از ویژگی
یک محیط یکپارچه که میتونید برای همه دستگاههای Android توسعه دهید
اجرای سریع برای ایجاد تغییرات در برنامه در حال اجرا بدون ایجاد APK جدید
الگوهای کد و یکپارچهسازی GitHub برای کمک به شما در ایجاد ویژگیهای مشترک برنامه و وارد کردن کد نمونه
ابزار و چارچوبهای تست گسترده
ابزارهای پرزدار برای کمک به شما در دستیابی به عملکرد، قابلیت استفاده، سازگاری نسخه و سایر مشکلات
C++ و پشتیبانی از NDK
پشتیبانی داخلی ازGoogle Cloud Platform ، ادغام پیام رسان Google Cloud و Google App Engine را آسون میکنه
معماری پلاگین برای گسترش اندروید استودیو از طریق افزونهها
برنامه نویسی اندروید در حال حاضر به عنوان یکی از پرطرفدارترین مهارت های دنیای دیجیتال و برنامه نویسی در دنیا مطرح میشود و هر ساله افراد زیادی عزم خود را برای شروع مسیر یادگیری برنامه نویسی اندرویدجزم میکنند. برای اطلاع از مفاهیم و اصطلاحات این زبان برنامهنویسی به مقاله مفاهیم و اصطلاحات مهم برنامه نویسی اندروید (راهنمای جامع) مراجعه کنید.
گوگل، اندروید استودیو رو برای سیستم عاملهای ویندوز، مک و لینوکس فراهم کرده که می تونید از سایت رسمی Android Studio اون رو دانلود کنید.
همچنین SDK های سنتی رو با ابزارهای خط فرمان Android Studio پیدا خواهید کرد.
قبل از دانلود اندروید استودیو، مطمئن شید که سیستم عامل شما شرایط زیر رو داره:
نیازهای ویندوز
Microsoft Windows 7/8/10 (۳۲ بیتی یا ۶۴ بیتی)
حداقل رم مورد نیاز ۳ گیگابایتی، ولی توصیه میشه برای عملکرد بهتر،از رم ۸ گیگابایتی استفاده بشه (به علاوه ۱ گیگابایت برای شبیه ساز اندروید)
حداقل فضای خالی دیسک مورد نیاز ۲ گیگابایت،ولی توصیه میشه برای عملکرد بهتر از رم ۴ گیگابایت استفاده بشه (۵۰۰ مگابایت برای IDE به علاوه ۱.۵ گیگابایت برای Android SDK و تصویر سیستم شبیه ساز)
حداقل رزولوشن صفحه نمایش: 800 1280 x
نیازهای سیستم عامل Mac
Mac OS X 10.10 (Yosemite) یا بالاتر، تا 10.13 (High Sierra)
حداقل رم مورد نیاز ۳ گیگابایتی، ولی توصیه میشه برای عملکرد بهتر،از رم ۸ گیگابایتی استفاده بشه (به علاوه ۱ گیگابایت برای شبیه ساز اندروید)
حداقل فضای خالی دیسک مورد نیاز ۲ گیگابایت،ولی توصیه میشه برای عملکرد بهتر از رم ۴ گیگابایت استفاده بشه (۵۰۰ مگابایت برای IDE به علاوه ۱.۵ گیگابایت برای Android SDK و تصویر سیستم شبیه ساز)
حداقل رزولوشن صفحه نمایش: 800 1280 x
نیازهای سیستم عامل لینوکس
دسکتاپ GNOME یا KDE. تست شده بر روی اوبونتو 14.04 LTS ، Trusty Tahr
توزیع ۶۴ بیتی با قابلیت اجرای برنامههای ۳۲ بیتی
کتابخانه GNU C (glibc) 2.19 یا بالاتر
حداقل رم مورد نیاز ۳ گیگابایتی، ولی توصیه میشه برای عملکرد بهتر،از رم ۸ گیگابایتی استفاده بشه (به علاوه ۱ گیگابایت برای شبیه ساز اندروید)
حداقل فضای خالی دیسک مورد نیاز ۲ گیگابایت،ولی توصیه میشه برای عملکرد بهتر از رم ۴ گیگابایت استفاده بشه (۵۰۰ مگابایت برای IDE به علاوه ۱.۵ گیگابایت برای Android SDK و تصویر سیستم شبیه ساز)
1280 800 800 حداقل وضوح صفحه
پس از اطمینان از سازگاری سیستم عامل خودتون با Android Studio 3.2.1 یا بالاتر، پرونده توزیع مناسب اندروید استودیو رو بارگیری کنید.
من android-studio-ide-181.5056338-windows.exe رو راه اندازی کردم تا مراحل نصب رو شروع کنم. همون طور که در شکل ۱ میبینید، سپس کادر محاورهای Android Studio Setup نمایش داده میشه.
با کلیک کردن روی Next، من به پنل زیر منتقل شدم، که گزینه نصب دستگاه مجازیAndroid (AVD) را فراهم میکنه.
من انتخاب کردم که تنظیمات پیش فرض را حفظ کنم. بعد از کلیک کردن روی Next ، به پنل تنظیمات پیکربندی منتقل شدم و در اونجا از من خواسته شد که Android Studio را نصب کنم.
من مکان نصب پیش فرض را انتخاب کردم و روی دکمه Next کلیک کردم و با پنل Select Start Menu Folder روبرو شدم.
تنظیمات پیش فرض رو حفظ کردم و روی نصب کلیک کردم. پنل نصب زیر ظاهر شد:
با کلیک بر روی نمایش جزئیات، نام پروندههای در حال نصب و سایر فعالیتها نمایش داده میشه. وقتی نصب تموم شد، پنل Installation Complete ظاهر شد.
پس از کلیک کردن روی Next، نصب کننده پنل Completing Android Studio Setup رو ارائه داد.
برای تکمیل نصب، کادر Start Android Studio را علامت زده و روی دکمه پایان کلیک کردم.
اولین بار که Android Studio اجرا میشه، یک جعبه گفتگوی Complete Installation نشان داده میشه که گزینه وارد کردن تنظیمات از نصب قبلی رو ارائه میده.
من ترجیح دادم تنظیمات را وارد نکنم (انتخاب پیش فرض) و روی تأیید کلیک کردم و این صفحه ظاهر شد.
من همچنین جعبه پیام Finding Available SDK Components زیر رو مشاهده کردم.
در این مرحله، Android Studio جعبه گفتگوی Android Studio Setup Wizard زیر رو ارائه داد:
روی Next کلیک کردم و ویزارد از من دعوت کرد تا نوع نصب را انتخاب کنم. تنظیمات استاندارد پیش فرض رو حفظ کردم.
سپس به من فرصت داده شد تا یک تم رابط کاربری رو انتخاب کنم.
من تنظیمات پیش فرض IntelliJ را حفظ کردم و روی Next کلیک کردم. Android Studio بعداً فرصت تأیید تنظیمات را فراهم میکنه.
من روی Finish کلیک کردم و Android Studio روند بارگیری مولفههای components SDK را شروع کرد.
ممکن است چند دقیقه طول بکشه تا این قسمت از تنظیم به پایان برسه.
در آخر ، روی Finish کلیک کردم تا ویزارد کامل بشه. کادر جملهی Welcome to Android Studio ظاهر شد.
همانطور که در مقاله « چرا یادگیری جاوااسکریپت در سال ۲۰۲۰ ضرورت دارد؟» با شما در مورد لزوم یادگیری جاوااسکریپت صحبت کردیم، در این مقاله نیز من تصمیم دارم در ادامه مقاله پیشین شما را با بازارکار یک برنامه نویس جاوااسکریپت و فرصت های شغلی مناسبی که علاوه بر چالش ها و مسئولیت بالا، درامد بسیار خوبی نیز برای برنامه نویس همراه خود دارد با شما عزیزان صحبت کنم.
البته ذکر این نکته مهم است که به صورت کلی بازارکار و درامد برنامه نویسی، مخصوصا در کشور ما، نسبت به مشاغل دیگر از رونق بیشتری برخوردار است، اما چرا برنامه نویسان جاوااسکریپت سریع تر جذب بازار میشوند، موضوعی است که در ادامه علت آن را خواهیم فهمید.
قبل از شروع مقاله، اگر با زبان برنامه نویسی جاوااسکریپت، بهترین روش یادگیری و کاربردهای آن آشنایی ندارید مقالات زیر را مطالعه بفرمایید.
نکاتی که قبل ازشروع یادگیری جاوااسکریپت باید بدانید
راهنمای جامع آموزش زبان برنامه نویسی جاوااسکریپت (۹مرحله)
شما با یادگیری جاوااسکریپت و تسلط به یکی از پلتفرم های قدرتمند آن که در ادامه به بررسی موردی آن ها خواهیم پرداخت، میتوانید در شرکت های مختلف به طراحی اپلیکیشن بر روی پلتفرم های مختلف که در حال حاضر، رقابت بالایی در عرضه و تقاضای آن در دنیا وجود دارد، مشغول شوید.
مورد اول: جاوااسکریپت به لطف پلتفرم قدرتمند node.js، که معمولا برای ساخت اپلیکیشن های پیشرفته سمت سرور مورد استفاده قرار میگیرد توانسته ابزاری بسیار ایده آل (هم برای برنامه نویس هم برای شرکت ها) برای socket نویسی باشد.
اگر همین الان به سایت های کاریابی مراجعه کنید خواهید دید که شرکت ها برای یک متخصص جاوااسکریپت که به node.js تسلط دارد چه پوزیشن های شغلی مناسبی معرفی کرده اند.
در کشور ما سایت هایی مثل دیوار و شیپور و در خارج از کشور شرکت هایی مثل لینکدین و یا github بخش عمده ای از فعالیت های برنامه نویسی سمت سرور خود را با پلتفرم node.js پیگیری میکنند.
مورد دوم: شما با یادگیری فریم ورک electronjs می توانید وارد دنیای طراحی اپلیکیشن های دسکتاپ شوید. شاید این مورد کمتر به گوش شما خورده باشد اما شما با یادگیری این فریم ورک که بسیار ساده نیز میباشد می توانید به راحتی (مثل طراحی سایت) اپلیکیشن خود را طراحی کنید تا electronjs، کدهای شما را به سرعت به اپلیکیشن cross.platform تبدیل کند.
نکته: crossplatform بدین معناست که برنامه شما به راحتی قابل نصب بر روی تمام سیستم عامل های ویندوز، مک و لینوکس خواهد بود.
در حال حاضر شرکت هایی مثل مایکروسافت، اسلک و در داخل ایران سایت هایی مثل رادیو جوان از این فریم ورک قدرتمند برای ساخت اپلیکیشن های دسکتاپی خود استفاده میکنند.
نکته: جالب است بدانید طراحی اپلیکیشن دسکتاپ با این فریم ورک بسیار مشابه طراحی سایت می باشد برای همین یکی از معروف ترین شعارهای دنیای برنامه نویسی به electron اختصاص یافته است:
If you can build a website, you can build a desktop app
مورد سوم: react native یکی دیگر از فریم ورک های بسیار قدرتمند زبان برنامه نویسی جاوااسکریپت می باشد که برای ساخت اپلیکیشن های موبایل (اندروید و ios) مورد استفاده قرار میگیرد.
ری اکت در سال ۲۰۱۵ توسط فیسبوک منتشر شد و مزیت اصلی آن، سرعت بسیار بالا در طراحی اپلیکیشن های مختلف با UI و UX قابل قبول بود. از مطرح ترین اپلیکیشن هایی که با react native نوشته شده اند میتوان به فیسبوک، والمارت، اینستاگرام و بلومبرگ اشاره کرد.
طبق تجربه در میان مواردی که به آن ها اشاره کردم متخصصان ری اکت شاید حساس ترین، پرچالش ترین و البته پر درامد ترین تخصص را در بین برنامه نویسان اپلیکیشن به زبان جاوااسکریپت داشته باشند.
برای اطمینان از این ادعا توصیه میکنم؛ حتما پیشنهادات شغلی که در لینکدین روزانه منتشر میشود را مطالعه فرمایید.
اگر وارد برنامه نویسی و طراحی وب (نه اپلیکیشن) شده اید باید به مفاهیم و البته ابزارهای جاوااسکریپت به طور کامل تسلط داشته باشید، چراکه با استفاده از جاوااسکریپت شما قادر خواهد بود رابط های کاربری بسیار فوق العاده ای ایجاد کنید و با این کار نرخ تبدیل وبسایت را افزایش دهید. (این موضوع به سئو سایت شما بسیار کمک میکند.)
برای این کار شما میبایست با فریم ورک های مطرحی مثل vue.js، angular و … آشنا بوده و اطلاعات خود را داثما به روزرسانی کنید.
به طور کلی اگر به فکر طراحی سایت داینامیک و توسعه افکت های وب سایت ،که در حال حاضر (با توجه به شیوع کرونا) همه شرکت ها به دنبال جذب متخصص هستند، میباشید یادگیری و حرفه ای شدن در این حوزه به شما اکیدا توصیه میشود.
زبان برنامه نویسی جاوااسکریپت از زمانی که به دنیای برنامه نویسی وارد شد همواره رشد صعودی خود را در ارائه فریم ورک های مختلف، بهبود کارایی و البته جذب برنامه نویسان مختلف به خود را حفظ کرده است.
توصیه من به شما این است اگر به برنامه نویسی علاقه دارید و میخواهید جاوااسکریپت را شروع کنید حتما به فریم ورک ها و ابزارهایی که برای طراحی وب از آن استفاده میشود، مسلط شوید و سپس اپلیکیشن نویسی را شروع کنید.
اما اگر قبلا برنامه نویسی کرده اید و در حال حاضر قصد یادگیری جاوااسکریپت و تجربه کار کردن با آن را در سر دارید به شما توصیه میکنم نسبت به فریم ورک هایی مثل انگیولار و پلتفرم هایی مثل ری اکت مسلط شوید.
زبان نشانهگذاری توسعهپذیر برای توصیف دادهها استفاده میشود. کد XML، یک توصیه رسمی از ائتلاف جهانی وب (C3W) شبیه به زبان نشانهگذاری ابرمتن (HTML) است. هر دو این زبانها دارای نمادهای نشانهگذاری برای توصیف محتوای صفحه یا فایل هستند. کد HTML محتوای صفحه وب (عمدتا متن و تصاویر گرافیکی) را تنها از نظر چگونگی نمایش و تعامل با آن توصیف میکند.
دادههای XML به عنوان توصیف خود و یا (خودتعریفکننده) شناخته میشوند، به این معنی که ساختار دادهها از خود آنها تشکیل شده است و نیازی به ذخیره دادهها نیست. فرمت این کد میتواند توسط هر فرد یا گروهی از افراد یا شرکتهایی که میخواهند اطلاعات را به روشی ثابت به اشتراک بگذارند، استفاده شود. XML در واقع یک زیر مجموعه سادهتراز زبان نشانهگذاری استاندارد عمومی (SGML) است.
ساختار اصلی ساختمان یک سند XML یک عنصر است که توسط برچسبها تعریف میشود. هر عنصر یک برچسب آغازین و پایانی دارد. همه عناصر در یک سند در بیرونیترین المان شناختهشده به عنوان عنصر ریشه قرار دارند. همچنین میتواند عناصر تو درتو یا عناصر درونی را پشتیبانی کند. این توانایی اجازه میدهد تا ساختارهای سلسله مراتبی را نیز پشتیبانی کند. نامهای عنصر، محتوای عنصر را توصیف میکنند و ساختار رابطه بین آنها را شرح می دهد.
از ویژگی خوب یک فایل اکس ام ال این است که این فایل قادر به خواندن و درک توسط یک تجزیهگر XML باشد. هم چنین اگر فرمت آن با مشخصات XML مطابقت داشته باشد، به درستی علامتگذاری شده باشد و اگر المانهای داخلی به درستی شکل گرفته باشند. همچنین توانایی تعریف ویژگیها برای المانها دربرچسب آغازین یک عنصر را داشته باشد.
برنامههای این زبان نشانهگذار نامحدود هستند. برای مثال سازندگان کامپیوتر ممکن است بر سر یک استاندارد یا روش رایج برای توصیف اطلاعات مربوط به یک محصول کامپیوتری (سرعت پردازنده، اندازه حافظه و غیره) توافق کنند و سپس فرمت اطلاعات محصول را با کد XML توصیف کنند. چنین روش استانداردی از توصیف دادهها کاربر را قادر میسازد تا یک عامل هوشمند (یک برنامه) را به وب سایت هر کامپیوتر ارسال کند، دادهها را جمعآوری کند و سپس یک مقایسه معتبر انجام دهد.
استفاده بیش از حد از این زبان در بسیاری از حوزههای فنآوری، ارزش واقعی آن را کاهش داده و منجر به سردرگمی میشود. شاید آسیب دیده ترین رفتار قابلپیشبینی این است که بسیاری از فروشندگان با استفاده از مجموعه پسوندهای اختصاصی خود به دنبال اکس ام ال هستند. اگر چه برخی میخواهند بر ارزش آن بیفزایند، اما برخی دیگر تنها به دنبال قفل کردن کاربران در محصولات خود هستند.
توان اکس ام ال در سادگی آن نهفته است. میتواند بخشهای بزرگی از اطلاعات را بگیرد و آنها را در یک سند معنیدار که ساختار و سازمان را برای اطلاعات فراهم میکند، ایجاد و مدیریت کند.
زبان اکس ام ال از انسان استفاده میکند، نه کامپیوتر.
این زبان قابل خواندن و قابلفهم است، حتی توسط مبتدیها.
کد کردن آن سختتر ازHTML نیز نیست.
XML کاملا با جاوا سازگار و قابل توسعه است.
در اکس ام ال شما می توانید برچسبهای خود را ایجاد کنید یا از برچسبهای ایجاد شده توسط دیگران استفاده کنید که از زبان طبیعی دامنه شما استفاده میکنند و ویژگیهای مورد نیاز شما را دارند.
امروزه برنامهها و دستگاههای مختلف از آن برای مدیریت، ساختار، ذخیره، انتقال و نمایش دادهها استفاده میکنند. به عنوان مثال، به طور گسترده در تبادل دادههای B۲B مورد استفاده قرار میگیرد. XML همچنین استاندارد قالبهای فایل آفیس شامل فایلهای مایکروسافت آفیس و گوگل دیتس است.
این زبان نشانه گذاری به جای ادغام دادهها در یک سند HTML، آن را برای جدا کردن فایلهای اکس ام ال برون سپاری میکند. از آنجا که این کدها دادهها را در قالب متنی ساده ذخیره میکند، این ذخیرهسازی مستقل از پلتفرم شما است و دادههای شما را می توان به راحتی صادر، وارد یا جابجا کرد.همچنین این زبان اطلاعات را بدون قالببندی خاصی در خود ذخیره میکند. همین موضوع باعث میشود درهر سیستمی قابل حمل باشد و برای نمایش آن نیاز به سخت افزار یا نرمافزار خاصی نباشد. این انعطاف باعث شده در برنامهنویسی وب و موبایل مورد استفاده قرار بگیرد.
یکی دیگر از کاربردها، این است که شما میتوانید متون دلخواه خود را در قالب یک فایل xml ذخیره کنید، سپس با کمک HTML بدون توجه به متن، به طراحی ظاهر بپردازید. در آخر با کمک چند خط کد جاوا اسکریپت، متن های xml را در قالب HTML نمایش دهید. این کار باعث میشود هر زمان که نیاز است بتوانید متن ها را بدون تغییر ظاهری و کدهای html تغییر دهید.
در جاوا اندروید از اکس ام ال برای طراحی Layout استفاده میکنیم. زیرا اکس ام ال یک زبان بسیار آسان و سبک میباشد، بنابراین باعث نمیشود طراحیهای Layout ما سنگین و کند شوند. XML به شما در نوشتن کد رابط کاربری (UI) در اندروید کمک میکند تا رابط کاربری مورد نظر خود را طراحی کنید. تگهای این کد درون فایلهای XML از پیش تعریف نشدهاند. ما باید تگ هایی که لازم داریم را خودمان تعریف کنیم. XML زبانی بسیار ساده و مقیاس پذیر است که هم توسط انسان و هم از نظر دستگاه قابل خواندن است.
در اندروید شما با استفاده از زبان نشانه گذاری اکس ام ال میتوانید به راحتی به طراحی UI در اندروید بپردازید. در این مطلب شما با اکس ام ال به طور کلی آشنا میشوید و فقط باید برای طراحی UI در اندروید با ویژگیهای آن آشنا شوید تا بتوانید رابط کاربری مورد نظر خود را بسازید.
زبان XML برای ذخیره و انتقال داده ها به کار می رود. ولی HTML برای نمایش داده ها استفاده میشود.
بر خلاف HTML تگهای XML تعریف شده نیستند و شما باید بر حسب نیازتان آنها را تعریف کنید.
هیچ کدام جایگزین یکدیگر نیستند. چون هر کدام برای اهداف خاصی طراحی شده اند.
Linear Layout : محتواهای شما را در یک جهت، به صورت عمودی یا افقی تراز میکند.
Relative Layout : محتوایهای شما را به صورت نسبی میچیند و دست شما برای چینش View در این Layout بازتر است اما Relative Layout از Linear Layout یا Frame Layout سنگینتر است.
Frame Layout : این Layout سادهترین و سبک ترین Layout است و ویژگیهای زیادی ندارد و برای چیدمان تکی استفاده میگردد.
Layout XML
Manifest xml
String Xml
Style XML
drawable.xml
color.xml
اکس ام ال یک زبان نشانه گذاری توسعه پذیر است که با همین ویژگی توسعه پذیری خود را از بقیه زبانها متمایز کرده است. با کدهای اکس ام ال میتوانید برچسبها و دستورات مختلفی را درسایت و یا اپلیکیشنهای اندروید ایجاد کنید.
درست است که زبان XML با HTML تفاوت دارد ولی به نوعی مکمل هم نیز میباشند. ویژگی استاندارد بودن این زبان باعث شده که طراحان سالهای طولانی برای ذخیره اطلاعات در زمینه اندروید و یا طراحی سایت استفاده کنند. در این مقاله با کاربرد و مزیتهای استفاده از زبان XML در حوزههای مختلف خصوصا اندروید نیز آشنا شدید. امیدوارم با خواندن این مطلب پاسخ سوالاتتان در زمینه زبان نشانه گذاری XML را تا حدودی دریافت کرده باشید.
https://lms.utkarafarini.com/course/java