TGViewer
den the dev den the dev @den_the_dev · 1.71K subscribers
Post #327 1.1K
Останні тижні працюю над лібою, яка рендерить чатик.

І я навіть не думав про те, наскільки складно реалізувати плавний чат з віртуалізацією.
Здавалось би цих чатів повно і мав би бути якийсь більш менш стандартний підхід, але ні.

Чому складно?

👉 Для плавного скролінгу історії потрібна віртуалізація - це вже саме по собі складно.
👉 Зазвичай ми скролимо сторінки зверху→вниз, а чати скроляться знизу→вгору. Це друга складність, яка накладається на попередню.
👉 Історія повідомлень має ліниво завантажуватись, коли ми гортаємо вгору. При цьому змінюється розмір віртуалізованого контейнера та кількість елементів у ньому. Історія починає "дригатись" і цього треба уникнути.
👉 Паралельно можуть одночасно приходити нові повідомлення.
👉 Тобто нові елементи у список повідомлень можуть прилітати з обох боків, а при цьому треба зберігати положення і плавність скролу.
👉 Крім цього, коли приходять нові повідомлення, нам треба вирішувати чи підскролюємо ми до нових повідомлень.
👉 Якщо прийшло багато нових повідомлень, то до якого повідомлення ми скролимо і як? Це теж окрема історія.
👉 А ще є лічильник нових повідомлень і кнопка, яка стрибає до нових повідомлень або в кінець історії.
👉 І є ще індикатор, який показує коли хтось набирає текст.
👉 А ще повідомлення можна видаляти з історії. При цьому вони можуть видалятись з будь-якого місця історії.
👉 Саме вікно чату при цьому може змінювати свої розміри, розгортатись і робитись великим або зменшуватись.

І ще безліч дрібніших проблем.
  • 👍 8
  • 🔥 3
More from @den_the_dev
  1. Oct 2, 2026Дружина зробила перше замовлення на Temu: Очікування / Реальність
  2. Oct 2, 2026Пʼятниця!
  3. Oct 1, 2026бляяяяя))))
  4. Oct 1, 2026🗣️ Anthropic розповіли як Claude змінює поведінку в залежності від мови В інстаграмі Clau…
  5. Sep 30, 2026Сезон hoa-hoa-hoa розпочато. Я вже був змушений встиг передивитись з дружиною всі частини…
  6. Sep 30, 2026👨‍💻 Вчора відбувся OpenAI DevDay на якому було чимало анонсів • Запустили Dots - платфор…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →