Skip to content

Instantly share code, notes, and snippets.

View notsatria's full-sized avatar

Satria notsatria

View GitHub Profile
@notsatria
notsatria / AndroidManifest.xml
Created November 25, 2025 13:17
Tiktok Clone + PiP mode
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
@notsatria
notsatria / FeedScreen.kt
Created November 11, 2025 13:26
Tiktok Clone Jetpack Compose
package dev.notsatria.animation.screen.tiktokClone
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.pager.PagerState
import androidx.compose.foundation.pager.VerticalPager
import androidx.compose.foundation.pager.rememberPagerState
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.LaunchedEffect
@notsatria
notsatria / gist:ee44dd67724381574055e864d5923046
Created October 28, 2025 08:42
Shimmer Effect Jetpack Compose
private data class UiState(
val isLoading: Boolean = false,
val data: List<String> = emptyList()
)
@Composable
fun ShimmerRoute(modifier: Modifier = Modifier) {
var state by remember { mutableStateOf(UiState()) }
LaunchedEffect(Unit) {
state = state.copy(isLoading = true)