Close Menu
    Facebook LinkedIn YouTube WhatsApp X (Twitter) Pinterest
    Trending
    • Dreaming in Cubes | Towards Data Science
    • Onda tiny house flips layout to fit three bedrooms and two bathrooms
    • Best Meta Glasses (2026): Ray-Ban, Oakley, AR
    • At the Beijing half-marathon, several humanoid robots beat human winners by 10+ minutes; a robot made by Honor beat the human world record held by Jacob Kiplimo (Reuters)
    • 1000xResist Studio’s Next Indie Game Asks: Can You Convince an AI It Isn’t Human?
    • Efficient hybrid minivan delivers MPG
    • How Can Astronauts Tell How Fast They’re Going?
    • A look at the AI nonprofit METR, whose time-horizon metrics are used by AI researchers and Wall Street investors to track the rapid development of AI systems (Kevin Roose/New York Times)
    Facebook LinkedIn WhatsApp
    Times FeaturedTimes Featured
    Sunday, April 19
    • Home
    • Founders
    • Startups
    • Technology
    • Profiles
    • Entrepreneurs
    • Leaders
    • Students
    • VC Funds
    • More
      • AI
      • Robotics
      • Industries
      • Global
    Times FeaturedTimes Featured
    Home»Artificial Intelligence»The Step-by-Step Process of Adding a New Feature to My IOS App with Cursor
    Artificial Intelligence

    The Step-by-Step Process of Adding a New Feature to My IOS App with Cursor

    Editor Times FeaturedBy Editor Times FeaturedDecember 5, 2025No Comments7 Mins Read
    Facebook Twitter Pinterest Telegram LinkedIn Tumblr WhatsApp Email
    Share
    Facebook Twitter LinkedIn Pinterest Telegram Email WhatsApp Copy Link


    I vibe-coding to create web sites and IOS apps. I have already got two apps reside on the App Retailer.

    My first app was Brush Tracker, which helps you observe your each day brushing habits, keep constant, and hold your tooth clear by means of small motivational nudges. I additionally wrote an article on your entire means of constructing the app and transport it to the App Retailer.

    Not too long ago, I made a decision so as to add a brand new characteristic to Brush Tracker: a calendar-like grid that exhibits the consumer’s month-to-month brushing consistency. On this article, I’ll stroll you thru how I applied this characteristic utilizing Cursor and some handbook changes I made.

    Preliminary immediate

    What I had in thoughts was just like the grids you see in habit-tracking apps or the contribution graph on GitHub.

    I began with the Plan Mode of Cursor, which I’ve discovered extremely environment friendly when including a brand new characteristic or making a giant change. You outline the characteristic or clarify the duty and Cursor generates an in depth implementation plan.

    Right here is the precise immediate I used within the Plan Mode to get began:

    I wish to add a calendar-like grid to trace days consumer full brushings. Make the grid with squares the place every sq. represents a day in a month. The preliminary state of the squares within the grid are black. Paint the sq. with inexperienced if the consumer completes all of the brushings, with gentle inexperienced if the consumer partially full the brushings. For instance, consumer units the each day brushings rely as 2. In the event that they full one brushing in a day, the sq. ought to be gentle inexperienced. In the event that they full two brushings in day, the sq. for that day ought to be inexperienced. The grid ought to be accessible by urgent a calendar icon on the highest left of the display screen.

    Cursor requested me two inquiries to make clear some particulars earlier than finalizing the implementation plan. I actually appreciated this step as a result of it’s reassuring to see Cursor search clarification as a substitute of constructing assumptions by itself.

    The 2 questions Cursor requested:

    • Ought to the calendar grid present solely the present month, or enable navigation between months?
    • Ought to we begin monitoring from in the present day ahead, or additionally present previous days (which might be black)?

    I instructed Cursor to permit navigation between months and to show the earlier days of the month in black. Then, Cursor created a markdown file outlining an in depth implementation plan.

    The plan explains intimately how the characteristic shall be applied and likewise features a record of actionable todo gadgets.

    Cursor’s TODO gadgets:

    • Prolong BrushModel to trace historic each day brushing information with persistence
    • Create CalendarGridView part with month grid and color-coded squares
    • Add calendar icon button to prime left of ContentView
    • Combine CalendarGridView with ContentView utilizing sheet presentation

    Subsequent, I requested Cursor to implement the plan. It additionally permits for modifying the plan earlier than execution, however I needed to stay with Cursor’s unique define as-is.

    The implementation labored on the very first attempt, and I used to be in a position to check the characteristic straight within the Xcode simulator. Nevertheless, the design was horrible:

    Observe: All photographs used on this article embody screenshots from my app, Brush Tracker.

    Xcode simulator not consists of date and time settings, so I modified the system date on my Mac to check how the grid colours up to date throughout completely different days.

    I didn’t like this fashion in any respect. So I requested Cursor to revamp the grid utilizing the next immediate:

    We have to change the design of the grid. What I take into consideration is one thing like Github contributions grid. Additionally, don’t present the day values within the squares representing days.

    This immediate didn’t work as I’d hoped. The one change it made was eradicating the day numbers:

    Subsequent, I shared a pattern picture of the grid fashion I would like and requested Cursor to make an identical design.

    The brand new design was nearer to what I had in thoughts nevertheless it had structural points. The squares have been too small and didn’t scale properly inside the structure:

    So there are two fundamental issues with this design:

    1. Every month accommodates 42 squares (not representing the times in any month).
    2. Squares are too small.

    I requested Cursor to repair the primary drawback with this immediate:

    Within the present implementation, there are 42 squares in November and December. Squares within the grid symbolize days in a month so the variety of squares have to be equal to the variety of days in that month.

    The opposite drawback was less complicated and I might remedy it by adjusting some parameter values. As an example, the scale of the squares within the grid will be modified by the squareSize parameter:

    struct DaySquare: View {
        let isToday: Bool
        let isCurrentMonth: Bool
        let brushCount: Int
        let brushesPerDay: Int
        
        non-public let squareSize: CGFloat = 8 // change this parameter

    Right here is how the grid takes care of I modified the sq. measurement to 32:

    The opposite drawback that might be solved by adjusting parameter values is the padding between rows.

    Within the screenshot above, there appears to be no area between rows. This may be modified by rising padding between rows.

    I additionally wish to have 8 squares (i.e. days) in a row and alter the area between rows.

    All of those will be finished within the following code snippet:

                // Calendar grid - smaller GitHub fashion
                LazyVGrid(columns: Array(repeating: GridItem(.versatile(), spacing: 0.2), rely: 8), spacing: 0) {
                    ForEach(Array(calendarDays.enumerated()), id: .offset) { index, dayInfo in
                        DaySquare(
                            isToday: dayInfo.isToday,
                            isCurrentMonth: dayInfo.isCurrentMonth,
                            brushCount: dayInfo.brushCount,
                            brushesPerDay: mannequin.brushesPerDay,
                            measurement: 32
                        )
                        .padding(.backside, 3)
                    }
                }
    • spacing controls the area between squares in a row
    • padding controls the area between rows
    • rely controls the variety of squares in a row

    After enjoying round with these parameter values within the code snippet above, I received the next grid:

    If the consumer completes all brushings in a day, she will get a vivid inexperienced. In case of partial completion, the sq. for that day is coloured with pale inexperienced. The opposite days are proven in black and the present day is indicated with a white body.

    After implementing the characteristic to maintain observe of previous days, it appeared pure so as to add notifications for streaks. I requested Cursor to do that utilizing the next immediate:

    Add notifications for when the consumer accomplished all brushings for 10, 20, and 30 days. Additionally, add a month notification for when the consumer completes all days in a month. Notifications ought to be encouraging and motivating.

    The grid I created just isn’t one of the best design nevertheless it’s ok to ship the message. When a consumer appears at this grid, she instantly will get an thought of her tooth brushing frequency.

    With the assistance of Cursor and a few handbook tweaks, I used to be in a position to implement and ship this characteristic in a couple of hours. On the time of writing this text, this model remains to be in App Retailer overview. By the point you learn the article, it could be distributed. Right here is the App Retailer hyperlink to Brush Tracker for those who’d like to check out it or check out the app.

    Thanks for studying! If in case you have any suggestions concerning the article or the app, I’d love to listen to your ideas.



    Source link

    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
    Editor Times Featured
    • Website

    Related Posts

    Dreaming in Cubes | Towards Data Science

    April 19, 2026

    AI Agents Need Their Own Desk, and Git Worktrees Give Them One

    April 18, 2026

    Your RAG System Retrieves the Right Data — But Still Produces Wrong Answers. Here’s Why (and How to Fix It).

    April 18, 2026

    Europe Warns of a Next-Gen Cyber Threat

    April 18, 2026

    How to Learn Python for Data Science Fast in 2026 (Without Wasting Time)

    April 18, 2026

    A Practical Guide to Memory for Autonomous LLM Agents

    April 17, 2026

    Comments are closed.

    Editors Picks

    Dreaming in Cubes | Towards Data Science

    April 19, 2026

    Onda tiny house flips layout to fit three bedrooms and two bathrooms

    April 19, 2026

    Best Meta Glasses (2026): Ray-Ban, Oakley, AR

    April 19, 2026

    At the Beijing half-marathon, several humanoid robots beat human winners by 10+ minutes; a robot made by Honor beat the human world record held by Jacob Kiplimo (Reuters)

    April 19, 2026
    Categories
    • Founders
    • Startups
    • Technology
    • Profiles
    • Entrepreneurs
    • Leaders
    • Students
    • VC Funds
    About Us
    About Us

    Welcome to Times Featured, an AI-driven entrepreneurship growth engine that is transforming the future of work, bridging the digital divide and encouraging younger community inclusion in the 4th Industrial Revolution, and nurturing new market leaders.

    Empowering the growth of profiles, leaders, entrepreneurs businesses, and startups on international landscape.

    Asia-Middle East-Europe-North America-Australia-Africa

    Facebook LinkedIn WhatsApp
    Featured Picks

    US Army’s New Mobile 20kW Anti-Drone Laser

    December 30, 2025

    Santa Anita Park sues California Department of Justice over alleged warrantless seizure

    January 23, 2026

    Qi2 Wireless Charging: Everything You Need to Know (2025)

    February 2, 2025
    Categories
    • Founders
    • Startups
    • Technology
    • Profiles
    • Entrepreneurs
    • Leaders
    • Students
    • VC Funds
    Copyright © 2024 Timesfeatured.com IP Limited. All Rights.
    • Privacy Policy
    • Disclaimer
    • Terms and Conditions
    • About us
    • Contact us

    Type above and press Enter to search. Press Esc to cancel.