Skip to content

Instantly share code, notes, and snippets.

lottie run 1
LottieVsRiveBenchmark_lottie
timeToInitialDisplayMs min 718.2, median 746.6, max 860.4
frameDurationCpuMs P50 20.2, P90 36.0, P95 50.9, P99 187.2
frameOverrunMs P50 1.7, P90 21.5, P95 41.7, P99 273.6
Traces: Iteration 0 1 2 3 4 5 6 7 8 9
rive run 1
LottieVsRiveBenchmark_rive
timeToInitialDisplayMs min 733.3, median 759.5, max 825.5
v4 1 largeLottie
LottieBenchmark_largeLottie
timeToInitialDisplayMs min 564.2, median 577.0, max 669.3
frameDurationCpuMs P50 67.4, P90 73.1, P95 76.4, P99 187.1
frameOverrunMs P50 68.6, P90 78.4, P95 85.0, P99 259.4
Traces: Iteration 0 1 2 3 4 5 6 7 8 9
v4 1 superLargeLottie
LottieBenchmark_superLargeLottie
timeToInitialDisplayMs min 569.7, median 586.9, max 602.4
@theapache64
theapache64 / lottie_v4_v5_v6.txt
Created March 2, 2024 17:15
Benchmark data for lottie v4, v5 and v6 (total 90 iterations, 30 iterations per version (or 3 runs of 10 iteration) )
v4 1 largeLottie
LottieBenchmark_largeLottie
timeToInitialDisplayMs min 727.4, median 749.7, max 850.9
frameDurationCpuMs P50 65.8, P90 71.2, P95 74.0, P99 239.1
frameOverrunMs P50 66.5, P90 76.1, P95 81.6, P99 268.0
Traces: Iteration 0 1 2 3 4 5 6 7 8 9
v4 1 superLargeLottie
LottieBenchmark_superLargeLottie
timeToInitialDisplayMs min 738.1, median 750.5, max 1,177.2
30 iterations each
v4 - 1
--
LottieBenchmark_largeLottie
timeToInitialDisplayMs min 954.8, median 1,278.9, max 2,342.1
frameDurationCpuMs P50 99.9, P90 141.3, P95 161.6, P99 413.6
frameOverrunMs P50 118.2, P90 174.2, P95 214.7, P99 490.2
Traces: Iteration 0 1 2 3 4 5 6 7 8 9
@theapache64
theapache64 / adb.sh
Last active July 4, 2023 10:30
adb with device selection
function adb() {
# Execute the actual command
local totalLines=$(command adb devices | wc -l | xargs)
local totalDeviceConnected=$(expr $totalLines - 2)
if [[ "$@" != *"-s "* && $totalDeviceConnected -gt 1 ]]; then
# Get the list of connected devices
devices=(`command adb devices | awk '$2 == "device" {print $1}'`)
devicesText=""
@theapache64
theapache64 / pulls.sh
Last active June 30, 2023 07:19
A shell function to pull images and compare
# pull last modified (n) screenshots
function pulls() {
DEFAULT_COUNT='2'
COUNT="${1:-$DEFAULT_COUNT}"
echo "⬇️ Pulling $COUNT screenshot(s)"
# Get the list of last modified screenshots
local screenshots=(`adb shell ls -t /storage/emulated/0/Pictures/Screenshots/ | head -n "$COUNT"`)
if [ ${#screenshots[@]} -eq 0 ]; then
// depends-on-plugin org.jetbrains.kotlin
import com.intellij.psi.util.parentOfType
import liveplugin.editor
import liveplugin.executeCommand
import liveplugin.psiFile
import liveplugin.registerAction
import liveplugin.show
import org.jetbrains.kotlin.analysis.api.fir.utils.addImportToFile
@theapache64
theapache64 / install-last-apk.sh
Created April 3, 2023 08:20
To install recently download APK file
# To install recently downloaded APK file
function i(){
lastModifiedFile=$(ls -lt | head -2)
echo $lastModifiedFile
if echo "$lastModifiedFile" | grep -q ".apk"; then
read yn\?"❓ Do you want to install the above file? (y/n)"
case $yn in
[Yy]* ) installLastModifiedFile; echo "✅ Done";;
[Nn]* ) echo "Cancelled APK installation";;
* ) echo "Please answer yes or no.";;
@theapache64
theapache64 / crashlytics_auto_redirect.js
Created August 26, 2022 06:31
Auto redirect to different account - crashlytics
// Extension URL RegEx : https:\/\/console.firebase.google.com\/u\/0\/.+
var accountIndex = 1 // Auto redirect account index
var newUrl = "https://console.firebase.google.com/u/"
+ accountIndex
+ window.location.toString().split("/u/0")[1]
window.location = newUrl
import org.json.JSONObject
import java.io.File
const val tinyPngApiKey = "<YOUR-API-KEY-GOES-HERE>"
val projectDir = File("<PATH-TOPROJECT-ROOT>")
val supportedExtensions = listOf("png", "jpg")
fun main() {
projectDir.walk().forEach { srcFile ->
if (supportedExtensions.contains(srcFile.extension)) {