Мобильная разработка
13.9K subscribers
861 photos
237 videos
2.96K links
Актуальное по мобильной разработке — Android, iOS, кроссплатформа

Разместить рекламу: @tproger_sales_bot
Правила общения: https://tprg.ru/rules
Другие каналы: @tproger_channels
Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/oVBP
Download Telegram
Упрощаем NFC: обзор нового SDK для Android разработки

Работа с NFC в Android всегда была непростой задачей. Нативный API требует от разработчика понимания низкоуровневых протоколов и механизмов обработки данных. Новый TAO NFC SDK (Android) призван решить эту проблему, предоставляя высокоуровневую абстракцию, которая значительно упрощает взаимодействие с NFC-метками.
Читать далее

Читать: https://habr.com/ru/articles/942474/

@a_cup_of_java | Другие наши каналы
3
Интересная «Request-Based» архитектура на примере Блокнота с открытым исходным кодом

Привет, меня зовут Саша и я Android-разработчик :)

Разрабатывая мобильные приложения я обратил внимание что все операции которые делает приложение - это по сути запросы данных от разных источников.

Часто источниками данных являются: человек, сервер и устройство (User, Server, Platform).

Приложение принимает данные от какого-то источника, преобразует их и выдает преобразованные данные другому источнику и так пока не дойдет до корня дерева запросов.

Подобно тому как вызовы функций вкладываются друг в друга:
Читать далее

Читать: https://habr.com/ru/articles/942762/

@a_cup_of_java | Другие наши каналы
2
Как я ездил в Узбекистан чтобы создать юрлицо и почему IT Park в Узбекистане — это находка для айтишников?

Всем привет! Меня зовут Александр Антипин и я руковожу небольшой студией разработки. Мы разрабатываем мобильные игры и IT-решения для компаний. В этой статье я расскажу про IT Park в Узбекистане — место, которое сейчас активно обсуждают в айтишных чатах. Если вы думаете, что это просто хайп, то я попробую вас переубедить. За пару дней в Ташкенте я успел зарегистрировать компанию, открыть счёт, получить карты и даже съездить в Самарканд, чтобы проникнуться духом города с 2500-летней историей. Но обо всём по порядку: зачем вообще туда ехать, почему именно Узбекистан, какие бонусы даёт IT Park и как там живётся?
Читать далее

Читать: https://habr.com/ru/articles/942804/

@a_cup_of_java | Другие наши каналы
👍3👎3
Flutter дайджест — Лето 2025 (июль + август)

Привет, друзья! ☀️ Лето подходит к концу, а значит самое время подвести итоги и вспомнить, что интересного произошло во Flutter-мире за два месяца.

Впереди осень 🍂 — и мы готовим ещё больше новостей, релизов и туториалов. Ну а пока наслаждайтесь нашим летним дайджестом.

А ещё — поздравляем студентов и школьников с Днём знаний! 🎓 Пусть учёба будет лёгкой, а знания по Flutter и Dart только умножаются. Канал FlutterPulse будет развиваться и расти вместе с вами 🚀
Читать далее

Читать: https://habr.com/ru/articles/942808/

@a_cup_of_java | Другие наши каналы
👎1
Android. Glance Widgets. Начало

По разным причинам мы начинаем изучать что-то новое. Будь то углубленный курс по твоей специализации. Или это что-то стороннее, получить навык, который давно хотел освоить. И вот мы сталкиваемся с новым и попадаем в цикл понятно/ничего непонятно.

Статья для тех, кто хочет изучить Glance виджеты на Android. Посмотреть на существующие проблемы, про подводные камни и увидеть способы их решения. Полезно делиться опытом
Читать далее

Читать: https://habr.com/ru/articles/942886/

@a_cup_of_java | Другие наши каналы
События, которым можно доверять: выстраивание процесса работы с разметкой приложения с точки зрения аналитика

Привет! Меня зовут Николай Олигеров. Сейчас я работаю аналитиком данных в Яндекс Путешествиях, а до этого я был продуктовым аналитиком в Лавке — мой рассказ будет именно про неё.

В какой‑то момент мы поняли, что больше не можем доверять своей событийной аналитике: события дублировались, параметры терялись, триггеры срабатывали не тогда, когда нужно. В статье расскажу, как мы полностью пересобрали систему разметки приложения Лавки: с автотестами, документацией, мониторингами и прозрачным процессом, где аналитики и разработка работают вместе.
Читать далее

Читать: https://habr.com/ru/companies/yandex/articles/940728/

@a_cup_of_java | Другие наши каналы
🤨2
Проверил график изменения цен и увидел совсем не то, что показывал маркетплейс

Вы заглядываете в историю изменения цены на вайлдберриз? Кстати, раньше она и на Яндекс Маркете была, но они её убрали..

Так вот, я частенько смотрел раньше на этот график с историей цены, пока не сделал свой мониторинг цен, а как сделал - естественно меня пробрало любопытство проверить, сойдутся ли данные.

Однако график, что показывает Вб, не учитывает персональные цены для конкретных пользователей с учётом доставки. А ещё, история агрегируется за неделю, то есть по дням её посмотреть не получится, не говоря уже о проверке цены в рамках одного дня.

Получается, они показывают нам какую-то фантомную цену за последние 90 дней?.. Нашёл пример товара с графиком (он ещё и не для всех товаров показывается), и что мы видим:
Читать далее

Читать: https://habr.com/ru/articles/942998/

@a_cup_of_java | Другие наши каналы
👎2
[Перевод] Claude Code: лучшие практики агентного программирования

Иногда действительно лучше промолчать, чем писать что-то ради «галочки». На днях мы в команде вспомнили о методичке Anthropic по Claude Code и поняли —  добавить к ней практически нечего, конечно, кроме наших советов об использовании этого инструмента. Все подходы, которые появились у нас с помощью этой практики, теперь вошли в официальные гайды лидеров в области ИИ-агентов.

В общем, если вы хотите разобраться в агентном программировании — не проходите мимо этого перевода с комментариями руководителя отдела Flutter-разработки Surf Марка.
Читать дальше

Читать: https://habr.com/ru/companies/surfstudio/articles/943108/

@a_cup_of_java | Другие наши каналы
👎1
Запуск бинарных файлов из data/data на Android 10+ (Обход SELinux)

Всем привет! Как многие знают, с Android 10 (Target sdk 29) google ввели новую политику безопасности. Новая политика SELinux звучит просто: "Нельзя исполнять файлы из той директории, в которую можно записывать". Всё это очень хорошо, но многие проекты сломались (В том числе и мой). Termux из google play УМЕЕТ запускать бинарные файлы на target sdk 29+. Я решил поделится как выполнить бинарный файл из data/data/com.ваш.пакет/files на новых версиях sdk БЕЗ полного клонирования Termux и БЕЗ С/C++ части. Сам метод запуска будет именно на java. Репозиторий termux, откуда был взят способ: https://github.com/termux-play-store/termux-apps

В чём суть, любой бинарный файла который вы запускаете имеет свой контекст. Если вы запускаете через нативную директорию (data/app/и так далее) перед этим положив бинарные файлы в jniLins - контекст у такого бинарного файла будет правильным и SELinux даст разрешение на запуск (Granted), но в случае с data/data другой случай, оттуда SELinux УЖЕ ОТКАЖЕТСЯ запускать бинарный файл (Denied). Разрешил SELinux запуск или отклонил можно смотреть в logcat. Однако, в системе существует системная утилита которая может запустить бинарник, а самое главное - SELinux РАЗРЕШИТ ей запустится, так как она системная. Её имя - linker или linker64 (Зависит от разрядности, 32 бита или 64)

Запустив линкер и передав ему наш бинарный файл из data/data - SELinux разрешит ему выполнится и сразу разрешит исполнение нашего бинарного файла. Тут сразу возникает вопрос, а если бинарный файл попробует подключить so библиотеку? Ей будет отказано? Здесь тоже есть решение, существует termux-exec. Это бинарный файл, который перехватывает попытку подключения чего либо и выполняет трюк с линкером. (linker или linker64 определяет автоматически). Вы можете собрать его из исходников (https://github.com/termux-play-store/termux-exec), но лично я полностью скопировал среду (Где этот уже собранный файл идёт в usr/lib) termux, так как мне нужно было запускать OpenJDK 17 под termux.
Читать далее

Читать: https://habr.com/ru/articles/943188/

@a_cup_of_java | Другие наши каналы
7
«Стеклянный мир» iOS 26. Адаптируем приложение под новые гайдлайны

Уже скоро релиз iOS 26 и обновления SDK приложений. Apple снова вносит корректировки, а разработчики и дизайнеры снова подстраиваются. У текущих приложений будет переходный период, но вопрос с обновлением интерфейсов рано или поздно настанет и придется адаптировать под новый SDK и стиль Liquid Glass, чтобы продукт выглядел современно.

Наш дизайнер интерфейсов Фёдор Миронов поделится наблюдениями о новых гайдлайнах и расскажет, какие изменения принесёт Liquid Glass. А ещё покажет несколько примеров обновления интерфейсов тестового приложения и нашего финтех-проекта Moneon.
Читать далее

Читать: https://habr.com/ru/companies/cleverpumpkin/articles/943434/

@a_cup_of_java | Другие наши каналы
3👍3🔥3
SEE NO EVIL: чему нас учит уязвимость CVE-2025-43300

Всем привет! Это Светлана Газизова, директор по построению процессов DevSecOps и безопасности ИИ, Positive Technologies, и Николай Анисеня, руководитель разработки первого российского сервиса по защите мобильных приложений от реверс-инжиниринга PT MAZE, Positive Technologies. Почему мы вообще решили написать целую статью про одну недавно обнаруженную уязвимость?

Мир устроен так, что самые опасные угрозы обычно скрываются там, где их меньше всего ожидают. Мы в ИБ привыкли к фишинговым письмам и вирусам, но редко думаем, что обычная картинка в мессенджере может превратиться в инструмент шпионажа. Именно поэтому мы решили рассказать о громкой уязвимости CVE-2025-43300 и показать на ее примере, почему безопасность разработки — это не абстрактная теория, а жизненно важная практика для бизнеса, разработчиков, обычных пользователей и нас самих. Да-да, мошенники пишут даже сотрудникам службы ИБ, и картинки тоже отправляют.
Читать далее

Читать: https://habr.com/ru/companies/pt/articles/943312/

@a_cup_of_java | Другие наши каналы
👍1👀1
Мессенджер
Топ 10 лучших нейросетей для создания картинок по описанию - как сгенерировать картинку по описанию бесплатно?
Топ-10 лучших нейросетей для генерации картинок по описанию. Создавай изображения онлайн бесплатно и без фотошопа за пару минут.

— Читать дальше «Топ 10 лучших нейросетей для создания картинок по описанию - как сгенерировать картинку по описанию бесплатно?»
2
Взлом через картинку в Apple: уроки громкой уязвимости для разработчиков

Мир устроен так, что самые опасные угрозы обычно скрываются там, где их меньше всего ожидают. Мы в ИБ привыкли к фишинговым письмам и вирусам, но редко думаем, что обычная картинка в мессенджере может превратиться в инструмент шпионажа. Именно поэтому мы решили рассказать о громкой уязвимости PT-2025-34177 (CVE-2025-43300) – zero-day, которая, говоря простыми словами, позволяет злоумышленнику совершить атаку через вредоносную картинку, открытую пользователем на своем устройстве. И на этом примере показать, почему безопасность разработки — это не абстрактная теория, а жизненно важная практика для бизнеса, разработчиков, обычных пользователей и нас самих. Да-да, мошенники пишут даже сотрудникам службы ИБ, и картинки тоже отправляют.
Читать далее

Читать: https://habr.com/ru/companies/pt/articles/943630/

@a_cup_of_java | Другие наши каналы
👍2😱2🤝1
Android. Glance Widget. Часть 2. Конфигурация данных для виджета

Рассмотрим, как добавить конфигурационную activity для виджета, как сохранять, доставать и применять настройки.
Читать далее

Читать: https://habr.com/ru/articles/943678/

@a_cup_of_java | Другие наши каналы
Android. Glance Widget. Часть 2. Конфигурация данных для виджета

Рассмотрим, как добавить конфигурационную activity для виджета, как сохранять, доставать и применять настройки.
Читать далее

Читать: https://habr.com/ru/articles/943678/

@a_cup_of_java | Другие наши каналы
Apple
На GitHub появился коммит 1978 года за авторством Microsoft
Microsoft выложила на GitHub исходники BASIC 1.1 для MOS 6502, оформив коммит датой 1978 года. Это исторический код, стоявший у истоков компании

— Читать дальше «На GitHub появился коммит 1978 года за авторством Microsoft»
2
Жизненный цикл UIViewController в 2025 году: что изменилось и что устарело

В 2022 году я написал статью «Жизненный цикл UIViewController», где подробно разобрал порядок вызова методов и основные сценарии работы с ними.

С тех пор прошло больше трёх лет, и в iOS появилось несколько изменений, которые делают старую статью уже не до конца актуальной.
Читать далее

Читать: https://habr.com/ru/articles/943778/

@a_cup_of_java | Другие наши каналы
👍43
Как сделать GitLab CI/CD вашим лучшим другом для сборки и доставки Flutter приложений. Часть 2

Flutter & GitLab CI/CD. Сборка и подписание мобильных приложений

Привет! Меня зовут Данил Абдрафиков, я мобильный разработчик в компании TAGES. Эта статья является продолжением первой части руководства по настройке GitLab CI/CD для Flutter приложений, в котором мы подробно разобрали настройку физической машины и подготовили GitLab Runner для работы. Теперь, когда инфраструктура готова, перейдем к самому интересному – автоматизации сборки и подписания мобильных приложений.

Готовы превратить сборку мобильных приложений из рутинной задачи в полностью автоматизированный процесс? Тогда начинаем!
Читать далее

Читать: https://habr.com/ru/articles/943154/

@a_cup_of_java | Другие наши каналы
👎2👍1🔥1
Календарь домашних тренировок — 10 улучшений в пет-проекте

5 месяцев назад я публиковал материал про пет-проект календаря домаших тренировок. Сегодня хочу рассказать, что было сделано мной за прошедшее с тех пор время.

Самим приложением пользуюсь регулярно. На главной странице для незарегистрированных пользователей в качестве примера как раз показывается моя статистика. Помимо меня есть ещё 53 зарегистрированных пользователя с подтверждённым email.

https://github.com/dergunovs/fit - исходный код приложения
https://vkvideo.ru/playlist/15313879_11 - видео про разработку

Frontend: Typescript, Vite, Vue, Tanstack Query, Vitest, Vue I18n, Tauri
Backend: Typescript, Fastify, Mongoose, MongoDB, Swagger

Публикация приложения в RuStore

С помощью Tauri добавил генерацию формата APK. Зарегистрировался в RuStore в качестве разработчика, заполнил поля с описанием, сделал скриншоты. Модерация прошла очень быстро. Теперь приложение можно удобно скачивать и обновлять. Сам APK файл весит около 10 мегабайт. За 4 месяца с момента публикации в RuStore оттуда было 65 установок приложения.

Дизайн
Читать далее

Читать: https://habr.com/ru/articles/943834/

@a_cup_of_java | Другие наши каналы
👍31🤔1
Сломанный Galaxy Z Flip5 + клавиатура BlackBerry Q10 = необычный современный слайдер

Инженер собрал слайдер-смартфон: взял сломанный Galaxy Z Flip5 и встроил в него клавиатуру BlackBerry Q10, получив рабочий гибрид с ностальгией по 2000-м

— Читать дальше «Сломанный Galaxy Z Flip5 + клавиатура BlackBerry Q10 = необычный современный слайдер»
👍2🤔1
Мой путь новичка в разработке: FreeSpace — мобильное приложение для любителей космоса

Меня зовут Маша, я ученица «IT Школы Samsung». Хочу рассказать о своём проекте — мобильном приложении FreeSpace, которое объединяет новости о космосе, интерактивную карту и сообщество энтузиастов. Это не просто рассказ о коде, но и история моего пути в Android-разработке.
Читать далее

Читать: https://habr.com/ru/companies/samsung/articles/943884/

@a_cup_of_java | Другие наши каналы
🔥1