- All Things Flutter
- Posts
- How I created an app in 15h
How I created an app in 15h
Let’s talk about VoicePost, my current side projeckt. It started with an idea.
As I post daily on LinkedIn, I need quite a lot of content. And most of my ideas come to me on my daily morning walk.
Voice post app
But I hate stopping and typing my ideas into Notion.
There had to be a better way.
So I thought, why not create an app that turns audio into a post draft.
The first step
I just sat down and created a mockup.
3 screens, that’s all there was in the beginning.
I started programming
Exactly for a reason like this, I created my Fast Flutter Template. I want to move quickly.
Basic app setup, done
Login, done.
Firebase integration, done.
But let’s take a step back, I didn’t even start with Firebase as a backend. I commented out one line in the code, the ‘Authguard’ and the app could be used without login.
But what had I to do?
[ ] record audio
[ ] transcribe it
[ ] send it to openAI
Record was easy.
I used this package https://pub.dev/packages/record.
Docs were straight forward.
Here is my voice controller. (yes, no error handling, no permission check, it’s an MVP)
Next: Transcribe
I know I could do it in the client with some Google ML stuff, but I thought if I need to already use OpenAI for the post generation, I could just also transcribe it.
Had a quick look at the OpenAI documentation and quickly had the right call.
I tried to use the api with this package https://pub.dev/packages/chat_gpt_sdk. But it just wouldn’t work.
Back to basics, just do a simple http.post. Send the audio as payload. Done.
Final: Post generation
Another API call to OpenAI using their chat completions endpoint.
Done.
Ok, here is still a lot to be done when it comes to prompt engineering.
Making it ready for testing:
The problem: I had my OpenAI API key in the client. And that’s not safe nor good.
I thought for a second to let the users just add their own API key, but that would only work for tech savvy people.
So my natural choice was Firebase.
[ ] Activate functions
[ ] Write a
transcribeAudio
[ ] Write a
generatePost
Struggled a bit with the locations where the functions were hosted.
But now the app is ready to be tested.
Summary
I created VoicePost in 15h.
This was only possible because I already did it 30+ times. Skills stack.
And because I used my template Fast Flutter Template, of course.
A basic app setup takes me less than 1h now.
Here is the link if you’re interested.
I really appreciate you reading my posts.
Thank you.
I would be even more grateful if you would do me a favor and follow me on Twitter/X. I only started using it and need some help there 🙂
Reply