بذارید بهش فکر کنم. طبقهبندی مطالب در «انتشارات».
راهنمای توسعهدهندگان موبایل به سمت کهکشان: فصل اول
کتاب «راهنمای توسعهدهندگان موبایل به کهکشان» (Mobile Developer's Guide to the Galaxy) که در حال مطالعه نسخه هجدهم آن (ویرایش نوامبر ۲۰۱۹) هستید، یک پروژه اجتماعی و غیرانتفاعی است که با هدف به اشتراکگذاری دانش در زمینه فناوریهای موبایل و تشویق افراد به ورود یا تعمیق دانش خود در این جامعه پویا شکل گرفته است. این کتاب که توسط نویسندگان، ویراستاران و طراحانی که به صورت رایگان همکاری میکنند تهیه شده است، یک نمای کلی مستقل و جامع از فناوریهای موبایل برای توسعهدهندگان و تصمیمگیرندگان ارائه میدهد.

این راهنما موضوعات مختلفی از جمله توسعه اندروید و iOS، توسعه چند پلتفرمی، وب موبایل، بازیهای موبایل، امنیت و حریم خصوصی، دسترسپذیری، تست، کسب درآمد، بهینهسازی اپ استور (ASO)، جذب کاربر و مدیریت ارتباط با مشتری موبایل (mCRM) را پوشش میدهد. این پروژه که در سال ۲۰۰۹ آغاز شد، اکنون توسط Open-Xchange و Customlytics منتشر میشود و نسخههای چاپی و الکترونیکی آن به طور گسترده در سراسر جهان توزیع شده و حتی به عنوان منبع آموزشی در دانشگاهها و مدارس مورد استفاده قرار گرفته است.
در ادامه، ترجمه فصل اول این کتاب با عنوان «کهکشان موبایل» نوشته رابرت ویرکوس را مطالعه خواهید کرد. این فصل به بررسی چشمانداز کنونی دنیای موبایل، بازیگران اصلی آن و استراتژیهای کلیدی برای موفقیت در این بازار رقابتی میپردازد.
فصل اول: کهکشان موبایل

نویسنده: رابرت ویرکوس (Robert Virkus)
اگر به گذشته نگاهی کنیم، صحنهی تلفنهای همراه کمی شبیه اکوسیستم کامپیوترهای خانگی در دهه 1980 بود: بازیگران زیاد، سیستم عاملهای زیاد، نوآوریها و تغییرات فراوان. امروز با یک دو قطبی جهانی سروکار داریم: 98 درصد دستگاههای موبایل امروزی یا با اندروید (Android) یا آیاواس (iOS) کار میکنند (76٪ اندروید، 22٪ iOS، به این جا مراجعه کنید). آیا این وضعیت تغییر خواهد کرد؟ بدون فشار سیاسی یا تغییر پارادایم، انتظار نداریم وضعیت در آینده قابل پیشبینی تغییر کند. با این حال، نگاهی به جزئیات، دنیای کوچک و هیجانانگیزی از گزینهها، چالشها و فرصتها را آشکار میکند.
بازیگران قابل توجه
بسته به استراتژی بازار و دسته برنامه/بازی/خدمات خود، باید بازیگران زیر را به دقت زیر نظر داشته باشید. البته، هر یک از این بازیگران چیزهای بیشتری به جز محصولات و خدمات ذکر شده ارائه میدهند، اما اینها مرتبطترین موارد در بخش موبایل هستند که در این راهنما پوشش میدهیم. برخی از این بازیگران، رهبران دیجیتال جهانی را تشکیل میدهند که با مخفف گافام (GAFAM) خلاصه میشوند که مخفف گوگل (Google)- اپل (Apple)- فیسبوک (Facebook)- آمازون (Amazon)- مایکروسافت (Microsoft) است.
گوگل
در صنعت موبایل، سیستم عامل اندروید گوگل همچنان بازیگر اصلی گوشیهای هوشمند است - هم از نظر تعداد و هم از نظر درآمد. اندروید دارای انواع مختلفی مانند اندروید گو (Android Go) برای گوشیهای هوشمند پایینرده، اندروید وان (Android One) که بهروزرسانیهای امنیتی منظم به مدت سه سال و بهروزرسانیهای سیستمعامل به مدت دو سال را وعده میدهد+، Wear OS برای ساعتهای هوشمند و اندروید تیوی (Android TV) برای تلویزیونهای هوشمند، و یک گزینه ادغام برای خودروها به نام اندروید آتو (Android Auto) است. البته AOSP (Android Open Source Project یا پروژه منبع باز اندروید) - نیز وجود دارد که پلتفرم اصلی سیستمعامل اندروید را بدون خدمات اختصاصی گوگل ارائه میدهد. AOSP بیشتر در چین استفاده میشود اما همچنین اساس LineageOS را تشکیل میدهد. علاوه بر این، گوگل با اِستِیدیا (Stadia) وارد بازار نوظهور پخش بازی شده و با گوگل هوم (Google Home) و دستگاههای مجهز به گوگل اسیستنت (Google Assistant) از فروشندگان دیگر، سهم قابل توجهی از بازار بلندگوهای هوشمند را به خود اختصاص داده است. با سیستم عامل کروم (Chrome OS)، گوگل همچنین خود را به عنوان یک فروشنده مهم سیستم عامل رایانه شخصی تثبیت کرده است. پس از آمازون و مایکروسافت، گوگل سومین ارائه دهنده بزرگ خدمات ابری است. در نهایت، گوگل با فلاتر (Flutter) یک فریمورک چند پلتفرمی راهاندازی کرد که اندروید، آیاواس، ویندوز (Windows)، مکاواس (macOS) و وب را در بر میگیرد. فلاتر همچنین توسعه رابط کاربری را در سیستم عامل آینده مبتنی بر میکروکرنل تحقیقاتی خود به نام فیوشا (Fuchsia) قدرت میبخشد.
اپل
اپل به تنهایی بازار گوشیهای هوشمند را در وهله اول با آیفون (iPhone) و به طور خاص با سیستم عامل آیاواس و اپ استور (App Store) به ترتیب در سالهای 2007 و 2008 ایجاد کرد. اپل همچنین یک ارائه دهنده پیشرو تبلت است+ و بازار ساعتهای هوشمند را با محصول اپل واچ (Apple Watch) خود رهبری میکند. در نهایت، آنها همچنین یک پیشنهاد چندرسانهای قوی مبتنی بر اپل تیوی (Apple TV) با tvOS خود دارند. در مقایسه با اندروید، اپل سهم بازار نسبتاً کوچکتر اما بسیار سودآوری دارد.
سامسونگ
سامسونگ (Samsung) به عنوان بزرگترین فروشنده گوشیهای هوشمند، تا حد زیادی بر بازار تأثیر میگذارد. سامسونگ عمدتاً از اندروید استفاده میکند، اما آنها همچنین روی سیستم عامل تایزن (Tizen) کار میکنند - با این حال، تاکنون هر تلاشی برای تثبیت این سیستم عامل در بخش گوشیهای هوشمند با شکست مواجه شده است. با DeX (تجربه دسکتاپ: Desktop eXperience)، سامسونگ با پشتیبانی از صفحهکلید، ماوس و مانیتورهای خارجی برای کار با سختافزارهای منتخب مانند گوشی سامسونگ گلکسی نوت ۱۰ (Samsung Galaxy Note 10)، بازار تبلت و رایانه شخصی را ادغام میکند. سامسونگ همچنین فروشگاه گلکسی (Galaxy Store) را برای توزیع برنامهها اداره میکند که میتواند جایگزین جذابی برای فروشگاه گوگل پلی (Google Play Store) باشد.
هواوی
هواوی (Huawei) به دومین فروشنده بزرگ گوشیهای هوشمند تبدیل شده است. مانند سامسونگ، هواوی از اندروید رسمی گوگل برای بازار بینالمللی استفاده میکند. احتمالاً دولت ایالات متحده با وادار کردن هواوی به دور شدن از سیستم عامل اندروید مورد تأیید گوگل، موج جدیدی از نوآوری را آغاز کرد. هواوی سیستم عامل خود به نام هارمونی (Harmony) را در آگوست 2019 به عموم معرفی کرد. این سیستم عامل برای اجرا بر روی یک میکروکرنل طراحی شده است، اما نسخه اولیه آن بر یک هسته لینوکس (Linux) سنتی متکی است. با اپ گالری (App Gallery)، هواوی همچنین پلتفرم توزیع برنامه خود را اداره میکند که میتواند جایگزین جذابی برای گوگل پلی باشد.
فیسبوک
فیسبوک سیستمهای پیامرسان موبایل پیشرو را با واتساپ (WhatsApp)، فیسبوک مسنجر (Facebook Messenger) و اینستاگرام (Instagram) ارائه میدهد. فیسبوک مسنجر به طور خاص گزینههای توسعه آسان را برای توسعهدهندگان فراهم میکند در حالی که اینستاگرام اخیراً یک افزونه واقعیت افزوده به نام اسپارک اِیآر استودیو (Spark AR Studio را معرفی کرده است. فیسبوک همچنین بازیگر اصلی پروژه ارز دیجیتال لیبرا (Libra) است و ابزارهای توسعهدهنده مختلف دیگری را ارائه میدهد. فیسبوک به درستی به دلیل نقضهای مختلف داده و حریم خصوصی تحت فشار است.
آمازون
آمازون با الکسا (Alexa)، که با استفاده از مهارتها قابل توسعه است، ارائه دهنده پیشرو بلندگوهای هوشمند است. آمازون همچنین از نسخه اندروید خود FireOS برای تبلتهای خود استفاده میکند و پلتفرم توزیع برنامه اندروید خود، یعنی فروشگاه اپلیکیشن آمازون (Amazon Appstore) را ارائه میدهد. آمازون همچنین پلتفرم ابری پیشرو را با AWS: Amazon Web Services ارائه میدهد.
مایکروسافت
مایکروسافت همچنان ارائه دهنده پیشرو سیستم عامل دسکتاپ است اما نتوانست با ویندوز فون (Windows Phone) و پیشنهادات موبایل بعدی خود موفقیتی کسب کند. با این حال، بازار دسکتاپ و بازی، ویندوز و ایکسباکس (Xbox) را به اهداف جذابی برای توسعهدهندگان تبدیل میکند. مایکروسافت همچنین با سونی (Sony) در بازار نوظهور پخش بازی با استفاده از پلتفرم ابری آژور (Azure) خود همکاری میکند.
تنسنت
با ویچت (WeChat) و کیوکیو چت (QQ Chat)، تنسنت (Tencent) سومین و چهارمین پیامرسان بزرگ موبایل در سراسر جهان را ارائه میدهد. با مینی پروگرمز (Mini Programs)، ویچت گزینه مهمی برای کشف خدمات و بازیها فراهم میکند. ویچت پی (WeChat Pay) یکی از سیستمهای پرداخت موبایلی پیشرو در چین است.
کایاواس
کایاواس (KaiOS) یک سیستم عامل است که برای تلفنهای ارزان قیمت (فیچر فون) طراحی شده و مبتنی بر فایرفاکس اواس (Firefox OS) است. این سیستم عامل در برخی مناطق، به ویژه بازارهای نوظهور، سهم بازار قابل توجهی به دست آورده است. با کایاستور (KaiStore) میتوانید به راحتی برنامههای HTML5 خود را توزیع کنید.
سیلفیش اواس
سیلفیش (Sailfish OS) مدتی است که وجود دارد و در حال حاضر در نسل سوم خود قرار دارد. تا کنون استقبال محدودی داشته است، اما به لطف سازگاری با اندروید، میتواند حداقل برخی از برنامههای اندروید AOSP را اجرا کند.
برجسته شدن در بازار شلوغ
با افزایش رقابت در فضای برنامهها، جنبههای مختلفی وجود دارد که ارزش بررسی دارند:
- تجربهها میتوانند در طیف وسیعی از فرم فکتورها - خواه سیستمهای داخل خودرو، تلویزیونها، رایانههای شخصی، کنسولهای بازی، واقعیت افزوده یا سیستمهای خانه هوشمند فعالشده با صدا - منتقل شوند. از آنجایی که فناوری موبایل به بسیاری از سیستمها منتقل شده است، میتوانید از مهارتهای توسعه برنامه موجود خود برای دستیابی به این فرم فکتورها استفاده کنید. اما مطمئن شوید که به بهترین شکل ممکن با هر پلتفرم سازگار شوید، خود را به کمترین وجه مشترک محدود نکنید!
- به نظر میرسد کاربران تمایل کمتری به امتحان و نصب برنامههای جدید دارند، بنابراین برنامههای موجود ویژگیهای خود را افزایش میدهند - از دنیای برنامههای تک منظوره به دنیای برنامههای چند منظوره حرکت میکنند.
- با برنامههای چند منظوره، افزونهها نقش مهمی ایفا میکنند. به جای ایجاد و نگهداری برنامه خود، میتوانید برنامههای موجود مانند ویچت، فیسبوک مسنجر، گوگل اسیستنت، اپل سیری (Apple Siri)، مایکروسافت آفیس (Microsoft Office) یا افزونههای سیستمی مانند آیاواس فایلپروایدر (iOS FileProvider) یا افزونههای برنامه تودی (Today app extensions) را گسترش دهید. برای کسب اطلاعات بیشتر در مورد "رابط کاربری صفر" و "برنامههای اتمیزه شده" جستجو کنید.
- به ایجاد نقاط توسعه در برنامه خود نیز فکر کنید تا به دیگران اجازه دهید خدمات خود را وارد برنامه شما کنند.
- اعلانها را جدی بگیرید و مطمئن شوید که گزینههای تعامل را به اعلانهای خود اضافه میکنید.
- افزایش تعامل - مانند همیشه - حیاتی است. یکی از بزرگترین محرکها برای برنامهها، ارتباطات و اجتماعی شدن است - همچنین برای کسب اطلاعات بیشتر، فصل کاملاً جدید ما "مدیریت ارتباط با مشتری موبایل" را مقایسه کنید.
تمرکز این کتاب بر توسعه برنامههای موبایل است که شامل تعدادی مرحله از جمله: برنامهریزی و مشخصات، نمونهسازی اولیه و طراحی، پیادهسازی، آزمایش داخلی و استقرار، استقرار در فروشگاه برنامه، کشف توسط کاربران، نصب، استفاده و بازخورد است. در نهایت، ما میخواهیم کاربران از استفاده از برنامههای ما لذت ببرند و به ما رتبههای مثبتی بدهند تا سایر کاربران را نیز به انجام همین کار تشویق کنند.
در حالی که برنامههای موبایل در طول توسعه ویژگیهای مشترک زیادی با توسعه سایر نرمافزارها دارند، ویژگیهای خاص خود را نیز دارند. در ادامه به برخی از این موارد خواهیم پرداخت.
نحوه ارائه خدمات به دستگاههای موبایل
چندین راه برای تحقق یک سرویس موبایل وجود دارد:
برنامههای بومی
یک برنامه بومی (Native App) به زبانی مخصوص پلتفرم با APIهای مخصوص پلتفرم برنامهنویسی میشود. معمولاً از طریق فروشگاه برنامه مرکزی مخصوص پلتفرم خریداری، دانلود و ارتقا مییابد. برنامههای بومی معمولاً بهترین عملکرد، عمیقترین ادغام و بهترین تجربه کاربری کلی را در مقایسه با گزینههای دیگر ارائه میدهند. با این حال، توسعه بومی اغلب پیچیدهترین گزینه توسعه نیز هست. هنگام شروع برنامههای جدید، باید به جای جاوا (Java) و آبجکتیو-سی (Objective-C)، از کاتلین (Kotlin) برای اندروید و سوئیفت (Swift) برای آیاواس استفاده کنید. اطلاعات بیشتر در مورد نحوه شروع کار را در فصلهای اختصاصی اندروید و آیاواس بیابید.
وبسایتها و برنامههای وب
وبسایتها یا - به طور فزایندهای - برنامههای تک صفحهای (Single-Page Applications) به زبانهای مختلفی نوشته میشوند و از HTML و CSS (Cascading Stylesheets) برای رندرینگ استفاده میکنند. استفاده از برنامههای وب پیشرو (Progressive Web App) را در نظر بگیرید و آنها را برای پین کردن دسکتاپ آیاواس (iOS desktop pinning) پیکربندی کنید. برنامههای وب بدون فروشگاه برنامه اجرا میشوند، بنابراین شما مستقل از فروشگاههای برنامه هستید که هم خوب است، زیرا توسط فروشگاه برنامه محدود نمیشوید و هم بد است، زیرا یافتن شما برای کاربران سختتر است. البته، میتوانید فصل اختصاصی توسعه وب موبایل را نیز در این کتاب بیابید.
برنامههای چند پلتفرمی
خدمات چند پلتفرمی متعددی وجود دارد که سناریوهای "یک بار بنویس، همه جا اجرا کن" (Write-once run-everywhere) را ارائه میدهند. حتی زمانی که فقط با دو پلتفرم غالب سروکار دارید، ابزارهای چند پلتفرمی میتوانند به شما کمک کنند تا خدمات خود را با تلاش کمتری بهروزرسانی و نگهداری کنید. فصل چند پلتفرمی را بخوانید تا گزینههای خود را در این زمینه درک کنید.
جنگهای بیهوده
ما به عنوان توسعهدهنده، تمایل داریم نسبت به عزیزان منتخب خود تعصب داشته باشیم. با این حال، فراموش نکنیم که این فناوریها فقط همین هستند - فناوریهایی که در یک زمان معین و در یک فضای معین مرتبط هستند، اما نه بیشتر. بله، جنگهای بیهوده سرگرمکننده هستند اما با نگاهی به گذشته، همیشه احمقانه به نظر میرسند. دستها بالا آنهایی که در دهه 80 خوب و قدیمی بر سر آتاری (Atari) در مقابل آمیگا (Amiga) جنگیدند! احتمالاً تعداد کمی از شما، اما مطمئناً متوجه منظور شدید. ابتکاراتی مانند فیرفون (FairPhone)، شیفتفون (ShiftPhone) یا گاردینپروجکت (GuardianProject) ممکن است در آینده مهمتر از سیستم عامل یا فروشنده مورد انتخاب شما باشند.
اگر در فضای وسیع توسعه موبایل گم شدهاید، نگران نباشید، آرام بمانید و به خواندن ادامه دهید. گزینهها را بررسی کنید و مشکلی را که میخواهید حل کنید، مخاطبان هدف و دانش خود را در نظر بگیرید. تلاش زیادی برای طراحی تجربه خدمات خود بکنید، روی مشکل موجود تمرکز کنید و آن را ساده نگه دارید. بهتر است یک کار را خوب انجام دهید تا اینکه "همه چیز" را فقط متوسط انجام دهید. در طراحی و قابلیت استفاده راه حل خود سرمایهگذاری کنید. در نهایت، یافتن جایگاه مناسب اغلب بهتر از تلاش برای کپی کردن چیزی است که قبلاً موفق بوده است. این راهنما به شما کمک میکند تا تصمیمی آگاهانه بگیرید!
مطلبی دیگر از این انتشارات
دربارهی هک سامانههای شهرداری تهران
مطلبی دیگر از این انتشارات
راهنمای توسعهدهندگان موبایل به سمت کهکشان: فصل دوم
مطلبی دیگر از این انتشارات
بررسی دسترسیپذیری وبسایت