I mentioned a checklist before in this newsletter, but that was about a general aspect of life. So, letโs do it one more time in the context of software developers!
In this newsletter, I am going to use it for the purpose of software development and to describe how I personally approach them.
When it comes to software development and coding in general, I love to make checklists, as it boosts my productivity so I donโt forget things I should do,
For example, a recurring part of my life as an Android developer is creating UIs with Jetpack Compose (the new framework for UI in Android and for other platforms via Compose Multiplatform).
I noticed that there is a specific set of activities I need to do every time to craft the best UIs. I am not going to tell you what this checklist is about, but how I managed to create it through feedback and iterations.
๐ Start with the Basic
I started with two items: creating the UI and testing it (what a checklist ๐ ); simply, with these two items, I would start every new UI element I needed to develop.
โฉ๏ธ Learn through Feedback
Once I create the Pull Request, I get some feedback before the code goes to production, so I tried to use the feedback on my side to NOT FORGET what I need to do in the future.
For example, people would tell me in the PR that I need to add the support for the Dark Theme, and instantly I go, wow, I need to put that in the checklist, so now the items are three:
Develop the UI.
Support dark them
Test the UI.
Another guy would say, please add previews to see the actual UI without running the app on the device.
Another one would say, please add the support of different Locals and different Language Directions such as RTL, and both should be different in the preview.
So you get it right? Every comment that seems repeatable and general would go to my checklist about Creating Jetpack Compose UIs.
๐ท Even After Production
You wonโt be able to accommodate everything every time; there have to be some bugs. So, every time you notice something that you should have done in the development, add this to your checklist so you wonโt miss it next time.
For example, in the UI part, I started noticing in production that there are recomposition problems in Compose, which decrease performance. For that, we need to check the stability of my UIs (a concept in Compose), so I added an item to the checklist to make sure that the next time I create composables, I verify the stability of such UIs.
๐ซ Add From Learnings
You can also add more while learning something new. For example, you might learn a new concept called Screenshot Testing, and you might think this is a good idea for your project (you need to discuss that with your team, of course). I can start introducing it every time I create UIs.
Here is the checklist after these small iterations โ :
Develop the UI.
Support dark theme.
Add Previews.
Add RTL Previews.
Add Different Locals Previews.
Add Dark Theme Preview.
Add UI Tests to check interactions.
Add Screenshot Tests.
Test the UI Manually.
Ultimately, we should embrace the concept of developing checklists and utilizing them in our work as software developers. This approach allows us to establish a standardized process that enhances productivity and facilitates achieving optimal results.
๐ก Tip of the week
This week, please do your work this time while noticing the general aspects of the task youโre doing, and then abstract the steps and create a checklist that you can reuse.
๐ฃ See you in the upcoming weeks with another Tip!
โ๏ธ Charfaoui Younes.
โ
My preferred things this week
Here is a couple of digital content Iโve been consuming this week:
๐ฌ My YouTube Video Prepare Android Interview with these questions!
๐น Video Content: Git Good with Android Studio
๐น Video Content: Your Tests Are Failing YOU!
๐ Book I am re-reading: Code that Fits in your head.
You would make my day if you share this newsletter with other developers ๐.
๐ค Here are other ways I can help you with:
๐ Work with me 1:1 - book a coaching or strategy session for 60 minutes.
๐จ Course: Refactoring Legacy Code Like a Pro: A step-by-step approach for refactoring messy codebases into a Software Masterpiece.
๐ฅ Check out my YouTube channel: Discover tips on Android, Software Engineering, and productivity for developers.