Material Files: когда красота встречает функциональность
Знакома ситуация, когда стандартный файловый менеджер на Android не устраивает ни визуально, ни функционально? Коммерческие альтернативы часто перегружены рекламой, а открытые решения — либо устарели дизайном, либо не дотягивают по функционалу. Material Files от разработчика Zhanghai — приятное исключение из этого правила.
Что это за проект?
Material Files — это файловый менеджер для Android с открытым исходным кодом, написанный на Kotlin. В отличие от многих аналогов, он:
- Точно следует принципам Material Design без компромиссов
- Предлагает продвинутые функции для работы с файлами
- Разработан с вниманием к архитектурной чистоте
Проект активно развивается с 2018 года и собрал уже более 7 тысяч звезд на GitHub.

Ключевые возможности
1. Настоящий Material Design
Разработчик не просто наклеил Material-иконки на стандартные контролы, а продумал:
- Единые отступы и выравнивание
- Плавные анимации
- Кастомные темы (включая true black для AMOLED)
- Удобную навигацию с «хлебными крошками»
2. Продвинутая работа с файлами
- Поддержка root-доступа
- Работа с архивами (просмотр, создание, распаковка)
- Подключение сетевых хранилищ (FTP, SFTP, SMB, WebDAV)
- Корректная обработка символьных ссылок и прав Linux
3. Техническая надежность
В отличие от многих файловых менеджеров, которые:
- Парсят вывод
ls(что ненадежно) - Используют устаревший
java.io.File
Material Files использует:
- Java NIO2 File API
- Нативные Linux-системные вызовы
- Архитектуру на ViewModel и LiveData
Результат — стабильная работа даже с «проблемными» файлами и именами.

Технические особенности
Проект интересен не только пользователям, но и разработчикам как пример грамотной реализации:
- Чистая архитектура — разделение UI и бизнес-логики
- Современный стек — Kotlin, LiveData, ViewModel
- Правильная работа с файлами — через NIO2 и syscalls
- Обработка ошибок — корректное поведение при конфликтах
Вот как выглядит типичный код работы с файлами:
val path = Paths.get(uri)
Files.walkFileTree(path, object : SimpleFileVisitor<Path>() {
override fun visitFile(file: Path, attrs: BasicFileAttributes): FileVisitResult {
// Обработка файла
return FileVisitResult.CONTINUE
}
})
Кому особенно пригодится?
- Перфекционистам, которые ценят красивый и продуманный интерфейс
- Разработчикам, которым нужен надежный инструмент с root-доступом
- Администраторам, работающим с сетевыми хранилищами
- Исследователям, изучающим качественные open-source проекты на Kotlin
Как установить?
Проект доступен в нескольких вариантах:
- Google Play
- F-Droid
- Сборка из исходников (GPLv3)
Material Files — редкий пример баланса между:
- Эстетикой интерфейса
- Функциональностью
- Качеством кода
Если вы ищете файловый менеджер, который «просто работает» и при этом радует глаз — этот проект определенно заслуживает места на вашем устройстве.

