آنچه دربارهٔ کدنویسی ویب، ابزارهای هوش مصنوعی و آغاز کار بهعنوان تککارآفرین آموختم

من برنامهٔ Brush Tracker را در سه روز ساختام بدون هرگونه تجربهای قبلی از Swift، زبان برنامهنویسی اصلی برای توسعه iOS. اگرچه برنامهای کاملاً عملیاتی در App Store منتشر کردهام، اما هنوز دانشی از Swift ندارم چون برای توسعه این برنامه از «کدنویسی ویب» استفاده کردم.
در این مقاله، روند کار، ابزارهای هوش مصنوعی مورد استفادهام را شرح میدهم و برخی از آموختهها و بینشهایم را به اشتراک میگذارم.
Anything بهعنوان جایگزین Lovable
قبلاً از Lovable برای توسعه برنامههای وب استفاده میکردم، اما بهنظر میرسد که این ابزار هنوز برای توسعه برنامههای موبایل گزینهای نیست، حداقل در حال حاضر.
برای توسعه برنامههای موبایل، گزینههای جایگزین برای Lovable وجود دارد. بهتازگی با ابزاری به نام Anything آشنا شدم و چون تجربهٔ عالیای با Lovable داشتهام، تصمیم گرفتم آن را برای ساخت برنامهام امتحان کنم. در ابتدا بهنظر میرسید که بهخوبی کار میکند، اما تجربهٔ کلی به اندازهٔ انتظاریام مؤثر نبود.
سختترین بخش این بود که نتوانستم تغییرات، اصلاحات و بهبودهای خود را بلافاصله تست کنم. Anything یک رابط کاربری داخلی برای تست دارد، اما تجربهٔ کاربری بهسختی روان بود. همچنین شما را به تست کد از طریق برنامهٔ Expo هدایت میکند، که برای من نیز بهخوبی کار نکرد.
باید ذکر کنم که من هیچ تجربهای قبلی در توسعه برنامههای موبایل ندارم. برای برنامهنویسان یا افرادی که کمی تجربهٔ کدنویسی دارند، احتمالی است که Anything ابزار مؤثرتری از آنچه برای من بود، باشد.
کد را از Anything استخراج کردم و سعی کردم آن را در Xcode روی مک خود تست کنم، اما با خطاهای متعددی مواجه شدم و نتوانستم آن را بهدرستی اجرا کنم. بنابراین تصمیم گرفتم از یک گزینهٔ دیگر استفاده کنم؛ Cursor بهنظر میرسید انتخاب واضحی باشد.
Cursor
از دوستان زیادی که بهطور فعال از Cursor استفاده میکنند، نظرات بسیار مثبتی دربارهٔ این ابزار شنیدهام. خودم نیز میخواستم آن را امتحان کنم. همان دستوری را در Cursor دادم و از آن خواستم برنامه را بسازد. سپس یک پروژه Xcode با پوشهها و فایلهایی که Cursor تولید کرده بود ایجاد کردم. شبیهساز Xcode را راهاندازی کردم و در اولین تلاش کار کرد.
هدف برنامهٔ Brush Tracker، کمک به شما برای حفظ پیوستگی در مسواک زدن روزانه است. این برنامه امتیاز تمیزی را که از ۱۰۰٪ شروع میشود، به شما اختصاص میدهد. اگر یک روز مسواک نزنید، این امتیاز کاهش مییابد و دندانهای نمایش دادهشده در برنامه کمی زرد میشوند تا با امتیاز تمیزی مطابقت داشته باشد.

توجه: تمام تصاویر بهکار رفته در این مقاله شامل اسکرینشاتهایی از برنامهٔ Brush Tracker من میباشد.
نسخهٔ اولیه فقط شامل ویژگی اصلی برنامه بود. بهنظرم این کارآمدترین روش برای ساخت محصولات با ابزارهای مبتنی بر هوش مصنوعی است؛ نسخهٔ اولیه را راهاندازی کنید و سپس ویژگیهای دیگر را اضافه کنید.
برای تست ویژگی اصلی برنامه در شبیهساز، مجبور شدم تاریخ شبیهساز را تغییر دهم بدون اینکه «مسواک امروز» را تکمیل کنم، تا ببینم آیا امتیاز تمیزی کاهش مییابد و نمایش دندانها بهصورت مورد انتظار بهروز میشود یا خیر.
Cursor پیشنهاد داد تاریخ شبیهساز Xcode را تغییر دهم، اما شبیهساز دیگر تنظیمات تاریخ و زمان را ندارد. نسخههای قبلی شبیهساز Xcode این امکان را داشتند، اما اکنون موجود نیست.
یک راهحل جایگزین این بود که تاریخ مک خودم را تغییر دهم. به این ترتیب، تاریخ شبیهساز نیز بهروز شد و توانستم ویژگی را تست کنم.
یک نکتهای که متوجه شدم این بود که وقتی تاریخ مکام را تغییر دادم، Cursor حساب من را نمیدید و کار نمیکرد. پس از بازگشت تاریخ به حالت خودکار، همه چیز به حالت عادی برگشت.
قابلیت زمانسنج
یک زمانسنج داخلی برای مسواک زدن، افزودنی عالی به Brush Tracker بهنظر میرسید. کاربران میتوانند بهسادگی یک جلسه مسواک زدن را بهعنوان تکمیلشده علامتگذاری کنند یا در حین مسواک زدن از زمانسنج استفاده کنند.

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

در حین کدنویسی ویب میتوانید واقعاً یاد بگیرید
Cursor نهتنها کد مینویسد، بلکه به شما کمک میکند یاد بگیرید. وقتی میخواستم ویژگی پاداش را اضافه کنم، پیادهسازی اولیه درست نبود و بهدرستی کار نمیکرد.
مشکل را برای Cursor توصیف کردم و او هم دلیل بروز مشکل و هم راهحل آن را برایم شرح داد. در ادامه دو مثال از اینکه Cursor چگونه میتواند در مسیر یادگیری به شما کمک کند، آورده شده است:
مشکل این است که rewardQuote در اولین کلیک خالی است، زیرا handleRewardTap() آن را تنظیم میکند اما شیت (sheet) بلافاصله نمایش داده میشود. باید اطمینان حاصل کنم که نقلقول قبل از نمایش شیت تنظیم شده باشد.
مشکل برطرف شد! دلیل این بود که showReward = true بلافاصله پس از تنظیم rewardQuote تنظیم میشد، اما نمایش شیت در SwiftUI میتواند پیش از پردازش کامل بهروزرسانی وضعیت رخ دهد.
استفادهٔ مؤثرتر از Cursor
Cursor ابزار عالیای است، اما روشهایی برای بهبود کارایی آن وجود دارد.
فرض کنیم کد خراب میشود یا بهدرستی اجرا نمیشود. اگر بخش مشکلدار را میدانید، آن را برجسته کنید و به گفتوگو اضافه کنید؛ این کار قطعاً برای Cursor رفع مشکل را آسانتر میکند.
در برنامهٔ Brush Tracker، هنگام تنظیم اعلانها با مشکلی مواجه شدم. مشکل را شرح دادم و از Cursor خواستم آن را اصلاح کند. Cursor گفت که مشکل برطرف شده، اما همچنان وجود داشت. سپس با بررسی تغییرات کد، محل بروز مشکل را پیدا کردم و آن بخش را به گفتوگو اضافه کردم.
Cursor در بار دوم موفق به رفع آن شد: مشکل این است که onTapGesture بر روی Picker اعمال شده است، اما در SwiftUI، Pickerهای بخشبندیشده همیشه بهطور کامل به حرکات tap پاسخ نمیدهند زیرا مدیریت داخلی خود را دارند. اصلاحکننده onChange فقط زمانی فعال میشود که مقدار انتخابی بهواقع تغییر کند، نه زمانی که همان مقدار دوبار کلیک شود.
نکتهٔ دیگری که شایان ذکر است درصد «متن استفادهشده» (context used) در Cursor است. این ابزار بهصورت خودکار متنی مرتبط با کدهای شما را استخراج میکند، بنابراین نیازی نیست به آن بگویید که به کدام فایلها نگاه کند. اما تاریخچهٔ گفتگو نیز در این متن گنجانده میشود و گاهی شامل مشکلات قدیمی یا کدهای نامربوط میشود.
این شلوغی اضافی میتواند مصرف توکنها را افزایش دهد یا کارایی Cursor را کاهش دهد. زمانی که درصد متن استفادهشده افزایش مییابد، من تاریخچهٔ چت را پاک میکنم.
توزیع برنامه در App Store
پس از اتمام تست برنامه خود با استفاده از شبیهساز یا دستگاه واقعی (مثلاً آیفون شخصیتان)، زمان انتشار برنامه در App Store میرسد تا دیگران بتوانند آن را مشاهده (و امیدواریم استفاده) کنند.
این فرآیند سادهای نیست، اما جزئیات زیادی دارد که بهخصوص برای اولین بار ممکن است زمانبر باشد. من یک ویدیو در یوتیوب پیدا کردم که بهصورت گامبهگام تمام مراحل را بهوضوح توضیح میدهد.
پس از اتمام تمام مراحل، برنامهام را برای بررسی ارسال کردم. پس از تأیید، ایمیلی از App Store Connect دریافت کردم که اطلاع میداد برنامه برای توزیع آماده است.
شایان ذکر است که من هیچ ارتباطی با ابزارهای هوش مصنوعی ذکرشده در این مقاله ندارم.
از خواندن این مطلب سپاسگزارم! میتوانید برنامهٔ Brush Tracker را در App Store بررسی کنید. خوشحال میشوم اگر آن را امتحان کردید یا نظراتی دارید، با من در میان بگذارید.