diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
index 0d5ce2d4cf3ed01cf020f2be51ed590bea619106..bdc9a3ad81f03e4a9b8f4fa697cbc932ef155d5e 100644
--- a/app/proguard-rules.pro
+++ b/app/proguard-rules.pro
@@ -31,3 +31,29 @@
     public static void checkParameterIsNotNull(...);
     public static void checkNotNullParameter(...);
 }
+
+# Kotlin Coroutine
+# Allow R8 to optimize away the FastServiceLoader.
+# Together with ServiceLoader optimization in R8
+# this results in direct instantiation when loading Dispatchers.Main
+-assumenosideeffects class kotlinx.coroutines.internal.MainDispatcherLoader {
+    boolean FAST_SERVICE_LOADER_ENABLED return false;
+}
+
+-assumenosideeffects class kotlinx.coroutines.internal.FastServiceLoaderKt {
+    boolean ANDROID_DETECTED return true;
+}
+
+-keep class kotlinx.coroutines.android.AndroidDispatcherFactory {*;}
+
+# Disable support for "Missing Main Dispatcher", since we always have Android main dispatcher
+-assumenosideeffects class kotlinx.coroutines.internal.MainDispatchersKt {
+    boolean SUPPORT_MISSING return false;
+}
+
+# Statically turn off all debugging facilities and assertions
+-assumenosideeffects class kotlinx.coroutines.DebugKt {
+    boolean getASSERTIONS_ENABLED() return false;
+    boolean getDEBUG() return false;
+    boolean getRECOVER_STACK_TRACES() return false;
+}
\ No newline at end of file