// startActivity(ActivityList.Main.toIntent()) で遷移 object ActivityList { const val BASE_PACKAGE_NAME = "com.mataku.amazing" object Main : MatakuActivity { override val className: String get() = "$BASE_PACKAGE_NAME.app.ui.activity.MainActivity" } interface MatakuActivity { val className: String } fun packageName(debuggable: Boolean): String { return if (debuggable) { "$BASE_PACKAGE_NAME.app.dev" } else { "$BASE_PACKAGE_NAME.app" } } } fun ActivityList.MatakuActivity.toIntent(): Intent { return Intent(Intent.ACTION_VIEW).setClassName( ActivityList.packageName(BuildConfig.DEBUG), this.className ) }