EasyCodeRu
1.9K subscribers
842 photos
82 videos
98 files
1.51K links
Канал для тех, кто хочет научиться программированию с нуля
Java, Kotlin, TDD, ООП, Android
Github : https://github.com/johnnysc
YouTube: https://www.youtube.com/c/easyCodeRu

заходите в чат для обсуждения @easyCodeRuChat
если что - пишите в лс @JohnnySC
Download Telegram
Есть у кого идеи как грамотно класть в бд чаты 2 юзеров имея айди - пишите в комментариях
Запушил код в ветку и замержил в дев и мастер. можно смотреть
сразу скажу не все тудушки сделал. да и ничего страшного.
маленький спойлер, мы немного быстро пойдем в этом проекте и будем нарушать красоту иногда

И уже могу начинать думать над самим чатом 2 юзеров
когда закончу сделаю видео, так что нескоро, но постараюсь до конца недели управиться

https://github.com/JohnnySC/ForcePush
ОНО РАБОТАЕТ! ЧАТ РАБОТАЕТ!
зацените как вам структура

конкатенирую айди юзеров через _ и кладу в список с генерирующимся айди айтемы. где указываю кто отправитель
И в обратную сторону тоже работает! Ответил (самому себе с другого эмулятора)
Немного отвлечемся от андроид.
Обьявляется конкурс на самый красивый ООП код
решения этой задачи можете отправлять в комментарии
на джава или котлин

https://leetcode.com/problems/roman-to-integer/
В жопу литкод!
Я сделаю свои задачи на ООП
С блекджеком и шлюзами
И все же написал адаптер для сообщений

https://t.me/easyCodeRu/268
Четвертое видео! Сам чат! Сообщения в реальном времени
Firebase, RealtimeDatabase

Лайк, подписка, Донатик !
проявите свое спасибо хотя бы комментарием под видео
37 минут всего, наслаждайтесь

https://www.youtube.com/watch?v=uH2lTiuRA9M
Под этим постом в комментариях можете накинуть идей что ещё нужно добавить в приложение ForcePush.
Спойлер: я попробую написать сам подсветку синтаксиса для джава и котлин
Щас пытался сделать кароче статусы сообщений : ошибка, повторить при ошибке, отправлено, (даже про прочтено и речи не зашло пока ) и угадайте что? не все так просто!

так что соглашусь с тем, что прям хорошо сделанный чат это вау, с возможностями редактирования, удаления, повторной отправки и так далее

главное на самом деле двигаться постепенно и все будет

апдейт. уже придумал свое решение. кек
This media is not supported in your browser
VIEW IN TELEGRAM
2 состояния работают : прогресс и ошибка.
также надо будет прикрутить повторную отправку
и уже потом доставлено и прочтено
This media is not supported in your browser
VIEW IN TELEGRAM
прогресс и отправлено тоже ОК

п.с. записал весь экран потому что запись изнутри андроид студио (через логкат) убивает эмулятор (привет м1)
This media is not supported in your browser
VIEW IN TELEGRAM
отправляем
ошибка
повторная попытка
успех

п.с. просто добавил такой код
чтобы через раз был успех
private var count = 0
override suspend fun send(message: String) = try {
count++
if (count % 2 == 0)
repository.sendMessage(message)
else
false
This media is not supported in your browser
VIEW IN TELEGRAM
отправка : ошибка
отправка : успех
отправка : ошибка
повторная отправка
успех

п.с. уже совсем скоро запишу новое видео как это все работает
но вы должны помочь мне :
1. https://www.youtube.com/c/easyCodeRu подписывайтесь на канал
2. ставьте лайки видео из плейлиста https://www.youtube.com/playlist?list=PLQRyeBV1rkk2O36KzgDQgnUnOzjTrl9PN
3. пишите комментарии под роликами
спасибо!
Скажи: сколько у меня подписчиков на ютуб?)) Привет, трактористам
Пилю юнит тесты на вьюмодель

когда проще написать 180 линий кода теста нежели запускать эмулятор и проходить все тест кейсы

https://github.com/JohnnySC/ForcePush/blob/master/app/src/test/java/johnnysc/github/forcepush/ui/chat/ChatViewModelTest.kt
К вопросу о том, как не делать паблик констант доступных всем и каждому

делаем класс с 2 интерфейсами : чтения и записи
в одном месте кладем, в другом читаем

так что забудьте про паблик константы навсегда

https://github.com/JohnnySC/ForcePush/blob/master/app/src/main/java/johnnysc/github/forcepush/data/chat/UserId.kt
Запушил код чата на гитхаб во все ветки : feature/FP03_chat, develop, master

https://github.com/JohnnySC/ForcePush/commit/f2ca644d90687f1a34a844d9c10247bde23c277e

В следующем видео уже сделаем список чатов и/или статус прочтено_chat
Если у вас тоже исчез пункт гита из нижнего правого угла то восстановить можно вот так
Стартанул следующую фичу : статус сообщения "прочтено юзером"