داستان توسعه‌ی KalamUp

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

اولین برنامم برای iOS

اولین برنامه‌ای که برای iOS منتشر کردم خوشبختانه خیلی خوب دیده شد و تونست توی زمینه خودش پرمخاطب ترین اپلیکیشن بشه و آخرین آماری که الان ازش دارم چیزی حدود ۲۵۰۰۰ دانلود از مجموع استور هایی که داخلشون قرار داره هستش. البته شاید الان آمار دانلودش رو توی استورهای iOS ببینید و جمع بزنید به این رقم نرسید و فکر کنید دارم دروغ میگم 😅🤥 که علتش اینه که اپل اکانت های اینترپرایز شرکت های ایرانی رو غیرفعال کرد و استورهای iOS به مشکلاتی زیادی خوردن. مثلا استور سیب اپ که فک کنم پرمخاطب ترین استور ایرانی iOS باشه، متاسفانه به خاطر این مشکلات آمار دانلود تمامی برنامه ها رو ریست کرد. و اتفاقا ۹۰ درصد دانلود برنامه من از همین استور بود و آمار دانلودش ریست شد.😢 (البته الان آمارش درست شده و دوباره اصلاحش کردن 👍) Aiennameh (لینک برنامه‌ی قبلیم)

کلمآپ | KalamUp

میخوام راجب نامی که برای برنامه انتخاب کردم ی توضیحی بدم که معمولا به هر کی گفتم برای بار اول ی خورده ضایع و خنده‌دار بوده براش 😅 و وقتی آدم برای بار اول این اسم رو میشنوه ذهنش میره سمت سبزی و کلم و … ولی در واقع این نام از ترکیب ۲ واژه‌ی : کلمه + آپ(Up) به وجود اومده که خب چیزی که ترکیب این دو کلمه کنار هم برای من تداعی میکرد افزایش دایره لغات (کلمات) یک زبان خارجی هست که هدف اصلی برنامه هم دقیقا همین موضوعه یعنی کار بر روی مهارت واژه آموزی زبان های خارجی.

بخش ۱: کلمه – مفهوم خودش رو می‌رسونه

بخش ۲: آپ – مفهوم افزایش دادن و بالا بردن رو می‌رسونه

ترکیب این ۲ تا میشه : کلمآپ | KalamUp – مفهوم افزایش دایره واژگان رو می‌رسونه

شروع کلمآپ

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

این طوری شد که شروع کردم به ریختن طرح های اولیه KalamUp و بالاخره توی اوایل مرداد ۹۷، کد زدن برنامه رو شروع کردم.

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

چالش‌های برنامه نویس iOS ایرانی

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

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

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

بعد منم به فکرم زد که بیام خودم رو جای یک برنامه نویس افغانستانی جا بزنم و بگم داخل دوبی زندگی میکنم 😅 (چون اکانت دولوپریم برای امارات بود) و دروغای زیادی رو سر هم کردم و ایمیل های زیادی براشون فرستادم و آخرش گفتن اگه میخوای منتشرش کنیم برو از سازمان OFAC یک مجوز بگیر. که در واقع این حرف تیر آخر بود. 😂 چون فک کنم این سازمان به خود اپلم به راحتی مجوز نده حالا چه برسه به من 😅

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

ولی خوب اپل بیکار نشست و ۱-۲ سال بعد شروع کرد به Revoke کردن حساب های اینترپرایز و کلا بازار iOS تو ایران نابود شد و تعداد کاربرای iOS حداقل برای اپلیکیشن های ایرانی خیلی خیلی کم شد. و با توجه به هزینه اشتراک زیادی که استورهای ایرانی iOS برای خدماتشون از کاربرا میگیرن، تعداد این کاربران هر روز هم کمتر میشه. 😑😢

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

۲ سال وقت گذاشتی سر این برنامه 😲

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

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

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

حالا اگه بخوام راجب تک تک این موارد که چقدر زمان برده و توسعه هر کدوم چه داستانی داشته برای من دست تنها توضیح بدم شاید حوصله سر بشه، به خاطر همین دیگه خیلی راجبش پر حرفی نمیکنم و شاید بعدا بیشتر راجبش نوشتم. ولی یک موردی بخوام مثال بزنم: توی بخش هایی از برنامه نیاز به یک سری انیمیشن های ساده‌ای داشتم که با کد swift نمیشد پیاده کرد و با توجه به این رفتم سراغ After Effects و شروع کردم به یادگیری و ساخت انیمیشن های ساده و با استفاده از کتابخونه فوق العاده Lottie که هم برای iOS ارائه شده و هم برای اندروید (فک کنم برای کراس پلتفرم‌ها هم نسخه داره) تونستم اون چیزی که میخواستم رو داخل برنامه پیاده سازی کنم.

سر همین طولانی شدن زمان توسعه برنامه بعضی وقتا دوستام باهام شوخی میکردن و میگفتن توی این مدت خود اپل ۳ تا گوشی جدید معرفی کرده یا میگفتن مرسدس بنز ۲ تا مدل جدید ماشین داده بیرون، تو هنوز نتونستی این برنامه‌ی …..تو تموم کنی 😂😅

بخش های آموزشی برنامه

حالا یک مقدار میخوام راجب بخش های مختلف برنامه توضیح بدم، اولین موردی که میخوام توضیحش بدم بخش اصلی برنامه هست که یک روند آموزشی خاصه که وقت زیادی رو هم سر طراحی این بخش گذاشتم و این طرح رو اوایل شروع کار برای این برنامه نوشتم و چند بار تغییرش دادم و دیاگرام این طرح آموزشی حدود ۲-۳ صفحه A4 شده و اگه بخوام به صورت ساده توضیحش بدم، اینه که مثلا توی مرحله اول اسلاید های آموزشی به کاربر نشون داده میشه، توی مرحله‌ی بعد از کاربر سوال تستی راجب معنی اون لغت پرسیده میشه، حالا اگه درست جواب داد یک سری مراحل دیگه میاره و اگر غلط جواب داد یک سری مراحل دیگه و این روند کلی هستش که خب ریز میشه توی تک تک مراحل و میتونم بگم پیچیده هست حتی روی کاغذ (حداقل برای من) حالا تبدیلش به کد که بماند.🙃 (فک کنم الان کدهایی رو که برای این بخش نوشتم رو بخوام باز نگاه کنم و متوجه منطقی که خودم براشون نوشتم بشم ی ۲-۳ روزی وقت بگیره 😂).

ایده این بخش از برنامه رو از اپ های Memrise و duolingo گرفتم ولی منطقی که برای مراحل آموزشی پیاده سازی کردم رو خودم طراحی کردم. همچنین میدونیم که این دو تا برنامه شاید جز ۱۰-۲۰ تا برنامه پر دانلود توی استور های بین المللی باشن و تعداد کابراشون از ۱۰۰ میلیون بیشتره و من توی توسعه این بخش از برنامه سعی کردم توی سطح اونا باشم یا حتی جاهایی رو بهتر پیاده سازی کنم.🤓 راجب روند آموزشی این بخش توی درباره‌ی کلمآپ بیشتر توضیح دادم که اگه براتون جالب بود میتونید ی سر به اونجا بزنید و راجبش بیشتر بخونید

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

البته هدف کلی برنامه آموزش لغات یک زبان خارجی هستش و مثل Memrise و duolingo رو مهارت های دیگه آموزشی زبان مثل گرامر یا مکالمه کار نشده. و اگه اون برنامه ها نیومدن ی همچین بخشی رو داخل اپلیکیشنشون پیاده سازی کنن شاید به این علت بوده که اونا رو از هدف اصلی آموزشی برنامشون دور میکرده. ولی چون تمرکز اصلی من داخل KalamUp آموزش لغات یک زبان جدید بوده، این بخش (لیست کلمات) یکی از مهمترین بخش های برنامه‌ی من حساب میشه و من سعی کردم خیلی عالی طراحیش کنم و واقعا از لحاظ رابط کاربری (UI) و تجربه کاربری (UX) این بخش فوق العاده شده و هر موقع نگاهش میکنم واقعا حال میکنم با این بخش 😅.

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

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

طراحی UI و UX برنامه

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

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

حالا با توجه به این چیزایی که گفتم فک کنم متوجه شده باشید که طراحی کلی برنامه چقدر برای من کار طاقت فرسایی بوده 😅.و چه روزهای زیادی رو توی dribbble , pinterest دنبال ایده برای طراحی برنامه میگشتم، فکر کنم حدود ۳ بار طرح کلی برنامه رو عوض کردم تا به طراحی که الان داره رسیدم و واقعا خیلی هم شانسی و اتفاقی اومدم یک صفحه رو توی Sketch طراحی کردم و دیدم چقدر فوق العاده و شیک شد و همین تم رو روی کل صفحات دیگه برنامه پیاده کردم و شد طرحی که الان برنامه داره و اگه اسکرین شات های برنامه رو توی صفحه اصلی سایت یا داخل اینستاگرام، تلگرام برنامه ببینید فک کنم باهام موافق باشید که طراحی برنامه یکی از نقاط قوت KalamUp هستش.

بخش حساب کاربری برنامه

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

پیاده سازی این بخش، با توجه به تجربه کمی که دارم برای من پر دردسر و پیچیده بود و این موضوع که اطلاعات کاربر روی Client با اطلاعات کاربر روی Server سینک باشه و رد و بدل کردن این دیتا ها بدون مشکل انجام بشه کار سختی هستش. البته یک سری ترفندهایی رو با آزمون و خطا توی توسعه این بخش ها بدست آوردم (که فک نکنم کسی تا حالا همچین حرکتی زده باشه😅) که بعدا راجش مینویسم که فک میکنم به درد هر برنامه نویس موبایلی میخوره 😁

پول درآوردن از برنامه 🤑

پیش بینی که برای درآمد زایی این برنامه داشتم با توجه با آمار درآمدی برنامه‌ی قبلیم و با توجه به اینکه این برنامه جامعه مخاطب بیشتری نسبت به اون داشت و قابلیت توسعه بیشتر رو هم داشت رقم جذابی بود (حداقل برای من) و همین موضوع هم یکی از انگیزه های من بود توی اوایل شروع به کد زدن این برنامه ولی مشکلاتی که برای جامعه iOS ایران به وجود اومد همه‌ی این برنامه ها و آرزوها رو نابود کرد ولی همچنان من توسعه برنامه رو رها نکردم و فک کنم اتفاقا ی دلیل که برنامه الان کیفیت نسبتا خوبی پیدا کرده اینه که وقت بیشتری روش گذاشته شد و استرس اینکه زودتر برنامه رو منتشر کنم که به درآمد برسم یا موارد مشابهش رو نداشتم، چون با اوضاعی که الان هست دیگه جامعه استفاده کننده از برنامه های ایرانی iOS خیلی کوچیک شده و در نتیجه درآمد آن چنانی هم توی این جامعه نیست که خیلی عجله داشته باشم برای رسیدن بهش 🙁😅 . البته نه تنها جامعه شغلی برنامه نویسای iOS که فکر کنم اکثر مشاغل هم به ی همچین مشکلاتی بر خوردن و به یاد اون کلیپ معروف: خیلی اوضاع خیطه، خیلی اوضاع خیطه 😂

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

ولی همچنان میتونین کلمآپ رو از استور های ایرانی iOS دانلود کنید که لینکش در انتهای همین صفحه قرار داره.

سخن پایانی 🥺

در حال حاضر داخل کلمآپ ۱ دوره آموزشی قرار داره (۵۰۴ واژه ضروری زبان انگلیسی) ولی به تدریج دوره های دیگه رو هم به برنامه اضافه میکنم و قصد دارم زبان های دیگه رو هم در قالب این دوره های آموزشی داخل برنامه بیارم ولی فعلا اولویت با دوره های زبان انگلیسی هستش چون فک میکنم مخاطب بیشتری داره.

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

حمیدرضا انصاری (توسعه دهنده‌ی کلمآپ)

مهر ۱۳۹۹

همچنین اگه از برنامه استفاده کردید و ازش خوشتون اومد، ممنون میشم توی استور ها بهش امتیاز و نظر بدید که بهتر دیده شه و همینطور میتونیم این پایین توی بخش کامنت های پست راجب برنامه یا موضوعات مرتبط دیگه با هم گفت و گو کنیم که برای من خیلی لذت بخشه.☺️

دیدگاه شما

نشانی ایمیل شما منتشر نخواهد شد.

دسته بندی ها