Ответ
В основном работаю над приложениями для трекинга привычек и таск-менеджерами. Один из последних проектов — HabitFlow, где использовал Jetpack Compose, Room и WorkManager.
Особенности:
- Кастомные анимации переходов между экранами
- Гибкие напоминания с гео-триггерами
- Экспорт статистики в PDF через PDFBox
Пример кода для ViewModel:
class HabitViewModel(repository: HabitRepository) : ViewModel() {
val habits = repository.getAllHabits().asLiveData()
fun toggleHabit(habit: Habit) {
viewModelScope.launch {
repository.updateHabit(habit.copy(isCompleted = !habit.isCompleted))
}
}
}
Также экспериментирую с ML на мобильных — делал приложение для распознавания растений по фото через TensorFlow Lite.
Ответ 18+ 🔞
Слушай, я в основном вкалываю над этими приложениями для привычек и таск-менеджерами. Честно говоря, их дохуя развелось, но я пытаюсь сделать что-то своё, не такое, как у всех. Последний мой проект — HabitFlow, ёпта. Там я вдул всё, что знал: Jetpack Compose, Room, WorkManager — полный комплект, блядь.
Что там особенного? Ну, во-первых, анимации переходов между экранами — я их сам пилил, кастомные. Не эти стандартные сдвиги вбок, а чтобы красиво было, понимаешь? Чтобы глаз радовался, а не мозолило взгляд. Потом, напоминания там — не просто «будильник в 8 утра». Можно привязать к месту, это через гео-триггеры. Подходишь к спортзалу — тебе: «Э, сабака сука, ты же хотел качаться!». Удобно, блядь.
И статистику можно выгрузить в PDF, через эту PDFBox. Чтобы потом смотреть и охуевать от того, сколько дней подряд ты, ленивая жопа, пропускал зарядку. Сам от себя охуевал, когда тестил.
Вот, смотри, кусочек кода из ViewModel, чтобы ты понимал, о чём речь:
class HabitViewModel(repository: HabitRepository) : ViewModel() {
val habits = repository.getAllHabits().asLiveData()
fun toggleHabit(habit: Habit) {
viewModelScope.launch {
repository.updateHabit(habit.copy(isCompleted = !habit.isCompleted))
}
}
}
Всё чётко, без лишней ебли, но работает как часы.
А ещё, блядь, балуюсь с машинным обучением на телефонах. Сделал одно приложение — наводишь камеру на какую-нибудь траву или цветок, а оно тебе: «Это, чувак, подорожник, им раны заживляют». Внутри, естественно, TensorFlow Lite крутится. Иногда, конечно, прикалывается и выдаёт: «Пизда с ушами, это же борщевик, беги отсюда!». Но в целом, забавная штука, хоть и ебушки-воробушки с настройкой моделей были.
Видео-ответы
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶