Categories
Uncategorized

How to transfer a DynamoDB table from one account to another?

This can be done with AWS Glue and IAM roles. Let’s assume we are transferring from account A to account B. Define a role in A to add B as trusted entity to read from DynamoDB. Create the role for AWS account, Another AWS account, and use the account B id. Result is similar to […]

Categories
Android Apps Kotlin

Location data reduction in Android

Android LocationManager allows fine location data updates with customisable interval. This means the phone could return new coordinates even after every 100ms. If the app would then upload all of these points, it would result in expensive data and battery usage. Can this location data be reduced before sending it to the server? Problem Android […]

Categories
Notion Python

Add text and images to Notion via the official API and Python

Notion has recently released the official API. With some restrictions, it allows coders to add, update and delete blocks from their pages. There is an official JavaScript client, but nothing for Python. This post describes how to update Notion pages with Python. It will use REST requests to call the API. Prepare a page with […]

Categories
Automations Crypto Python

Aggregate Iconomi crypto strategy details

Choosing crypto currencies to invest in can be a puzzling task. Investor can look at graphs, news or read expert opinions on Twitter. A popular vehicle for delegating investing decisions is Iconomi, where people have a choice of hundreds of investment strategies. A good indicator of the total market sentiment would be the average weight […]

Categories
Android Apps Architecture Jetpack Compose Kotlin

Create a login screen with Jetpack Compose

In a previous post I described how to create a Github Repository browser app. The UI in that app was written using XML layouts(imperative UI). In the recent years developers have been finding it easier to define and update the views using the declarative UI paradigm. This leads to Google releasing Jetpack Compose 1.0 in […]

Categories
Compose for Desktop Kotlin Kotlin Multiplatform

Create a code editor with Compose for Desktop

Compose desktop is an upcoming cross-platform framework that promises the building of apps from a single codebase to every desktop and web platform. Since Kotlin Multiplatform is gaining traction, a cross-platform UI framework on top of it seems like a logical step forward. There are tutorials and examples about creating simple widgets and layouts, but […]

Categories
Automations MacOS Uncategorized

Setup MacOS system-wide Vim mode

I got interested in workflow automations a while ago. With that came the understanding of Karabiner, which allows the remapping of keyboard keystrokes. Besides this I understood the benefits of using Vim: It is fast and can be used in most Unix distributions. As a result of these concepts arose the idea of a system-wide […]

Categories
Kotlin Kotlin Multiplatform MacOS

Kotlin native interoperability with Swift/Objective-C.

Under the Kotlin Native umbrella lie many platforms, like Linux, Windows, or even the Android NDK. Of course it is also available for Apple platforms, which run on Objective-C. How is this interoperability be implemented? Call Swift/Objective-C functions from Kotlin There are 2 options to call native functions from Kotlin: Create a Kotlin function with […]

Categories
Architecture JSON Kotlin Kotlin Multiplatform MacOS

Kotlin Multiplatform in a MacOS app

If a Kotlin developer is familiar with her libraries and language paradigms, it might seem superfluous to learn their counterparts in Mac development. There comes in the possibility to use Kotlin Multiplatform(KMP) in a MacOS app, where familiar libraries and language can be used to generate a .framework, which in turn can be used in […]

Categories
Apps Architecture Kotlin Multiplatform Mobile

Kotlin Multiplatform app architectures

The recommended architecture for Android development is MVVM. However, when using Kotlin Multiplatform Mobile(KMM), the Jetpack’s ViewModel is not available. This means a different dependency or architecture needs to be used. There is no official way to go about this, but thanks to the Kotlin community, different approaches have surfaced. Separation of concerns The purpose […]