طراحی سایت | برنامه نویسی

آموزش طراحی سایت و برنامه نویسی

طراحی سایت | برنامه نویسی

آموزش طراحی سایت و برنامه نویسی

۲۶تیر

نتظار می رود حجم بازار گوشی های هوشمند به 1.654 میلیارد دلار در سال 2022 افزایش یابد و تعداد کاربران گوشی های هوشمند در همان سال به 3 میلیارد عدد برسد. واضح است که داشتن حضوری قوی در تلفن همراه دیگر اختیاری نیست و شرکت ها باید توسعه برنامه های موبایل را به عنوان یک پیش نیاز اصلی برای رشد خود در نظر بگیریند.

hybrid-vs-native-ap

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

تفاوت بین اپلیکیشن Hybrid و Native در چیست؟

اپلیکیشن های Native در یک زبان برنامه نویسی که پلت فرم مخصوص خود را دارد، توسعه داده می شوند و تنها با پلت فرم مربوطه سازگار هستند. برنامه های اندروید در ابتدا در جاوا توسعه پیدا کردند، در حالی که برنامه های iOS در Swift اپل توسعه یافته اند.

از سوی دیگر، اپلیکیشن های هیبریدی با استفاده از فناوری های وب مانند HTML5، جاوا اسکریپت و CSS در ترکیب با عناصر بومی توسعه می یابند. آنها اساسا وبسایت های مستقل از پلتفرمی هستند که با استفاده از یک webview بومی نمایش داده می شوند. webview یک کامپوننت بومی است که به وسیله سسیستم عامل هایی مانند اندروید و ios برای بارگذاری محتوای وب فراهم آورده میشوند.

جوانب مثبت و منفی اپلیکیشن های Hybrid و Native

همانطور که در ابتدای این مقاله گفتیم، هر دو رویکرد Hybrid و Native برای توسعه برنامه های موبایل، جوانب مثبت و منفی خود را دارند که شرکت ها برای ورود به بازار تلفن همراه باید آنها را درذهن خود داشته باشند.

هزینه

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

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

زمان

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

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

نگهداری

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

توسعه اپلیکیشن های Native به این معنی است که پایگاههای کد  متعددی برای نگهداری (حداقل یکی برای اندروید و یکی برای iOS) وجود دارد. از آنجایی که توسعه دهندگان اندروید به طور معمول به توسعه iOS مسلط نیستند و بالعکس، شرکت هایی که تصمیم می گیرند یک برنامه بومی را توسعه دهند، باید حداقل تعداد توسعه دهندگان آنها دو برابر باشد. که خوب این باز برتری اپلیکیشن های هیبریدی را می رساند.


کارایی

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

"بزرگترین اشتباهی که ما به عنوان یک شرکت انجام دادیم این بود که، بر روی HTML5 بیش از برنامه های Native  وقت گذاشتیم"، جمله قبل تصمیم مارک زوکربرگ موسس فیس بوک برای دور شدن از برنامه های هیبریدی در سال 2012 را توضیح داد.

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


تجربه ی کاربری

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

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

نتیجه

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

منبع: لرن سورس
شهربانو دوستی
۲۶تیر

در سال های اخیر بحث های بسیاری در مورد توسعه دهندگان Full-Stack و آینده آنها صورت گرفته است. بعضی معتقدند که توسعه دهندگان Full-Stack ، منسوخ شده اند، در حالی که بعضی دیگر می گویند  تقاضا برای توسعه دهندگانی که همه فن حریف باشند تا کنون در این حد زیاد نبوده است.

full-stack-developer-demand-what-is

در این مقاله به معرفی توسعه دهدنگان Full-Stack و مزایا و معایب آنها میپردازیم.

یک توسعه دهنده Full-Stack  کیست؟

یک توسعه دهنده Full-Stack  کسی است که با تمام لایه های یک برنامه آشنا است. آشنایی با این لایه ها به مجموعه ای از فن آوری های مختلف برای تکمیل پروژه نیازمند است، به همین دلیل است که از Stack در نام آنها استفاده شده است.

لایه نمایش : این لایه با نام front-end هم شناخته میشود، لایه ارائه یک برنامه شامل همه چیزهایی است که به طور مستقیم توسط کاربر نهایی قابل دسترس است. این روزها، لایه ارائه معمولا با استفاده از HTML، CSS، جاوا اسکریپت، jQuery و بسیاری از کتابخانه های جاوا اسکریپت مانند React JS ، Foundation، Backbone، AngularJS و Ember.js ایجاد می شود.

لایه منطق : این لایه با نام back-end نیز شناخته میشود، لایه منطق برنامه شامل همه توسعه دهندگانی است توسعه است که رابط کاربری را تولید نمیکنند. در عوض، این لایه شامل منطق اصلی برنامه است که برنامه را قادر میکند به خوبی کار کند.

اگر برنامه را با اتومبیل مقایسه کنیم لایه ی منطق موتور اتومبیل محصوب میشود. توسعه دهندگان Back-end به زبانهای برنامه نویسی مانند Python، Ruby، Java، PHP و .Net مسلط هستند.

لایه داده : این لایه گاهی اوقات به عنوان زیر گروهی از لایه منطق نیز شناخته میشود، لایه داده ها با نحوه ایجاد، خواندن، به روز رسانی و حذف داده ها با استفاده از پایگاه های داده مانند MySQL، SQL Server، PostgreSQL و Oracle سر و کار دارد.

همانطور که می توان تصور کرد، پروژه های مختلف برای تکمیل نیازمند تکنولوژی های مختلف هستند، بنابراین هیچ دو توسعه دهنده Full-Stack ایی دارای مهارت های مشابهی نیستند . توسعه دهنده Full-Stack بودن مستلزم این نیست که شما لزوما با همه چیز برای کار با قسمت front-end و back-end آشنا باشید ، این بدان معنی است که شما قادر به کار در هر دو طرف هستید و میتوانید آن چیزی که در حال انجام است را درک کنید 

نوعی جدید از توسعه دهندگان Full-Stack

البته، توسعه دهندگان Full-Stack چیز جدیدی نیستند. در گذشته، برنامه های کاربردی نرم افزار معمولا از ابتدا تا انتها توسط یک فرد تکمیل میشد، بنابراین توسعه دهندگان Full-Stack تنها با نام "توسعه دهنده" شناخته میشدند. اما با توجه به افزایش  پیچیدگی برنامه ها و نیاز به انجام وظایف مختلف در نهایت موجب شد کار ها تقسیم شود تا جایی که توسعه دهندگان  front-end و back-end  از هم جدا شدند.

اکنون بعضی افراد فقط در یکی از این فیلد ها اشتغال دارند. در این زمان احساس میشد که دیگر دوره توسعه دهندگان Full-Stack به پایان رسیده است. اما آنچه که توسعه دهندگان Full-Stack را نجات داد ، تغییر اساسی در توسعه نرم افزار بود. اکنون به ایجاد هر قسمت از ابتدا، توسعه دهندگان نرم افزار میتوانستند از کامپوننت ها آماده و فریمورک ها برای ساده سازی عملیات توسعه استفاده کنند.

 

در اواخر سال 2000، بسیاری از برنامه نویسان توانستند یک سایت کامل که شامل یک منطق تجاری در سرور، یک پایگاه داده مقیاس پذیر و استقرار و پشتیبانی عملیاتی بود را ارائه دهند. این نسل جدید از توسعه دهنده Full-Stack میتوانستند  تیمی از برنامه نویسان را برای انجام وظایف یکسانی در کنار هم جمع کنند.

بر اساس Stack Overflow 2016 Developer Survey، توسعه دهندگان Full-Stack می توانند یکی از حرفه ای ترین و پرطرفدارترین توسعه دهندگان در دوره کنونی باشند.

 

Atishe Chordia میگفت : "ما دنبال توسعه دهنده ای هستیم که بتواند مسائل را حل کند - هر مسئله ای را. این به بدان معنی است که آنها باید بتوانند با همان سرعتی که تکنولوژی رشد میکند فناوری های جدید را یاد بگیرند.

بسیاری از استارتاپ هایی که در ابتدای راه هستند به توسعه دهندگان Full-Stack نیاز دارند. زیرا آنها نمی توانند هزینه یک تیم مهندسی بزرگ را تأمین کنند. همانطور که سازمان رشد میکند، نقش ها  بیشتر متخصص می شوند، اما معمولا به شخصی که در همه زمینه اطلاعات داشته باشد همیشه نیاز است.

مزایا و معایب توسعه دهندگان Full-Stack

امروزه روشن است که تقاضا برای توسعه دهندگان Full-Stack زیاد است، اما چیزی که ممکن است خیلی روشن نباشد، مزایا و معایب توسعه دهندگان Full-Stack در مقایسه با توسعه دهندگانی هست که اختصاصا بر روی یک لایه کار میکنند.

full-stack-developer-demand-advantages

سرعت پیشرفت تکنولوژیک بی رحم است و تکنولوژی هایی که امروزه شرکت ها برای توسعه محصولات نرم افزاری خود به کار میبرند، بسیار متفاوت از فناوری هایی هستند که در 10 سال پیش استفاده می کرده اند.

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

این قابلیت آنها باعث می شود که به ویژه برای استارتاپ ها ارزشمند باشند زیرا یک استارتاپ میخواهد در اسرع وقت یک محصول پایدار (MVP) را منتشر کنند و سپس آن را توسعه دهد. توسعه دهندگان Full-Stack می توانند از یک قسمت از محصول به قسمتی دیگر جابه جا شوند و این کار باعث میشود تا استارتاپ ها کمترین هزینه ممکن را تامین کنند.

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

به طور طبیعی، برای توسعه دهندگان Full-Stack یادگیری و تسلط بر همه چیز غیر ممکن است، که این مورد مسلما بزرگترین عیب آنها در مقایسه با توسعه دهندگان تخصصی است. 

نتیجه

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


 

منبع: لرن سورس

شهربانو دوستی
۲۶تیر

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

iosandroid

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

Porting چیست و چگونه کار می کند؟

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

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

فریمورک های موجود برای توسعه. حتی ممکن است نیاز به تغییر زبان برنامه نویسی برنامه در این فرآیند داشته باشید. اکثر برنامه های iOS با Swift ایجاد می شوند، در حالی که اندروید به طور کلی از Java یا Kotlin استفاده می کند.

طراحی و رابط کاربری. برخی از ویژگی های موجود در اندروید ممکن است در iOS موجود نباشند یا حداقل ممکن است کاملا متفاوت به نظر برسد. همه این تفاوت ها بر روی تبدیل برنامه بر Android به iOS تاثیر می گذارد .

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

به طور کلی باید توجه داشته باشید که هیچ راه جادویی برای این نوع انتقال وجود ندارد. در این زمان هیچ نرم افزاری وجود ندارد که بتواند برای شما این تبدیل را انجام دهد.

fragmentation-remains-an-issue-in-the-android-universe


چه چیزهایی را برای تبدیل برنامه Android به iOS نیاز دارید بدانید؟

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

  • لیستی از ویژگی های مورد نیاز خود در برنامه ایجاد کنید. اگر زمانی که برنامه Android را می ساختید این لیست را تهیه کردید، می تواند کمک بزرگی برای شما باشد. با این حال اطمینان حاصل کنید که فقط مفاهیم کلی را در نظر میگیرید. شما در مراحل بعدی به جزئیات بیشتری خواهید پرداخت.
  • بودجه خود را مشخص کنید. به طور متوسط، هزینه ها بسته به اندازه و پیچیدگی برنامه شما و تیمی که برای فرایند توسعه انتخاب می کنید، می تواند  چیزی بین $ 2،000 تا $ 20،000 باشد.
  • تیمی را انتحاب کنید که بتواند برنامه را از Android به iOS تبدیل کند . انجام این کار آسان نیست و تیمی که برای این کار انتخاب می کنید باید توانایی کار با دو پلت فرم را داشته باشد.
  • شما باید آماده باشید. این فرآیند بسیار سریع نخواهد بود. انتقال می تواند چند ماه تا چند سال طول بکشد. البته مدت این زمان عمدتا به این بستگی دارد که برنامه تا چه حد بزرگ است و مهارت تیمی که انتخاب کردید تا چه حد است.
  • تیم توسعه شما باید شامل حداقل یک توسعه دهنده و یک طراح UX باشد. اگر چه، بسیار توصیه می شود که یک تیم حرفه ای QA نیز داشته باشید.

two-thirds-of-android-users-do-not-pay-for-apps.jpg


چند نکته برای تبدیل موفقیت آمیز یک برنامه از Android به iOS

ما قبلا مواردی را ذکر کردیم که ممکن است برای آماده سازی به منظور ایجاد یک برنامه iOS مفید باشد . نکات زیر بیشتر مربوط به فرایند توسعه و آن چیزی است که برای تبدیل برنامه باید از آن آگاه داشته باشید.

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

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

ما میخواهیم دوباره بر این نکته تأکید کنیم که تیمی که در حال کار با آن هستید باید قادر به درک و کار با هر دو زبان باشد. در غیر این صورت، روند انتقال به سادگی غیر ممکن است.

هنگام تبدیل برنامه Android به iOS ، تفاوت بین دستگاهها را در نظر بگیرید. این قسمت بیشتر مربوط به جنبه های فنی است و البته بخشی هم مربوط به طراحی میشود. به عنوان مثال، سیستم عامل های مورد استفاده در دستگاه های مخاطب هدف شما ممکن است متفاوت باشد و در حالی که اکثر کاربران iOS، دستگاه های تلفن همراه خود را به آخرین نسخه ارتقاء داده اند، هنوز کسانی هستند که از نسخه های قدیمی تر استفاده می کنند. بنابراین، شما باید اطمینان حاصل کنید که برنامه در دستگاه های مختلف در دسترس باشد

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

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

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

movile-os-fragmentation

مزایا و معایب تبدیل برنامه

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

مزایا :

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

معایب:

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

نتیجه

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

شهربانو دوستی
۲۶تیر

امروزه توسعه نرم افزار های Cross-platform محبوبیت زیادی را بدست آورده است. درک چرایی این مسئله آسان است. هزینه های بسیار کمتر و توسعه ی سریعتر و ایجاد تنها یک برنامه  Cross-platform برای پلتفرم های اندروید و iOS ، همه اینها دلایلی هستند که شما را ترغیب به استفاده از آنها میکند.

Flutter-vs-ReactNative1200

با در نظر گرفتن این فریمورک ها، ساخت یک برنامه Cross-platform آسان تر شده است. React Native در این زمینه یک کهنه کار محسوب میشود، اما اخیرا رقیب جدیدش، Flutter محبوبیت زیادی به دست آورده است. اگر در استفاده از React Native یا Flutter برای توسعه برنامه های تلفن همراه تردید دارید ، در این مقاله نگاهی به هر دوی این فریمورک ها خواهیم داشت.

React Native و Flutter : در ابتدا باید چه چیزی را بدانید

React Native در سال 2015 به بازار آمد. این فریمورک متن باز است و در ابتدا توسط فیس بوک ساخته و پشتیبانی شد. هزاران برنامه با استفاده از فریمورک React Native ساخته شده اند که میتوان به Instagram و Skype اشاره کرد.

احتمالا شما هنوز در مورد Flutter چیزهای زیادی نشنیده اید و البته دلیل آن این است که Flutter یک ابزار نسبتا جدید است که در سال 2017 منتشر شد. این فریمورک توسط Google توسعه داده شده و پشتیبانی می شود. فلاتر هم  متن باز است و همچنین از آن برای ایجاد برنامه های اندروید، iOS و یک سیستم عامل نسبتا جدید به نام Google Fuchsia استفاده میشود.

flutter-vs-react-native


Flutter گوگل در مقابل React Native : هفت تفاوت اصلی

سه مورد وجود دارد که Flutter و React Native در آن مشترک هستند :

  • آنها متن باز هستند.
  • آنها توسط شرکت های بزرگ فناوری اطلاعات توسعه یافته و پشتیبانی می شوند.
  • آنها برای توسعه برنامه های تلفن همراه Cross-platform ایجاد شده اند.

با این حال چیزهای بیشتری را باید مقایسه کنیم تا بتوانیم نتیجه گیری کنیم. بیایید React Native و Flutter را مقایسه کنیم تا تفاوت های بین این دو را بشناسیم.

API های بومی پشتیبانی شده

در مورد React Native، می توانید روی اکثر API های بومی اندروید و iOS حساب باز کنید. API های رسمی شامل مواردی هستند که برای سرویس های WiFi و موقعیت مکانی استفاده میشوند. با این حال، API های غیر رسمی هم برای این فریمورک وجود دارد که میتوان به API هایی برای بلوتوث، بیومتریک، دوربین، سنسورها و NFC اشاره کرد. خبر خوب این است که شما همیشه می توانید API های غیر رسمی را برای این سخت افزار پیدا کنید. یک عیب مهم برای React Native عدم حمایت از طراحی گرافیک قابل تنظیم است.

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

زبان ها

اگر از React Native استفاده می کنید، کدنویسی شما با استفاده از زبان جاوا اسکریپت انجام میشود. این زبان یکی از محبوب ترین زبان های برنامه نویسی در میان توسعه دهندگان است. تعداد زیادی توسعه دهنده جاوا اسکریپت در بازار وجود دارد ، با این حال، پیدا کردن توسعه دهنده ای که با React Native کار کند، ممکن است کمی زمانبر باشد.

شما باید با Dart برای استفاده از Flutter آشنا باشید. Dart یک زبان برنامه نویسی کمتر شناخته شده است، بنابراین پیدا کردن توسعه دهندگانی که با فلاتر بتوانند کار کنند، ممکن است برای شما به یک چالش تبدیل شود. از طرفی یادگیری Dart زمان زیادی را از شما نخواهد گرفت ، به خصوص اگر شما یک توسعه دهنده Android بوده و با Java یا Kotlin آشنا هستید. اگرچه، توسعه دهندگان iOS زمان بیشتری را برای یادگیری Dart نیاز دارند.

flutter-vs-react-nativewhat-you-need-to-know

کارایی

می توانیم تضمین کنیم که مقایسه عملکرد و کارایی React Native و Flutter شما را متعجب خواهد کرد. در مورد برنامه های ساخته شده با React Native، معماری آنها شامل کدهای جاوا اسکریپت و کامپوننت های بومی است. اگر برنامه نیاز به استفاده از کامپوننت های بومی (به عنوان مثال، خدمات مکان یا دوربین) داشته باشد، از JavaScript bridge برای تبدیل متغیرهای جاوا اسکریپت به معادل بومی آنها استفاده می کند.

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

توسعه رابط کاربری

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

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

Flutter یک رویکرد کاملا متفاوت برای ساخت رابط کاربری دارد : استفاده از ابزارهای اختصاصی سفارشی شده :

  • Material Design برای اندروید
  • Cupertino برای IOS
  • ویدجت هایی برای متون، انیمیشن ها، و ... که می تواند برای هر پلتفرمی استفاده شود.

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

تست کردن

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

وضیت تست در Flutter نیز چندان مناسب نیست. در حالی که ابزار های تست واحد که همراه با Dart ارائه میشوند عالی هستند اما ترکیب این تست ها کار را پیچیده تر میکند. با این حال، یک بسته flutter_driver برای تست عملکرد وجود دارد.

comparison-of-react-native-vs-flutter

ساختار کد

ساختار کد جنبه ای دیگر است که تمایز روشنی را بین این دو فریمورک ایجاد میکند. Flutter در مقایسه با React Native از یک روش کاملا متفاوت برای ساختار کد نویسی استفاده میکند: این فریمورک داده ها، استایل ها و قالب ها را در یک فایل تشخیص نمی دهد.از طرفی این روش، قابلیت خوانایی کد را کاهش می دهد و به طور کلی آن را شلوغ و به هم ریخته نشان میدهد.

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

IDE و پشتیبانی جامعه

با توجه به اینکه React Native کهنه کارتر از Flutter است، قطعا در مورد IDE و پشتیبانی جامعه بالاتر از فلاتر قرار میگیرد. React Native  تقریبا توسط هر IDE ایی به طور گسترده  مورد استفاده قرار می گیرد. از سوی دیگر Flutter تنها توسط تعداد محدودی از IDE ها پشتیبانی می شود:

  • VS Code
  • Android Studio
  • IntelliJ IDEA

مزیت دیگر React Native نسبت به Flutter اندازه جامعه توسعه دهندگان آن است. با  توجه به اینکه سابقه ی React Native بیشتر است دارای جامعه ی بزرگتری از توسعه دهندگان است.


آخرین کلام در مقایسه دو فریمورک Flutter و React Bative 

حتی اگر ما تمام مزایا و معایب Flutter و React Native را با هم مقایسه کنیم، باز انتخاب شما بستگی به الزامات خاص پروژه ی شما دارد :

React Native بهترین گزینه خواهد بود اگر :

  • نیاز به ساخت برنامه ای دارید که در هر دو سیستم عامل Android و iOS اجرا شده و از UI های بومی و بصری در هر پلترفرم جداگانه استفاده کنید
  • نیاز به یک ابزار پیشرفته تست شده در طول زمان دارید.

از طرفی، Flutter نیز میتواند وقتی برای شما مناسب باشد که :

  • شما نیاز به طراحی رابط کاربری کاملا سفارشی شده دارید
  • شما آماده مقابله با اشکالات و کشف قلمرویی ناشناس باشید.
     
منبع: لرن سورس
شهربانو دوستی
۲۵تیر

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

open-source

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

شروع آسان و ارزان

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

این مورد برای طراحان به چه شکل است؟خوب، پاسخ به این سوال نیاز به کمی توضیح دارد. بله، یک طراح می تواند هر جزء از یک سایت را از ابتدا بسازد. این کار برای وب سایت ها ساده و کوچک میتواند انجام شود. اما این کار برای پروژه های بزرگتر نیاز به یک تلاش زیادی دارد. برای مثال، آیا شما می خواهید زبان پایگاه داده خود را ایجاد کنید؟ چه چیزی در شروع کار نیاز دارید تا به یک سیستم مدیریت محتوای غنی برسید؟ آیا، آیا شما مایل به ایجاد کتابخانه ی جاوا اسکریپت پیچیده هستید؟

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

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

web-designers-open-source-01

فرصتی برای رشد

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

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

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

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

web-designers-open-source-02

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

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

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

web-designers-open-source-03

متن باز درب ها را میگشاید

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

منبع: لرن سورس
شهربانو دوستی
۲۵تیر

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

kotlinvsjava

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

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

چرا جاوا محبوبیت کمتری دارد؟

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

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

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


اطلاعاتی مفید در مورد کاتلین

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

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

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

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

 

در حال حاضر، با استفاده از Kotlin شما از دست مشکلات زیر خلاص میشوید :


دیگر خبری از NullPointerException نیست

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

هنگامی که در سال 1965 این تصمیم نوآورانه (NullPointerException) منتشر شد، سازندگان آن حتی قادر به فکر کردن درباره آن نبودند، که روزی  به بزرگترین مشکل برنامه نویسان در جهان تبدیل خواهد شد. با این حال، طنز تلخ این واقیعت این است که NullPointerException به منظور ایجاد فرایند برنامه نویسی ساده تر و سریعتر اختراع شد.

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


شما از دست کلاس های کاربردی خلاص میشوید

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

به منظور مقابله با تمام اشکالات کلاس های کاربردی، کاتلین تصمیم به استفاده از توابع extension گرفت و صادقانه بگویم، اینجا جایی است که ما می توانیم بگوییم کاتلین واقعا از جاوا بهتراست و می توانید 100٪ مطمئن باشید که  قادر به استفاده از Kotlin برای یک پروژه تجاری اندرویدی هستید.

تابع FindViewById دیگر وجود ندارد

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

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


 

منبع: لرن سورس
شهربانو دوستی
۲۵تیر

همه ما با نرم افزارهای برنامه نویسی دسکتاپ و  محیط های توسعه وب آشنا هستیم. این محیط ها دارای قابلیتی به نام syntax highlighting هستند که نوشتن کد و اشکال زدایی آن آسان تر میکند. اما آیا می دانستید که می توانید از بعضی همان ویژگی ها استفاده کنید و آن را به محتوای وب خود اضافه کنید؟


photo-1488590528505-98d2b5aba04b


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


در این مقاله به برخی از syntax highlighting های رایگان را بررسی میکنیم.


1.باکس های کد در آنگولار

در اینجا یک قطعه کد بسیار زیبا داریم که برای Angular.js توسط Andrew Archibald ساخته شده است. همه این باکس های کد  دارای زبانه های (تب) بسیار زیبا هستند که میتوانید از آنها در وب سایت خود استفاده کنید. این کد ها را بدون هیچ جاگذاری میتوانید به صفحه خود اضافه کنید، استایل دهی آنها همگی از طریق کد های CSS مدیریت میشود.


این ویژگی باعث میشود درخواست های HTTP شما کاهش پیدا کند و به شما کنترل بیشتری بر نوع قاعده نوشتاری مورد نظر خواهد داد.



2. تگ استایل <pre>

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


شما می توانید با مقداری کد نویسی در جی کوئری رنگ ها را تغییر دهید لازم به ذکر است در اینجا استایل های گوناگونی برای مطابقت با هر نوع وب سایتی وجود دارد.



3.Textarea Tabs

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


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



4.CSS-Only Line Numbers

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


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



5.Syntax Highlighting بوت استرپ

آیا به دنبال اضافه کردن ویژگی Syntax Highlighting به پروژه ای که در آن از بوت استرپ استفاده کرده اید، هستید ؟ پس جای درستی را انتخاب کردید. Kijan Maharjan این قابلیت را برای شما توسعه داده است. این قابلیت به شما اجازه میدهد ویدجت های تبی را به صفحه خود اضافه کنید که دارای سبک های مختلف برای برجسته سازی کد هاست. رنگها را با استفاده از کتابخانه code-prettify  انتخاب می کنید و کل طراحی را با ویرایشهای کوچک در CSS راه اندازی میکنید.



6.Syntax Highlighting Demo

در اینجا نسخه ی نمایشی از قابلیت برجسته سازی کد ها (Syntax Highlighting Demo) را مشاهده میکنید که به وسیله گستره بزرگی از زبان ها پشتیبانی میشود. هر زبان دارای سبک طراحی و طرح رنگی خاص خود است، اما همچنین می توانید با کمی تغییر در کد CSS رنگ بندی را تغییر دهید.



7.Prism.js Demo

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



8.Pure CSS Code Editor

خوب، نام این یکی کمی گمراه کننده است. این قابلیت به لحاظ فنی یک ویرایشگر کد نیست بلکه شما از آن میتوانید فقط برای برجسته سازی کد های CSS استفاده کنید. با این حال هنوز ارزش توجه را دارد زیرا یک رابط استاتیک IDE است که فقط با استفاده از HTML و CSS ایجاد شده است. احتمالاچیزی شبیه به این قابلیت را در وب سایت خود استفاده نخواهید کرد. اما سبک های کد آن ممکن است برای شما در جاهای مختلف الهام بخش باشد.



9.Syntax Coloring

فوق العاده ساده. این توصیفی است که برای قابلیت ساخته شده توسط  Michaël Germini استفاده میشود. اگر نمیخواهید  قابلیت برجسته سازی را از ابتدا طراحی کنید Syntax Coloring انتخاب مناسبی برای شما خواهد بود. این قابلیت دارای یک پس زمینه سفید با متن روشن است و کد ها در آن به خوبی نمایش داده میشود. البته به یاد داشته باشید که این قابلیت بسیار ساده است بنابراین برای اینکه با سایت شما مطابقت پیدا کند، ممکن است به کمی زمان برای ویرایش استایل ها نیاز داشته باشید.



10.Code Guide

Code Guide توسط Jo Dahl ساخته شده است. با استفاده از آن میتوانید مشاهده کنید که چطور بلوک های برجسته ساز کد در حالت واقعی استفاده میشوند. اگر شما در حال ایجاد یک وبلاگ یا وب سایتی هستید که از قابلیت برجسته سازی برای کد های خود استفاده میکنید این طرح را در ذهن خود داشته باشید.


منبع: لرن سورس

شهربانو دوستی
۲۵تیر

برای چندین سال، ستون ها یکی از سخت ترین چالش های طراحی برای هر وبسایتی بودند. اغلب اوقات از شگرد های مختلفی مانند  clearfixes استفاده میکردیم تا بتوانیم ستون ها را در کنار هم خوب و هماهنگ ببینیم.


flexbox-css.png


خوشبختانه، ظهور Flexbox در CSS این فرایند دشوار را تا حد زیادی ساده تر کرده است. از آنجا که Flexbox با چندین container (ستون یا ردیف) ایجاد شده است، به ما یادآوری میکند که شگرد های قدیمی را به فراموشی بسپاریم


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


قوانین واکنش گرا

یکی از بهترین ویژگی های Flexbox قابلیت تطابق پذیری آن با فضای موجود در یک  container است. فلکس باکس به خودی خود واکنش گراست. اما با افزودن برخی media query های موجود در CSS میتوان این قابلیت را برای هر صفحه نمایشی تقویت کرد. طرح نمونه زیر را در اندازه های مختلف نمایشگر مشاهده کنید تا ببینید که چطور همه چیز در هر حالت به بهترین شکل تنظیم می شود.



 


ناوبری تمام صفحه

ناوبری یک عنصر طراحی است که می تواند از Flexbox تا حد زیادی بهره مند شود. نه تنها میتوانید ناوبری واکنش گرا داشته باشید، بلکه همچنین ناوبری شما میتواند از ویژگی هایی مانند ارتفاع ستون های یکسان و ترازبندی متون استفاده کند. در زیر میتوانید نمونه از یک ناوبری زیبا با استفاده از Flexbox را مشاهده کنید.



 


Timeline

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



 


دکمه های صفحه بندی

همانند منوهای ناوبری معمولی در یک سایت، منوهای صفحه بندی نیز می توانند به شدت از ویژگی های سازگاری در Flexbox کمک بگیرند. در نمونه مثال زیر،در نمایشگاه های گسترده تر، میتوانید لیست کامل اعداد صفحه را مشاهده می کنید. اما به سادگی میتوان فهمید که این لیست برای فضای موجود در یک تلفن همراه مناسب نیست. در اینجا از CSS برای مخفی کردن دکمه های اضافی بسته به اندازه صفحه استفاده میشود که باعث صرفه جویی در فضای موجود خواهد شد.



 


ویژگی محصولات

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



 


ساخت Masonry

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



 


محتوای وسط چین شده به صورت عمودی

وسط چین کردن یک متن در یک عنصر کار آسانی است، البته به شرط آنکه سایز ارتفاع عنصر را بدانید. زمانی که عنصر شما در صفحه نمایش های مختلف دارای اندازه های متفاوت هست چیکار باید کرد؟ Flexbox برای شما این موضوع را ساده کرده است.



 


فرم های انعطاف پذیر

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



 


نتیجه

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


دوره های آموزشی

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


بحث و گفتگو

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


مقالات آموزشی لرن سورس


طراحی وب

تجربه کاربری

جی کوئری

 رسپانسیو

کتابخانه

ابزار طراحی

گرافیک

 css

html

فریلنسر

انگولار

برنامه نویسی

 سئو

جاوا اسکریپت

اندروید

پی اچ پی

پایتون

نود جی اس

vuejs

react

ios

تکنولوژی

رابط کاربری

امنیت

کسب و کار

لینوکس

موبایل

پایگاه داده

شهربانو دوستی
۲۵تیر

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

atomic-design-book-cover-thumb

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

چرا از طراحی اتمی استفاده میکنیم ؟

فرآیند پایین به بالا، طراحی اتمی نامیده می شود زیرا از مسائل شیمی الهام گرفته است. موارد زیر را در نظر بگیرید:

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

طراحی اتمی وب هم از مفاهیم اساسی یکسانی پیروی میکند. این رویکرد حاکی از آن است که حتی ساده ترین عناصر HTML می توانند برای ایجاد چیزی ملموس تر و کاربردی تر ترکیب شوند، اما قرار دادن این عناصر در کنار هم نیاز به رویکرد bottom-down دارد. در طراحی اتمی، فرایند موجود به شکل زیر است :

atomic-design

  • اتم ها بلوک های بنیادی صفحات ما هستند که نمی توانند بدون از دست دادن قابلیت هایشان بیش از این شکسته شوند. آنها شامل اساسی ترین عناصر HTML مانند ورودی ها، دکمه ها، برچسب های فرم و غیره هستند.
  • با ترکیب اتم ها ، مولکول ها ایجاد میشوند و شما به چیزی خواهید رسید که دارای قابلیت های جدید است. در طراحی وب، مولکول ها چیزهایی مانند فرم های جستجو (یک لیبل برای فرم، یک دکمه و یک فیلد ورودی) هستند.
  • ارگانیزم ها در یک رابط کاربری دیجیتال، گروهی از عناصر رابط های کاربری ساده (UI) هستند که با هم بر روی یک هدف مشترک کار می کنند. به عنوان مثال، یک فرم جستجو، یک لوگو و یک منوی ناوبری یک هیدر را در صفحه وب شما ایجاد میکند.
  • Template ها گروه هایی از ارگانیسم ها هستند که با یکدیگر همکاری می کنند. نتیجه این همکاری به وجود آمدن اشیای صفحه هستند که ساختار طراحی را بیان می کنند.
  • صفحات نمونه هایی هستند که در آن میتوان نحوه نمایش تصاویر، متن ها ، فایل ها چند رسانه ای  و ... را مشاهده کرد.

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

مزایای طراحی اتمی

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

ساخت مجموعه ای از کامپوننت ها

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

linear-atomic-design

چیدمان بصری بهتر

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

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

جستجوی آسان تر در طراحی تان

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

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

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

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

چرا طراحی اتمی را باید مورد توجه قرار دهیم؟

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

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

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

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

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

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

یک ایده رادیکال برای ساخت وب سایت

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

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

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

منبع: لرن سورس

شهربانو دوستی
۲۵تیر

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

responsiveweb

طراحی واکنش گرا را بفهمید

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

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

برای مسلط شدن بر طراحی واکنش گرا، باید در اولویت های خود تجدید نظر کنید. هدف این است که به بازدیدکنندگان سایت محتوایی را که میخواهند نمایش دهیم  نه همه ی محتوای یک سایت را.

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

محتوای خود را رها و یا مخفی نکنید

رها کردن و یا پنهان کردن محتوای وبسایت برای اینکه صفحات شما بر روی یک صفحه نمایش کوچکتر بهتر نمایش داده شود، اصلا ایده ی مناسبی نیست. کاربران شما انتظار دارند که همان محتوایی که در وبسایت شما در دسکتاپ مشاهده میکنند را در تلفن همراه خود به شکلی دیگر مشاهده کنند.

hamburger-menu-icon

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

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

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

تصاویر را سازگار ارائه دهید

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

2016-mobile-trends

هنگامی که اندازه های وب سایت را برای استفاده در تلفن همراه تنظیم کردید، باید روی تصاویر خود تمرکز کنید. این کار شامل مدیریت تصاویر در استراتژی طراحی وب واکنش گرا است که شامل تکنیک هایی است که به طور خودکار با تشخیص صفحه نمایش کاربر تصاویر را تنظیم میکند.

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

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

صفحات لمسی را در طراحی خود در نظر بگیرید

اکثر کاربران تلفن همراه از دستگاه های لمسی استفاده میکنند و انتظار دارند وب سایت شما همچنان که با موس و کیبرد به خوبی کار میکند با انگشتان دست هم سازگاری داشته باشد. این مورد فراتر از طراحی واکنش گرا است و باید به طراحی touch ورود کنیم.

mobile-resolution-chart

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

تمام کارهایی که با موبایل میشود انجام داد را در نظر بگیرید

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

منبع: لرن سورس

شهربانو دوستی