I need to write a blog post called:
“It depends” is the answer to every question in software.
— Sam Edwards (@HandstandSam) March 9, 2019
- Should I wrap a 3rd party library’s API? “It Depends”
- Should I install the Android Q Beta? “It Depends”
- Should I use Dagger? “It Depends”
- Should I use Kotlin or Java? “It Depends”
- Should I use Flutter? “It Depends”
- Should I use React Native? “It Depends”
- Should I use Dependency Injection? “It Depends”
- Should I use OkHttp? “It Depends”
- Should I use Multiple Activities or a Single Activity? “It Depends”
- Should I upgrade to the latest Support Library? “It Depends”
- Should I use a library that’s in Alpha? “It Depends”
- Should I use Room or SqlDelight? “It Depends”
- Should I write Espresso tests? “It Depends”
- Should I bump my minSdk to 28? “It Depends”
- Should I use MVP or MVVM or MVI or MVC? “It Depends”
- Should I use RxJava or LiveData? “It Depends”
- Should I learn Android or iOS? “It Depends”
- Should I start a blog? “It Depends”
- Should I start a side project? “It Depends”
- … Insert Your Question Here … “It Depends”
“It Depends” Is Technically Correct 💯% of the Time
While “It Depends” is technically correct since there is no absolute answer in software, it still doesn’t make it a good answer. “Probably Should” is an answer well, but when you think about it, it’s still a variation of “It Depends”.
“It Depends” Is a Crappy Answer
I think there’s a difference between “You probably should, but it depends” and just plain “it depends” though.
For example “Should you use Kotlin?” or “Should you use React Native?” simple “it depends” sounds a bit irresponsible.
— Juhani Lehtimäki (@lehtimaeki) March 11, 2019
Juhani brings up a great point about responsibility in his tweet above. Opinions are great because they are shaped by experience. As you gain experience, it’s important to share your opinions and discoveries because they will help provide insight and context into a topic. That empowers the person searching for the answer to make a decision, because you can’t write software with “It Depends”, since it won’t compile. 😂
There Is No Perfect Answer
My goal of this post was to point out that there are tons of ways to do things, but based on your team, use case and target audience, there is no good 100% right answer for any topic. I can strongly urge you to use Kotlin, but if you are building something that people are willing to pay millions of dollars from and they need Java, then Java is your right answer. The important part is to keep listening to opinions and discoveries that are brought up, but know they are not a one-size-fits-all solution.
I’m happy to share my opinion and experiences with you on any topic if you reach out to me on Twitter @HandstandSam, and I’ll do my best not to answer with “It Depends”. 🙂