Search results:

Back

Building an AI Chat App: Lessons Learned

A Journey of Challenges, Collaboration, and Growth

AI Summary

A Journey of Challenges, Collaboration, and Growth This is the story of a project that left a lasting impression on the entire GeekOnUp team: a representative AI conversation product. Its objective was simple to describe and difficult to deliver: the AI should understand context, respond quickly, and help users learnhow to communicate more naturally with other people.。

This is the story of a project that left a lasting impression on the entire GeekOnUp team:

a representative AI conversation product.


Its objective was simple to describe and difficult to deliver: the AI should understand context, respond quickly, and help users learnhow to communicate more naturally with other people.

The product needed to interpret context, tone, and emotion, then suggest responses that felt recognizably human rather than mechanical.


One colleague joked, 'This could probably get someone halfway through a difficult romantic conversation.'


The room laughed.

......


Behind the comment, however, were several months of concentrated work.

Making AI conversation feel natural, offering several responses without sounding forced, and helping users express themselves required understanding at several layers.


· Image recognition needed to interpret context, not only visible content.

· The conversation engine needed semantic continuity and sensitivity to emotion.

· Streaming output needed a natural rhythm without stalls or interruptions.


Delivering that experience required technical problem-solving and continuous coordination across roles. Eventually, the interaction became natural enough that users could momentarily forget they were working with AI.

A product begins to feel alive when an AI response feels sincere rather than generated.



A demanding delivery


AI that interprets images, holds a real-time conversation, and streams output smoothly depends on a large number of technical and design details, many of which require repeated revision.

During integration, problems emerged one after another.


  • Long streaming responses could stall and lose their natural rhythm.
  • The screenshot workflow behaved differently across operating systems, requiring separate treatment of permissions, capture accuracy, and data return.
  • UI animation and interaction details went through repeated rework to make one second of the experience feel natural.
  • Differences between native Android and iOS mechanisms created compatibility challenges.


 Note  

Android required careful handling of screen-capture permissions, thread safety, and compatibility across manufacturers.

iOS required screenshot capture, sharing, and extension communication inside the Extension sandbox.

The team designed reliable native modules for each platform, then exposed them through a unified interface to Flutter so the product could provide a consistent cross-platform experience.


For a period, the team rarely finished work at a conventional time.

The interface went through nearly ten revisions, while engineers were still repairing screenshot-based reply logic at 5:00 a.m.


On the final day before the National Day holiday, when many people had already begun their break, the project team was still working through the implementation line by line.



When the final release went live, streaming output finally ran with the intended fluidity.


Technical Challenges


To create a genuinely smooth conversational experience,

the engineering team optimized the system repeatedly, from its underlying architecture to the visible interaction.


  • Streaming-output optimization

We improved the Server-Sent Events mechanism

by maintaining an event buffer, splitting events on double newlines, controlling time to first byte precisely, and introducing safe interruption and recovery. Together, these changes improved continuity and real-time responsiveness.


  • Response-latency control

We rebuilt the data pipeline to keep time to first byte consistently within seconds and used progressive rendering to make reading feel closer to a live conversation.


  • UI and coordinate alignment

The automatic-reply panel needed to align accurately with recognized regions across resolutions and system layouts. Coordinate mapping and adaptive height calculations for nested views produced a consistent experience across screens.


  • Screenshot-recognition workflow

The primary difficulty was preserving a smooth end-to-end path after one-tap capture.

The team optimized the iOS extension workflow and Android screenshot listeners separately.

Permissions, data synchronization, thread safety, and device compatibility all required several iterations.

The resulting capture, recognition, and suggestion flow became usable, immediate, and reusable.


 Note  

Automatic screenshot replies depend on precise coordinate and size mapping together with adaptation to complex interfaces.

  • OCR coordinate mappingused scaleAspectFit calculations to transform coordinates accurately.
  • Bottom-sheet adaptationused UIStackView with systemLayoutSizeFitting so streamed content could determine its own height across screen sizes.
  • Markdown renderingused the Down library with preprocessing for HTML entities and tags to keep output stable.

Together, these capabilities created a consistent recognition, understanding, and recommendation path across device models.



The product achieved response times measured in seconds and a streaming experience the customer described as exceptionally smooth.

That outcome required dozens of releases, extensive debugging, and a team prepared to manage difficult system behavior behind a simple interface.


Collaboration and delivery


During delivery, the team faced frequent requirement changes, coordination with external contributors,

and uncertainty created by several roles developing in parallel.


Our response was an open, visible collaboration model.



That approach made the project more than a delivery exercise. It became a process of co-creation.


The product launched on schedule and received strong customer feedback.

The experience exceeded expectations, and the customer initiated a second phase. For us, that commitment was the clearest validation.


Every delivery should be the beginning of a long-term relationship


Retrospective and growth


The team conducted a detailed retrospective after launch.

The problems we uncovered became valuable operating assets:


  • technical evaluation needed to be more precise at the beginning,
  • external collaboration needed clearer delivery standards and stronger quality control,
  • and the project needed quantitative measures such as code quality and defect regression rates.

Those findings led us to establish a more complete set of project quality standards and operating procedures.

The system covers code review, test pass rates, and mechanisms for tracing quality issues to their source.

Project management moved beyond subjective reflection toward a systematic and traceable process.


At GeekOnUp, we do not avoid exposing problems.

  ......


The retrospective ended with a discussion about growth.


Deng Yichuan said:

'Every project is an opportunity to grow and a challenge against our previous limits.

Who do we want to become in three or five years?

If GeekOnUp is a place worth committing to, each person should consider

what kind of technology professional they want to become.'


'If a large project takes roughly four or five months,

you may have only nine such opportunities in three years.'

That means every three or four projects should represent a meaningful stage of development.

A colleague can move from junior to mid-level, from mid-level to senior, and from individual execution to leading a team.

Mistakes are not the problem.

What matters is finding a method inside the failure and discovering capability under pressure.'


With colleagues who take shared responsibility, difficult outcomes become achievable.

We grow through projects, and that growth makes our delivery more stable and more capable.

The objective is to create more work the team and customer can be proud of.


🎬

A lighter moment from the team


The improvised milk-tea awards


......


The retrospective included one important activity:

every project member would receive a title recognizing their contribution.

Only two hours remained before the meeting.

The team wanted something more memorable than reading the awards aloud,

so marketing developed a fast and practical solution:milk tea with custom character stickers.

Each title appeared on a small sticker featuring GeekOnUp's white-hat character, creating animprovised awards ceremony.



🏆 The Trusted Advisor Award recognized someone who understood customer needs precisely, provided solutions with composure, and earned the confidence reflected whenever the customer asked, 'What do you think?'


🏆 The Relentless Craft Award recognized the patience behind five detailed rounds of discussion and refinement on the home interface. Every pixel and interaction was reconsidered until the product matched the customer's expectation.


🏆 The Technical Anchor Award recognized the colleague who filled the team's image-recognition gap, resolved the most difficult screenshot-reply problems, and repeatedly committed code at five or six in the morning. Technical depth and quiet responsibility made this person the project's most dependable anchor.


🏆 The Delivery Champion Award recognized the colleague who stepped into apparently unsolvable problems, combined expertise with accountability, and turned an at-risk project into a successful delivery.


🏆 The Quality Guardian Award recognized the colleague who identified 293 defects through disciplined review and protected the quality threshold through exceptional attention and ownership.


🏆 The Unsung Contributor Award recognized the colleague who quietly took responsibility for the administration platform. The stable system and carefully structured code remain the clearest evidence of that contribution.


🏆 The All-Round Enabler Award recognized work ranging from forward-looking technical research to routine application packaging and critical code contributions, all of which created a stable foundation for the rest of the team.


🏆 The Program Leadership Award recognized exceptional coordination across people and resources while balancing schedule, quality, commitments, and cost through to a successful delivery.



Effort should not disappear, and careful work deserves recognition.

If we had to summarize the feeling that day, we would write:

'Commitment creates the best improvisation.'

Talk About Digital Transformation?

Talk About Digital Transformation?

Discuss digital transformation with GeekOnUp

一同向上生长

Growing Upward Together

Let's Talk About Your Ideas

  • Custom APP Development
  • Custom Mini Program Development
  • Custom Web Development
  • AI Agent Development
  • Enterprise Digital Transformation
  • Other