Skip to main content

Posts

Showing posts with the label Development

Balloons - A vibe coded kids learning app

Kids loves balloons! But they love smartphones, more than anything. So it occurred to me, why not make something useful out of it!  Lets make a "game" is what I thought, because telling a kid here is a learning app, learn something. No, no, that's not how it is, at least now. I just released the app a few days back.  What is Balloons - Kids Learning App? Balloons is a simple app with gamified concept of learning . It offers a distraction free and less addicting UI and UX, and a enjoyable way to learn while playing. Then main inspiration behind this is kind of the anti-climatic one, because I was inspired by a great learning app to build something even greater, rather I just wanted to fix the experience that some of the app are giving. And the objective is a learning app that helps Kids learn the basic of language, and basics, it was aimed to provide them a distraction free space while giving then an enjoyable experience, without any ads, not using flashy colors and absolu...

Code review is the only skill you need for vibe coding

It is becoming more common now a days that we develop an application just for fun or maybe for a more serious use case which we often struggle to find an app for, or if our favorite app doesn't have the feature we need. Or may be you just wanted to Vibe coded an app, just because everyone is doing it and it is becoming more and more easy and useful. In reality vibe coding comes with a cost, and the debt of that more precisely mentioned as AI slop. AI slop is when the app only does one thing, like an audio player app only play audio in a specific format, and it breaks when an another popular format is thrown in its way. Because, a digital audio is not limited to a single format, we use .ogg for recording and .midi for ringtones (At least this is how it used to be). The audio player analogy here is just for illustrative purpose, and it can expand further in all types of applications. So If you build an audio player and that couldn't handle the variety of formats available, what v...

Test Driven Development - An agentic way to develop software

 Test Driven Development is my favorite kind of Software Development Life Cycle.  TDD - Test Driven Development is a Software Development Life Cycle, that leads the development of a feature by writing the test first.  The loop goes as, Write failing unit test -> Write the actual implementation -> Run the test so it passes Test -> Develop -> Pass : Repeat Now this verifies the implemented functionality is doing what is supposed to do. Lets look at a simple example -I think for the last couple of articles we are only looking at theory without any actual code or working lets fix that. Say you are working on a feature where you need to give certain features only to Premium users, for that, first you will write unit test as fun `verify user have premimum membership`(){     //given     setupUserProfile(loggedInViaEmail = true )         //when     val result = sut . checkIsUserHaveActiveSubscription()   ...

Unit Tests can help AI Assisted Development from code breaks

Code Breaks are the unspoken enemy of the Software Development Cycle. When you are writing code for a new feature there is a chance you might break an existing working functionality. Well, this can often come from code smells, remember Formatting and Linting, in that article we briefly touch based about about code smells. The irony here is, code breaks can sometimes introduced because of fixing code smells, lets look at an example, say, you want to ask the user for feedback after they tried a feature for certain number of times. For that you may put a number in constant as "ASK_FEEDBACK_AFTER_COUNT" so here this constant means, you have to ask the user about feedback after X count, the count is tracked as either as an action the user performs or the page transition. Now, you add a new feature, and here you can the user's feedback after a different count, lets say after 10 action, so instead of introducing a new variable, you edit the previous one. This is where the code b...

Templates gives a guidance to AI Assisted Development tools when generating code - Vibe Coding

Templates are a useful pattern holders that guide Agentic IDEs on how to structure the output. If I know one thing, that, LLMs, AIs are getting increasingly good at following instruction or pattern. Say, you give it a passage or a paragraph, with some extra spacing and indention, and ask the AI agent to follow the same spacing and indention, and create a new paragraph, at most it can maintain the same, after all that is how they learn about everything. Now, look at this from programming perspective, there are number of programming languages available, and each one of the has its own unique syntax, like a line in Java must end with a semicolon whereas in Kotlin we don't have to worry about that.  The key idea here is, Large Language Models, at the time of training were fed enormous amount of data to learn the pattern, and they identify them, in the above case, every time they see a Java code they "learn" there is a semicolon at the end of the line, but when they see a simi...

How Scripting can enforce and improve code quality when vibe coding

In the following series of articles we have been going through how to improve the quality of code written by AI assisted development tools , and the next item on our list is Scripting. Scripting: If you search on Google for "Scripting", usually you get a bunch of web pages as result, from there you open up couple of pages at the same time and run through every one of them, just to get an understanding from a wider perspective, because some might add a little bit of additional use case which others thinks to be unnecessary. However, If you Google "Scripting" today, you get the straight up answer, a summary of all the four to five pages' definition, and an example if necessary, I'm not sure how this is going to scale in a business perspective, anyhow. Scripting - is defined as a small piece of code that you can use to perform a simple task, this is also a Program, written using well known, programming languages including but not limited to Python or JavaScript...

Formatting or Linting - Helps a lot in AI Assisted development - Vibe Coding

 I'm from Android background - but that doesn't really matter anymore since the "invention" of Vibe Coding. So, In my previous post, I have briefly touch based about AI Assisted Development - Vibe Coding, if you missed it do checkout at :  AI Assisted Development - Vibe coding is good, when done right Now why I choose this title, Vibe coding is good when done right, because, when you are vibe coding with the Agentic IDEs, it generates more code in a spawn of minutes then a human can process. We are already seeing these Agentic IDEs, develop an operating system from scratch over night. In reality it would take about more than month, so the amount of code that is being written is larger than the amount code we can safely accept and understand. This is one of the concerns of Vibe coding, some talk about all the time and some doesn't care at all, and shows their app running localhost. But as a sensible developer like some, I'm also going to take advantage of these...

AI Assisted Development - Vibe coding is good, when done right

Vibe Coding. - Wikipedia explains, it is a software development practice assisted by artificial intelligence, so that would mean, just like the auto complete features on the modern IDE the code is completed for you. But the level of completion you get out AI-assisted development is much more than just a syntax completion.  I remember, when I first got my hands on GitHub copilot, it was merely just a code completion at scale, if I start writing a function, it suggest me the next few lines, and mostly the entire function, Ah... good old days.  But from there where we are now is what most people are "scared" about. Unlike the syntax completion or the early tab completion, now a days the AI assisted development has evolved to a level where it can autonomously write an entire operating system from scratch, I mean how about that! AI Assisted Development Let take a quick detour on what is really is AI-assisted development. AI(LLMs) are good at predicting what comes after a sequence ...