Leveraging AI To Build Apps
Artificial intelligence (AI) has already significantly impacted various industries and is quickly making its way into software development. As AI technology advances, software businesses will increasingly leverage it to build apps. In this blog post, I will explore how software businesses can and should use AI to streamline the app development process and reduce development costs.
We can use AI to automate various tasks, such as generating "boilerplate" code, writing automated tests, and reviewing code. AI is no longer a hypothetical academic entity. This article discusses how a company can leverage AI right now with real-world examples. I already use AI routinely, making my job easier and faster. Reach out to me on LinkedIn and let’s discuss how I can help you build an app.
The Human Bottleneck
Building software is an inherently human activity. Humans build it for other humans. This won't change. However, humans have many limitations that computers don't have. The most obvious one is typing speed. A basic app usually starts at around a thousand lines of code. Just typing this program up will take days for most programmers. Larger, more complicated apps get exponentially slower to type up and modify because the code can become a labyrinth quickly.
No matter how fast a human can type, it can never beat a computer. AI assistants can write code almost instantaneously. This code isn't always correct, but even with mistakes, it can flesh out an idea far more quickly than a human.
These two tools that both use OpenAI's technology. Copilot integrates with developer tools directly, while ChatGPT allows a person to chat with an AI directly. Both can produce code, but ChatGPT goes further in that it can answer questions about code and also explain code.
These tools currently have some limitations. They don't currently do things like build an entire app or submit changes on behalf of a developer. But, from what I have seen, these are not limitations on AI technology. Both these tools are in their infancy, and the areas of improvement revolve around the interface between the AI and the developer. This is a new field, and we can expect lots of innovation in this area. However, the limitations do not stop me from using AI to achieve better results more efficiently.
I asked ChatGPT to build a user registration screen for me. I had to ask it to make some corrections, and I corrected a few things, but this was the result. It created this far faster than I could.
Use AI Instead of App Templates
Digital agencies and consultancies often use "App Templates" or "Accelerators" to create the starting point for an app. They are usually predefined structures with a set model and UI workflow. The problem with existing app templates is the rigid, one-size-fits-all issue. They either generate too much code or need more.
If the template includes more, the app will start with too much bloat. This means extra maintenance, such as extra testing from the beginning. Developers will need to trim down the extra code or spend time maintaining it. If the template is missing code, the developer will need to write the code by hand.
AI code assistants offer a solution. You can ask it to generate small or large amounts of code at any time. While the current tooling, such as GitHub Copilot and ChatGPT, don't directly give you the tools to generate the entire app, you can feed your app's code to the AI, and it will write code in a style that you specify. You saw an example of this above. This means it can generate the initial code for you in the style you need.
Improve Existing Apps
AI development assistants can help us to improve existing apps. For example, an AI assistant can analyze a developer's code, identify any errors or inefficiencies, write tests, and suggest ways to improve it. This can save developers significant time and effort, allowing them to focus on more high-level tasks such as design and strategy.
Here is a Twitter thread that gives examples of how a person used ChatGPT in 11 different ways to improve existing code:
As AI advances, it will likely become increasingly integrated into the app development process. Companies that can leverage AI effectively will have a significant advantage over those that don't, as they will be able to build apps more efficiently and accurately.
It is important for software businesses to be mindful of the ethical implications of using AI in app development. Two major concerns are intellectual property theft and the threat to people's jobs.
There has been some controversy around AI using other people's code verbatim and not referencing the original code license. This is a legitimate concern. AI doesn't give you carte blanche rights to use other people's code. If AI rewrites other peoples' code for you, and that code is under a restrictive license, the author can still take you to court. But services like GitHub are introducing tools to help users recognize where the code comes from. That means you can make educated decisions about what code violates licenses and what code doesn't
AI still doesn't deal well with complex concepts, logic, and ideas. It can handle routine and repetitive tasks efficiently but struggles with more abstract and creative tasks that require problem-solving and critical thinking. You can see this easily. I asked ChatGPT a simple logic problem.
I never specified how many actual birds there were - only how many I could see. It made a huge logical leap. This illustrates how AI often makes mistakes and can even be misleading. Humans will need to guide it, test it, and curate the code for the foreseeable future, which is why AI won't replace humans or take away people's jobs.
Companies need to be mindful of making copyright violations, but this is not a new concern. Developers already copy and paste code from multiple sources, which could easily result in a lawsuit. Companies need to put processes in place to ensure that team members review the code for possible copyright infringements.
As a business owner, you'd know that efficiencies don't usually make people redundant. Instead, efficiencies usually lead to company growth. That means your employees can focus on quality rather than struggling to keep up.
AI has the potential to revolutionize the way that software businesses build apps. It is a powerful tool for software businesses to build apps more efficiently, but it is not a replacement for human developers. We can look at it as a way to augment and enhance the work of developers, allowing them to focus on more complex and creative tasks while AI handles the more routine and repetitive ones. I've already had great success with it, and I will continue to use it to deliver value to my clients.
Feel free to get in contact to discuss how AI can help your business or how I can build an app with AI for you.