Skip to content

Instantly share code, notes, and snippets.

View TuleSimon's full-sized avatar
🏠
Working from home

Tule Simon TuleSimon

🏠
Working from home
View GitHub Profile
package com.simon.mangifyingtext shader
import android.graphics.RenderEffect as AndroidRenderEffect
import android.graphics.RuntimeShader
import android.os.Build
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.Canvas
package com.simon.animatedbooksample
import android.os.Bundle
import androidx.activity.compose.BackHandler
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.compose.animation.AnimatedContent
import androidx.compose.animation.AnimatedVisibilityScope
import androidx.compose.animation.EnterExitState
@TuleSimon
TuleSimon / gist:10eecc0e72304b967a0d258c4e212104
Created April 29, 2026 09:18
A flashlight in Jetpack Compose that reveals text hidden in the dark. The cone shape, soft diffusion, dust streaks, and warm bulb glow are all one AGSL fragment shader running over regular Compose Text. You can drag the torch to move it, and tap the switch on the body to toggle the light.
package com.anonymous.flashlight
import android.graphics.RenderEffect
import android.graphics.RuntimeShader
import androidx.compose.animation.core.LinearEasing
import androidx.compose.animation.core.RepeatMode
import androidx.compose.animation.core.animateFloat
import androidx.compose.animation.core.animateFloatAsState
import androidx.compose.animation.core.infiniteRepeatable
import androidx.compose.animation.core.rememberInfiniteTransition
package com.anonymous.animatedtoggle
import android.graphics.BlurMaskFilter
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.compose.animation.animateColorAsState
import androidx.compose.animation.core.Animatable
import androidx.compose.animation.core.FastOutSlowInEasing
<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt"><aapt:attr name="android:drawable"><vector android:height="1080dp" android:width="1080dp" android:viewportHeight="1080" android:viewportWidth="1080"><group android:name="_R_G"><group android:name="_R_G_L_11_G_T_1" android:translateX="305.765" android:translateY="535.901" android:scaleX="0.75" android:scaleY="0.75"><group android:name="_R_G_L_11_G" android:translateX="-857.687" android:translateY="-534.535"><path android:name="_R_G_L_11_G_D_0_P_0" android:fillColor="#fe9d2d" android:fillAlpha="1" android:fillType="nonZero" android:pathData=" M834.33 483.02 C847.49,483.03 860.65,483.01 873.81,483.03 C880.04,483.04 881.55,484.9 880.38,490.87 C879.61,494.75 877.13,499.94 878.74,502.21 C880.55,504.79 886.15,502.82 890.1,503.08 C902.04,503.86 913.63,505.67 922.87,514.28 C930.72,521.61 934.29,530.43 932.1,541.24 C930.43,549.43 928.76,557.62 927.25,565.85 C926.55,569.65 924.46,571.44 920.7,571.03 C
package com.anonymous.animatedreview
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.annotation.DrawableRes
import androidx.compose.animation.AnimatedContent
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.core.Animatable
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import java.util.*;
import java.io.*;
import java.net.*;
class Main {
public static void main(String[] args) {