Developing a GitHub macOS App with ChatGPT Assistance

I recently embarked on a four-hour coding journey to create a macOS app that functions both as a standalone application and a menu bar extension. I tried to delegate as much coding as possible to ChatGPT.

The app’s primary function is to parse GitHub merge request URLs, extracting key information such as the group name, project name, and merge request number. It also formats the input, capitalizing the first letters of words in group or project names that aren’t separated by symbols in the URL.

One of the app’s features is the ability to generate rich format links with custom names, such as ‘MR #300 for Project Name in Group’. Additionally, it can construct full messages like ‘Please check out my MRs’ followed by a list of requests.

Throughout the development process, I extensively used ChatGPT for assistance, which yielded mixed results. For simpler tasks, like implementing menu bar functionality when closing the main window, ChatGPT provided accurate and helpful code snippets that worked immediately. It also offered seemingly legitimate suggestions for additional features like custom menu items and global hotkeys, though I chose not to implement these in the initial version.

However, when it came to more complex algorithmic problems, such as identifying words within a string given a set of common words and domain-specific abbreviations, ChatGPT’s performance was less impressive. It took about seven iterations to arrive at a workable solution, and even then, the code wasn’t particularly efficient. The process required significant input and algorithmic knowledge on my part, making me question whether it would have been faster to write the solution myself.

ChatGPT struggled with more intricate tasks, such as implementing the functionality to open the app window when clicking the menu bar icon. After multiple unsuccessful attempts and unrelated diversions, I resorted to Google search, which proved more efficient. Within minutes, I found information that, combined with my experience, allowed me to infer the correct solution.

In conclusion, while ChatGPT was helpful for writing simple, unfamiliar code snippets, it fell short on more complex tasks. The experience highlighted that effective use of AI coding assistants still requires substantial programming knowledge and experience. It’s possible that my approach to formulating questions could be improved to get better results. Nonetheless, this project served as an interesting exploration of the current capabilities and limitations of AI in software development.

You can find the final version of the app at https://github.com/stansidel/gitlab-link-formatter.

My conversations with ChatGPT along the way:


Posted

in

,

by

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *