Imagine walking down the street, by Abdul-Rahman HanyImagine walking down the street, by Abdul-Rahman Hany

Imagine walking down the street,

Abdul-Rahman Hany

Abdul-Rahman Hany

Imagine walking down the street, raising your phone, and finding a message someone left hanging in mid-air right where you're standing—a photo, a song, a text post—like they left a piece of themselves behind in the real world.
That was the client’s request. I said, "On it."
I built the feature in just two days. Open the camera, and the object appeared perfectly in the air. I sent it to the client, feeling pretty proud.
His response came back: "I don't see anything."
I kept wondering—how is this even possible? I could see it clearly on my screen. Then, it hit me.
The AR object was being positioned using GPS. When I dropped it, my device calculated its position based on mycoordinates. When the client opened the app in the same spot, his device calculated it from his side—and the error margin between the two devices reached up to 5 meters.
This meant the message I left right in front of the door appeared for him in the middle of the street.
I searched through every available Flutter package to find a solution. Nothing.
That’s where things got complicated, because the only way out was to go Native.
I opened Google's ARCore documentation and started digging through the examples. At first, I barely understood a thing. But I kept reading.
Slowly, the picture became clearer. I began to understand how anchors are formed—how the device scans the visual features of the physical environment (the angles, the lighting, the precise details) and uploads them to the cloud, instead of relying solely on GPS.
It’s called Google Cloud Anchors. And that was the missing piece.
I built the method channel between Flutter and Native code by hand. Line by line. Until it finally worked.
The first time I hosted an object, had someone else open the app in the same exact spot, and they saw it precisely where it was meant to be—I felt something hard to put into words.
Not just because the code worked. But because I stepped into a territory that terrified me, and I walked out of it with a brand-new skill.
When there isn't a package ready for you, it’s not the end of the road. It’s the beginning of a journey to learn something no one else in your immediate circle is talking about.
What’s the toughest technical challenge you've dived into, even when it terrified you? 👇
#Flutter #ARCore #NativeDevelopment #MobileDevelopment #SoftwareEngineering
Like this project

Posted Jun 5, 2026

Imagine walking down the street, raising your phone, and finding a message someone left hanging in mid-air right where you're standing—a photo, a song, a tex...

Likes

0

Views

0