Rapid prototyping and AI development for a startup: from idea to a mobile app in 1 week
Attico’s team developed a mobile app for healthy eating in just a week using AI for rapid prototyping.
Introduction
AI is becoming a regular business tool, especially for large companies. The U.S. Census Bureau reports that 37% of companies with 250+ employees are using AI in 2026. In the Information sector, the number is close to 40%.
At this point, the question is no longer whether to use AI in business workflows. It’s about how to bring AI into everyday work without letting speed come at the cost of quality or creating more technical debt.
You can see this clearly when starting a new product. Requirements are constantly changing, some decisions have to be made along the way, and the result is needed quickly.
Asking an AI agent to “build the app” isn’t enough in this situation — for complex products, it’s important to define clear rules upfront, agree on the requirements, and leave less room for interpretation.
That’s exactly what we at Attico wanted to test in practice — using AI for rapid prototyping to build a working proof of concept for a mobile app in a short time, with designs for about half of the screens, high-level requirements, and two ready-to-use APIs.
The idea came from our partner, who suggested working together and sharing our knowledge and ideas. From our side, we could bring in our technical expertise and focus on the areas we know best.
At first, we took the usual approach. We used some of our existing work and reusable components — our design system, prototypes, the client’s color options, and our existing solutions for web and mobile apps.
But it quickly became clear that this wasn’t enough for a proof of concept (PoC). The product idea was still taking shape and could change a lot as we worked on it.
So we decided to try a different approach. We moved to AI-assisted development and then based our work on specification-driven development (SDD), which we’ll explain below.
Choosing the tech stack and AI tools
Our team chose the tech stack with one thing in mind — most of the development would be done by an AI agent.
That’s why we went with React Native — a popular technology with a large ecosystem, extensive documentation, and many real-world use cases, so this made it easier for the AI agent to work with the technology.
We also used Expo, which provides tools and services for React Native, including the SDK, development tools, and services for building and delivering apps. In our project, it helped us work with libraries and build the final app.
In the end, React Native + Expo was the most practical and easy-to-understand setup for this kind of PoC.
For the AI tools, our specialists naturally used Claude Design, Claude Code, and SpecKit toolkit together.
We had already used Claude Design for designs, templates, and prototypes, so it made sense to keep using it for this experiment. Claude Code was chosen to work alongside Claude Design because they are part of the same ecosystem. We also added SpecKit, an open-source toolkit for applying the SDD approach. It helps the AI agent create and follow a clear specification, and it integrates easily with Claude Code.
Project starting point
At the beginning, our team had a fairly basic setup: an idea from the client, examples of similar apps, designs for about half of the screens, and high-level requirements that were still changing as we worked. We needed to build two ready-to-use APIs — one for authentication and user data, and another for integrating with the AI system.
The application — a healthy eating service — was built completely from scratch using AI for mobile app development. Via this app, users could sign up, get AI-powered recommendations about healthy food, and track their data.
SDD and why it matters in AI development
SDD — Spec-Driven Development — is an approach where the specification is written first, and the application is built based on it.
In the past, a developer would get a document from a business analyst or project manager explaining how the system should work and then build it in code. The idea is still the same, but the difference is that now AI can take on part of the developer’s work.
When working with AI, the specification should be specific enough to leave as little room for interpretation as possible. It should clearly define the requirements, expected behavior, constraints, and other details the AI agent needs to implement the application correctly.
Why formalize how business works with an AI agent
You might ask: why do we need SpecKit? Why not just use, for example, Claude Code with a good prompt?
The main thing SpecKit gives you is a structured specification. It captures not only what needs to be built, but also project rules, requirements, constraints, technical decisions, individual tasks, and ways to verify the result.
In practice, it creates a large, structured knowledge base of rules and project context for the agent, made up of many text files.
If you try to pass all of this through a regular conversation with Claude Code, the context keeps growing and may eventually exceed the context window. The agent may then lose track of important information or be influenced by irrelevant context. As a result, the output becomes less predictable.
With SpecKit, the agent has clear instructions to work. The task is described in the specification along with the necessary context and requirements, and the agent uses this information while working.
A regular prompt works well for small tasks, like making a quick fix. But for a full project that needs to be built from scratch, it becomes difficult to provide and maintain all the necessary context in a single conversation.
The whole flow in simple terms
To understand the flow at each step from a human point of view, rather than from the terminal, it’s enough to look at this diagram:
Here’s what the process looks like:
So, first we set the general rules and a common language for the project. Then we describe the product and technical requirements in detail. After that, we turn everything into specific implementation tasks.
EARS syntax vs. human language
You might ask — what’s wrong with regular requirements written in plain human language? The thing is, the specification needs to be as clear and detailed as possible. For an AI agent, any ambiguity leaves room for interpretation. If a scenario isn’t described, the agent will either ask a question or decide for itself how the system should work. In that case, the result may not match what you expected.
We used Easy Approach to Requirements Syntax (EARS), an approach that helps structure requirements more clearly to avoid this. This made it harder for the AI agent to interpret them in its own way or fill in missing details. For example, instead of a general description, we defined specific behavior: a user clicks “Delete account,” and the system should show a confirmation window.
A specification with fewer gaps means less time spent later on fixes and clarifications.
How to test the interface before development
Our team used a clickable HTML prototype as a quick way to test the future interface with the client before development started. This was part of our AI for rapid prototyping approach. In Claude Design, we took the designs from about 50% to a complete set of screens and built a prototype that covered the main user scenarios.
The client could go through these scenarios, see what worked well and what didn’t, and give feedback right away. We quickly made the necessary changes to the prototype, so we could solve many questions before they reached development.
API as part of the AI agent’s context
The AI agent needs a clear description of the API so it can describe the contracts correctly. OpenAPI works well for this because it provides endpoints, requests, and responses structured in one place. This makes it easier for the agent to understand the API and use this information when working on the project.
If you only have a Postman Collection, it usually needs some extra preparation because it doesn’t give the same level of formal API description as an OpenAPI specification.
Controlling the AI agent’s work
To keep track of the agent’s work, our specialists split the development into milestones of around 10 related tasks. Each task had clear completion criteria, and the rule “one task = one commit” gave us checkpoints. If the agent went in the wrong direction, we could roll back, clarify the instructions, and run the task again.
The agent worked through the whole milestone step by step, and we checked the result at the end of each block. Each milestone started with a fresh context, without the history of previous milestones, so earlier discussions would not influence the agent's work.
The code wasn’t rewritten manually. From the start, we agreed that if something needed to be fixed, we would also do it through AI.
So, in this experiment, the AI agent was the tool we used for implementation. If we weren’t happy with the result, we didn’t edit the code manually. We explained to the agent what needed to be changed and worked through it with the agent until we got the needed result.
Interim and final results
The first result wasn’t good enough for us. The main problem was that the specification wasn’t complete enough, and we quickly saw this in the agent’s work.
Our team went back to the constitution and specification, updated them based on what we learned from the first attempt, and went through the process again. The second time, the result was much better, so we continued developing the app.
In the end, we had a working app that didn’t need to be thrown away after the PoC. We could keep developing it and use it as the foundation for the MVP, which showed the potential of AI mobile app development for this kind of project. The architecture and security requirements had been planned from the start, so the code was ready for further development.
There were some challenges. The agent could see the designs, but it didn’t always match them exactly, so we had to check and adjust some screens. Toward the end, we connected a virtual mobile device, and it became clear that in the next iteration, the agent should have more ways to check the visual result and test the app on its own.
Key insights on AI development
The main takeaway is that we really can use AI for full-scale development. But the right approach, a clear methodology, and an understanding of how to work with it are needed.
When all of this is in place, AI can be used for full development while still delivering a result that meets the project requirements and can be developed further.
Before we started, we had little experience with React Native and Expo. Still, we managed to build the app. Along the way, we learned more about the technology, understood what the agent was doing and how the app worked, while still not writing the code manually.
Here’s what we learned while working on the project:
The agent can write code well when it has a clear specification, checks, and the right tools. But the requirements and the final result are still defined by a person: the clearer the task is, the closer the result will be. That’s why the person is still responsible for defining the requirements and doing the final check of the specification before development starts.
Key takeaways and recommendations
If a team is starting its first SDD project, we recommend focusing on four things:
For the first step, you only need an AI agent, a repository, a basic product description, the main requirements, and a general direction for the design. You don’t need fully complete documentation at the start — you can work on the specification and other documents together with AI before coding begins.
SDD is quite universal: you can use it to build something from scratch, work with existing systems, or make small changes. The size of the task may change, but the basic principle stays the same — the clearer the specification, the more predictable the result.
Modern AI models can already write good-quality code. The main question is how well you guide and control them.
A person has experience and knowledge, while AI has a large amount of knowledge about code and existing approaches. It can solve the same task in different ways. If you don’t set clear boundaries and keep an eye on the result, you can end up with hard-to-read code and technical debt.
So, the quality of the result depends not only on the AI itself, but also on how you work with the agent: how clearly the requirements are defined, what context it has access to, and how well the checks are set up.
Related insights
Let's start with a complimentary consultation
Whether you have a small urgent task, or a large ambitious project, we can help