Skip to content

Instantly share code, notes, and snippets.

View Audhil's full-sized avatar
🎯
Focusing

Mohammed Audhil Audhil

🎯
Focusing
View GitHub Profile
@Audhil
Audhil / AppExtensionFuncs.kt
Last active January 27, 2024 09:48
XML generation with Kotlin extension functions
// XML generation by code
// based on https://www.schibsted.pl/blog/back-end/readable-xml-kotlin-extensions/
fun XmlSerializer.document(docName: String = "UTF-8",
xmlStringWriter: StringWriter = StringWriter(),
init: XmlSerializer.() -> Unit): String {
startDocument(docName, true)
xmlStringWriter.buffer.setLength(0) // refreshing string writer due to reuse
setOutput(xmlStringWriter)
init()
endDocument()
// exploring funcs & props usage in gradle file
// below code is placed in app/build.gradle
// executed tasks as `$ ./gradlew showMagics`
// https://medium.com/@dmitriileonov/5-gradle-things-that-get-android-developers-confused-ed606b8e8c92
class Foo {
def name = ""
void name(String newString) {
name = newString
println "Foo.name() triggered: name: $newString"
@Audhil
Audhil / _1basics.ts
Last active October 28, 2022 16:31
Angular Basics
DOM(https://youtu.be/ipkjfvl40s0) - Document Object Model
object as a tree structure
DOM is an object-oriented representation of web page
Component(https://youtu.be/16rQyEQtpyQ?list=PLC3y8-rFHvwhBRAgFinJR8KHIrCdTkZcZ):
Template(view/HTML) + Class(code/typescript/data&methods) + Metadata(information decorator)
3 ways of declaring selector
1 -> selector: 'app-badwords' -> <app-badwords></app-badwords> in html file
// https://youtu.be/VWlwkqmTLHc?list=PLQkwcJG4YTCQcFEPuYGuv54nYai_lwil_
// USING TRY-CATCH FOR EXCEPTION HANDLING
// wrong
lifecycleScope.launch {
try {
launch {
throw Exception("failed")
}
} catch (e: Exception) {
}
@Audhil
Audhil / activity.kt
Last active September 15, 2022 14:01
Android basic brush up - AtoF & FtoA communication
class DummyActivity : AppCompatActivity(R.layout.activity_dummy) {
private val btn by lazy {
findViewById<Button>(R.id.btn)
}
private val tv by lazy {
findViewById<TextView>(R.id.tv)
}
var aToFragCallback: ActivityToFragCallBack<String>? = null
@Audhil
Audhil / gist:3e4332e14f0583062ead8147ab185d7b
Created June 11, 2017 18:57
Tip to generate random password in Kotlin
fun generateRandomPassword(): String {
val chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
var passWord = ""
for (i in 0..31) {
passWord += chars[Math.floor(Math.random() * chars.length).toInt()]
}
return passWord
}
@Audhil
Audhil / CoroutineMistakes.kt
Created February 18, 2022 11:50
5 coroutine mistakes to avoid
package com.bhnetwork.scanit.consumer
import kotlinx.coroutines.*
import kotlin.random.Random
// mistake 1 - getFirstName call happens one after another
suspend fun getUserFirstNames(userIds: List<String>): List<String> {
val firstNames = mutableListOf<String>()
userIds.forEach {
firstNames.add(getFirstName(it))
@Audhil
Audhil / rounded_corner_ripple_btn.xml
Created August 9, 2021 14:25
adding ripple in rounded corner btns - usage: android:background="@drawable/rounded_corner_ripple_btn"
<?xml version="1.0" encoding="UTF-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:color="@color/black_10"
tools:targetApi="lollipop"><!-- ripple effect color -->
<!-- background color -->
<item android:id="@android:id/background">
<shape android:shape="rectangle">
<solid android:color="@android:color/transparent" />
@Audhil
Audhil / AnyFrag.kt
Created June 30, 2021 17:08
Dynamically changing(Overriding) - color from colors.xml
class DynamicHomeFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val color2 = requireActivity().application.resources.getColor(R.color.your_special_color, null) // returns Color.GREEN
binding.content.ll3.setBackgroundColor(color2)
}
}
@Audhil
Audhil / ContentView.swift
Created May 4, 2021 15:28
hands dirty on Swift-UI
//
// ContentView.swift
// SwiftUI-Appu
//
// Created by Mohammed Audhil S on 18/04/21.
//
import SwiftUI
struct ContentView: View {