Расскажи про свои pet-проекты

Ответ

В основном работаю над приложениями для трекинга привычек и таск-менеджерами. Один из последних проектов — 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 крутится. Иногда, конечно, прикалывается и выдаёт: «Пизда с ушами, это же борщевик, беги отсюда!». Но в целом, забавная штука, хоть и ебушки-воробушки с настройкой моделей были.

Видео-ответы