Бинарность — это нормально: опыт работы с Protobuf на реальном проекте
Меня зовут Настя Неводчикова, я системный аналитик в KODE. В этой статье я хочу поделиться опытом работы с бинарными форматами сериализации, а именно с Protobuf, и рассказать, с какими проблемами мы столкнулись в процессе аналитики и тестирования, а также как их решали.
Исходные условия: у нас было мобильное приложение, написанное на Objective-C (iOS) и Java (Android). Цель — переписать его на современный стек: Swift и Kotlin. Дополнительно нужно было сделать редизайн приложения и обновить бэкенд: поднять Java с 6 до 21. Приложение общалось с бэкендом по HTTP и использовало Protobuf для сериализации данных.
Что важно — никакой документации на существующее приложение не было. У нас была лишь тестовая сборка и сервер с логикой. Поэтому перед стартом разработки нужно было:
Читать далее
Читать: https://habr.com/ru/articles/939776/
@a_cup_of_java | Другие наши каналы
Меня зовут Настя Неводчикова, я системный аналитик в KODE. В этой статье я хочу поделиться опытом работы с бинарными форматами сериализации, а именно с Protobuf, и рассказать, с какими проблемами мы столкнулись в процессе аналитики и тестирования, а также как их решали.
Исходные условия: у нас было мобильное приложение, написанное на Objective-C (iOS) и Java (Android). Цель — переписать его на современный стек: Swift и Kotlin. Дополнительно нужно было сделать редизайн приложения и обновить бэкенд: поднять Java с 6 до 21. Приложение общалось с бэкендом по HTTP и использовало Protobuf для сериализации данных.
Что важно — никакой документации на существующее приложение не было. У нас была лишь тестовая сборка и сервер с логикой. Поэтому перед стартом разработки нужно было:
Читать далее
Читать: https://habr.com/ru/articles/939776/
@a_cup_of_java | Другие наши каналы
👎2
Что можно узнать о Max из AndroidManifest
Привет, Хабр!
Сегодня в сети есть много дискуссий о мессенджере Макс. Недавно я наткнулся на один пост в гитхабе с анализом Android-приложения, где приводятся страшные выводы о слежке за пользователями. Поскольку интерес к этому вопросу лично у меня велик, я решил разобрать важный файл приложения — его AndroidManifest.xml — и проверить факты.
Сам по себе AndroidManifest.xml — это своеобразный декларативный контракт приложения с Android: в нем зашиты его идентичность, модель доступа, поверхность атаки, аппаратные и сетевые зависимости, а также внешние взаимодействия. По одному этому файлу уже видно, к каким данным приложение может проситься, что оно имеет право делать в фоне, какие входные точки открыты наружу и под какие правила безопасности платформы оно подпадает. Манифест задает границы возможностей и рисков, а код и выданные пользователем разрешения решают, воспользуется ли приложение этими возможностями.
Читать далее
Читать: https://habr.com/ru/articles/939868/
@a_cup_of_java | Другие наши каналы
Привет, Хабр!
Сегодня в сети есть много дискуссий о мессенджере Макс. Недавно я наткнулся на один пост в гитхабе с анализом Android-приложения, где приводятся страшные выводы о слежке за пользователями. Поскольку интерес к этому вопросу лично у меня велик, я решил разобрать важный файл приложения — его AndroidManifest.xml — и проверить факты.
Сам по себе AndroidManifest.xml — это своеобразный декларативный контракт приложения с Android: в нем зашиты его идентичность, модель доступа, поверхность атаки, аппаратные и сетевые зависимости, а также внешние взаимодействия. По одному этому файлу уже видно, к каким данным приложение может проситься, что оно имеет право делать в фоне, какие входные точки открыты наружу и под какие правила безопасности платформы оно подпадает. Манифест задает границы возможностей и рисков, а код и выданные пользователем разрешения решают, воспользуется ли приложение этими возможностями.
Читать далее
Читать: https://habr.com/ru/articles/939868/
@a_cup_of_java | Другие наши каналы
👎9👍2
Мобильная разработка за неделю #599 (18 — 24 августа)
В этом выпуске несколько технических разборов Max, отказ от MVVM и использование Retrofit с корутинами, магия анимаций RecyclerView и генерация UI Kit с использованием ИИ, опыт работы с Protobuf на реальном проекте, COBOL в 2025, вяжущая фасолина в топе App Store и многое другое. Заходите!
Читать далее
Читать: https://habr.com/ru/articles/940212/
@a_cup_of_java | Другие наши каналы
В этом выпуске несколько технических разборов Max, отказ от MVVM и использование Retrofit с корутинами, магия анимаций RecyclerView и генерация UI Kit с использованием ИИ, опыт работы с Protobuf на реальном проекте, COBOL в 2025, вяжущая фасолина в топе App Store и многое другое. Заходите!
Читать далее
Читать: https://habr.com/ru/articles/940212/
@a_cup_of_java | Другие наши каналы
👍1
Мобильная разработка за неделю #599 (18 — 24 августа)
В этом выпуске несколько технических разборов Max, отказ от MVVM и использование Retrofit с корутинами, магия анимаций RecyclerView и генерация UI Kit с использованием ИИ, опыт работы с Protobuf на реальном проекте, COBOL в 2025, вяжущая фасолина в топе App Store и многое другое. Заходите!
Читать далее
Читать: https://habr.com/ru/articles/940212/
@a_cup_of_java | Другие наши каналы
В этом выпуске несколько технических разборов Max, отказ от MVVM и использование Retrofit с корутинами, магия анимаций RecyclerView и генерация UI Kit с использованием ИИ, опыт работы с Protobuf на реальном проекте, COBOL в 2025, вяжущая фасолина в топе App Store и многое другое. Заходите!
Читать далее
Читать: https://habr.com/ru/articles/940212/
@a_cup_of_java | Другие наши каналы
Apple
В России заработала бесконтактная оплата iPhone. Пока только с картами Сбера
В России запустили бесконтактную оплату iPhone через Bluetooth в приложении Сбера — первый аналог Apple Pay, работающий без NFC и интернета
— Читать дальше «В России заработала бесконтактная оплата iPhone. Пока только с картами Сбера»
В России заработала бесконтактная оплата iPhone. Пока только с картами Сбера
В России запустили бесконтактную оплату iPhone через Bluetooth в приложении Сбера — первый аналог Apple Pay, работающий без NFC и интернета
— Читать дальше «В России заработала бесконтактная оплата iPhone. Пока только с картами Сбера»
👍9👎6🔥2🤔2😁1
Android. Starting Kivy App and Service on bootup. API 35
Это мини статья является дополнением к статье Android. Starting Kivy App and Service on bootup, в которой запускал сервисом kivy приложение на API 22 Android 5. Теперь будем запускать на последних версиях Android. C API 26 Android 8 и по текущий API 35 Android 15 который есть у меня, постигли изменения, которые необходимо внести для автостарта сервиса. Проверял работу на API 22...35.
Читать далее
Читать: https://habr.com/ru/articles/940534/
@a_cup_of_java | Другие наши каналы
Это мини статья является дополнением к статье Android. Starting Kivy App and Service on bootup, в которой запускал сервисом kivy приложение на API 22 Android 5. Теперь будем запускать на последних версиях Android. C API 26 Android 8 и по текущий API 35 Android 15 который есть у меня, постигли изменения, которые необходимо внести для автостарта сервиса. Проверял работу на API 22...35.
Читать далее
Читать: https://habr.com/ru/articles/940534/
@a_cup_of_java | Другие наши каналы
🗿1
Apple
Apple и OpenAI столкнулись с иском от xAI Илона Маска из-за подавления конкуренции в сфере ИИ
Стартап Илона Маска xAI подал иск против Apple и OpenAI в федеральный суд США. Маск обвиняет компании в монополизации рынка ИИ через интеграцию ChatGPT в iOS и блокировании конкурентов. Дело может стать прецедентом для антимонопольного регулирования в сфере искусственного интеллекта.
— Читать дальше «Apple и OpenAI столкнулись с иском от xAI Илона Маска из-за подавления конкуренции в сфере ИИ»
Apple и OpenAI столкнулись с иском от xAI Илона Маска из-за подавления конкуренции в сфере ИИ
Стартап Илона Маска xAI подал иск против Apple и OpenAI в федеральный суд США. Маск обвиняет компании в монополизации рынка ИИ через интеграцию ChatGPT в iOS и блокировании конкурентов. Дело может стать прецедентом для антимонопольного регулирования в сфере искусственного интеллекта.
— Читать дальше «Apple и OpenAI столкнулись с иском от xAI Илона Маска из-за подавления конкуренции в сфере ИИ»
Android
Android запретит установку любых .apk из интернета. Только от проверенных разработчиков
С 2026 года Android разрешит установку только проверенных приложений: верификация станет обязательной для всех источников, включая APK
— Читать дальше «Android запретит установку любых .apk из интернета. Только от проверенных разработчиков»
Android запретит установку любых .apk из интернета. Только от проверенных разработчиков
С 2026 года Android разрешит установку только проверенных приложений: верификация станет обязательной для всех источников, включая APK
— Читать дальше «Android запретит установку любых .apk из интернета. Только от проверенных разработчиков»
😱15👎9😁7👍1
Apple
Linux полностью портировали на Mac M1/M2 — работают даже игры через Proton
Linux теперь полноценно работает на Mac с M1/M2: Asahi Linux реализовал драйверы для OpenGL 4.6, Vulkan 1.4 и запуск игр через Proton
— Читать дальше «Linux полностью портировали на Mac M1/M2 — работают даже игры через Proton»
Linux полностью портировали на Mac M1/M2 — работают даже игры через Proton
Linux теперь полноценно работает на Mac с M1/M2: Asahi Linux реализовал драйверы для OpenGL 4.6, Vulkan 1.4 и запуск игр через Proton
— Читать дальше «Linux полностью портировали на Mac M1/M2 — работают даже игры через Proton»
🔥13👍3❤1
Технический гайд по сторис ч.2: багфиксы, оптимизация, новые фичии +350% к переходам
Привет! Меня зовут Владислав Фальзан, я работаю android-разработчиком в М2. Наша команда мобильной разработки развивает приложение — онлайн-платформу для решения вопросов с недвижимостью. Основные пользователи приложения — физические лица (B2C) и риелторы (B2B2C). Эта статья — продолжение технического гайда для android-разработчиков, которые хотят реализовать и внедрить полный цикл сторис у себя в приложении с использованием: Compose, MVVM, Coroutines flow и правил чистой архитектуры.
Читать далее
Читать: https://habr.com/ru/companies/m2tech/articles/940864/
@a_cup_of_java | Другие наши каналы
Привет! Меня зовут Владислав Фальзан, я работаю android-разработчиком в М2. Наша команда мобильной разработки развивает приложение — онлайн-платформу для решения вопросов с недвижимостью. Основные пользователи приложения — физические лица (B2C) и риелторы (B2B2C). Эта статья — продолжение технического гайда для android-разработчиков, которые хотят реализовать и внедрить полный цикл сторис у себя в приложении с использованием: Compose, MVVM, Coroutines flow и правил чистой архитектуры.
Читать далее
Читать: https://habr.com/ru/companies/m2tech/articles/940864/
@a_cup_of_java | Другие наши каналы
Сделай удобно: подборка UI/UX-кейсов из цифровых и нецифровых продуктов (#20)
Продолжаю изучать различные UI/UX/CX кейсы в мобильных приложениях, веб-сайтах и в реальном мире. Дизайнерам и менеджерам по продукту, чтобы вдохновиться и добавить в заметки.
Под катом: Райф, Т-инвестиции.
Читать далее
Читать: https://habr.com/ru/articles/941228/
@a_cup_of_java | Другие наши каналы
Продолжаю изучать различные UI/UX/CX кейсы в мобильных приложениях, веб-сайтах и в реальном мире. Дизайнерам и менеджерам по продукту, чтобы вдохновиться и добавить в заметки.
Под катом: Райф, Т-инвестиции.
Читать далее
Читать: https://habr.com/ru/articles/941228/
@a_cup_of_java | Другие наши каналы
Как я сделал 2Flights: кроссплатформенное приложение для отслеживания рейсов с глобальным лидербордом
Когда закрылся App in the Air, многие путешественники остались без привычного инструмента для учёта своих перелётов. Flighty — отличное приложение, но оно работает только на iOS. Мне захотелось сделать кроссплатформенную альтернативу, доступную и для Android, и для iOS, с акцентом на визуализацию и сообщество. Так появился проект 2Flights.
Читать далее
Читать: https://habr.com/ru/articles/941520/
@a_cup_of_java | Другие наши каналы
Когда закрылся App in the Air, многие путешественники остались без привычного инструмента для учёта своих перелётов. Flighty — отличное приложение, но оно работает только на iOS. Мне захотелось сделать кроссплатформенную альтернативу, доступную и для Android, и для iOS, с акцентом на визуализацию и сообщество. Так появился проект 2Flights.
Читать далее
Читать: https://habr.com/ru/articles/941520/
@a_cup_of_java | Другие наши каналы
👎2🤣2
iOS 26. Почему нативная разработка — это преимущество и необходимость
Flutter сталкивается с новыми ограничениями, а релиз iOS 26 вносит большие изменения в нативный UI. В статье расскажем, почему выбор именно нативных технологий помогут продуктам оставаться конкурентоспособными.
Читать далее
Читать: https://habr.com/ru/companies/cleverpumpkin/articles/935480/
@a_cup_of_java | Другие наши каналы
Flutter сталкивается с новыми ограничениями, а релиз iOS 26 вносит большие изменения в нативный UI. В статье расскажем, почему выбор именно нативных технологий помогут продуктам оставаться конкурентоспособными.
Читать далее
Читать: https://habr.com/ru/companies/cleverpumpkin/articles/935480/
@a_cup_of_java | Другие наши каналы
👎12👍7🤝2👏1
Stack Inspector: мониторинг стека в iOS и macOS
Сколько реально занимает стек в вашем iOS/macOS-приложении? Давайте разберёмся, как в рантайме:
контролировать использование стека,
предотвращать stack overflow,
безопасно оптимизировать рекурсию и работу фоновых потоков.
Читать далее
Читать: https://habr.com/ru/articles/941586/
@a_cup_of_java | Другие наши каналы
Сколько реально занимает стек в вашем iOS/macOS-приложении? Давайте разберёмся, как в рантайме:
контролировать использование стека,
предотвращать stack overflow,
безопасно оптимизировать рекурсию и работу фоновых потоков.
Читать далее
Читать: https://habr.com/ru/articles/941586/
@a_cup_of_java | Другие наши каналы
Tracer — инструмент для поиска и анализа ошибок: новые фичи в 2025
С первого релиза в августе 2023 года Tracer успел стать востребованным решением. Уже к концу 2024 года в нём было зарегистрировано свыше 1 500 организаций и 5 000 пользователей и ежедневно обрабатывалось более 2,5 млрд запросов. В 2025 году количество зарегистрированных организаций превысило 1 800, а число пользователей достигло отметки в 8 000. Но это не предел, ведь работа над прокачкой инструмента не останавливается.
Читать далее
Читать: https://habr.com/ru/companies/vk/articles/941972/
@a_cup_of_java | Другие наши каналы
С первого релиза в августе 2023 года Tracer успел стать востребованным решением. Уже к концу 2024 года в нём было зарегистрировано свыше 1 500 организаций и 5 000 пользователей и ежедневно обрабатывалось более 2,5 млрд запросов. В 2025 году количество зарегистрированных организаций превысило 1 800, а число пользователей достигло отметки в 8 000. Но это не предел, ведь работа над прокачкой инструмента не останавливается.
Читать далее
Читать: https://habr.com/ru/companies/vk/articles/941972/
@a_cup_of_java | Другие наши каналы
The role of a user persona in UX and how to create it
A lot of articles and guides on how to create an effective UX design for a software product mention “sticking to a user persona” in order not to waste efforts and resources on a non-target audience. What is a user persona, how to define it, and how can it help the UX team in finding the best design solutions for a product?
Читать далее
Читать: https://habr.com/ru/articles/942046/
@a_cup_of_java | Другие наши каналы
A lot of articles and guides on how to create an effective UX design for a software product mention “sticking to a user persona” in order not to waste efforts and resources on a non-target audience. What is a user persona, how to define it, and how can it help the UX team in finding the best design solutions for a product?
Читать далее
Читать: https://habr.com/ru/articles/942046/
@a_cup_of_java | Другие наши каналы
❤2🌚2
С нуля до APK: Android-приложение для озвучки новостей из Telegram с помощью ИИ
В конце июня этого года я возвращался с дачи, слушая радио в машине. Новости по радио выходят раз в час, и их разнообразие оставляет желать лучшего. Тогда я подумал: было бы здорово, если бы было приложение, которое автоматически собирало новости из Telegram-каналов и озвучивало их голосом на русском языке.
Читать далее
Читать: https://habr.com/ru/articles/942488/
@a_cup_of_java | Другие наши каналы
В конце июня этого года я возвращался с дачи, слушая радио в машине. Новости по радио выходят раз в час, и их разнообразие оставляет желать лучшего. Тогда я подумал: было бы здорово, если бы было приложение, которое автоматически собирало новости из Telegram-каналов и озвучивало их голосом на русском языке.
Читать далее
Читать: https://habr.com/ru/articles/942488/
@a_cup_of_java | Другие наши каналы
🔥9😁6
Google меняет правила игры: верификация разработчиков и ограничения APK в Android
Google анонсировал радикальные изменения в экосистеме Android, которые затронут процесс установки приложений из сторонних источников. Новая система верификации разработчиков может перевернуть привычный подход к sideload'у APK-файлов. Давайте разберёмся, что это значит для пользователей, разработчиков и всей экосистемы Android.
Что меняется?
Согласно новости от iXBT, Google вводит обязательную верификацию разработчиков для установки APK на сертифицированных устройствах Android (то есть на большинстве смартфонов и планшетов с Google Play Services). Теперь приложения, загружаемые не из Play Store, должны быть подписаны ключами разработчиков, прошедших проверку личности через новую консоль Android Developer. Это не проверка кода на вредоносность, а именно идентификация автора приложения.
Читать далее
Читать: https://habr.com/ru/articles/942522/
@a_cup_of_java | Другие наши каналы
Google анонсировал радикальные изменения в экосистеме Android, которые затронут процесс установки приложений из сторонних источников. Новая система верификации разработчиков может перевернуть привычный подход к sideload'у APK-файлов. Давайте разберёмся, что это значит для пользователей, разработчиков и всей экосистемы Android.
Что меняется?
Согласно новости от iXBT, Google вводит обязательную верификацию разработчиков для установки APK на сертифицированных устройствах Android (то есть на большинстве смартфонов и планшетов с Google Play Services). Теперь приложения, загружаемые не из Play Store, должны быть подписаны ключами разработчиков, прошедших проверку личности через новую консоль Android Developer. Это не проверка кода на вредоносность, а именно идентификация автора приложения.
Читать далее
Читать: https://habr.com/ru/articles/942522/
@a_cup_of_java | Другие наши каналы
👎12😐6👍3👀3😁1
Мобильная разработка за неделю #600 (25 — 31 августа)
В этом “юбилейном” выпуске память в Swift и ужесточение проверки разработчиков для сторонней установки приложений от Google, очередная смерть Flutter и инструмент для поиска и анализа ошибок, все != nil в коде, pixel-perfect тестирования дизайн-системы в Android, Польша как главный рынок приложений Европы и многое другое. Заходите!
Читать далее
Читать: https://habr.com/ru/articles/942534/
@a_cup_of_java | Другие наши каналы
В этом “юбилейном” выпуске память в Swift и ужесточение проверки разработчиков для сторонней установки приложений от Google, очередная смерть Flutter и инструмент для поиска и анализа ошибок, все != nil в коде, pixel-perfect тестирования дизайн-системы в Android, Польша как главный рынок приложений Европы и многое другое. Заходите!
Читать далее
Читать: https://habr.com/ru/articles/942534/
@a_cup_of_java | Другие наши каналы
Compose Multiplatform простое приложение c MVI
Статья об использовании мультиплатформенного Android и iOs решения на Compose с минимальным количеством сторонних beta библиотек
Из сторонних beta библиотек используется buildkonfig = "0.17.1"
Room - База данных
ktor - Network. Также задействован embeddedServer для эмуляции сервера
coin - Di
Coroutine Flow
Compose Navigation
Clean Architecture
Читать далее
Читать: https://habr.com/ru/articles/941196/
@a_cup_of_java | Другие наши каналы
Статья об использовании мультиплатформенного Android и iOs решения на Compose с минимальным количеством сторонних beta библиотек
Из сторонних beta библиотек используется buildkonfig = "0.17.1"
Room - База данных
ktor - Network. Также задействован embeddedServer для эмуляции сервера
coin - Di
Coroutine Flow
Compose Navigation
Clean Architecture
Читать далее
Читать: https://habr.com/ru/articles/941196/
@a_cup_of_java | Другие наши каналы
❤7
Compose Multiplatform простое приложение c MVI
Статья об использовании мультиплатформенного Android и iOs решения на Compose с минимальным количеством сторонних beta библиотек
Из сторонних beta библиотек используется buildkonfig = "0.17.1"
Room - База данных
ktor - Network. Также задействован embeddedServer для эмуляции сервера
coin - Di
Coroutine Flow
Compose Navigation
Clean Architecture
Читать далее
Читать: https://habr.com/ru/articles/941196/
@a_cup_of_java | Другие наши каналы
Статья об использовании мультиплатформенного Android и iOs решения на Compose с минимальным количеством сторонних beta библиотек
Из сторонних beta библиотек используется buildkonfig = "0.17.1"
Room - База данных
ktor - Network. Также задействован embeddedServer для эмуляции сервера
coin - Di
Coroutine Flow
Compose Navigation
Clean Architecture
Читать далее
Читать: https://habr.com/ru/articles/941196/
@a_cup_of_java | Другие наши каналы
🔥4