View profile

"Philosophers warn us not to be satisfied with mere learning, but to add practice and then training."

StoicallyTyped Newsletter
Hey happy Monday!
I’m on vacation! I have some time before I start my new job and am taking advantage of all this free time to visit family and catch up on some reading.
I wasn’t intending on reading a bunch of Android related things during this time… but I’ve picked up Androids by Chet Haase and have really been enjoying learning about the journey of early Android and the team behind it.
(I’m also working on Way of Kings by Brandon Sanderson, but this is an Android newsletter so tweet at me if you want to talk about that 😉)
There’s some cool stuff from this week so lets jump in!

👾 Fun Stuff
Help improve Kotlin Ranges with a survey!
100 Days of Android Studio Shortcuts
Be sure to follow @Aida_Isay as she goes through a bunch of helpful Android Studio shortcuts like the one below!
Aida
Day 9 of #100days of #AndroidStudio #shortcuts:

To replace within a file:

Command + R on Mac

and

Ctrl + R on Windows/Linux

#AndroidDev https://t.co/1f2eDG24qX
📚 TL;DRs
Unbundling the WindowManager
🧑‍💻 Interview Practice Question
Last week we talked about inline classes which need the @JvmInline annotation to have full interoperability with Java. There are other important JVM focused annotations too!
What purpose do these annotations have?
  • @JvmStatic
  • @JvmOverloads
  • @JvmField
Send a link to a gist with your answer by replying to this email or the Tweet of this issue. Have your answer included in next weeks issue!
⭐️ Answer to Last Week's Question
Can you make this code snippet clearer by turning the parameter of this function into an inline class? What are some benefits of doing this?
fun scheduleNewsletter(delay: Int) { }
Let’s look at the code snippet below!
Click the image to enter the Kotlin Playground to try it out.
Example Implementation of an Inline Class
Example Implementation of an Inline Class
Benefits:
  • Clear definitions of what a primitive type represents.
  • No compile time cost of creating an object.
  • Self documenting code.
🛠 For Your Toolkit
DABS
💭 Stoicism x Tech
“Philosophers warn us not to be satisfied with mere learning, but to add practice and then training.” - Epictetus
How many side projects do you have sitting around unfinished? Do you feel guilty about leaving them undone?
In my recent time off I have been thinking about my side projects and if I should mess around with an existing one or start something new. I feel some level of guilt about leaving great domain names and interesting projects collecting virtual dust. Is this guilty feeling warranted?
I don’t think it has to be. Instead a side project should be started with a deliberate purpose. Either to create and deliver the project or to learn something. The learning done with a side project can be the outcome.
Most of my previous side projects have helped me get to where I am today. They provided a doorway into learning new concepts, architectures, and paradigms by applying them. Improving skills, relaxing and tinkering with something, trying something completely new. All of these are valid reasons for a side project and all of the outcomes from these processes are more than enough.
Other projects are started for the purpose of creating and delivering something. These projects are great too!
Buying a domain name for a project that is meant to help you learn confuses this process. It can trick you into thinking you must deliver something or else you’ve failed. Be deliberate. Don’t set this expectation for yourself and a side project when it doesn’t need to loom over your learning and fun.
👋 Want to Contribute!?
Did I miss something great this week? Have a career question you want answered by the community? Send them to me on Twitter or reply to this email. I’d love to hear from you and chat!
If you enjoyed this issue consider sending it to someone you think might enjoy it.
Remember to stay hydrated and have a great week!
✌️ Matt
Don’t miss out on the other issues by Matt McKenna
Did you enjoy this issue? Yes No
Matt McKenna
Matt McKenna @himattm

Develop a thoughtful approach to software engineering. Focused on Android, applicable to all. Delivered Monday mornings to kick off your week.

You can manage your subscription here.
In order to unsubscribe, click here.
If you were forwarded this newsletter and you like it, you can subscribe here.
Created with Revue by Twitter.