diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 4675019..f277ff2 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -7,7 +7,7 @@
diff --git a/app/src/main/java/ru/sweetbread/unn/ui/layout/LoginActivity.kt b/app/src/main/java/ru/sweetbread/unn/app/LoginActivity.kt
similarity index 98%
rename from app/src/main/java/ru/sweetbread/unn/ui/layout/LoginActivity.kt
rename to app/src/main/java/ru/sweetbread/unn/app/LoginActivity.kt
index 3588fcd..f0d5440 100644
--- a/app/src/main/java/ru/sweetbread/unn/ui/layout/LoginActivity.kt
+++ b/app/src/main/java/ru/sweetbread/unn/app/LoginActivity.kt
@@ -1,6 +1,6 @@
// Copyright (c) 2026 Gleb Zaharov. License: GPLv3 (see LICENSE).
-package ru.sweetbread.unn.ui.layout
+package ru.sweetbread.unn.app
import android.os.Bundle
import androidx.activity.ComponentActivity
@@ -40,7 +40,6 @@ import androidx.compose.ui.unit.dp
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking
import ru.sweetbread.unn.R
-import ru.sweetbread.unn.UNNApp
import ru.sweetbread.unn.core.AuthRepository
import ru.sweetbread.unn.ui.theme.UNNTheme
import splitties.activities.start
diff --git a/app/src/main/java/ru/sweetbread/unn/ui/layout/MainActivity.kt b/app/src/main/java/ru/sweetbread/unn/app/MainActivity.kt
similarity index 97%
rename from app/src/main/java/ru/sweetbread/unn/ui/layout/MainActivity.kt
rename to app/src/main/java/ru/sweetbread/unn/app/MainActivity.kt
index 8e5a5cd..a5b6257 100644
--- a/app/src/main/java/ru/sweetbread/unn/ui/layout/MainActivity.kt
+++ b/app/src/main/java/ru/sweetbread/unn/app/MainActivity.kt
@@ -1,6 +1,4 @@
-// Copyright (c) 2026 Gleb Zaharov. License: GPLv3 (see LICENSE).
-
-package ru.sweetbread.unn.ui.layout
+package ru.sweetbread.unn.app
import android.os.Bundle
import androidx.activity.ComponentActivity
@@ -60,11 +58,10 @@ import androidx.navigation.compose.rememberNavController
import coil3.compose.AsyncImage
import kotlinx.coroutines.launch
import ru.sweetbread.unn.R
-import ru.sweetbread.unn.UNNApp
import ru.sweetbread.unn.core.network.portalURL
import ru.sweetbread.unn.feature.news.Blogposts
import ru.sweetbread.unn.feature.schedule.Schedule
-import ru.sweetbread.unn.ui.composes.About
+import ru.sweetbread.unn.feature.About
import ru.sweetbread.unn.ui.theme.UNNTheme
import splitties.resources.appStr
import splitties.toast.toast
@@ -79,7 +76,10 @@ class MainActivity : ComponentActivity() {
setContent {
UNNTheme {
- Surface(modifier = Modifier.fillMaxSize(), color = MaterialTheme.colorScheme.background) {
+ Surface(
+ modifier = Modifier.fillMaxSize(),
+ color = MaterialTheme.colorScheme.background
+ ) {
val navController = rememberNavController()
val drawerState = rememberDrawerState(initialValue = DrawerValue.Closed)
val scope = rememberCoroutineScope()
diff --git a/app/src/main/java/ru/sweetbread/unn/UNNApp.kt b/app/src/main/java/ru/sweetbread/unn/app/UNNApp.kt
similarity index 98%
rename from app/src/main/java/ru/sweetbread/unn/UNNApp.kt
rename to app/src/main/java/ru/sweetbread/unn/app/UNNApp.kt
index be2af5a..2e2df7b 100644
--- a/app/src/main/java/ru/sweetbread/unn/UNNApp.kt
+++ b/app/src/main/java/ru/sweetbread/unn/app/UNNApp.kt
@@ -1,6 +1,6 @@
// Copyright (c) 2026 Gleb Zaharov. License: GPLv3 (see LICENSE).
-package ru.sweetbread.unn
+package ru.sweetbread.unn.app
import android.app.Application
import android.content.Context
diff --git a/app/src/main/java/ru/sweetbread/unn/ui/composes/About.kt b/app/src/main/java/ru/sweetbread/unn/feature/About.kt
similarity index 96%
rename from app/src/main/java/ru/sweetbread/unn/ui/composes/About.kt
rename to app/src/main/java/ru/sweetbread/unn/feature/About.kt
index ee4ada4..ab2e8e3 100644
--- a/app/src/main/java/ru/sweetbread/unn/ui/composes/About.kt
+++ b/app/src/main/java/ru/sweetbread/unn/feature/About.kt
@@ -1,6 +1,6 @@
// Copyright (c) 2025 Gleb Zaharov. License: GPLv3 (see LICENSE).
-package ru.sweetbread.unn.ui.composes
+package ru.sweetbread.unn.feature
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Column
diff --git a/app/src/main/java/ru/sweetbread/unn/feature/news/NewsViewModel.kt b/app/src/main/java/ru/sweetbread/unn/feature/news/NewsViewModel.kt
index 9fa7f67..434b6d6 100644
--- a/app/src/main/java/ru/sweetbread/unn/feature/news/NewsViewModel.kt
+++ b/app/src/main/java/ru/sweetbread/unn/feature/news/NewsViewModel.kt
@@ -8,7 +8,7 @@ import androidx.lifecycle.viewModelScope
import androidx.lifecycle.viewmodel.initializer
import androidx.lifecycle.viewmodel.viewModelFactory
import androidx.paging.cachedIn
-import ru.sweetbread.unn.UNNApp
+import ru.sweetbread.unn.app.UNNApp
class NewsViewModel(
repository: NewsRepository
diff --git a/app/src/main/java/ru/sweetbread/unn/feature/schedule/Schedule.kt b/app/src/main/java/ru/sweetbread/unn/feature/schedule/Schedule.kt
index dd2b0fe..b2c0f76 100644
--- a/app/src/main/java/ru/sweetbread/unn/feature/schedule/Schedule.kt
+++ b/app/src/main/java/ru/sweetbread/unn/feature/schedule/Schedule.kt
@@ -51,8 +51,8 @@ import ru.sweetbread.unn.api.KindOfWork
import ru.sweetbread.unn.api.Lecturer
import ru.sweetbread.unn.api.LecturerRank
import ru.sweetbread.unn.api.ScheduleUnit
-import ru.sweetbread.unn.ui.composes.BoundedWeekPicker
-import ru.sweetbread.unn.ui.composes.GroupsNameText
+import ru.sweetbread.unn.feature.schedule.components.BoundedWeekPicker
+import ru.sweetbread.unn.feature.schedule.components.GroupsNameText
import ru.sweetbread.unn.ui.theme.UNNTheme
import splitties.resources.appStr
import java.time.LocalDate
diff --git a/app/src/main/java/ru/sweetbread/unn/feature/schedule/ScheduleViewModel.kt b/app/src/main/java/ru/sweetbread/unn/feature/schedule/ScheduleViewModel.kt
index dd14eda..ea60731 100644
--- a/app/src/main/java/ru/sweetbread/unn/feature/schedule/ScheduleViewModel.kt
+++ b/app/src/main/java/ru/sweetbread/unn/feature/schedule/ScheduleViewModel.kt
@@ -14,7 +14,7 @@ import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.flatMapLatest
import kotlinx.coroutines.flow.stateIn
import kotlinx.coroutines.launch
-import ru.sweetbread.unn.UNNApp
+import ru.sweetbread.unn.app.UNNApp
import ru.sweetbread.unn.api.ScheduleUnit
import java.time.LocalDate
diff --git a/app/src/main/java/ru/sweetbread/unn/ui/composes/GroupsNameText.kt b/app/src/main/java/ru/sweetbread/unn/feature/schedule/components/GroupsNameText.kt
similarity index 96%
rename from app/src/main/java/ru/sweetbread/unn/ui/composes/GroupsNameText.kt
rename to app/src/main/java/ru/sweetbread/unn/feature/schedule/components/GroupsNameText.kt
index d0a8116..3fe8dde 100644
--- a/app/src/main/java/ru/sweetbread/unn/ui/composes/GroupsNameText.kt
+++ b/app/src/main/java/ru/sweetbread/unn/feature/schedule/components/GroupsNameText.kt
@@ -1,6 +1,6 @@
// Copyright (c) 2026 Gleb Zaharov. License: GPLv3 (see LICENSE).
-package ru.sweetbread.unn.ui.composes
+package ru.sweetbread.unn.feature.schedule.components
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
diff --git a/app/src/main/java/ru/sweetbread/unn/ui/composes/Week.kt b/app/src/main/java/ru/sweetbread/unn/feature/schedule/components/Week.kt
similarity index 98%
rename from app/src/main/java/ru/sweetbread/unn/ui/composes/Week.kt
rename to app/src/main/java/ru/sweetbread/unn/feature/schedule/components/Week.kt
index 3ab5f0f..25cf8bb 100644
--- a/app/src/main/java/ru/sweetbread/unn/ui/composes/Week.kt
+++ b/app/src/main/java/ru/sweetbread/unn/feature/schedule/components/Week.kt
@@ -1,5 +1,5 @@
// Copyright (c) 2026 Gleb Zaharov. License: GPLv3 (see LICENSE).
-package ru.sweetbread.unn.ui.composes
+package ru.sweetbread.unn.feature.schedule.components
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable