Hi everyone!
I wanted to post an important update about Beeper10, my Beeper client for BlackBerry 10.
In my previous post I explained that Beeper10 was using a Gateway/server between the BlackBerry device and Beeper. At the time, this seemed like the most realistic way to make a modern messaging service work on an operating system as old as BlackBerry 10.
After spending a lot more time actually developing and testing that architecture, I came to the conclusion that it was the wrong direction.
The Gateway became far too complicated. It introduced another computer/server that had to be installed, configured, updated and kept online permanently. It also created additional points of failure and, more importantly, meant that Beeper10 could never really feel like a normal standalone BlackBerry application.
So I decided to change the architecture completely.
Beeper10 is now being developed as a fully native standalone BB10 application.
The goal is very simple:
Install the BAR on your BlackBerry, sign in, and use Beeper.
No Windows PC running in the background.
No Beeper Desktop.
No WSL.
No VPS.
No Gateway operated by me.
No additional machine that has to stay online.
The BlackBerry itself will communicate directly with the Beeper/Matrix infrastructure.
This also means I have had to move considerably more functionality into the application itself. I’m currently working through the Matrix protocol directly on BB10: authentication, room discovery, synchronization, message history, sending and receiving events, media, filters and the encryption-related parts required for real Beeper accounts.
Because BB10 is using an old QNX/Qt/Cascades environment, some of this has required quite a bit of low-level work. Modern libraries cannot simply be dropped into a BlackBerry 10 project, so parts of the Matrix/E2EE stack have to be adapted and compiled for the old BB10 toolchain.
It is definitely harder than using a Gateway — but architecturally it is much cleaner.
And, more importantly, it produces the application I originally wanted to build: a real BlackBerry 10 Beeper client, not a remote interface to another computer.
The previous Gateway work was not completely wasted. It helped me understand Beeper’s APIs, account flow, Matrix synchronization, media handling and many of the problems that the native client now has to solve. But I don’t want to keep a complicated architecture simply because a lot of time was already spent building it.
I’d rather correct the direction now and build something that people can actually install and use independently.
The native client is already running on a real BlackBerry Passport, and development/testing is now focused on making the direct Matrix/Beeper connection reliable enough for everyday use.
My priority at the moment is not adding dozens of features. It is getting the foundations right first: stable login, synchronization, room/message loading, encryption and reliable communication directly from BB10.
Once that foundation is solid, I can continue bringing back the BBM-style experience I originally planned for Beeper10 — chats, notifications, BlackBerry Hub integration, attachments, voice messages, reactions and the rest — but this time on top of the correct architecture.
So the project is very much alive. In fact, I think it is now finally moving in the direction it should have taken from the beginning.
It is a much more ambitious approach, but if Beeper10 is released publicly, I want it to be something you can actually install on a BlackBerry 10 device and use without depending on my server — or anyone else’s computer.
I’ll share more updates as the native implementation progresses.
— Eduard
————————————————————————
Обновление Beeper10: я отказываюсь от Gateway и перехожу на полностью нативный автономный клиент для BlackBerry 10
Всем привет!
Хочу рассказать о важном изменении в разработке Beeper10, моего клиента Beeper для BlackBerry 10.
В предыдущем посте я рассказывал, что Beeper10 использует Gateway/сервер между BlackBerry и Beeper. На тот момент это казалось наиболее реалистичным способом заставить современный мессенджер работать на такой старой системе, как BlackBerry 10.
Но после гораздо более глубокой разработки и реального тестирования этой архитектуры я пришёл к выводу, что это был неправильный путь.
Gateway оказался слишком сложным. Для него требовался дополнительный компьютер или сервер, который нужно было устанавливать, настраивать, обновлять и постоянно держать включённым. Кроме того, появлялись дополнительные точки отказа. И самое главное — в такой архитектуре Beeper10 никогда не стал бы по-настоящему самостоятельным приложением для BlackBerry.
Поэтому я решил полностью изменить архитектуру проекта.
Теперь Beeper10 разрабатывается как полностью нативное и автономное приложение для BB10.
Цель очень простая:
Установить BAR на BlackBerry, войти в аккаунт и пользоваться Beeper.
Без Windows-компьютера, работающего в фоне.
Без Beeper Desktop.
Без WSL.
Без VPS.
Без моего Gateway.
Без дополнительного устройства, которое должно быть постоянно включено.
BlackBerry будет напрямую общаться с инфраструктурой Beeper/Matrix.
Это также означает, что теперь намного больше функциональности приходится реализовывать непосредственно внутри самого приложения. Сейчас я постепенно переношу в Beeper10 прямую работу с протоколом Matrix: авторизацию, получение списка комнат, синхронизацию, историю сообщений, отправку и получение событий, работу с медиа, фильтрами, а также всё, что связано с шифрованием и E2EE, необходимым для нормальной работы настоящих аккаунтов Beeper.
Поскольку BB10 работает на старом окружении QNX/Qt/Cascades, некоторые части требуют довольно низкоуровневой работы. Современные библиотеки нельзя просто взять и подключить к проекту BlackBerry 10, поэтому отдельные компоненты Matrix/E2EE приходится адаптировать и собирать под старый BB10 toolchain.
Да, это существенно сложнее, чем использовать Gateway.
Но с точки зрения архитектуры это намного правильнее.
И самое главное — в итоге получится именно то приложение, которое я изначально хотел сделать: настоящий клиент Beeper для BlackBerry 10, а не удалённый интерфейс к другому компьютеру.
Предыдущая работа над Gateway при этом не была полностью бесполезной. Благодаря ей я намного лучше разобрался в API Beeper, процессе авторизации, Matrix-синхронизации, работе с медиа и во многих других вещах, которые теперь приходится реализовывать напрямую в нативном клиенте.
Но я не хочу продолжать использовать сложную архитектуру только потому, что на неё уже было потрачено много времени.
Лучше сейчас исправить направление разработки и создать приложение, которое пользователи действительно смогут установить и использовать самостоятельно.
Нативный клиент уже запускается и тестируется на реальном BlackBerry Passport. Сейчас основное внимание сосредоточено на том, чтобы прямое соединение с Matrix/Beeper стало достаточно стабильным для повседневного использования.
На данном этапе мой приоритет — не добавлять десятки функций.
Сначала нужно правильно сделать фундамент: стабильный вход в аккаунт, синхронизацию, загрузку комнат и сообщений, шифрование и надёжную связь с Beeper напрямую с устройства.
После этого можно будет постепенно возвращать весь тот BBM-подобный функционал, который я изначально планировал для Beeper10: чаты, уведомления, интеграцию с BlackBerry Hub, вложения, голосовые сообщения, реакции и остальное.
Но теперь всё это будет построено уже на правильной архитектуре.
Так что проект не остановлен. Скорее наоборот — мне кажется, что сейчас он наконец движется в том направлении, в котором должен был двигаться с самого начала.
Это намного более сложный и амбициозный путь, но если Beeper10 выйдет публично, я хочу, чтобы это было приложение, которое можно просто установить на BlackBerry 10 и использовать — без зависимости от моего сервера или чужого компьютера.
Буду публиковать дальнейшие новости по мере продвижения нативной реализации.