Кириллы создали тайную группу из 7000+ Кириллов и что-то замышляют.
В нашем распоряжении оказались скрины секретного сборища Кириллов: там телеграмные Кириллы втихаря разделились по городам и интересам и сидят довольные. Что ещё Кириллы скрывают от нас? Ведётся следствие.
Написала просто так, чтобы познакомиться. (из чата по знакомствам, где просто люди общаются, в основном подростки) Не в любовном плане, а так, просто. Пару вопросов задала, короткий диалог и пишет потом "Извини за наглость, но у тебя нету 300р на интернет?". Я сразу ей пишу на это сообщение "Пока" и удаляю чат. Потом она написала и уже видите всё то, что есть на скриншоте. Ма*турбаторша своей киски не хочет работать за 30тыс рублей и пишет многим людям, чтобы якобы познакомиться, но нет, чтобы со многих трясти донатик на "интернетик". Но плохо выходит у неё.
Добрался до работы над чатами и все еще работаю над созданием персональных чатов между пользователями. Параллельно пробрасываю логику груповых чатов и каналов. Но это не все, еще и интерфейсом занимаюсь:
На вырвиглазные сочетания цветов пока не обращайте внимания. Подбираю специально контрастные цвета, чтобы можно было легко заметить просчеты. Иконки тоже почти случайно раскидал, взял первое попавшееся что было в "стандартном наборе разработчика".
Странное дело, на экране монитора интерфейс воспринимается иначе, не так как на мобильном устройстве (расположение и размер элементов). Из-за этого в последнее время смотрю как выглядит сборка прямо на устройстве.
В окно поиска контактов/создания чата внизу добавил размытие и пару кнопочек:
Размытие экрана унифицировал немного, теперь его можно подключать к каждому окну отдельно. Работает хорошо, но насколько понимаю, неоптимально. Потом может быть вернусь еще к нему.
Сверху сделал заготовку с областью для сторис (красная область), снизу меню с кнопками для быстрого доступа к функциям приложения. Над звонками еще не работал, но планы под это дело имеются.
Над размытием пришлось много возиться. Очень много. Если хочешь сделать что-то не похожее на интерфейс 2000-х, то для этого нужно использовать передовые технологии 😂😂😂 Например размытие по градиенту 😂😂😂
Не знаю в чем проблема сделать эффективное размытие в Flutter, но проблема у них есть. Есть и куча костыльных плагинов и куча заплаток для Flutter. Для Flutter есть куча всего созданного разными разработчиками и подключается каждый пакет отдельно. А вот на Unity3D размытие можно было бы добавить в пару кликов: кидаешь Canvas, пишешь шейдер какой хочешь, позиционируешь слой размытия где хочешь, настраиваешь очередность рендера, ползунками настраиваешь парамтеры размытия. Учитываешь в шейдере особенности железа и вуаля, все замечательно работает. Знаю о чем говорю, в Total Reload работал над графикой:
Разработчики Flutter мне, наверно, бы сказали: нравится Unity? Ну и катись:
В направлении удобно пристроить 5-ю точку 😂
В Unity3D как хочешь, так и делаешь. Хотя вру. В Unity3D работает немного иначе: ты не делаешь баги (если не делаешь), но за тебя делает баги Unity3D 😂 Опыт работы в ней лет 10, так что, наверно, знаю о чем говорю. Да и правка и репорт на баги в Unity3D выглядят примерно так:
В ощем не соскучишься
Есть интересный момент. Минимальный вес приложения на Unity - около 15 мб. Это связано с тем, что в проект добавляется физ. движок. Это все же инструмент разработки для игр. В том числе и из-за веса решил создавать проект не на Unity, а на Flutter. На днях узнал что минимальный вес приложения на Flutter тоже около 15 мб 😂😂😂
Структура клиента
Ранее в посте сетовал что я сам себе злобный буратино и мне не нравится то, как организовал структуру проекта. В итоге сегодня мои руки были по локоть в крови от усиленного рефакторинга кода. В какой-то момент решил проиндексировать каталоги проекта, чтобы они располагались в том порядке в котором проиндексированы а не по алфавиту:
Не знаю можно создавать имена каталогов начинающиеся с цифр или нельзя. Вообще у программистов нельяз. Но если очень хочется, то, наверно, все же льзя.
Системные вызовы в приложении
Приложению очень важно быть в курсе того, что сейчас с ним происходит: свернуто оно или пользователь его закрывает.
Ранее писал код под настольные компьютеры, веб и мобильные устройства. Так вот, у всех свой набор методов, которые вызываются при наступлении того или иного события. На телефонах за эти события отвечает WidgetsBindingObserver, на компьютерах WindowListener, на web-версии уже не вспомню что, но я вовремя психанул и сделал общий интерфейс на все и вынес его в отдельный файл чтобы не сойти с ума от поисков где что вызывается:
Теперь в одном месте все события. Не знаю почему в Flutter не унифицировали все это дело. В Unity3D, вроде как, было проще. OnApplicationQuit прописываешь и понимаешь что если он вызвался, то приложение закрывается и не имеет значения на чем работает приложение: планшет, мобильный телефон или еще что-то.
Работа над чатами
Вообще все эта работа проходила на фоне работы над созданием чатов. Я промахнулся, не рассчитал 😂 В общем как-то так получилось, что в процессе работы меня переклинило и решил что нормальная тема когда человек нажимает кнопку типа "Создать чат" и создает чат с человеком.
Чат должен создаваться просто: нажал на пользователя и отправил сообщение. Если отправил сообщение, то чат создался. Не отправил - не создался. А вот каналы и групповые чаты можно создавать через нажатие на кнопку "Создать ***".
В итоге переписывал немного серверную логику с учетом замечаний, клиента немного переписал, познакомился с парой людей на улице (которые недовольны мессенджерами), скинул им ссылку на группы чтобы подписались на меня. На данный момент добавляю в клиентское приложение вебсокеты, работаю над созданием чатов, обменом сообщениями, откладываю копейку на серверное железо 😁.
Пожалуй все на сегодня, отпишусь как появятся новости 😁.
-- Кому интересно, можете поддержать (лайком) или подписаться куда-нибудь на меня, попробуете сервис в числе первых. Постепенно буду продолжать делиться успехами разработки.
Я как раз с такой проблемой тоже столкнулся, у нас есть и семейный чат, и клан-чат, где много родственников - сделал синхронизатор чатов между Telegram и MAX - назвал Maxogram.
3 Добавляешь Telegram-бота в телеграм-группу и MAX-бота в чат MAX.
4 Админ в одном чате пишет /bridge link (после этого Maxogram выдаст тебе код).
5 Админ в другом чате пишет /bridge confirm код
После этого чат работает как один общий: сообщения идут в обе стороны, правки тоже, медиа тоже, стикеры тоже.
Потом уже увидел, что я не один такой. Есть еще похожие проекты у BearLogin и TG-MAX Sync. Честно, я их подробно не изучал и не сверял, что именно у них поддерживается, но варианты есть.
Если кто-то читает мой комментарий, поднимите выше, потому что с такой проблемой столкнулись многие.
Вчера закончил переписывать код (Мое основное занятие: сперва делаешь, потом переделываешь. И так по кругу). Наконец добил систему обновления аватарок, никнеймов.
Теперь когда пользователь меняет фото профиля или ник, то изменения мгновенно передаются его собеседникам. Если потребуется синхронизировать еще какой-то элемент профиля, то добавление его в систему синхронизации не должно быть проблемой.
Серьезно задумался о необходимости ввода ограничений на редактирование ника. Говорят, что многие злоупотребялют это возможностью. По этой причине в первое время будет действовать ограничениена частоту его редактирования. Так что ник нужно выбирать мудро :)
Скрин окон сервиса в режиме тестов
--
Кому интересно, можете подписаться куда-нибудь на меня, попробуете сервис в числе первых. Постепенно буду продолжать делиться успехами разработки :)
Автоматизация общения с клиентами больше не требует ни разработчика, ни бюджета на инфраструктуру. Российская нейросеть GigaChat и no-code платформа LEADTEX закрывают эту задачу за четверть часа — в любом мессенджере, который вам нужен. В этом материале разберём на примере Telegram: принцип одинаковый, канал можно выбрать под свою аудиторию.
Что за инструменты GigaChat и LEADTEX
GigaChat — языковая модель от Сбербанка, заточенная под русский язык. Понимает контекст диалога, запоминает историю переписки, работает с документами и текстовыми запросами. Цена за токены ниже зарубежных аналогов, данные остаются в российской инфраструктуре.
LEADTEX— визуальный конструктор чат-ботов и MiniApp. Поддерживает Telegram, ВКонтакте, MAX, WhatsApp. Внутри: CRM, авторассылки, внешние интеграции с любым API — в том числе GigaChat и OpenAI. На рынке более пяти лет, сообщество 5500+ пользователей, 250+ бесплатных уроков в личном кабинете.
Зачем вообще ИИ-бот
Стандартный сценарий: клиент написал вечером, менеджер ответил утром — сделка ушла к конкуренту. ИИ-ассистент снимает этот риск: отвечает мгновенно в любое время, ведёт диалог с учётом предыдущих сообщений, передаёт оператору только те обращения, где нужно живое участие.
Где это уже работает: клиентская поддержка, e-commerce консультации, HR-онбординг, внутренний ассистент руководителя, автоматизация рутинных запросов у фрилансеров.
Запуск за 7 шагов
1. Зарегистрируйтесь в LEADTEX Семь дней полного доступа без карты — достаточно чтобы собрать и протестировать бота.
2. Установите готовый шаблон Шаблон с GigaChat уже настроен — HTTP-блоки, логика диалога, передача контекста. Ничего собирать с нуля не нужно.
3. Создайте бота в выбранном мессенджере Для Telegram — через @botfather за две минуты. Для других каналов — аналогичная процедура в соответствующем интерфейсе.
4. Подключите токен в LEADTEX Раздел «Мессенджеры» → выбрать канал → вставить токен. Бот уже принимает сообщения.
5. Зарегистрируйтесь в GigaChat Личный кабинет на платформе Сбера, раздел API.
LEADTEX — от 1390 ₽ в месяц за 1500 контактов. После пополнения баланса на 1000 ₽ — 500 ₽ бонусом.
GigaChat — 1 млн токенов в год за 1950 ₽, 4 млн токенов за 7566 ₽. Для большинства ботов с умеренной нагрузкой 1–2 млн токенов в месяц хватает с запасом.
Инструмент собирается за 15 минут, работает круглосуточно, не требует ни разработчика, ни сервера. Канал — на ваш выбор: там, где живёт ваша аудитория.
В коментариях меня часто спрашивали о доступах и правах мессенджеров, организации которых не являются желательными на территории РФ. Промывать им кости не будем, лучше расскажу какие права требуются для работы сервисов разрабатываемого мессенджера.
Итак, приложение на телефоне должно уметь: - работа с сетью (WiFi) и мобильной - уведомлять о получении новых сообщений, звонков - сохранять / отправлять медиафайлы собеседникам и в свой профиль - иметь доступ к списку контактов для удобного поиска контактов в сервисе - иметь доступ к отправке SMS для авторизации / регистрации - иметь доступ к микрофону, камере - иметь доступ к геолокации - способным работать с геолокацией в свернутом сосоянии
Отмечу, запрашиваемый список прав - это обычный набор прав для сервиса, который является соц.сетью. Предоставлять права или нет - каждый решает сам для себя, ниже опишу возможности, которые предоставляют те или иные права.
Немного о правах, которые требуются сервису над которым работаю
Работа с сетью (WiFi) и мобильной Требуется для взаимодействия с сетью: прием, отправка файлов и сообщений по сети.
Уведомления на Iphone: NSUserNotificationsUsageDescription Требуется для работы с уведомлениями: о приходе сообщений, событий и тп.
Сохранять / отправлять медиафайлы собеседникам и в свой профиль Доступ к файловой системе - это доступ ко всем файлам на устройстве. Благодаря доступу пользователь получит возможность отправлять файлы с устройства и сохранять их на свое устройство.
Особо отмечу геолокацию. В будущем планирую добавить функцию похожую на родительский контроль. Родители смогут следить за траекторией перемещения детей, получать уведомления когда ребенок пришел в школу, ушел из школы и так далее. Так как функция будет работать даже при свернутом приложении, то для этого потребуются специальное разрешение. Данную функцию используют соц. сети и приложения для знакомств.
Пока это основные права, которые требуются для полноценного функционирования приложения.
Выходные прошли крайне плодотворно, работал над окном чатов. Интерфейс здесь - это неглавное. Главное, что он подтягивает данные с сервера и частично их визуализирует. То есть то, что вы видите, это уже работа приложения, а не просто красивая картинка:
Что работает:
- таймстамп сообщений подтягивается нормально - заголовки чатов частично сделаны - последнее сообщение выводится - если профиль или группа не имеют иконки, то выводится градиент-заглушка
Что не сделано:
- не подтягиваются реальные имена пользователей - пока ничего не кэшируется (но скоро будет) - обновление чата по стягиванию экрана вниз - статус доставки прочтения сообщения не отображается - еще хотелось бы эмодзи последнего сообщения отобразить - групповые чаты не реализованы - нет окна поиска пользователей - нет окна выбора участников групповых чатов ...
С групповыми чатами отдельная история. Хотел их делать параллельно персональным чатам, но не вышло так как они требуют пристального внимания. Но все будет, не боги горшки обжигали, справимся и пойдем дальше. Надеюсь в течение недели окно чатов будет сделано :)
--
Кому интересно, можете подписаться куда-нибудь на меня, попробуете мессенджер в числе первых. Постепенно буду продолжать делиться успехами разработки :)
Лучше бы создали приложение для сбора подписей (в бумажном виде) для отмены таких инцииотив поступающий из думмы а лучше сразу вместе с отставкой , на сколько помню граждане могут это инициализировать, нужно бороться с самой причиной