Skip to content

Instantly share code, notes, and snippets.

View AlexGladkov's full-sized avatar
🦆
Quack Quack

Alex AlexGladkov

🦆
Quack Quack
View GitHub Profile
@AlexGladkov
AlexGladkov / Jenkins
Created February 21, 2025 14:26
jenkins Build [Linux]
pipeline {
agent any
environment {
ANDROID_HOME = "/opt/android-sdk"
PATH = "$PATH:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools"
COMPANY_A_BASE_URL = credentials("company-a-base-url")
COMPANY_A_API_KEY = credentials("company-a-api-key")
COMPANY_B_BASE_URL = credentials("company-b-base-url")
COMPANY_B_API_KEY = credentials("company-b-api-key")
@AlexGladkov
AlexGladkov / Jenkins
Created February 21, 2025 13:47
Android Helper
# Check if Android SDK not found (Run on VPS)
ls -la /root/Android/Sdk
ls -la $ANDROID_HOME
# Fix wrong directory Android (Run on VPS)
mkdir -p /root/Android/Sdk
export ANDROID_HOME="/root/Android/Sdk"
sudo mv /root/Android/Sdk /opt/android-sdk
sudo chown -R jenkins:jenkins /opt/android-sdk
@AlexGladkov
AlexGladkov / Jenkins
Created February 21, 2025 06:30
Jenkins install - linux (ubuntu)
# Install Jenkins and Java
sudo apt-get install jenkins
sudo apt install openjdk-17-jre
# Make jenkins autostart on launch
sudo systemctl enable jenkins
# Make jenkins start
sudo systemctl start jenkins
@AlexGladkov
AlexGladkov / script.sh
Created February 22, 2024 12:29
Docker VPS install script
apt update
apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
apt update
@AlexGladkov
AlexGladkov / KtorFeatureTokenQueue.kt
Created August 15, 2022 09:08
Ktor feature token queue
internal class AuthRefreshFeature(
private val localAuthDataSource: LocalAuthDataSource,
private val refreshTokenDataSource: KtorRefreshTokenDataSource,
private val localAuthErrorDataSource: LocalAuthErrorDataSource,
private val json: Json
) {
class Config(
var localAuthDataSource: LocalAuthDataSource? = null,
var refreshTokenDataSource: KtorRefreshTokenDataSource? = null,
@AlexGladkov
AlexGladkov / DesktopWebView.kt
Created July 7, 2022 11:11
Desktop Web View
@Composable
fun DesktopWebView() {
val finishListener = object : PlatformImpl.FinishListener {
override fun idle(implicitExit: Boolean) {}
override fun exitCalled() {}
}
PlatformImpl.addListener(finishListener)
println("Desktop Web View start")
Window(
public class DesktopWebView {
public static JFrame renderWebView(String url) {
JFrame frame = new JFrame();
final JFXPanel fxPanel = new JFXPanel();
frame.add(fxPanel);
frame.setSize(300, 200);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
@AlexGladkov
AlexGladkov / Example.swift
Created July 26, 2021 08:22
SwiftUI + Kotlin Flow
struct ExampleView: View {
let viewModel: AuthViewModel = AuthViewModel()
var body: some View {
ObservingView(statePublisher: asPublisher(viewModel.viewStates()),
actionPublisher: asPublisher(viewModel.viewActions()),
content: { state, action in
// your view here
})
@AlexGladkov
AlexGladkov / TagHost.kt
Last active November 15, 2022 04:05
Jetpack Compose Layout To Tag Cloud
@Composable
fun TagHost(
modifier: Modifier = Modifier,
verticalPadding: Dp = 24.dp,
content: @Composable () -> Unit
) {
Layout(
modifier = modifier,
content = content
) { measurables, constraints ->
@AlexGladkov
AlexGladkov / build.gradle.kts
Created May 15, 2021 12:34
Android KMP gradle.kts
plugins {
id("com.android.application")
kotlin("android")
kotlin("kapt")
id("org.jetbrains.compose")
}
android {
compileSdkVersion(30)
buildToolsVersion("30.0.2")