Post of inspiration

Dmitriy Kalachniuk
4 min readMay 11, 2021

Once upon a time there lived one nerd. His dream was to write an open source tool that he will eventually put on GitHub and all the world with use it.

This is how I should start this article, but — no

Indeed I wanted to write a tool that will be useful for developers across the world, something that we all can use on daily bases. But I had fearsFears that people might not like it. Fears about the code. What others will say? Fears about this goal even…

After the presentation of SwiftUI framework in 2019 I was really eager to try it out. And the best way to do it (at least for me) is to write the code 👨‍💻

Well,

File -> New -> Project

Yeeey. I love that feeling — smell of a brand new project 😀

But what to do?

Eventually I noticed that I spend to much time in terminal app in order to switch between projects and call “pod install” command.

And by too much I mean — too much.

We have a lot of common frameworks (pods) and projects that I need to check/write code at work. Mine use case was the following:

I work in one project, then I need to open dependant framework or project and write/check some code there. I need to pull new changes and update cocoapods dependencies. I open terminal. I write “cd <path to project>”. I write “pod instal”. Terminal says:

Can’t find instal command…

Damn typo! Then I write “pod install” and finally … we are ready to start coding. And now repeat this — 10–15 times a day…

In order to speed this up a bit I used aliases in the bashprofile file to point to mine projects. Still I was writing “<name of the project>” and then “pod install”.

Saves a bit of time but not the best solution! Can we do better?

Wait a second! I think you already know the answer. Brand new SwiftUI framework… Everything just clicked in mine mind. I need to build a system app — a tool that will “change directory” and calls “pod install” instead of me in the terminal.

I started with simple list. List of mine projects. Then I added one button in the cell — call “pod install” in the terminal. Along the way I learned how to open terminal from sandboxed Mac OS app, how to execute commands in the terminal, how to add a project to mine list with Mac OS dialog.

Compile and run.

Oh my God! That is awesome 😎 I click one button of particular project and “pod install” is called for that project. No terminal manipulations anymore. No typos! Pure development speed up. 100% SwiftUI. Well, not 100% but 93% which is still great. I immediately showed this project to mine teammate. First feature request — change the order in the list.

“Ok Google, how to do it in SwiftUI?”

Well, it is incredible easy! Love SwiftUI and hate at the same time 😄 but that is another story.

After adding this feature I added execution of a script for the project that we also often use at work. This is it! Time to show it to the world! Some little enhancements in the code and 10 minutes later the project was uploaded to the GitHub as open source project.

I posted about this project and what it can do in all social networks, I showed it to all mine iOS friends and after some time I’ve seen 5 stars in GitHub! That was the moment of happiness! Pure happiness!

Inspired by GitHub stars I added more and more features. Redesigned the app. Learned more SwiftUI. Added a lot of new functionality.

With every release in GitHub — numbers of stars were growing and I can’t tell you how happy was I! Every star gave me power and time to improve mine tool!

In about 2–3 month I reached 55 stars and was super happy about that. I did nothing for about next 3 month and 55 stars still remained 55.

I decided to reach my new goal of 100 stars and added more features to the tool. I wrote articles on medium about this tool. Posted in Reddit, slack, LinkedIn. I used all the power of social networking.

I purchased an Apple developer certificate and tried to upload mine project to Mac App Store. Unfortunately mine tool was rejected since all apps should be sandboxed and I can’t run commands in terminal form mine app.

It is a pity but there was already 95 stars. Super inspiring.

After I’ve seen 99 stars I refreshed mine GitHub repo almost every half an hour to see that moment of 100th star ⭐️

Finally I received it! People from different countries across the world appreciated mine work ! That is pure happiness 🥳

I learned SwiftUI framework in efficient way by creating a tool that speed up development time. Super cool!

I will not say that this is the end of this story cause I hope I inspired you not to be afraid of putting your code online! Not to be afraid of the quality of your code but just do it! Do it and enjoy yourself! This story is the beginning of next great tools you guys will write and that will help all the developers across the world 🌎

Thank you!

P.S. Link to this tool

--

--