The Journey Behind Velocity Lapse (Part 6)

December 5, 2024
The Journey Behind Velocity Lapse (Part 6)

Welcome to the 6th post in a series of “dev-log” style posts sharing my journey creating Velocity Lapse, a time-lapse app for Android.

You can read the previous posts to get context up to this point: Part 1, Part 2, Part 3, Part 4, and Part 5.

If you have any comments or suggestions, feel free to leave a comment below.

The v0.9.x series

I’m not going to give all the details on every release in the v0.9.x series this time. That would be too much (and perhaps quite boring).

Instead, I’ll just mention that this stage of development fixed many things and added many features that made Velocity Lapse feature complete and much more stable in preparation for the v1.0 launch later in the year.

Just a few of the highlights included localization, improvements to the manual camera controls, video effects, capture scheduling, 8K image capture and video export, and support for three different video codecs.

Localization

Although I had not originally planned to prioritize translations and localizations, things fell into place. I was able to get the app backend set up without too much issue. Then it was a matter of putting it out on social media and the forum requesting volunteers to add translations to Velocity Lapse.

Special thanks to @thomas_tesar for the Czech translation and @dzartsiomi for the Russian translation.

On the technical side, I used standard ARB files that Flutter uses natively for storing strings for localization. I decided to use Loco for managing the translations. That way the volunteer translators would have a nice interface to update the strings.

Both of these worked out well together.

Video Effects

As mentioned in a previous post, effects like motion blur and star trails were some of my personal feature requests.

With the video export now working smoothly, I decided to tackle these effects.

Using OpenCV and a bit of C++ through the Android NDK I was able to get satisfactory motion blur and light trails effects.

Preparing for the v1.0 release.

Finally, based on feedback from users and my own look at the state of Velocity Lapse, I knew that it was time to exit beta and launch. That isn’t to say that everything was absolutely perfect and ready to go (it won’t likely ever get to that point!).

At the start of November, I announced the launch date on 11/4/2024 via Instagram and the email list.

Speaking of which, one thing I think I could have done better was growing the email list. :)

User guide

With v1.0 on the horizon, I worked to create the user guide. It would give users an overview of the functionality and settings of Velocity Lapse. At first the guide was just a page on the main website, but was later moved to its own subdomain at guide.velocitylapse.com.

After two and a half years of development in early access beta, I knew that the current logo had served it’s purpose as a stand-in logo.

For whatever reason, I always had it in the back of my mind to “find the time” before the v1.0 launch to refine the concept to better reflect the state of Velocity Lapse. Here and there I would play with different designs, but I hadn’t come up with anything much.

Finally, I did find the time.

I simplified the logo both in terms of colors and shapes while still keeping with the same theme and concept.

The resulting logo was something I was much happier with than the prior design.

A few weeks before the v1.0 launch, I removed video gallery tab. I also changed the functionality so that videos played in the device video player app.

You might remember that in a previous post I had mentioned how the video gallery was a popular feature request. Well, based on looking at the analytics, it appeared that not very many people actually used the built-in video gallery.

That fact, combined with my realization that removing it would save me a lot of code burden, made it a clear decision. In my analysis, it turned out that by eliminating just the video gallery, I was able to cleanup a lot of code and dependencies.

No doubt, it felt wasteful to add and maintain a feature for almost two years only to remove it just before the v1.0 release. However, it was better to drop the burden sooner than later so I could focus on other parts of the app.

The week before the v1.0 launch

The week leading up to the launch day, I was busy doing my part to make the launch a success.

I redesigned the website, created promotional images, and scheduled the launch on Product Hunt.

With a couple last-minute bug fixes and tests, I uploaded the app bundle to the Google Play console a few days before the launch to give ample time for Google Play to review it.

Launch day: Nov. 17th, 2024

At 12:01a.m the v1.0 release of Velocity Lapse went live on Google Play. The Product Hunt launch was scheduled to go live at 12:01a.m PST (2:01a.m my time). I then went to sleep because I wasn’t going to stay up all night. :)

A few hours later I woke up to some comments on Product Hunt about the launch.

Since I had written up a plan and did a lot of preparation for the v1.0 launch, it was a matter of just following through. A post on Instagram, YouTube, Reddit and the forum was the majority of the promotion that I did on launch day outside of Product Hunt and the newsletter.

I spent most of the morning conversing with people on Product Hunt, Instagram, and via email.

On Product Hunt it ranked #10 which meant that it was featured on the homepage for the day (a really good thing).

By the end of the day, the v1.0 launch on Product Hunt received 103 upvotes and 13 comments. The day rank was #10 and the week rank #80.

Reflecting on the launch

Overall, the launch of Velocity Lapse into production went well. One might reasonably suggest that the v1.0 launch was more of an “official” thing rather than a real launch to the public, especially since Velocity Lapse had been available in early access for over 2 years.

All things considered, the v1.0 launch was a success with no major problems. For that I am very thankful. 🎉

After the launch

v1.1.0 was pushed into production not too long after the v1.0 launch. v1.1 added a remote shutter feature and other improvements that didn’t make it into the v1.0 release.

For the weeks following the launch, I pushed updates with bug fixes and new features in preparation for the new year.

Another milestone

Another milestone happened about the time of the v1.0 launch: Velocity Lapse crossed 200,000 downloads on Google Play.

The journey continues

Thanks for reading. I hope you’ve enjoyed reading this post.

If you have a suggestion, a comment, or advice, relating either to the app or this post, I’d love to hear what you have to share either in the comments below or via email.


A big thanks to numerous individuals for their support and advice, making this journey possible. Special thanks to @sundrycode for which I am grateful for his help developing the Android native side of the app and taking part in testing. And Yahweh, our Heavenly Father, from whom all knowledge and every good thing comes.


2026

Short story: George and the Mineshaft


Jun 14

The best place to be


Apr 20

I broke my writing streak, but that's okay


Apr 13

Using LLMs to write texts and emails?


Apr 8

'Can't' isn't a good excuse


Apr 7

He changes hearts


Apr 6

What commitment means


Apr 5

Parallels of Passover and the Messiah


Apr 4

Childish vs. childlike


Apr 3

Short story: A llama coincidence


Apr 2

Every work of art is saying something


Apr 1

How much of our anxiety is self-imposed?


Mar 31

Everything is a choice


Mar 30

Halfway commitment?


Mar 29

Be happy and joyful now


Mar 28

Short story: Olives ‘n Blessings


Mar 27

Short story: Canyon Rescue


Mar 26

Discipline requires looking far


Mar 25

Rushing isn't ideal


Mar 24

Live now


Mar 23

What is this site?


Mar 22

Going into debt is a really bad idea


Mar 21

Ebbs and flows


Mar 20

Life lived in-between


Mar 19

Thoughts on grief


Mar 18

A clear, closed door


Mar 17

Unnecessary complexity has a cost


Mar 16

Revising posts


Mar 15

An interesting shift


Mar 14

Short story: Bike Horn Greg


Mar 13

Every story is about relationships


Mar 12

Why are you moving?


Mar 11

Write plans in pencil


Mar 10

Short story: Mew dogfood


Mar 9

Too short


Mar 8

Convincing truth


Mar 7

No undo, redo


Mar 6

Once


Mar 5

The anxious octopus


Mar 4

Simplifying concepts


Mar 3

Computer programming, simplified?


Mar 2

Making history


Mar 1

Are you willing to be a fool?


Feb 28

Solomon's ask


Feb 27

Intellectual humility


Feb 26

Science, faith, and belief


Feb 25

Relationships are your wealth


Feb 24

Milestone: the 100th (continuous) post


Feb 23

Functional and beautiful


Feb 22

Asking the wrong question?


Feb 21

Short story: The Sleepwalker


Feb 20

Thoughts and temptation


Feb 19

Take a break


Feb 18

Short story: The Mailboy


Feb 17

You won't be good right away


Feb 16

Write down what inspires you


Feb 15

Blessings we don't often think about


Feb 14

When all is going well


Feb 13

A better business ethos?


Feb 12

Opening your mouth


Feb 11

The big picture of writing and art


Feb 10

Working more isn't always the right thing to do


Feb 9

Passion without discipline is not much


Feb 8

The word 'fiercely'


Feb 7

Where the abundant life is found


Feb 6

The wind and clouds of uncertainty


Feb 5

(Probably) an over analysis of social media


Feb 4

The final judgment


Feb 3

Please don't posture like this


Feb 2

Pruning to bear better fruit


Feb 1

Are we fulfilling our calling?


Jan 31

Random thoughts on individualism


Jan 30

Humility vs. pride


Jan 29

The amazing creativity of faces


Jan 28

Worry


Jan 27

True unity


Jan 26

A look into someone's brain


Jan 25

A real man


Jan 24

What makes art valuable


Jan 23

What matters and lasts is hard


Jan 22

Show up everyday and do your part


Jan 21

'Feeding the monster?'


Jan 20

Cup analogy


Jan 19

Please have convictions and opinions


Jan 18

Our imperfection is the point


Jan 17

Documenting the process of creating your project


Jan 16

Your sphere of influence is larger than you think


Jan 15

Never say never


Jan 14

Politically correct?


Jan 13

Two extreme misrepresentations of the best days


Jan 12

Loose analogy of the OT/NT using math


Jan 11

Considering death makes us live


Jan 10

The reality of entreprenuership


Jan 9

Short story: Two ways


Jan 8

Intentional improving


Jan 7

Presented your way


Jan 6

Naming things


Jan 5

Short story: Surrender to win


Jan 4

Forms of lying


Jan 3

How I'd like to improve in writing these posts


Jan 2

Making plans


Jan 1

2025

Leaving 2025


Dec 31

Writing practice: Story forest description


Dec 30

Finishing things


Dec 29

The danger of overpromising


Dec 28

Using our gifts


Dec 27

Slow down


Dec 26

A Sass reminder


Dec 25

Weekly (experimental) comic


Dec 24

Fiction story plot ideation reference


Dec 23

How to see spiritual growth


Dec 22

(Quick explanation) Why I keep the Sabbath


Dec 21

Casting lots to make decisions


Dec 20

Importance of a good attitude


Dec 19

Say hello


Dec 18

Short story: Turn lemons into lemonade


Dec 17

Short story: Nothing for granted


Dec 16

Truth matters


Dec 15

Think about the ending first


Dec 14

We won't agree on everything (and that's okay)


Dec 13

We need more emphasis on discernment


Dec 12

Don't focus on pleasing critics or your peers


Dec 11

No insignificant calling


Dec 10

An artist's sketchbook is their greatest asset


Dec 9

Two things to understand


Dec 8

Play


Dec 7

The only approval that matters


Dec 6

Where our worth comes from


Dec 5

Lessons illustrating a children's book for the first time


Dec 4

(Maybe) how to post consistently


Dec 3

What we can control


Dec 2

Influences shape us


Dec 1

What I've learned about ideas


Nov 30

More valid, not less


Nov 29

More than two


Nov 28

Like fish (Carp, to be exact)


Nov 27

He cares


Nov 26

Consistency over time


Nov 25

Love


Nov 24

When you're winning, be quiet


Nov 23

An eternal perspective


Nov 22

Small victories


Nov 21

Joseph


Nov 20

Being used


Nov 19

Storytelling and MMC


Nov 18

Imperfections


Nov 17

Don't wait until you're ready


Nov 16

Abraham's test


Nov 15

Manage energy not time


Nov 13

Limits of logic


Aug 27

Not even close


May 1