Skip to content

Instantly share code, notes, and snippets.

View stevdza-san's full-sized avatar
💭
Kotlin Multiplatform Developer/Content Creator

Stefan Jovanovic stevdza-san

💭
Kotlin Multiplatform Developer/Content Creator
View GitHub Profile
@stevdza-san
stevdza-san / SuperScriptText.kt
Last active June 28, 2021 06:58
Superscript/Subscript Text - Jetpack Compose
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.SpanStyle
import androidx.compose.ui.text.buildAnnotatedString
@stevdza-san
stevdza-san / ListComposable.kt
Created October 5, 2021 15:40
To-Do Compose Example
package com.example.to_docompose.navigation.destinations
import androidx.compose.animation.ExperimentalAnimationApi
import androidx.compose.material.ExperimentalMaterialApi
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.navigation.NavGraphBuilder
@stevdza-san
stevdza-san / HomeScreen.kt
Created September 8, 2022 12:08
isScrolled extension property for the LazyListState
import android.annotation.SuppressLint
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.LazyListState
import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.ContentAlpha
import androidx.compose.material.MaterialTheme
@stevdza-san
stevdza-san / MainScreen.kt
Created October 20, 2022 06:31
New Photo Picker on Android 13/API Level 33 - Backwards Compatible
// Coil
// implementation("io.coil-kt:coil-compose:2.2.2")
import android.util.Log
import android.widget.Toast
import androidx.activity.compose.rememberLauncherForActivityResult
import androidx.activity.result.PickVisualMediaRequest
import androidx.activity.result.contract.ActivityResultContracts
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.*
@stevdza-san
stevdza-san / MainActivity.kt
Created April 22, 2021 06:42
For my Fused Location Provider API video tutorial on YouTube
import android.Manifest
import android.annotation.SuppressLint
import android.location.Geocoder
import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import androidx.fragment.app.Fragment
@stevdza-san
stevdza-san / MainActivity.kt
Last active April 11, 2023 09:18
For my Easy Permissions video tutorial
import android.Manifest
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import androidx.fragment.app.Fragment
import com.example.testapp.databinding.FragmentFirstBinding
import com.vmadalin.easypermissions.EasyPermissions
import com.vmadalin.easypermissions.dialogs.SettingsDialog
@stevdza-san
stevdza-san / MainActivity.kt
Last active April 27, 2023 11:00
Proto DataStore | YouTube Tutorial - https://youtu.be/5_Jy8Alcp14
package com.example.protodatastoretest
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import androidx.lifecycle.ViewModelProvider
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
@stevdza-san
stevdza-san / PasswordTextField.kt
Last active June 20, 2023 05:55
Password Input Field - Jetpack Compose
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.text.KeyboardOptions
import androidx.compose.material.Icon
import androidx.compose.material.IconButton
import androidx.compose.material.OutlinedTextField
import androidx.compose.material.Text
import androidx.compose.runtime.*
@stevdza-san
stevdza-san / MainScreen.kt
Created September 16, 2022 09:18
Disappearing and Animated Top Bar - Jetpack Compose
import android.annotation.SuppressLint
import androidx.compose.animation.animateContentSize
import androidx.compose.animation.core.animateDpAsState
import androidx.compose.animation.core.tween
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.LazyListState
import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.lazy.rememberLazyListState
@stevdza-san
stevdza-san / DataStoreRepository.kt
Last active October 26, 2023 13:10
Preferences DataStore - YouTube Tutorial | https://youtu.be/hEHVn9ATVjY
const val PREFERENCE_NAME = "my_preference"
class DataStoreRepository(context: Context) {
private object PreferenceKeys {
val name = preferencesKey<String>("my_name")
}
private val dataStore: DataStore<Preferences> = context.createDataStore(
name = PREFERENCE_NAME