Show HN: Shout is an Android app to post opinions using the Google Nearby API
2 ijuarezz 3 9/14/2025, 7:43:27 PM github.com ↗
∙ No login, registration or Internet/data access required.
∙ It's written in Kotlin, makes use of Composables functions and the Google Nearby API.
∙ The intended audience is any group of people that want to communicate simple opinions and see what the general consensus is.
∙ Available in English, Portuguese and Spanish.
Google Play: https://play.google.com/store/apps/details?id=com.shout_app
You can email me at: i j u a r e z . d e v @ g m a i l . c o m
Comments (3)
sl8s · 1h ago
All the logic and UI code of your application is in a single file, MainActivity.kt (not counting the app theme, those files are separate), which has 1073 lines of code. No services, repositories, models, utility files, and no design patterns to make your life easier. Conclusion: maintaining the project will be very, very difficult. I’m impressed by your iron nerves.
Etheryte · 1h ago
I don't really see the problem. A hundred of those lines is just imports and the rest is already split into logical groups with comment sections. Most of this is not mentally taxing code either, you can just read it straight. Sure, it would be nice to split it up, but it really isn't as much of a problem here as you make it out to be.
sl8s · 34m ago
If you plan to maintain the application in the future, using MVC/MVP/MVVM patterns will reduce the cognitive load, allowing you to implement new features and fix bugs much faster. I also noticed that you started writing this small application from May 10 to September 13 (with 'First Production' commits on September 7), which is almost 4 months. However, such an application can usually be written within 1 month at most (with design patterns), even if the developer is a beginner. The further the application develops, the harder it will be to maintain, because too much refactoring will be required (large chunks of code will need to be deleted or replaced, which increases the risk of new bugs). In addition, inheritance is necessary so that, through polymorphism, implementations can be replaced without introducing new bugs and while extending functionality. In short, there needs to be a balance between inheritance and refactoring so that the application can be maintained for decades.