Roky (for now) is a semi-graphical, terminal-based application developed using Lanterna. The first version is currently in development, and while progress is gradual, as Uncle Bob states “The only way to go fast, is to go well.” It’s important that we don’t rush features but instead deliver them at a consistent and predictable pace. This approach helps everyone improve their skills while ensuring that the features we develop remain stable once implemented.
Our goal? To rival the evil WhatsApp with this project. Do not fear! I have full permission to talk about it, straight from the Squirtle Man (Tom) himself. ʕ – ᴥ – ʔ
The main purpose of this project is for us, as a collective group, to develop an understanding of the Kotlin language along with Git and GitHub. Gaining a core understanding of the tools developers use in their daily work is valuable, even if you don’t plan to pursue it as a career. It’s also a great addition to your portfolio, helping you stand out to potential employers.
What are we using
We are using the programming language called Kotlin. The reason why we used Kotlin is because it is easy to learn, especially if you were a previous Java developer. Some people with the project do have this previous knowledge, so picking up this language was well easy. It also keeps the code quite short. As ‘simple’ as the project is, it is quite intense and what’s great about Kotlin is that it keeps the code short and readable, so I can actually understand what is being coded. Another thing I have realised is that it isn’t afraid to borrow great ideas from other languages, making it more practical and flexible. Kotlin is fun to use. It makes coding more enjoyable, turning it from just work into something exciting again.
We are also using the IntelliJ IDE. Great name honestly for an IDE, I’ll probably name my son that to be fair. The IntelliJ IDE makes writing Kotlin code even easier by fixing common mistakes automatically, though unfortunately you can’t add pets to it, goodbye Dragonair. ʕ ´• ᴥ•`ʔ
We have used Gradle, a build automation tool, to help build and manage our project. It uses simple scripts, making it easier to customise and automate tasks, especially for this app. These tasks include downloading dependencies, compiling code, running tests, and packaging apps. Gradle also supports multiple languages, such as Kotlin, Java, Groovy, and more!
My favorite command is ./gradlew ktlintFormat. It runs Ktlint, a linting tool that automatically formats Kotlin code. No need to worry about formatting, just run the command in the terminal and BOOM, that dreaded “build failed” message often turns into a “build successful” most of the time. ʕᵔᴥᵔʔ
On to the app itself
The currently what the app looks like:
A pretty cool retro-style interface where you navigate through the menus using the keyboard instead of the mouse. In the next few posts, I’ll explain each menu, their functions and how it was implemented in the code. This will help both of us understand the code better and see how it affects the application. It’s the best way to learn!
Thank you Tom for helping with editing this post.
Now let’s code ‘em all! ʕ -ᴥ•ʔ♡
Resources
- https://github.com/PPartisan/Roky
- https://steve-yegge.blogspot.com/2017/05/why-kotlin-is-better-than-whatever-dumb.html
- https://www.geeksforgeeks.org/code-formatting-in-kotlin-using-ktlint/
Links to contributors within the project
- https://github.com/PPartisan (Squirtle Man)
- https://github.com/Robert-Davie (Pikachu man)
- https://github.com/KaiRaiChu (ME!)
- https://github.com/ntl1789 (Meowth)
- https://github.com/m0rtalmike (Machamp)
- https://github.com/spencerduberry
- https://github.com/second-ed
- http://github.com/totallypresent (Mewtwo)
- https://github.com/AlloysRS
- https://github.com/stebas101
- https://github.com/caspervanlaar
- https://github.com/sorellla
- https://github.com/DuniaAli
- https://github.com/briangurdas
Leave a comment