آموزش مديريت محدوده‌ي پروژه

۱۳۵ بازديد

آموزش مديريت محدوده‌ي پروژه

مديريت محدوده‌ي پروژه به ما كمك مي‌كند زمان‌بندي و برآورد هزينه‌ي مناسبي براي پروژه داشته باشيم و از چالش‌هاي غير ضروري اجتناب كنيم.

مديريت محدوده‌ي پروژه، شامل فرآيندهايي است كه تضمين مي‌كنند براي رسيدن به نتيجه‌ي موفقيت‌آميز نهايي، صرفاً كارهاي مورد نياز را انجام مي‌دهيم و از پروسه‌هاي غير ضروري اجتناب مي‌كنيم. پيش از هر چيز، دو اصطلاح را از هم تفكيك مي‌كنيم:

  • محدوده‌ي محصول: توابع و ويژگي‌هايي كه خصوصيات محصول يا خدمات نهايي را تعريف مي‌كنند.
  • محدوده‌ي پروژه: كارهايي كه بايد انجام شود تا نتيجه‌ي پروژه، در قالب محدوده‌ي محصول (يعني توابع و ويژگي‌هاي آن) به دست آيد.

با اين مقدمه، مديريت محدوده‌ي پروژه حاوي آيتم‌ها و وظايفي است كه ما را دقيقاً به يك نتيجه‌ي مشخص مي‌رساند و مانع از اين مي‌شود كه وقت، منابع و انرژي‌مان را به كارهايي اختصاص دهيم كه ضروري و مورد نياز نيستند. مديريت محدوده، شامل سه پروسه‌ي اصلي است:

  • برنامه‌ريزي: تلاش‌هايي كه براي ثبت و تعريف كارهاي ضروري صورت مي‌گيرد.
  • كنترل: كنترل و نظارت فرآيندهايي كه روي مستندسازي، پيشرفت و تصويب يا عدم تصويب تغييرات متمركزند.
  • خاتمه: فرآيند چك كردن و بررسي نتايج به‌دست‌آمده و مقايسه‌ي آن‌ها با طرح اوليه است.

مدير پروژه صرف‌ نظر از روشي كه براي اجراي پروژه در نظر مي‌گيرد، از يك فرآيند سيستماتيك براي ضبط، تعريف و نظارت بر محدوده‌ي پروژه استفاده مي‌كند.

Project Management

مرحله‌ي ۱: تعريف نيازهاي پروژه

تعريف نيازهاي پروژه، اولين قدم در راستاي زمان‌بندي، تخصيص منابع و تنظيم اهداف پروژه است. فقط در اين صورت اعضاي تيم و همچنين ذي‌نفعان و مالكان پروژه، وظايفي را كه بايد تكميل شوند، درك مي‌كنند. پس از روشن شدن نيازها، تقسيم وظايف صورت مي‌گيرد و اعضاي تيم كارشان را با بودجه‌ي مشخص و در زمان تعيين‌شده، انجام مي‌دهند.

مرحله‌ي ۲: درك اهداف پروژه

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

به اين منظور شما بايد فاكتورهاي زير را تعيين كنيد:

  • هدف نهايي
  • زيرفازها
  • وظايف
  • منابع
  • بودجه
  • برنامه

با مشخص شدن اين پارامترها، محدوديت‌هاي پروژه روشن مي‌شوند و كارهاي فرعي كه زيرمجموعه‌ي پروژه نيستند، از فهرست شما خط مي‌خورند.

پروسه‌هاي مديريت محدوده‌ي پروژه

Project Scope Management

۱- برنامه‌ي مديريت محدوده

اين پروسه تعيين مي‌كند كه فرآيندهاي مديريت محدوده را چه كسي، چه زماني، با چه تكنيكي، چه تيمي و چه بودجه‌اي انجام مي‌دهد. يا به‌عبارت‌ديگر اين برنامه توضيح مي‌دهد كه محدوده‌ي پروژه چگونه تعريف، توسعه، نظارت، كنترل و بررسي مي‌شود.

۲- جمع‌آوري الزامات

اين فرآيند مستلزم مستندسازي خواسته‌ها و نيازهاي مالكان در راستاي تأمين اهداف پروژه است. يكي از مهم‌ترين فوايد اين كار، تعيين محدودي محصول است كه قبلاً در مورد آن صحبت كرديم. پس‌ازاينكه خواسته‌هاي مالكان پروژه ثبت شد، الزامات را دسته‌بندي و اولويت‌گذاري مي‌كنيم. اين الزامات عبارت‌اند از:

  • الزامات تجاري
  • الزامات مالكان
  • الزامات راه‌ حل
  • الزامات انتقال (نكاتي كه نيازهاي موقت را شرح مي‌دهند، مثل آموزش)
  • الزامات كيفيت

Collect Requirements

نكته: اگر اين روند به‌طور كامل و صحيح انجام شود، از بسياري از اتفاقات غيرمنتظره‌ي ناخوشايند كه ممكن است پروژه را از مسير اصلي منحرف كنند يا نارضايتي مشتريان را به نبال داشته باشند، پيشگيري مي‌شود.

مقالات مرتبط:

  • آموزش مديريت يكپارچگي پروژه
  • آموزش: مديريت مسائل و موانع پروژه

۳- تعريف محدوده

تعريف محدوده، يك شرح تفصيلي از پروژه و محصول (يا اهداف نهايي) است كه اقلام قابل تحويل يا دستاوردهاي پروژه و همچنين كارهاي مورد نياز براي حصول آن‌ها را بيان مي‌كند. همه‌ي اهداف و مرزهاي محدوده‌ي پروژه در اين سند ثبت مي‌شوند و شرحي از پروژه را ارائه مي‌دهند كه موردقبول مالكان يا ذي‌نفعان پروژه است.

۴- تدوين ساختار شكست كار (WBS)

ساختار شكست كار (WBS) يكي از عناصر مهم فرآيند مديريت محدوده است. بسياري از مديران پروژه اين مرحله را جدي نمي‌گيرند كه باعث مي‌شود طرح‌هاي اشتباه را توسعه دهند. WBS فرآيندي است كه در آن مدير پروژه، سلسله‌مراتب پروژه را به اجزاي كوچك‌تر با قابليت مديريت بيشتر، تقسيم مي‌كند. WBS نهايي بايد يك ليست كامل از تمام زيرمجموعه‌هاي جزئي كاري مورد نياز براي تكميل پروژه را ارائه دهد.

نكته: ساختار شكست كار نشانگر منابع، زمان و ترتيب كارها نيست؛ بلكه فقط به محدوده‌ي پروژه برمي‌گردد.

Work Breakdown Structure (WBS)

مزاياي استفاده از نمودار WBS

  • اجتناب از فراموش‌ شدن اقلام تحويلي و فعاليت‌ها
  • مشخص كردن اقلام اصلي و مياني قابل تحويل
  • مشخص شدن محدوده‌ي پروژه

بايد به ياد داشته باشيم كه محدوديت خاصي براي تقسيم وظايف به جزئيات كوچك‌تر وجود ندارد. WBS صرفاً به مواردي نظير حجم پروژه، مشخصات اجزاي پروژه، گستره‌ي حوزه‌ي مكاني پروژه، نوع و سطح برنامه‌ريزي و كنترل و همچنين تنوع تخصص‌ها و مهارت‌هاي مورد نياز بستگي دارد. به‌علاوه هيچ لزومي ندارد كه تعداد زيرشاخه‌هاي حاصل‌ از WBS، در تمام فرآيندهاي پروژه با يكديگر برابر باشند. مهم اين است كه اجزاي جديد، به‌راحتي قابل‌برنامه‌ريزي و مديريت باشند و ماهيت كلي پروژه را نيز حفظ كنند.

ديكشنري WBS:

پس‌ازاينكه WBS پروژه طراحي و تكميل شد، جزئيات هر يك از زيرمجموعه‌ها (باكس‌ها) به‌طور واضح مشخص مي‌شود. ديكشنري WBS اين اجزاء را به‌طور مفصل‌تر توصيف مي‌كند و غالبا اين فاكتورها را شامل مي‌شود:

  • كد شناسايي
  • توصيف كار
  • فرضيات و محدوديت‌ها
  • سازمان مسئول
  • فهرست مايلستون‌ها
  • فعاليت‌هاي مرتبط زمان‌بندي
  • منابع مورد نياز
  • برآورد هزينه‌ها
  • الزامات كيفيت
  • معيارهاي پذيرش

Validate Scope

۵- تأييد و قانوني سازي محدوده

اين فرآيند شامل بازنگري اقلام قابل تحويل با حضور مشتريان و حاميان پروژه است. در اين مرحله توافق و پذيرش مشتريان را به‌طور رسمي اخذ و ثبت مي‌كنيم.

تفاوت فرآيند تأييد محدوده با فرآيند كنترل كيفيت، اين است كه در مرحله‌ي تأييد محدوده، روي پذيرش مشتريان متمركز هستيم و در مرحله‌ي كنترل كيفيت، صحت و كيفيت محصولات براي ما اهميت دارد.

۶- كنترل محدوده

فرآيند كنترل محدوده، شامل نظارت بر وضعيت پروژه و مديريت تغييرات محدوده است. ازآنجاكه وقوع بعضي تغييرات اجتناب‌ناپذير است، ما در اين مرحله اطمينان پيدا مي‌كنيم كه همه‌ي تغييرات را تحت كنترل داريم. اينجا واريانس از محدوده به‌عنوان مهم‌ترين ابزار نظارتي مطرح مي‌شود.

يكي از اشتباهات رايجي كه در مسير پروژه صورت مي‌گيرد، اين است كه وقتي اتفاقات پيش‌بيني‌نشده‌اي رخ مي‌دهد، اعضاي تيم براي برطرف كردن موانع اقداماتي انجام مي‌دهند كه در محدوده‌ي پروژه قرار ندارد و ممكن است بعداً آن‌ها را از هدف اصلي‌شان منحرف كند. به همين دليل مدير پروژه بايد با پيش‌بيني اختلالات و بازنگري مداوم، روند همه‌ي فرآيندها را كنترل كند. توصيه مي‌شود اعضاي تيم در هرلحظه از پرداختن به اموري كه تأثير يا نمودي در نتيجه‌ي نهايي پروژه ندارند، خودداري كنند.

نكات مهم در مديريت محدوده

گاهي اوقات مدير پروژه در طول پروسه‌ي تعيين محدوده، با مشكلاتي مواجه مي‌شود كه مانع از اجراي بهينه‌ي كار مي‌شوند. برخي از مشكلات متداولي كه در زمان تعريف و مستندسازي محدوده‌ي پروژه به وجود مي‌آيند، عبارت‌اند از:

  • ابهامات: وجود هرگونه ابهام در محدوده‌ي پروژه، به كارهاي غير ضروري و سردرگمي منجر مي‌شود. به‌منظور اجتناب از چنين اتفاقي، محدوده بايد به‌وضوح تعريف و براي اعضاي تيم شرح داده شود.
  • تعاريف ناقص: اگر تعاريف ناقص باشند يا برخي از حوزه‌ها مرزبندي نداشته باشند، برنامه از مسير اصلي خارج مي‌شود و به‌ تبع آن، هزينه‌هاي بيشتري به گروه تحميل مي‌شود.
  • ناپايداري و بي‌ثباتي: محدوده‌هاي گذرا و ناپايدار، مهم‌ترين عاملي هستند كه باعث مي‌شوند پروژه طبق زمان‌بندي قبلي به پايان نرسد. گاهي اين مشكل به حدي جدي است كه پروژه‌ها «بي‌پايان» خوانده مي‌شوند. راه‌ حل اين معضل، نهايي كردن سند محدوده و ثابت نگه‌داشتن آن است.
  • محدوده‌ي ناسازگار: محدوده‌اي كه با همه‌ي عوامل درگير به اشتراك گذاشته نمي‌شود، باعث ناسازگاري در الزامات و طراحي مي‌شود. به همين دليل سند محدوده بايد در اختيار حاميان و مالكان پروژه قرار بگيرد و جزئيات آن اطلاع‌رساني شود.

آموزش جاوا: ارسال پارامتر به متد‌ها

۱۶۷ بازديد

آموزش جاوا: ارسال پارامتر به متد‌ها

يكي از مفاهيم بسيار مهم در برنامه نويسي، ارسال پارامتر به متُد‌ها است. ارسال كردن پارامتر به متُد، كاري بسيار راحت است، اما كمي مفهوم پيچيده‌اي دارد. در حالت كلي به سه شكل مي‌توان به متُد‌ها پارامتر‌هايي را ارسال كرد كه عبارت هستند از Call By Value، Call By Pointer، Call By Reference. كه در ادامه‌ي آموزش به تفصيل در مورد اين اصطلاحات صحبت مي‌كنيم. با زوميت همراه باشيد.

نكته‌اي كه وجود دارد اين است كه بسياري از برنامه نويسان جاوا معتقدند كه جاوا Call By Value است و عده‌اي ديگر نيز معتقد‌ند كه جاوا Call By Reference است. اينكه جاوا را چه مي‌نامند اصلا اهميتي ندارد، بلكه مهم اين است كه شما رفتار جاوا را بدانيد كه در هر وضعيت چگونه عمل مي‌كند.

نگاهي كوتاه به مفاهيم گذشته

قبل از اينكه وارد بحث اصلي شويم، بهتر است نگاهي كوتاه به مفاهيم گذشته كنيم. اطلاع و تسلط داشتن كامل به مفاهيمي كه در گذشته آموزش داده شده است، بسيار مهم و لازم براي فهميدن و درك مطالب اين جلسه است. پس با دقت مطالعه كنيد.

همانطور كه مي‌دانيد در جاوا دو نوع داده وجود دارد كه عبارت هستند از داده‌هاي اوليه (Primitive Data Type) وداده‌هاي ارجاعي (Reference Data Type). داده‌هاي اوليه (Primitive Data Type) هشت نوع بودند: byte,shortintlongcharfloatdoubleboolea. اين هشت نوع داده به صورت پيش‌فرض در جاوا تعريف شده‌اند و استفاده از آن‌ها در يك مثال ساده به صورت زير است:


package ir.zoomit;

public class MainApp {

	public static void main(String[] args) {
		int integerNumber = 10;
		char character = 'A';
		boolean b = true;
	}
}

با استفاده از Primitive Data Type‌ها مي‌توانيم داده‌هاي پيچيده‌تري را بسازيم. به عنوان مثال كلاس String كه براي كار با رشته‌ها استفاده مي‌شود، در دل خودش از داده‌ي كاركتر (char) استفاده كرده است. String يك كلاس است، بنابراين جزء داده‌هاي ارجاعي (Reference Data Type) به حساب مي‌آيد. به عبارت ديگر تمام كلاس‌ها كه از روي آن‌ها اشيائي ايجاد مي‌شود، جزء داده‌هاي ارجاعي هستند و فقط و فقط آن هشت داده‌اي كه در بالا گفته شد جزء داده‌هاي پايه به حساب مي‌آيند.

چند نكته در مورد داده‌هاي پايه و ارجاعي

دقيقا منظور از ارجاع يا Reference چيست؟ به طور كلي براي استفاده از داده‌هاي ارجاعي، حتما بايد ابتدا از روي آن‌ها يك آبجكت ساخت. به صورت زير:


package ir.zoomit;

public class MainApp {

	public static void main(String[] args) {
		Person p = new Person(); // Object Creation OR Instantiation
	}
}

class Person {

}

در كد بالا دو كلاس وجود دارد. يكي كلاس اصلي (MainApp) كه در آن متد معروف main پياده‌سازي شده است و ديگري كلاس Person كه هيچ پياده سازي‌ ندارد. همانطور كه مشاهده مي‌كنيد در داخل متد main يك آبجكت از روي كلاس Person ساخته‌ايم.

نكته: اصطلاحا به ساخت آبجكت از روي يك كلاس Object Creation يا Instantiation گفته مي‌شود. حتما اصطلاحات انگليسي را با تلفظ درست ياد بگيريد و به كار ببريد.

در بسياري از كتاب‌ها و منابع آموزشي به اشتباه گفته مي‌شود كه p در كد بالا شي يا آبجكت است. در صورتي كه كاملا اشتباه است. ما در آموزش‌هاي قبلي هم در مورد اين موضوع صحبت كرديم، اما بهتر است دوباره نگاهي سطح پايين‌تر به اين موضوع داشته باشيم.

همانطور كه مي‌دانيد براي ساختن يك شي از روي يك كلاس، بايد آن كلاس را new كنيم. هنگامي كه با استفاده از عملگرnew اقدام به ساخت يك شي از روي يك كلاس مي‌كنيم، عملگر new در واقع دو كار را انجام مي‌دهد. ابتدا يك شي جديد در حافظه‌ي Heap ايجاد مي‌كند و سپس يك Reference يا ارجاعي از آن شي ساخته شده را بر‌مي‌گرداند. يعني ما با استفاده از آن ارجاع، مي‌توانيم به شي ساخته شده در حافظه دسترسي داشته باشيم. براي اينكه بتوانيم با استفاده از ارجاع به شيئي در حافظه دسترسي داشته باشيم، بايد ارجاع را در يك متغيري ذخيره كنيم. اين متغير در كد بالا، p است. بنابراين p شي نيست، بلكه يك Reference يا ارجاعي به شي در حافظه است.

نكته‌ي ديگري كه بايد از آن اطلاع داشته باشيد و قبلا هم به آن اشاره شده است، اين است كه در تكه كد زير:


Person p = new Person();

متغير p در حافظه‌ي Stack (استك) ايجاد شده است و آبجكت يا شي در حافظه‌ي Heap «هيپ».

براي درك بهتر مسئله‌ي فوق، به تصوير زير توجه كنيد:

 

Stack & Heap In Java

تصوير فوق به صورت دقيق اين مسئله را روشن مي‌كند، بنابراين با دقت توجه كنيد. در اين عكس در يك متُدي با نامMethod1 دو داده از نوع داده‌هاي اوليه يا Primitive Data Type تعريف كرده است و بعد هم از روي يك كلاسي با نام Class1 آبجكتي ايجاد كرده است. به Line1 (گوشه‌ي بالا سمت چپ تصوير) توجه كنيد. وقتي كه در برنامه يك داده از نوع عدد صحيح تعريف شده است، در حافظه‌ي Stack اين متغير ايجاد و مقداردهي شده است. توجه كنيد كه Primitive Data Type‌ها همانطور كه از نامشان پيداست، داده‌هاي اوليه هستند و نمي‌توانيم آن‌ها را new كنيم. newكردن فقط مختص كلاس‌ها است كه از روي آن‌ها اشيائي ايجاد مي‌شود. بنابراين وقتي در برنامه داده‌اي از نوع داده‌هاي اوليه تعريف مي‌كنيم، آن داده در حافظه‌ي Stack ذخيره و مقداردهي مي‌شود. اگر با درس Data structure يا ساختمان داده‌ها آشنايي داشته باشيد، مبحثي است با نام Stack يا پُشته كه در آن اصطلاح LIFO را براي Stack در نظر گرفته‌اند كه مخفف: Last In First Out است. يعني اينكه آخرين داده‌اي كه وارد Stack مي‌شود، اولين داده‌اي است كه از آن خارج مي‌شود. اگر به تصوير فوق نيز نگاه كنيد، استك را همانند يك ليوان كشيده است كه يك سَر آن بسته و يك سَر ديگر باز است. داده‌ها وقتي وارد استك مي‌شوند، روي يكديگر قرار مي‌گيرند. اگر به خط بعدي برنامه نگاه كنيد، دوباره داده‌اي از نوع داده‌هاي اوليه تعريف و مقداردهي شده است. حالا به Line2 توجه كنيد. همانطور كه مشاهده مي‌كنيد، در استك متغير y روي متغير i قرار گرفته است. پس تا اينجاي كار، متغير y آخرين متغير يا داده‌اي است كه وارد Stack شده است، پس اولين متغير يا داده‌اي است كه از استك خارج مي‌شود.

نكته: پس تا اينجا متوجه شديم كه داده‌هاي پايه در حافظه‌ي Stack ذخيره و مقداردهي مي‌شوند.

حالا به سراغ ادامه‌ي كد مي‌رويم. در ادامه برنامه مي‌خواهد از روي يك كلاس، آبجكتي در حافظه ايجاد كند و ارجاع يا Reference آن آبجكت را در متغيري با نام cls1 ذخيره كند. حالا به Line3 توجه كنيد. متغير cls1 در حافظه‌ي Stack ايجاد شده است و همانطور كه در تصوير نيز مشاهده مي‌كنيد، در مقابل آن و در داخل پرانتز عبارت (ref) را نوشته است كه منظور همان Reference يا ارجاع است. باز هم به تصوير دقت كنيد. در Line3 حافظه‌ي Heap را هم كشيده است و متغير cls1 در حال اشاره كردن به آبجكتي است كه در Heap ايجاد شده است. پس با توضيحات فوق بايد مفهومReference يا ارجاع را كاملا درك كرده باشيد.

توضيحات در مورد مفهوم ارجاع يا Reference به طور كلي گفته شد. اما در اينجا قصد داريم به يك نكته‌ اشاره كنيم تا يك سوءتفاهم را برطرف كنيم.

همانطور كه قبلا هم در آموزش‌ها اشاره شده است، در جاوا موجودي با نام زباله روب يا Garbage Collector وجود دارد. وظيفه‌ي GC پاكسازي حافظه‌ي Heap است. به عبارت ديگر Garbage Collector هر از چندگاهي به حافظه‌ي Heap سر مي‌زند و اشياء به اصطلاح مُرده را پاك و حافظه را آزاد مي‌كند. نكته‌ي بسيار مهم دقيقا همين جا است كه Garbage Collector فقط و فقط حافظه‌ي Heap را پاكسازي مي‌كند. اگر به تصوير فوق نگاه كنيد، در بخش exiting method، بعد از پايان برنامه حافظه‌ي Stack خالي شده است، اما در حافظه‌ي Heap آبجكت ساخته شده همچنان وجود دارد. نكته اينجا است كه در تمام زبان‌هاي برنامه نويسي (چه زباني مثل جاوا كه Garbage Collector دارد و به صورت خودكار حافظه‌ي Heap را پاكسازي مي‌كند، و چه زبان‌هايي مثل ++C كه پاكسازي اشياء نيز بر عهده‌ي برنامه نويس است)، حافظه‌ي Stack به صورت خودكار پاك مي‌شود و پاكسازي حافظه‌ي Stack اصلا ربطي به وجود Garbage Collector ندارد و در تمام زبان‌ها اين كار به صورت خودكار انجام مي‌شود. به اين دليل به نكته‌ي بالا پرداخته شد كه در بعضي از كتاب‌ها و منابع آموزشي، براي توضيح نحوه‌ي كار Garbage Collector، مثالي همانند مثال فوق مي‌آورند و مي‌گويند مثلا y، i يا cls1 توسط Garbage Collector پاك مي‌شوند كه كاملا غلط و اشتباه است.

ارسال پارامتر به متُد

متُد‌ها نشان دهنده‌ي رفتار يك برنامه هستند. وقتي يك متُد را تعريف مي‌كنيم، براي آن با توجه به كاري كه قرار است در برنامه انجام دهيم، پياده سازي‌هاي مختلفي در نظر مي‌گيريم. به كد زير توجه كنيد:


package ir.zoomit;

public class MainApp {

	public static void main(String[] args) {
		Person p = new Person(); // Object Creation OR Instantiation
		p.show(); // Method Invocation
	}
}

class Person {
	public void show() {
		System.out.println("Method Invocation");
	}
}

در بالا يك برنامه‌ي بسيار ساده نوشته‌ايم. ابتدا يك متُد با نام ()show در كلاس Person نوشته‌ايم كه اين متُد پياده سازي بسيار ساده‌اي دارد (در حد چاپ كردن يك رشته در خروجي استاندارد). در كلاس اصلي در داخل متد main، ابتدا آبجكتي از روي كلاس Person ايجاد كرده‌ايم و سپس توسط آن آبجكت، متُد موجود در كلاس Person را فراخواني كرده‌ايم.

نكته: اصطلاحا به فراخواني متُد، Method Invocation مي‌گويند.

متُدي كه در بالا تعريف كرده‌ايم، يك متُد بدون پارامتر است. حالا اگر بخواهيم يك متُد با پارامتر تعريف كنيم، بايد متغيري‌هايي را در داخل پرانتز‌هاي باز و بسته‌ي جلوي نام متد، تعريف كنيم. يك متد مي‌تواند صفر يا بيش از صفر پارامتر داشته باشد. به كد زير توجه كنيد:


package ir.zoomit;

public class MainApp {

	public static void main(String[] args) {
		Person p = new Person(); // Object Creation OR Instantiation
		p.sum(5, 10); // Method Invocation
	}
}

class Person {
	public void sum(int a, int b) {
		int sum = 0;
		sum = a + b;
		System.out.println(sum);
	}
}

در برنامه‌ي فوق، ابتدا در داخل كلاس Person متُدي با نام sum تعريف كرده‌ايم كه مي‌خواهيم اين متُد دو عدد را دريافت كند و سپس آن دو عدد را جمع كند و در خروجي استاندارد چاپ كند. اگر دقت كنيد متُد ()sum در داخل پرانتز‌هاي باز و بسته‌ي جلويش، دو عدد صحيح تعريف شده است. اين دو عدد پارامتر‌هاي متُد ()sum هستند. چند نكته در مورد پارامتر‌هاي متُد:

اگر قرار است متُد بيش از يك پارامتر داشته باشد (همانند متُد فوق)، بايد با استفاده از علامت « متغير‌ها را از يكديگر جدا كنيد. اما اگر يك متغير است، نيازي به اين كار نيست.

نكته‌ي دوم اين است كه اگر مي‌خواهيم متُدي را فراخواني كنيم كه داراي پارامتر است، در هنگام فراخواني متُد، حتما بايد براي پارامتر‌هاي متُد، داده‌هايي را از همان نوعي كه در متُد تعريف شده‌اند در نظر بگيريم. در غير اين صورت با خطاي كامپايل مواجه مي‌شويم. اگر به كد بالا دقت كنيد، در متُد main هنگام فراخواني متُد ()sum، دو عدد ۵ و ۱۰ را براي پارامتر‌هاي آن در نظر گرفته‌ايم. اگر آن دو عدد را در نظر نمي‌گرفتيم، با خطاي كامپايل مواجه مي‌شديم. پس در برنامه‌ي بالا ما يك متُد تعريف كرده‌ايم كه داراي دو پارامتر است و هنگام فراخواني آن متُد (Method Invocation)، دو داده براي پارامتر‌هاي آن در نظر گرفته‌ايم.

Parameter Passing: A Deeper Look

حالا مي‌خواهيم نگاهي دقيق‌تر به ارسال پارامتر به متُد‌ها داشته باشيم و وارد موضوعي شويم كه تمام مطالبي كه تا قبل از اين گفته شد، براي فهميدن اين موضوع لازم است.

در حالت كلي ارسال پارامتر به يك متُد، در سه صورت انجام مي‌شود كه عبارت‌ هستند از:

  1. Call By Value
  2. Call By Pointer
  3. Call By Reference

در زبان ++C مفهومي است با نام اشاره‌گر يا Pointer كه در زبان جاوا وجود ندارد. البته طراحان زبان جاوا ارجاع‌ها يا Reference‌ها را نوع خاص و محدود شده‌ي اشاره‌گر در جاوا مي‌دانند. نكته‌ي مهمي كه بايد به آن توجه كنيد اين است كه با توجه به اين موضوع كه در زبان جاوا اشاره‌گر وجود ندارد، درست نيست كه براي جاوا از مفهوم Call By Pointer استفاده كنيم. اما چرا ما در اينجا براي آموزش جاوا اين سه اصطلاح را نوشتيم؟ اين سه مُدل يك مفهوم كلي‌ است و شايد بهتر باشد با زبان‌هاي ديگري مثل ++C و #C نيز كار كنيد تا درك درستي از هركدام از اين مفاهيم پيدا كنيد، زيرا عنوان اين سه مُدل شفاف و گويا نيست و فهمدين و درك آن‌ها نيازمند تجربه است. به عنوان مثال مُدلي كه در ++C به آن Call By Reference مي‌گويند، اصلا در جاوا وجود ندارد و در مقابل مُدلي كه در جاوا معمولا به آن Call By Reference مي‌گويند، در ++C با عنوان Call By Pointer شناخته مي‌شود. بنابراين اگر كسي از شما بپرسد كه Call By Reference چيست، بايد سوالش را دقيق‌تر و كامل‌تر كند كه منظورش در كدام زبان برنامه نويسي است.

نكته‌ي بسيار مهم: در جاوا اگر متغير‌هايي از نوع داده‌هاي اوليه (Primitive Data Type) را به متُد پاس بدهيم يا ارسال كنيم، رفتار جاوا Call By Value است و اگر داده‌هاي ارجاعي (Reference Data Type) مثل كلاس String را ارسال كنيم، رفتار جاوا Call By Reference، چيزي شبيه Call By Pointer در ++C است.

حالا اجازه دهيد با مثال كار خود را پيش ببريم. ابتدا توضيح Call By Value. به كد زير توجه كنيد:


package ir.zoomit;

public class MainApp {

	public static void main(String[] args) {
		int a = 5;
		int b = 10;

		System.out.println("Before: " + "a=" + a + ", " + "b=" + b);

		badSwap(a, b);

		System.out.println("After: " + "a=" + a + ", " + "b=" + b);
	}

	private static void badSwap(int a, int b) {
		int temp = 0;
		temp = a;
		a = b;
		b = temp;
System.out.println("In badSwap() Method: " + "a=" + a + ", " + "b=" + b); } }

در برنامه‌ي بالا يك كلاس بيشتر تعريف نكرده‌ايم كه همان كلاس اصلي است. اما در داخل اين كلاس دو متُد وجود دارد. يكي متُد main كه نقطه‌ي شروع هر برنامه‌ي جاوا است و ديگري متُد ()badSwap كه پياده سازي آن به اين شكل است كه دو پارامتر به عنوان ورودي دريافت مي‌كند و سپس مقادير آن‌ها را با يكديگر عوض مي‌كند. يعني بعد از اجراي متُد ()badSwap، مقدار متغير a كه ۵ است بايد ۱۰ شود و مقدار b كه ۱۰ است، ۵. در پياده سازي متُد main قبل از اجرا و بعد از اجراي متُد ()badSwap مقادير متغير‌هاي a و b را در خروجي استاندارد چاپ كرده‌ايم تا متوجه‌ تغييرات (جا به جايي مقادير متغير‌ها) شويم. همچنين در داخل متُد ()badSwap نيز مقادير a و b را چاپ كرده‌ايم.

حالا قبل از اجراي برنامه، سعي كنيد فقط با نگاه كردن به كد‌ها، برنامه را روي يك تكه كاغذ يا ذهن خود Trace و اجرا كرده و خروجي برنامه را پيدا كنيد.

نكته: Trace كردن به اين معني است كه اگر برنامه با خطايي مواجه شود، برنامه‌نويس خط به خط برنامه را دقيقا مي‌خواند و تمام رويداد‌هايي كه در برنامه رُخ مي‌دهد را ثبت مي‌كند تا متوجه شود كه دقيقا چه اتفاقي مي‌افتد. البته در برنامه‌هاي بزرگ اصلا به اين شيوه عمل نمي‌كنند و از مبحث Logging استفاده مي‌كنند. استفاده از Trace كردن، جدا از پيدا كردن خطا در برنامه، مي‌توان از آن براي بهتر فهميدن برنامه نيز كمك گرفت.
تمرين بيشتر: در يوتيوب ويدئو‌هايي براي آموزش Trace كردن وجود دارد. Hand Tracing را جستجو كنيد و ويدئو‌هايي كه در اين زمينه توليد شده است را تماشا كنيد. درضمن اصلا نيازي نيست كه آموزش‌هايي كه در يوتيوب وجود دارد حتما براي زبان جاوا باشد، بلكه فقط كافي‌ است نحوه‌ي Trace كردن را فرا بگيريد.

بعد از اينكه خودتان برنامه را به صورت دستي Trace كرديد، برنامه را اجرا كنيد. بعد از اجراي برنامه‌ي فوق، با خروجي زير مواجه مي‌شويد:


Before: a=5, b=10
In badSwap() method: a=10, b=5
After: a=5, b=10

همانطور كه در خروجي فوق مشاهده مي‌كنيد، مقادير a و b قبل و بعد از اجراي متُد هيچ تغييري نكرده است و فقط تغييرات در داخل متُد ()badSwap است. يعني جاوا در اين قسمت رفتار Call By Value از خودش نشان داده است.اما علت تغيير نكردن مقادير چيست؟ بسيار ساده است. هنگامي كه در داخل متُد main، متُد ()badSwap را فراخواني و مقادير a و b را به آن ارسال كرده‌ايم، جاوا در حقيقت خود اصل مقادير را به متُد ارسال نكرده است، بلكه كُپي‌ از داده‌ها را به متُد ارسال كرده است. بنابراين در داخل متُد ()badSwap هر اتفاقي كه بيفتد، روي كُپي داده‌ها تغييرات ايجاد مي‌شود و اصل داده‌ها هيچ تغييري نمي‌كنند. به هم دليل است كه وقتي مقادير a و b را در داخل متُد ()badSwap در كنسول چاپ مي‌كنيم، مقاديرشان تغيير كرده است، اما بعد از آن خير.

نكته: پس هميشه اين نكته را به خاطر داشته باشيد كه وقتي داده‌هايي به متُد ارسال مي‌كنيد كه از نوع داده‌هاي اوليه (Primitive Data Type) هستند، جاوا رفتار Call By Value از خودش نشان مي‌دهد.

حالا اجازه دهيد در مورد Call By Reference كه شبيه Call By Pointer در ++C است صحبت كنيم.

به كد زير توجه كنيد:


package ir.zoomit;

public class MainApp {

	public static void main(String[] args) {
	}
}

class Person {
	private String str1;
	private String str2;

	public String getStr1() {
		return str1;
	}

	public void setStr1(String str1) {
		this.str1 = str1;
	}

	public String getStr2() {
		return str2;
	}

	public void setStr2(String str2) {
		this.str2 = str2;
	}
}

كد فوق بسيار ساده است. دو كلاس داريم، يكي كلاس اصلي (MainApp) و ديگري كلاس Person. كلاس Person داراي دو ويژگي يا Property يا فيلد است. طبق آموزش‌هاي قبل فيلد‌هاي كلاس Person متغير‌هاي str1 و str2 كه از جنس كلاس String هستند. در اين كلاس چهار متُد تعريف شده است. به دليل اينكه Encapsulation رُخ داده است، متُد‌هاي getter و setter براي دسترسي به فيلد‌هاي كلاس تعريف شده است.

حالا در ادامه مي‌خواهيم در كلاس اصلي و در متُد main از روي كلاس Person يك آبجكت ايجاد كنيم و با استفاده از شيئي كه در دست داريم، فيلد‌هاي كلاس Person كه str1 و str2 هستند را مقداردهي كنيم. پس بايد كُدمان را به صورت زير كامل كنيم:


package ir.zoomit;

public class MainApp {

	public static void main(String[] args) {
		// Object Creation OR Instantiation
		Person a = new Person();
		Person b = new Person();
		a.setStr1("Java");
		b.setStr2("C++");

		System.out.println(
		"Before: " + "str1=" + a.getStr1() + ", " + "str2=" + b.getStr2());

		swapNames(a, b);

		System.out.println(
		"After: " + "str1=" + a.getStr1() + ", " + "str2=" + b.getStr2());
	}

	static void swapNames(Person a, Person b) {
		String tmp = a.getStr1();
		a.setStr1(b.getStr2());
		b.setStr2(tmp);
	}
}

class Person {
	private String str1;
	private String str2;

	public String getStr1() {
		return str1;
	}

	public void setStr1(String str1) {
		this.str1 = str1;
	}

	public String getStr2() {
		return str2;
	}

	public void setStr2(String str2) {
		this.str2 = str2;
	}
}

برنامه بسيار ساده است. دقيقا همان جا به جايي است كه در بخش قبل براي اعداد انجام داديم، اينجا براي رشته‌ها انجام داده‌ايم و مي‌خواهيم امتحان كنيم كه آيا مقادير دو رشته‌ي str1 و str2 با يكديگر عوض مي‌شوند يا خير؟ باز هم پيشنهاد مي‌كنيم برنامه را قبل از اجرا در ذهن خود Trace كنيد و به خروجي آن برسيد.

حالا اگر برنامه را اجرا كنيم، با خروجي زير مواجه مي‌شويم:


Before: str1=Java, str2=C++
After: str1=C++, str2=Java

همانطور كه مشاهده مي‌كنيد اين بار مقادير متغير‌ها با يكديگر عوض شد. علت چيست؟ همانطور كه گفته شد، داده‌هاي ارجاعي (Reference Data Type)، به طور مستقيم خودِ داده را نگه داري نمي‌كنند، بلكه ارجاعي به آن داده در حافظه هستند. در كد بالا متغير‌هاي a و b در متُد ()swapNames به همان جايي در حافظه ارجاع مي‌دهند (اشاره مي‌كنند) كه متغير‌هاي a و b در متُد main به آن اشاره مي‌كنند. بنابراين وقتي با كمك متغير‌هاي a و b در متُد ()swapNames محتواي (State) يك آبجكت را تغيير دهيم، محتواي a و b در متُد main نيز تغيير مي‌كند. بنابراين ما در جاوا به كمك ارجاع‌هايي كه به به صورت پارامتر به متُد‌ها پاس مي‌شوند، مي‌توانيم محتوا يا وضعيت يا State اشياء را تغيير دهيم. نكته‌اي كه وجود دارد اين است كه هويت يا Identity اشياء را نمي‌توانيم تغيير بدهيم. به عبارت ديگر پارامتر‌هايي كه به متُد پاس مي‌شوند، در انتهاي فراخواني متُد، هويت‌شان حفظ مي‌شود. به عنوان مثال متغير‌هاي a و b در متُد main، پس از پايان متُد، هويتشان تغيير نمي‌كند و همچنان به همان جايي در حافظه اشاره مي‌كنند كه قبلا اشاره مي‌كردند. اما بعد از اجراي متُد، وضعيتشان، حالتشان يا State آن‌ها تغيير كرده است.

نكته‌ي پاياني: به عنوان نكته‌ي آخر، در مورد كلاس‌هاي تغيير ناپذير يا Immutable Class‌ها تحقيق كنيد. به عنوان مثال String يك كلاس Immutable است. ابتدا اين مبحث را مطالعه كنيد و سپس داده‌هايي از جنس كلاس‌هاي Immutable را به متُد‌ها ارسال كنيد و سعي كنيد محتواي آن‌ها را تغيير دهيد.
 در آخر از كساني كه با زبان جاوا آشنا هستند درخواست داريم تا آموزش‌ها را با دقت مطالعه كنند تا اگر ايرادي در آموزش‌ها بود مطرح كنند تا آن‌ها را برطرف كنيم.

 

سامسونگ فناوري Dolby Atmos محصولات صوتي را در CES 2016 معرفي مي‌كند

۱۶۳ بازديد

سامسونگ فناوري Dolby Atmos محصولات صوتي را در CES 2016 معرفي مي‌كند

سامسونگ، در نمايشگاه CES 2016 نسل جديد محصولات صوتي خود را به نمايش خواهد گذاشت. ساندبار جديد سامسونگ با استفاده از فناوري دالبي اَتمُس (Dolby Atmos) ساخته شده و صداي سه‌بعدي واقعي را به خانه‌ها مي‌آورد.

جان جي‌كيم معاون ارشد بخش صوتي و تصويري سامسونگ الكترونيكس درباره محصولات سامسونگ در سال ۲۰۱۶ گفت:

«سامسونگ با فناوري دالبي اَتمُس (Dolby Atmos) محصول صوتي كم‌نظيري را ارائه كرده است كه با استفاده از آن مي‌توان در كنار تلويزيون‌هاي SUHD تجربه‌اي سرگرم‌كننده و جذاب از محصولات صوتي خانگي داشت.»

ساندبار جديد سامسونگ مدلHW-K950 اولين محصول سامسونگ و همچنين نخستين اسپيكر در صنعت لوازم صوتي است كه از دو بلندگوي بي‌سيم مجهز به دالبي اَتمُس بهره مي‌برد و صدايي ۵.۱.۴ كاناله ارائه مي‌كند. طراحي اين محصول نيز مانند محصولات صوتي پيشين سامسونگ موردتوجه بسياري قرار گرفته است. ارتفاع اين ساندبار تنها ۲.۱ اينچ است و سه بلندگو روبه‌جلو و دو بلندگو رو به بالا دارد. درنتيجه، صدايي قوي براي احاطه‌ي فضاي اتاق ايجاد مي‌كند. اين ساندبار، صدا را با جزئيات بيشتر پخش مي‌كند و اين امكان را دارد تا به‌صورت بي‌سيم به ساب‌ووفر متصل شود و در يك اتاق نشيمن هم كاربري داشته باشد. دگدرو معاون ارشد آزمايشگاه‌هاي دالبي سامسونگ، مي‌گويد:

«اين ساندبار جديد، تجربه‌اي بي‌نظير از صدايي كه در تمامي جهات، و به‌صورت زنده به گوش مي‌رسد براي كاربران به ارمغان مي‌آورد.»

شركت سامسونگ براي طراحي و توليد سري اسپيكرهاي ۳۶۰، از رنگ‌هاي متنوعي بهره برده كه براي هر دكوراسيوني مناسب و جذاب خواهد بود. اين اسپيكرها مي‌توانند صدا را به‌طور يكنواخت در فضا منتشر كنند و همچنين به كمك اپليكيشن به Gear S2 و ساعت‌هاي هوشمند متصل مي‌شوند. علاوه بر اين، اسپيكرهاي ۳۶۰، امكانات جديدي همچون اعلان‌هاي صوتي و تنظيمات سينماي خانگي، نيز به خانه‌هاي هوشمند ارائه خواهند كرد.

تصويري از گلكسي اس 8 در كنار آيفون 6 فاش شد

۱۵۳ بازديد

تصويري از گلكسي اس 8 در كنار آيفون 6 فاش شد

تصوير جديدي از گلكسي اس 8 در كنار آيفون ۶ فاش شده است كه با توجه به آن مي‌توان ابعاد پرچم‌دار جديد سامسونگ را با آيفون ۶ اپل مقايسه كرد. 

در چند وقت اخير خبرها و شايعات مرتبط با گلكسي اس ۸ و گلكسي اس ۸ پلاس سامسونگ يكي پس از ديگري منتشرمي‌شوند و حالا مجددا تصويري از مدل معمولي اس ۸ در كنار آيفون ۶ فاش شده است. با توجه به استانداردهاي امروزي، نمايشگر آيفون ۶ واقعا كوچك به نظر مي‌رسد. همان‌طور كه مي‌دانيد، آيفون ۶ از صفحه نمايشي ۴.۷ اينچي بهره مي‌برد و علاوه بر اين حاشيه‌هاي اين دستگاه چندان باريك نيستند. گلكسي اس ۸ از طراحي بدون حاشيه بهره خواهد برد و آيفون ۶ دقيقا از طراحي مخالف پرچم‌دار بعدي سامسونگ بهره گرفته است. 

همان‌طور كه در تصوير بالاي مطلب مشاهده مي‌كنيد، آيفون ۶ در بخش پايين و بالاي نمايشگر خود حاشيه‌هاي زيادي دارد. اما حالا گلكسي اس ۸ به لطف استفاده از طراحي بدون حاشيه، با وجود بهره گرفتن از يك نمايشگر ۵.۸ اينچي، فقط كمي از آيفون ۶ اپل بلندتر است. همان‌طور كه مي‌بينيد، پرچم‌دار بعدي سامسونگ از يك صفحه نمايش خميده بهره مي‌برد و ديگر خبري از دكمه‌ي فيزيكي هوم در اين محصول نيست. سامسونگ در گلكسي اس ۸ دكمه‌هاي ديجيتال را جايگزين فيزيكي هوم كرده است كه البته در تصوير بالا به دليل خاموش بودن دستگاه قابل ديدن نيست. آيفون ۶ در سپتامبر سال ۲۰۱۴ معرفي شد؛  بنابراين شايد فكر كنيد اين مقايسه چندان منطقي نيست. البته بايد در نظر داشته باشيم آيفون ۶ اس كه يك سال پس از آيفون ۶ معرفي شد هم  طراحي مشابهي نسبت به نسل قبلي خود دارد. اگر يك سال جلوتر برويم، به آيفون ۷ مي‌رسيم كه اين گوشي هوشمند نيز حاشيه‌هاي زيادي دارد؛ بنابراين اهميتي ندارد كدام‌يك از گوشي‌هاي اپل را با گلكسي اس ۸ مقايسه كنيم و تفاوت در اين بين بسيار ناچيز است. 

گلكسي اس ۸ در تاريخ ۲۹ مارس (نهم فروردين ۹۶) در طي مراسم Unpacked سامسونگ در شهر نيويورك معرفي خواهد شد. ابن شركت از قبل تأييد كرده است كه گوشي مورد اشاره در اين تاريخ معرفي مي‌شود و احتمالا در اين رويداد، در كنار گلكسي اس ۸ از گلكسي اس ۸ پلاس هم رونمايي خواهد كرد. بر اساس خبرهايي كه تاكنون منتشر شده است، انتظار مي‌رود مدل معمولي پرچم‌دار جديد سامسونگ به نمايشگري ۵.۸ اينچي با رزولوشن كيو اچ‌دي (۲۵۶۰ در ۱۴۴۰ پيكسل) مجهز شود. لازم به ذكر است كه اين صفحه‌نمايش از نوع سوپر امولد و خميده است. از ديگر مشخصات گلكسي اس ۸ مي‌توان به رم ۴ گيگابايتي و سيستم‌عامل اندرويد نوقا اشاره كرد. اين دستگاه بدنه‌اي از جنس فلز و شيشه‌ خواهد داشت و احتمالا سنسور اثر انگشت در بخش پشتي آن قرار خواهد گرفت. علاوه بر اين، گلكسي اس ۸ به تكنولوژي تشخيص چهره مجهز خواهد بود و سامسونگ براي اولين بار دستيار صوتي مبتني بر هوش مصنوعي خود موسوم به بيكسبي را در اين دستگاه ارائه خواهد داد. تمام ويژگي‌هايي كه براي گلكسي اس ۸ انتظار داريم، در مورد گلكسي اس ۸ پلاس هم صدق مي‌كند و فقط اين مدل از صفحه‌نمايشي به ابعاد ۶.۲ اينچ بهره خواهد گرفت.

galaxy s8

اپليكيشن‌هايي براي همه: نرم‌افزارهايي براي كار‌هاي روزانه

۱۴۱ بازديد

اپليكيشن‌هايي براي همه: نرم‌افزارهايي براي كار‌هاي روزانه

دسترسي به اپليكيشن‌هاي ايده‌آل و مورد علاقه، در بازار متنوع نرم‌افزار‌ها كار آساني نيست. در ادامه با مجموعه‌اي از اپليكيشن‌هاي ضروري و كاربردي آشنا خواهيم شد كه براي شما مفيد خواهند بود. اگر به تازگي به دنياي تلفن‌هاي هوشمند وارد شده‌ايد، گزينه‌هاي خوبي در اين مجموعه‌ خواهيد يافت، اگر هم پيشكسوت‌ هستيد، حتماً يك يا دو اپليكيشن جالب در اين مقاله‌ها خواهيد يافت.

براي راحتي كار، اپليكيشن‌ها را بر اساس موضوع دسته‌بندي نموده‌ و در هر مقاله به يكي از موضوعات خواهيم پرداخت. پيشتر در چهار مقاله‌ تحت عناوين «اپليكيشن‌هايي براي همه: خبرخوان‌ها»، «اپليكيشن‌هايي براي همه: ويرايشگر تصاوير»، «اپليكيشن‌هايي براي همه: ابزارهاي كاربردي» و و «اپليكيشن‌هايي براي همه: نرم‌افزارهاي كاربردي» به ۲۰ اپليكيشن مختلف اشاره شد. در اين قسمت، با اپليكيشن‌هاي مناسب براي كارهاي روزانه (Lifestyle) آشنا خواهيم شد.

Runkeeper

Runkeeper-02 Runkeeper-01

اگر مي‌خواهيد پياده‌روي، دويدن، اسكيت‌سواري و دوچرخه‌سواري خود را به كمك يك فناوري پيشرفته كنترل و ارزيابي كنيد، Runkeeper يكي از بهترين گزينه‌ها محسوب مي‌شود. اين اپليكيشن چيزي فراتر از يك شمارنده ساده و محاسبه‌گر مسافت طي‌شده يا كالري مصرف شده است. از Runkeeper مي‌توان براي دنبال كردن هدف‌هاي مختلفي مثل كنترل وزن يا رژيم استفاده كرد. تمرين‌هاي تعريف شده درون اپليكيشن‌ به شما كمك مي‌كند تا به اهداف از پيش‌ تعيين شده خود برسيد.

Kindle

Kindle-02 Kindle-01

هنگام جستجو براي يافتن بهترين اپليكيشن ارائه دهنده كتاب‌هاي الكترونيكي، همه مسير‌ها به يك مقصد ختم مي‌شوند: اپليكيشن كيندل آمازون. يكي از بهترين ويژگي‌هاي كيندل كه آن را از رقبايي همچون iBook و Google Book متمايز مي‌كند، در دسترس بودن آن در همه پلت‌فرم‌ها است. به اين ترتيب بدون توجه به سيستم‌عامل دستگاه، كافي است به حساب‌كاربري خود وارد شويد تا همه كتاب‌هايتان را ببيند.

Pocket Weather Australia

PWA-02 PWA-01

معمولا پيش‌بيني‌هاي هواشناسي قطعيت و قابليت اطمينان كمي دارند. اما از زماني كه اپليكيشن پيش‌بيني آب‌ و هواي Pocket Weather Australia، اطلاعات خود را به طور مستقيم از اداره هواشناسي استراليا مي‌گيرد، پيش‌بيني‌هاي درستي را ارائه مي‌دهد. اين اپليكيشن در كنار نمايش آب‌ و هواي مناطق مختلف جهان به طور خاص اطلاعات آب‌ و هوايي تمام بخش‌هاي استراليا را نيز در خود دارد. Pocket Weather Australia علاوه بر نمايش نوتيفيكشن در زمان وقوع رخدادهاي آب و هوايي جدي، در نسخه اندرويدي خود ۳ ويجت براي صفحه‌اصلي و يك ويجت لاك اسكرين نيز دارد.

Zeebox AU

Zeebox-02 Zeebox-01

زي‌باكس، اپليكيشني شبيه به شبكه‌هاي اجتماعي است كه همانند جدول‌ بخش برنامه‌هاي تلويزيوني، جذابترين برنامه‌ها تلويزيوني در  حال بخش را به كاربر نمايش مي‌دهد. اگر با حساب كاربري خود به Zeebox AU وارد شويد، مي‌توانيد با دوستان خود به گفتگو پرداخته و درباره برنامه‌هاي تلويزيوني تبادل نظر داشته باشيد.

Jamie's Recipes

JR-02 JR-01

مواد خوراكي آشپزخانه خود را تعيين خود كنيد تا سرآشپز معروف، جيمز اوليور، از طريق اپليكيشن خود به شما در تهيه يك وعده غذايي فوق‌العاده كمك كند. به كمك راهنما‌هاي گام به گام و آموزش‌هاي اين اپليكيشن به يك آشپز ماهر تبديل خواهيد شد. Jamie's Recipes  شامل ۱۰ بخش مختلف است كه دستورالعمل مختلفي در آن قرار دارد. علاوه بر اين در صورت تمايل، قادر به خريداري بخش‌هاي ديگري همچون، غذا‌هاي بيست دقيقه‌اي يا تهيه يك صبحانه فوق‌العاده نيز هستيد.

اميدواريم اين اپليكيشن‌ها براي شما مفيد باشند. تجربه كاربري خود را درباره اين اپليكيشن‌ها با دوستانتان به اشتراك بگذاريد. آيا اپليكيشن‌هاي مشابه ديگري مي‌شناسيد؟

نسخه بعدي نرم افزار آيتونز چگونه خواهد بود؟

۱۳۷ بازديد

نسخه بعدي نرم افزار آيتونز چگونه خواهد بود؟

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

۱۰ سال پيش بود كه اپل براي نخستين بار، آيتونز را به دنياي فناوري معرفي كرد. محصولي كه به طور كامل تمامي گجت‌ها و خريدهاي ديجيتالي شما را از فيلم و موسيقي گرفته تا برنامه و كتاب مديريت مي‌كرد و با رابط گرافيكي زيبا و شيوه‌اي نوين خود در انتقال محتوا، نگرش متفاوت بنيانگذار آن شركت را منعكس مي‌ساخت. تفاوتي كه در طي سال‌هاي آينده درك ما را به طور كل از فناوري تغيير داده و شروع عصري جديد را موجب شد. آيتونز، با وجود تمامي ايراداتي كه به آن وارد مي‌شود، ابزار اصلي مديريت پرفروش‌ترين محصولات گجتي، پرطرفدار ترين پخش كننده موسيقي و بزرگترين فروشگاه آنلاين دنيا به حساب مي‌آيد.

توضيح: تلفظ صحيح iTunes در لهجه امريكن و طبق ديكشنري لانگمن، « آيتونز» است.

رسالت اصلي اولين نسخه آيتونز، مديريت پخش‌كننده موسيقي جيبي اپل تحت عنوان «آي‌پاد» و اجراي قطعه‌هاي صوتي براي كامپيوترهاي مكينتاش بود. اما بعدها، فروشگاه موسيقي آيتونز استور (iTunes Store) نيز به آن افزوده شد. مركز خريد قانوني آلبوم‌ها و تك آهنگ‌هاي مشهورترين و محبوب‌ترين هنرمندان وقت كه به دليل سهولت در استفاده و تجربه كاربري متفاوت، به سرعت محبوب شد.

iTunesWelcome

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

با ظهور آيفون و آيپد، كاري نبود كه اين نرم افزار از عهده آن برنيايد. حتي پشتيبان‌گيري و ارتقاء سيستم‌عامل دستگاه نيز به آيتونز محول شد. اما سياست‌هاي اپل، به مرور اين محبوبيت و جذابيت را تحت شعاع قرار داد. نخستين مشكل، محيط بسته و خشك سيستم عامل iOS بود. حقيقت اين است كه سخت‌گيري‌هاي اپل براي كنترل هر چيزي كه در آي‌ديوايس‌ها اتفاق مي‌افتد، چندان به مذاق كاربران خوش نيامد. پشتيباني از فرمت‌هاي صوتي و تصويري محدود، عدم امكان نصب اپليكيشن‌ها، از منابعي غير از اپ استور و از همه مهم‌تر وابستگي شديد دستگاه‌ها به برنامه آيتونز، iOS و آيتونز را از چشم برخي كاربران انداخت. مشكلات مربوط به Apple ID (شناسه كاربري در آيتونز) نيز زمينه بحث را گسترده‌تر كرد.

پيش از توضيحات بعدي، لازم است اين موضوع را متذكر شوم كه عمل انتقال اطلاعات از طريق آيتونز به ابزارك هاي اپل را اصطلاحا همگام‌سازي ( Sync) مي‌نامند.

iTunesSync

مقاله مرتبط:

  • چگونه هنگام Sync كردن iPhone/iPad با iTunes، از پاك شدن App ها جلوگيري كنيم؟
  • دو خطايي كه هنگام دانلود از App Store ممكن است مشاهده كنيد، خطاي 9808 و 1009

اگر در هنگام همگام‌سازي فايل‌ها، محتواي موجود بر روي دستگاهتان ( از قبيل موسيقي، فيلم، اپليكيشن و ...) را در كامپيوتر و كتابخانه آيتونز نداشته باشد، تماما حذف خواهند شد. همچنين بايد ID استفاده شده براي خريد برنامه‌ها و آي‌دي Set شده در دستگاه، يكي باشند در غير اين صورت، پيش از اجراي اپليكيشن، اپل آي‌دي هنگام خريد برنامه از كاربر پرسيده خواهد شد. دقيقا به همين دليل است كه هر گجت اپل را فقط مي‌توان با يك كامپيوتر، يك آي‌دي و يك آيتونز، همگام سازي (Sync) كرد. در واقع استفاده از يك رايانه ديگر، مستلزم طي نمودن مراحل امنيتي براي تأييد شناسه كاربري است. به گفته برخي، اين كار به حفظ حقوق توسعه دهندگان كمك شاياني كرده است، اما در مقابل، باعث محدوديت بيش از حد و آزار دهنده كاربران نيز شده است. حقيقت اين است كه افراد متقلب، هميشه راه‌حلي براي دور زدن اين محدوديت‌ها و استفاده از انواع محتواي كرك شده و غير قانوني پيدا خواهند كرد. پس واقعا هيچ لزومي براي مـحـدود ســاختن ســاير كـــاربران وجـــود ندارد. جالب است بدانيد كه بيش از ۶۷ درصد كاربراني كه دستگاه خود را جيلبريك‌ (‌Jailbreak) مي‌كنند، همواره از اپليكيشن‌هاي اوريجينال استفاده كرده و حتي توييك‌هاي مورد نياز خود را از سيديا به صورت قانوني و با پرداخت پول تهيه مي‌كنند.

iTunesPreview

در پي شكايت برخي كاربران و فخرفروشي كاربران ساير پلتفرم ها، افراد زيادي بر آن شدند تا جايگزين مناسبي براي اين برنامه تهيه كنند؛ و تا حدي هم موفق شدند. نتيجه كار آن‌ها، نرم افزارهايي چون iTools يا iFunbox است كه كار انتقال اطلاعات را تا حد زيادي آسان‌تر و كم دردسر‌تر كرده‌اند. توسعه دهندگان سيديا نيز بي‌كار ننشسته و با ارائه توييك‌هاي متعدد، گزينه‌هاي بيشتري را در اختيار جيلبريك كنندگان قرار دادند.

اما حالا، مشكلات و راه‌حل‌هاي تازه اي براي بهبود آيتونز مطرح است كه در پايين، به طور مفصل به آن‌ها اشاره كرده و هر يك را بررسي مي‌كنيم:

لازم نيست آيتونز تمام بار مسئوليت را بر دوش بكشد!

در حال حاضر، گستره‌ي عملياتي آيتونز وسيع‌تر از چيزي است كه واقعا بايد باشد. هميشه ثابت شده است كه تقسيم وظايف و كار گروهي، نتيجه‌اي بهتر و بازدهي بسيار بالاتري خواهد داشت. حتي بر روي خود iOS نيز دو بخش اپ استور ( بازار برنامه هاي كاربردي) و آيتونز استور (فروشگاه موسيقي و فيلم) جدا هستند. و حتي بخشي منتسب به آي‌بوك استور نيز وجود دارد كه مستقيما وظيفه فروش و اجاره كتاب را بر عهده دارد. پس چرا بر روي كامپيوتر يا مك نبايد چنين باشد؟

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

iTunes

شايد همگام سازي چندان هم ايده‌ي فوق‌العاده‌اي نباشد!

عمل همگام‌سازي در عين به وجود آوردن يك انسجام و نظم قابل تقدير، مي‌تواند آسايش شما را نيز به طور كامل مختل كند. براي مثال، شما به خانه‌ي يكي از دوستان گيك خود رفته‌ايد. دوستتان يك فايل (مثلا عكس) بسيار جالب تهيه كرده و شما مايليد كه آن را به آيفون خود منتقل كرده و به همراه داشته باشد. اما اينجاست كه دردسر شروع مي‌شود! و در همين جاست كه ايده انتقال فايل به روشي آسان‌تر به ميان مي‌آيد. روشي كه ديگر لازم نباشد براي انتقال تنها يك تصوير، تمام عكس هاي خود را از دست بدهيد! در ضمن، ايده‌ي دسترسي به حافظه دستگاه در حالت اكسپلورر و يا استفاده از حافظه ابزار به عنوان فلش ديسك نيز محقق خواهد شد.

پشتيباني از تمامي فرمت هاي ويديوئي

هرچند كه اين مشكل تا حدودي هم به محدوديت هاي iOS مربوط است اما نمي‌توان آيتونز را بي‌تقصير دانست. البته همان طور كه پيش از اين در مقاله‌اي ۵ پخش‌كننده برتر ويديو براي iOS را معرفي كرده بوديم، اين مورد تا حدودي قابل حل است، اما با زحمت و تلاش اضافه! پس امكان پشتيباني از فرمت هاي بيشتر مي‌تواند مرحمي بر گلايه هاي چندين ساله كاربران باشد.

VideoFormats

iTunes match سرويسي خوب اما هزينه‌بر!

يكي از مضرات محدوديت همگام‌سازي محتوا تنها با يك كاميپوتر، ريسك بالاي از دست رفتن اطلاعات است. يكي از راه حل هاي موجود سرويس آيتونز مچ است كه امكان استريم موسيقي از حافظه هاي ابري بوده و پخش مستقيم از كتابخانه‌هاي آنلاين را فراهم مي‌كند. اما متاسفانه براي استفاده از اين سرويس، بايد ساليانه مبلغي معادل ۲۵ دلار بپردازيد. حال جدا از اين كه پرداخت مبالغ ارزي براي ما ايرانيان چقدر مي‌تواند سخت و گزاف باشد(!) ، اپل بر خلاف سرويس آي‌كلاود هيچ گزينه رايگاني براي آن در نظر نگرفته است.

پيشنهاد ما، استفاده از نرم افزار هايي چون پاندورا يا اسپاتي‌فاي است كه اين كار را براي شما به رايگان انجام مي‌دهند.

Ping، قديمي  و كم جاذبه

سرويس پينگ، در واقع همان شبكه اجتماعي موسيقايي آيتونز است كه امكان دنبال كردن هنرمندان مورد علاقه‌تان را فراهم مي‌كند. اما با معرفي سرويس music# توييتر، اين سرويس چه از نظر ظاهري و چه از نظر ويژگي‌هايش، بايد مجددا به روز رساني و بازنگري شود.

Ping

بهينه‌سازي براي ويندوز

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

همچنان ساده و كارآمد

طراحي آيتونز بسيار زيبا و دلنشين است. نوعي سادگي توأم با پيچيدگي در آن نهفته است كه به وضوح شعار اپل را تداعي مي‌كند: «سادگي ساده نيست.» كار با آن نيز بسيار راحت است و حتي افراد مبتدي نيز بدون مشكل با آن ارتباط برقرار مي‌كنند. در آيتونز استور، دسته بندي محتوا بسيار عالي صورت گرفته و همه چيز با نظم بسيار مناسبي در كنار هم قرار گرفته. اما متأسفانه يكي از مشكلات قديمي شركت‌ها، دستكاري نابه‌جا و از دست دادن برگ‌هاي برنده‌شان است . اميدواريم اپل هميشه اين اصالت و سادگي را حفظ كرده و همواره بر قدر نقاط قوتش باقي باشد

موزيلا: تمامي سخت‌افزارهاي شما زير چتر ما خواهد بود

۱۶۲ بازديد

موزيلا: تمامي سخت‌افزارهاي شما زير چتر ما خواهد بود

در شرايطي كه جزئيات سخت‌افزاري تلفن‌هاي هوشمند روز به روز پيشرفت مي‌نمايند، موزيلا تصميم دارد تا سيستم‌عامل نوپاي فايرفاكس خود را با تبلت‌ها، تلويزيون‌هاي هوشمند پاناسونيك و حتي رايانه‌هاي روميزي نيز منطبق و سازگار نمايد.

به زودي شما مي‌توانيد از تبلت‌هايي با سيستم‌عامل فايرفاكس استفاده كنيد؛ البته به شرط آنكه شما قول دهيد تا به گسترش اين سيستم‌عامل نوپا كمك كنيد! فايرفاكس سال گذشته در قالب سه مدل گوشي هوشمند و در14 كشور از طريق ارائه توسط اپراتورهاي بزرگي نظير تلفونيكا و تلكام آلمان عرضه عمومي شد. همچنين موزيلا همكاري رسمي خود با توليدكننده سخت‌افزاري معتبري نظير فاكس‌كان را براي توليد تبلت‌هاي فايرفاكسي و عرضه در سال 2014 آغاز نموده است. اين تبلت‌ها كه قرار است در اختيار توسعه دهندگان سيستم‌عامل فايرفاكس قرار بگيرند، امروز در نمايشگاه CES رونمايي خواهند شد.

به گفته آندرياس گال، معاون بخش تلفن همراه موزيلا، نسخه مربوط به تبلت از سيستم‌عامل فايرفاكس براي استفاده دارندگان تبلت‌هاي معمولي در نظر گرفته نشده است. وي گفته است:

نسخه مخصوص تبلت از سيستم‌عامل فايرفاكس، در دسترس تمامي اعضاي جامعه توسعه‌دهندگان خواهد بود تا بتوانند به ساخت سيستم‌عاملي متناسب با صفحه‌نمايش تبلت‌ها كمك نمايند." او افزوده است: "در سال نويي كه در پيش رو داريم، اين سيستم‌عامل آماده ارائه بر روي محصولات خواهد بود. هر كسي كه علاقه‌مند به كمك در شكل دادن به سيستم‌عامل فايرفاكس براي تبلت‌ها باشد، مي‌تواند به سخت‌افزار مربوطه دسترسي داشته باشد.

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

همچنين امروز، «وايا تكنولوژي» كه در ساخت دستگاه‌هاي APC يا به عبارتي رايانه ‌هاي كوچك مبتني بر اندرويد سابقه دارد، دو مدار چاپي جديد خود را براي استفاده در دستگاه‌هاي فايرفاكسي رونمايي خواهد كرد. اين دستگاه‌هاي سخت‌افزاري، كدباز و قابل هك بوده و نام آنها Paper و Rock مي‌باشد. هر دوي آنها از پردازنده ARM Cortex-A9 با فركانس 800 مگاهرتز استفاده كرده و مجموعه كاملي از پورت‌هاي مورد نياز كاربر را ارائه مي‌دهند. پورت‌هايي نظير HDMI، دو پورت USB 2، پورت ميكرو USB، پورت تركيبي هدفون و بلندگو و يك درگاه كارت ميكرو SD. مدل Paper با يك كيس از جنس آلومنيوم و مقواي قابل بازيافت ارائه مي‌شود. اين در حالي است كه Rock بدون كيس و در عوض با پورت VGA عرضه خواهد شد.

طبق گفته‌هاي آندرياس گال، Paper و Rock رايانه‌هاي دسكتاپي را هدف قرار داده‌اند كه از سيستم‌عامل فايرفاكس استفاده خواهند كرد. به عبارتي اين محصولات، PCBهاي كوچكي هستند كه مي‌توان به آنها موشواره، صفحه‌كليد و صفحه‌نمايش را متصل كرد. او افزوده است: " در اصل شما مي‌توانيد آنها را شبيه كروم‌باكس تصور كنيد".

ريچارد براون، معاون بخش بازاريابي بين‌الملل «ويا تكنولوژي» در بيانيه‌اي اظهار كرده است: " مأموريت موزيلا در ترويج كدباز بودن، نوآوري و فرصت‌سازي در وب، هم‌راستا با چشم‌انداز ما براي APC، تركيبي بي‌نقص را براي ارائه بهترين‌هاي وب به رايانه‌هاي روميزي در هرجايي، ايجاد خواهد كرد. ما نمي‌توانيم بيش از اين در رابطه با آينده هيجان زده باشيم".

apc-product-rock 610x377

واضح است كه موزيلا به حضور در بازار رايانه و تبلت بسنده نكرده است؛ چرا كه اين كمپاني و پاناسونيك همكاري خود در نمايشگاه CES 2014 براي براي استفاده از سيستم‌عامل فايرفاكس در تلويزيون‌هاي هوشمند را اعلام نموده‌اند. اهداف اوليه اين همكاري برخورداري از منوها و برنامه‌هاي راهنمايي است كه مبتني بر HTML5 هستند.

به گفته مروان مريباي، معاون سلامت محتوا و خدمات توسعه پاناسونيك، تلويزيون‌هاي هوشمند كنوني با فنآوري‌هاي اختصاصي ساخته شده‌اند. شروعي بر پايه HTML5 كدباز كه به پاناساويك اجازه خواهد داد تا بدون انجام كارهاي وسيع در زمينه توسعه، سرويس‌هاي بيشتري را به تلويزيون‌هاي هوشمند خود اضافه نمايد.

البته اين همكاري منافع هر دو طرف را تأمين مي‌نمايد. در حالي كه پاناسونيك از قدرت نفوذ يك جامعه كدباز براي توسعه تلويزيون‌هاي هوشمند خود بهره مي‌برد، موزيلا نيز از اين فرصت براي ساخت و ارائه API خود به جهت استفاده در تلويزيون‌ها استفاده خواهد كرد.

به گفته آندرياس گال: " آنچه در همكاري با پاناسونيك ما را به طور خاص هيجان زده مي‌كند، ايجاد يك اكوسيستم باز براي اين دستگاه‌ها مي‌باشد". وي افزوده است: " آماده سازي HTML5 جهت ساخت يك سيستم متوازن، واقعيت است"

در حالي كه گفته مي‌شود تلويزيون‌هاي مبتني بر رابط كاربري HTML5 در سال بعد بدست مصرف‌كننده نهايي برسد، هنوز هيچ سخني در رابطه با قيمت اين محصولات بيان نشده است. موزيلا در حال بروزرساني حط توليد تلفن‌هاي هوشمند خود با همكاري يكي از توليدكندگان فعلي محصولاتش مي‌باشد. ZTE تصميم دارد سيستم‌عامل فايرفاكس را بر روي سخت‌افزاري سريعتر و قدرتمندتر شامل دستگاه‌هاي دو هسته‌اي -شبيه به Open C و Open II- در سال 2014 عرضه نمايد.

آندرياس گال در ادامه اظهارات خود افزوده است: "سيستم‌عامل فايرفاكس يك اكوسيستم باز است و تحت ضوابط يك كمپاني خاص نيست. اين بدان معني است كه فايرفاكس اكنون پا را فراتر از موزيلا نهاده؛ فايرفاكس اكنو يك پروژه اجتماعي است".

اكسپريا زد 4 سوني شايد به سخت‌افزار باور نكردني مجهز شود

۱۴۳ بازديد

اكسپريا زد 4 سوني شايد به سخت‌افزار باور نكردني مجهز شود

بخش موبايل سوني از زماني كه از اريكسون جدا شد، عملكرد قابل قبولي داشت و اين كمپاني ژاپني موفق شد تا ۴ پرچمدار را طي دو سال روانه‌ي بازار كند. حال هرچند هنوز اكسپريا زد ۳، پرچمدار نيمه‌ي دوم ۲۰۱۴ در برخي از نقاط دنيا عرضه نشده، شايعات مربوط به جايگزين آن با سخت‌افزاري شگفت‌انگيز پخش شده است.

همان منبعي كه پيش از رونمايي از Xperia Z3 Compact، تمام مشخصات فني آن را فاش كرد، خبر داده كه اكسپريا Z4 در كنگره‌ي جهاني موبايل بارسلون در ماه مارچ ۲۰۱۵ رونمايي خواهد شد. تا اينجاي خبر، چندان دور از انتظار نيست؛ چرا كه سوني امسال نيز در همين كنفرانس از Xperia Z2 رونمايي كرد. اما مشخصات فني ارائه شده براي اين تلفن خيره كننده است. شايعه شده كه اكسپريا زد ۴ به صفحه نمايش ۵.۵ اينچ با رزولوشن QHD مجهز خواهد شد. سوني امسال اعلام كرد كه استفاده از صفحه نمايش QHD به دليل مصرف انرژي بالا و عدم تفاوت با نمايشگرهاي Full HD جايز نيست. در واقع سوني طول عمر باتري را فداي رزولوشن بالاتر نكرد و آزمايش‌ها نيز اين موضوع را تاييد كردند چرا كه اكسپريا Z3 عملكرد خيره‌كننده‌اي را از نظر طول عمر باتري ارائه مي‌كند. حال به نظر مي‌رسد يا مشكل مصرف انرژي در نمايشگرهاي LCD حل شده يا نظر سوني تغيير كرده است.

از ديگر مشخصات فني ذكر شده براي اكسپريا زد ۴ مي‌توان به پردازنده‌ي  ۶۴ بيتي Snapdragon 810  با ۴ هسته‌ي ۲.۸ گيگاهرتزي، ۴ گيگابايت حافظه‌ي رم و گرافيك Adreno 430 اشاره كرد. سوني ۱۶ يا ۳۲ گيگابايت حافظه‌ي ذخيره سازي را به همراه درگاه ميكرو SD براي اين تلفن در نظر گرفته است.

اما نكته‌ي جالب توجه در اين گزارش، آن است كه سوني قصد دارد سنسور دوربين را كه از زمان Xperia Z1 در پرچمداران اين شركت مورد استفاده قرار گرفته، ارتقاء دهد و از يك سنسور قوي‌تر در Z4 بهره ببرد.

سوني در اكسپريا زد ۳، سيستم صوتي تلفن خود را به خوبي ارتقاء داد و خروجي صدا را تقويت كرد. حال شايعه شده كه اين كمپاني قصد دارد در Z4 از يك آمپلي‌فاير اختصاصي در داخل گوشي بهره ببرد.

در اين گزارش آمده است كه سوني طراحي ظاهري تلفن خود را در Z4 نيز تغيير نخواهد داد. اگر بخاطر داشته باشيد درمصاحبه‌ي اختصاصي زوميت با مدير كل خاورميانه و آفريقاي سوني، روديگر آدنباخ اين موضوع را تاييد كرد و گفت كه قرار نيست زبان طراحي سوني كه به نوعي امضاء اين شركت در صنعت موبايل به شمار مي‌رود، تغيير كند.

بررسي فلش درايو موبايل اپيسر

۱۴۵ بازديد

بررسي فلش درايو موبايل اپيسر

روز به روز بر تعداد كاربران تلفن‌هاي هوشمند و تبلت‌ها افزوده مي‌شود، در همين راستا بازار بزرگي براي لوازم جانبي و هر آنچه به اين محصولات مرتبط مي‌شود، شكل گرفته است. حافظه‌هاي فلش يا فلش‌مموري‌ها نيز از اين قاعده مستثني نيستند و توليدكنندگان اين محصولات با ارايه حافظه‌هاي مجهز به درگاه ميكرو USB سعي مي‌كنند تا كمبود حافظه ذخيره سازي را مرتفع نموده و انتقال فايل‌ها بين اين ابزارها را بهبود بخشند. در اين مقاله به بررسي حافظه فلش Mobile Flash Drive اپيسر مي‌پردازيم.

 برخي از تلفن‌هاي هوشمند يا تبلت‌ها فاقد درگاه ميكرو SD جهت اتصال كارت حافظه و افزايش حافظه ذخيره سازي هستند. بعضي از كاربران نيز با وجود راه‌هاي ارتباطي همچون بلوتوث، دايركت‌واي-فاي و غيره ترجيح مي‌دهند تا فايل‌هاي خود را از طريق حافظه‌هاي فلش بين ابزارهاي مختلف مثل كامپيوتر، تبلت و تلفن هوشمند منتقل كنند. از اين رو توليدكنندگان حافظه فلش از جمله اپيسر نسبت به طراحي و ساخت حافظه‌هاي مجهز به درگاه تركيبي ميكرو USB و USB اقدام كرده‌اند تا كاربران بتوانند اين حافظه‌ها را به ابزارهاي مختلف، متصل نموده و اطلاعات خود را به آساني منتقل نمايند.

ايده كلي و كارايي

حافظه‌هاي موبايل يا فلش‌داريوهاي مجهز به درگاه ميكرو USB هستند تا به ابزارهاي اندرويدي مجهز به OTG متصل شوند. از حافظه‌هاي موبايل مي‌توان براي انتقال فايل‌ها بين تلفن‌هاي هوشمند، تبلت‌ها، پخش‌كننده‌هاي چندرسانه‌اي يا كامپيوترها استفاده كرد به شرطي كه آن ابزارها از OTG پشتيباني كنند.

 

OTG يا USB On The Go قابليتي است كه به ابزارهاي الكترونيكي مانند گيرنده‌هاي ديجيتال، پخش‌كننده‌ها، تلويزيون‌ها و موبايل‌ها اين امكان را مي‌دهد تا همچون كامپيوترهاي شخصي ميزبان حافظه‌هاي USB مانند فلش‌داريوها، ديسك‌هاي سخت‌ اكسترنال، صفحه كليد، ماوس، دوربين‌هاي عكاسي و غيره باشند. امروزه بسياري از ابزارهاي اندرويدي از قابليت OTG پشتيباني مي‌كنند و اين بدين معناست كه مي‌توان به موارد ذكر شده دسترسي يافت. شايد يكي از بهترين اين موارد امكان اتصال حافظه خارجي مانند فلش مموري يا ديسك‌سخت‌هاي اكسترنال باشد كه امكان انتقال اطلاعات را بين ابزارهاي مختلف به خوبي ميسر مي‌كند. مهم‌ترين مزيت حافظه‌هاي موبايل در انتقال اطلاعات بين ابزارهاي اندرويدي و همچنين كامپيوترهاي شخصي است. امروزه از طريق واي-فاي يا بلوتوث مي‌توان به انتقال اطلاعات بين اين ابزارها پرداخت، اما اگر حجم فايل‌هاي مدنظر كاربر زياد باشد يا قرار باشد يك فيلم با رزولوشن 1080p را به تلفن هوشمند يا تبلت منتقل كند، آن وقت مدت زمان زيادي طول خواهد كشيد تا بتوان از طريق شبكه‌هاي بي‌سيم به انتقال اين فايل‌ها پرداخت. از اين رو حافظه‌هاي فلش و فناوري  OTG مي‌توانند راه حل مناسبي باشند. حداكثر سرعت انتقال اطلاعات در شبكه‌هاي واي‌فاي تا استاندارد 802.11n برابر با ۱۵۰ مگابيت در ثانيه، در واي-فاي 802.11g برابر با ۵۴ مگابيت در ثانيه و در بلوتوث نيز حدودا ۲۴ مگابيت در ثانيه است. اما اپيسر ادعا مي‌كند كه سرعت انتقال اطلاعات از طريق حافظه فلش AH171 اپيسر به ۴۸۰ مگابيت در ثانيه مي‌رسد، البته در ادامه و در بخش بنچمارك اين حافظه متوجه خواهيد شد كه سرعت انتقال اطلاعات در اين حافظه حدود ۲۲۰ مگابيت در ثانيه است.

اپيسر

از طرفي اين حافظه‌ها براي افرادي كه قصد ندارند هزينه زيادي بابت خريد تلفن همراه با حافظه ذخيره‌سازي بالاتر، پرداخت كنند يا افرادي كه تلفن هوشمند يا تبلت مد نظر آن‌ها فاقد درگاه ميكرو SD است، مفيد خواهند بود.

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

حافظه فلش AH171 اپيسر در حالت عادي داراي درگاه ميكرو USB است، اما يك مبدل نيز در جعبه اين حافظه قرار داده شده است تا از طريق آن بتوانيد ميكرو USB را به USB سايز كامل تبديل كنيد و به راحتي امكان اتصال حافظه به كامپيوترهاي شخصي را داشته باشد.

Apacer فلش درايو

اپيسر طراحي فانتزي و رنگ‌بندي جالبي را براي حافظه‌هاي فلش AH171 (سري Q Zoo) خود در نظر گرفته است اين حافظه‌ها در سه طرح خرس، شير و خوك روانه بازار شده‌اند. طراحي اين حافظه‌هاي به شكلي در نظر گرفته شده كه اگر به تلفن يا تبلت متصل شوند،‌ شكل جالبي به خود بگيرند و ظاهر كلي تلفن را فانتزي كنند. اين طراحي ممكن است باب ميلي برخي باشد و برخي نيز از آن خوششان نياد. من به شخصه جزو دسته دوم به حساب مي‌آيم. براي اتصال حافظه به كامپيوتر يك مبدل در نظر گرفته شده است كه با طراحي كلي حافظه هم‌خواني ندارد، البته اين موضوع نيز اهميت زيادي ندارد چرا كه قرار نيست حافظه به هيچ‌كدام از دو ابزار، براي هميشه متصل باقي بماند و تنها براي انتقال اطلاعات از اين نوع از حافظه‌ها استفاده مي‌شود.

حافظه موبايل AH171 مي‌تواند استفاده‌هاي مختلفي داشته باشد مثلا اگر اهل فيلم‌ديدن در تبلت يا تلفن خود باشيد و از طرفي رزولوشن و كيفيت فيلم‌ نيز برايتان اهميت داشته باشد، اين حافظه‌ها به خوبي قادر به برطرف كردن نياز شما خواهند بود. معمولا فيلم‌هاي 1080p سايزي در حدود ۱۰ گيگابايت دارند و نگاه داري آن‌ها در حافظه داخلي تلفن هوشمند باعث پر شدن بخش بزرگي از حافظه خالي دستگاه مي‌شود، از اين رو به آساني مي‌توان از اين نوع از حافظه‌ها براي انجام امور اينچنيني بهره برد.

سرعت انتقال اطلاعات و بازده

براي آزمايش سرعت انتقال اطلاعات در اين حافظه فلش از نرم‌افزارهاي مختلفي استفاده كرديم كه نتايج اكثر آن‌ها نزديك به هم و يكسان بود:

نرم‌افزار HD Tune

hd tune

همانطور كه در جدول مشاهده مي‌كنيد، براساس اين آزمايش حداكثر سرعت انتقال اطلاعات در فلش‌مموري AH171 اپيسر برابر با 24.7MB/s (مگابايت در ثانيه)، حداقل سرعت انتقال اطلاعات در آن برابر 16.2MB/s و ميانگين سرعت انتقال اطلاعات نيز 23.8MB/s است:

 نوع حافظهحداكثر سرعتحداقل سرعتميانگين
Apacer AH171 Flash Memory 24.7MB/s 16.2MB/s 23.8MB/s
Plextor M5s 256GB SSD 195.6MB/s 165.1Mb/s 183.9MB/s
Acer Aspire S7 SSD  932.8MB/s  766.6MB/s  915.8MB/s
Fujitsu AH552/SL HDD  86.7MB/s  8.1MB/s  70.3MB/s
 TransformerBook TX 300 SSD+HDD  229.0MB/s  178.7MB/s  213.3MB/s
Samsung 550P5C-S02 HDD  112.3MB/s  0.9MB/s  76.9MB/s
Samsung 900X3C-A02 SSD 328.1MB/s 300.4MB/s 305.1MB/s
Sony VPCSA33GX/BI SSD 177.8MB/s 149.5MB/s 129.9MB/s
Samsung 530UC SSD 332MB/s 217MB/s 278.4MB/s
Samsung 350U2A HDD 87.4MB/s 33.2MB/s 66.5MB/s
Asus K53V HDD 92Mb/s 22MB/s 75MB/s
Samsung 300E5Z HDD 106MB/s 1.2MB/s 68.9MB/s

 

آزمايش ATTO Disk Benchmark

در اين آزمايش نيز نتايج شبيه به آزمايش قبلي است. در اين بنچمارك مي‌توانيد سرعت انتقال اطلاعات را در بسته‌هاي مختلف ديتا مشاهده كنيد:

apacer ah171

به صرفه ترين قيمت بسته اينترنت موبايل همراه اول، ايرانسل و رايتل

۱۶۲ بازديد

به صرفه ترين قيمت بسته اينترنت موبايل همراه اول، ايرانسل و رايتل

بسته‌‌هاي اينترنت موبايل يكي از پركاربردترين بسته‌هاي اينترنت در كشور است و كاربران ايراني زيادي از اين بسته‌ها استفاده مي‌كنند. قيمت اينترنت موبايل برامشتركان اپراتورهاي تلفن همراه اهميت بسيار بالايي دارد. همراه ما باشيد تا به‌صرفه‌ترين قيمت بسته اينترنت موبايل همراه اول، ايرانسل و رايتل را به شما معرفي كنيم.

بسته‌‌هاي اينترنت تلفن همراه يكي از پرمصرف‌ترين پكيج‌هاي اينترنتي در ايران است. كاربران ايراني زيادي از طريق اين بسته‌ها به اينترنت وصل مي‌شوند تا جايي كه برخي از مشتركان در منزل يا محل كار نيز با استفاده از بسته‌هاي اينترنت موبايل وارد فضاي مجازي مي‌شوند.

قيمت اينترنت موبايل براي مشتركان اپراتورهاي ايراني يعني همراه اول، ايرانسل و رايتل از اهميت بسيار بالايي برخودار است. كاربران اينترنت موبايل همراه اول، ايرانسل و رايتل هميشه به دنبال استفاده از بهترين و به‌صرفه‌ترين تعرفه‌ها هستند. دليل ارائه‌ي بسته‌هاي اينترنتي هم كاهش قيمت اينترنت موبايل و به‌صرفه‌شدن اين اينترنت براي مشتركان تلفن همراه است.

به همين خاطر در ميان بسته‌هاي اينترنت موبايل به دنبال به‌صرفه‌ترين بسته هر اپراتور تلفن همراه گشتيم تا آن را به شما معرفي كنيم. 

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

فرمول پيدا كردن ما به اين شكل است: قيمت بسته را به حجم مصرفي كل آن  بسته تقسيم مي‌كنيم تا هزينه هر گيگابايت حجم مصرفي به‌دست آيد. در نهايت ارزان‌ترين بسته مشخص مي‌شود.

نام اپراتورحجم كل بستهحجم روزانهحجم شبانهقيمت بستهقيمت هر گيگابايتزمان بسته
همراه اول ۸ ۴ ۴ ۱۷،۰۰۰ ۲،۱۲۵ ۳۰
ايرانسل ۱۰۰ ۱۰۰ --- ۱۷۵،۰۰۰ ۱،۷۵۰ ۳۶۵
رايتل ۴۲ ۲۱ ۲۱ ۸۹،۰۰۰ ۲،۱۱۹ ۱۸۰
تمام حجم‌ها به گيگابايت، تمام زمان بسته‌ها به روز و تمام قيمت‌ها به تومان است.