First round: what can the app do?
TL;DR: First documentation draft with a chat bot, then refine by hand, and then review with a bot.
I spent about one hour working with Claude on the app modes: child station and parent station.
I know roughly what I want to be able to achieve: child station advertises its presence while the parent station discovers it; they get paired; child station's audio gets streamed until explicit session-stop from either station.
I went ahead a let Claude (the chat bot) draw two finite state machines to model the two modes.
It was nice to let it write the diagrams for me after removing implicitness and approximations from my prompts. I also like the idea that it can review and offer simplifications (it did that successfully).
On the other hand, Mermaid was made to be easy to write, and it definitely is. I think writing the diagrams myself is actually faster as I can directly edit what's wrong or superfluous without translating that to a prompt.
Conclusion: use the tool to review/critique the architecture (here: FSM) but just do it yourself (after potentially a first draft from the tool if you are blanking out). This step is about refining the general idea in your mind and removing unclarity in what actions are possible / what states the app can take. Whichever way you iterate, you'll feel you made good progress, so don't let that sentiment fool yourself on the tool productivity gains.
False start, or wasting time following a red herring
TL;DR: Early decisions that I did not challenge ended up wasting me a couple of hours.
TODO: Talk about letting the LLM go deep into a self-induced rabbit-hole
Bootstrapping the project
TL;DR: (Somewhat, see edit) Productive text generation and feature refinement from a rough idea.
I dove right in the project (with a chat bot) with an initial README to describe the project goal and scope. It took me about ~~½h~~ a good hour to refine and be satisfied with the content. edit: I substantially edited the README further —on my own, to drop a lot of the LLM early decisions— so let's add ½h of manual work here.)
I could basically describe my rough idea (privacy first, peer-to-peer child monitoring Android app) and get some proper sentences as well as bullet points describing the features very easily with the chat bot.
edit: What is, in hindsight, not great is that it spitted an architecture right off the bat and then got a bit stuck in it. Since I don't have experience with modern Android app architecture (also, in Kotlin), I just took a look and accepted the idea without challenging it.
Designing the (code) architecture should be a relatively important piece of the puzzle and it should be 1) its own problem solving task, and 2) delegated as much as possible. What I mean is that for this app in particular, I put more emphasis on the UX and workflow than on the architecture. I do want to be picky about the former and accept whatever works for the latter. Hence, architecture should come after user journey!
Project initiation
I don't really like the fact that there's not so many child monitoring apps available on F-droid.
I'm looking for an excuse to try the modern Android app development experience (it's been ten years since I stopped working on the Android OS and apps!). I'll try to get something working for cheap (prototype, peer-to-peer, minimal UI).
The ecosystem changed a lot in a decade, but I assume the basics that I know remained stable (app lifecycle, etc.). So, yes, I should be able to architect an app without hopefully the need to know all the new framework widgets and new layout systems.
Since I want to exercise some of the AI tooling out there, I'll try to record how much time I spent on each step. At the end, I want to clearly see how long the project took to MVP and what kind of activities I undertook. Will I be (blissfully) stuck in the architect role and let the tooling generate the code for me? How much UI layout will I do myself?
As a closing note, I want to emphasise that I still hold a circumspect view on the whole AI hype of our times. The ethical aspects are by no means evaluated here, and that will remain a sticking point for me. On the other hand, our industry is heading towards more AI tooling/automation/whatnot and I believe I now must have an educated opinion on the matter. Whether positive or negative, I need to be able to support my position with (enough) experience.