-
FraminLight: A Hands-On Look
A photo frame app for iPhone, iPad and Mac that adds canvas around your photo instead of cutting it down. Here’s what it does, what stands out, and what to know before you get it. If you post photos on Instagram, you know the problem. Your photo is one shape, the post or the story…
-
Cursor Agent Diagram Extension
Mermaid diagrams are really great for explaining how a system works. They are also great for communicating your ideas to your colleagues. It is a much better way than explaining in text or verbally. With AI, agents are a key part of our daily workflows. IDEs such as Cursor are creating beautifully drawn diagrams for…
-
For the Love of Street Photography
Let me start by mentioning that I’m not a professional photographer. Not even a hobbyist photographer I would say. I’m just a guy who loves capturing moments that I see unique and worth capturing. Particularly street photography is my favorite. To me street photography is the most appealing area of photography. Streets and people are…
-
Recap: Year 2020
Almost everyone have something to talk about 2020. What a year! It’s definitely a year that we will tell to our children and grandchildren as bed time stories. But this won’t be a story of how the Covid-19 shake the world. Rather it will be short summary of important events in my life this year.…
-
Another Navigation in Android Multi Module Architecture
At Jibble, we moved to a multi module architecture. Alongside with that, we have Kotlin Multiplatform that powers our core business logic and gives us a shared code between Android and iOS. It’s a monorepo project and we only use Kotlin Native for pure business logic code. Everything else related with iOS and Android is being handled on native side.…
-
Kotlin Preconditions in API Design
When designing your API/SDK functions in Kotlin, there are some useful functions that called Preconditions. Those functions can help you to ensure your functions are used in proper way. You can always define what are the requirements of your function in documentation. But Preconditions can prevent false use of the functions even if developer doesn’t care…
-
Observable(LiveData/Rx) Bind Extensions
Often times I find myself observing simple values from LiveData or Rx observables and setting them to view items like TextViews or EditTexts. Or setting visibility of a Button or TextView. Well, it looks ugly to me. We can do it more readable. RxSwift has bind() function to simply do this operation. In order to achieve something…
-
Eight Docuseries I Liked in 2019
I know 2019 haven’t end yet. But if something new pops out for me, I think I can update this list quickly. I like watching docuseries on different topics. And mostly all of them in very different categories. The list that I write below is mostly a combination of Netflix docuseries (well, almost all of…