Public channel ID 76989160298536

Мобильная разработка #1

Всё о создании приложений под Android и iOS в одном месте.

🔹 Инструменты, библиотеки и ресурсы для ускорения работы.
🔹 Статьи и гайды для разработчиков любого уровня.
🔹 Тренды мобильной разработки и новости индустрии.

Channels in category
1 757
This channel's rank
№ 147
Open category →
Open in MAX

Posts for the period

By reactions

Search and the whole feed — after free registration. Custom dates — with a subscription; the channel owner sees them for free. Sorting by reactions — with a subscription. Sign up

Loading…

Как один UI-баг заставил меня разбираться с графом зависимостей целого приложения


Есть такая категория задач, которые поначалу выглядят настолько безобидно, что ты даже не закладываешь на них много времени. Ну не обновился какой-то элемент интерфейса после авторизации, бывает. Скорее всего, где-нибудь потерялось событие, не обновилось состояние или кто-то забыл вызвать нужный метод. Открываешь проект, ставишь пару брейкпоинтов и рассчитываешь довольно быстро во всём разобраться.Примерно с таким настроением я и взялся за очередной UI-баг, а спустя какое-то время обнаружил себя уже совсем не там, где планировал. Вместо экрана, ради которого всё затевалось, передо мной были несколько репозиториев, менеджеры, сервисы, фабрики, DI-контейнеры и довольно запутанная цепочка создания объектов. Причём чем дальше я по ней продвигался, тем меньше понимал, почему вообще что-то не работает, потому что каждый отдельный компонент выглядел совершенно исправным.Методы вызывались, события приходили, состояние обновлялось, никаких ошибок в консоли не было. Даже данные, которые я видел в отладчике, на первый взгляд выглядели вполне корректно. И вот это, пожалуй, раздражало больше всего: приложение вроде бы делало всё, что от него требовалось, но интерфейс упорно продолжал жить своей жизнью.В итоге проблема оказалась вообще не в UI и даже не в данных. Просто одна часть приложения продолжала использовать объект, который для другой части приложения уже давно перестал быть актуальным.Но обо всём по порядку. Распутаем вместе?

https://habr.com/ru/articles/1099266/?utm_campaign=1099266&utm_source=habrahabr&utm_medium=rss
Views: 2
Go to post Open in MAX Report an inaccuracy
Ping, traceroute и Path MTU на Android без root и NDK


Когда я садился портировать своё iOS-приложение на Android, я был уверен, что ping, traceroute и Path MTU там не сделать: ICMP — это raw-сокет, а raw-сокет — это root. Одна команда adb показала, что я ошибался: любое приложение может открыть непривилегированный ICMP-сокет — без root и без единой строчки на C.Рассказываю, как на чистом Kotlin устроены ping, traceroute через очередь ошибок сокета и Path MTU через бит DF, и на чём я споткнулся по дороге. Читать далее

https://habr.com/ru/articles/1099252/?utm_campaign=1099252&utm_source=habrahabr&utm_medium=rss
Views: 3
Go to post Open in MAX Report an inaccuracy
Android-клиент для DeepSeek Harness: как работать с агентом на ПК с телефона без облака и FCM


Как я сделал Android-клиент для DeepSeek Harness, который работает с агентом на компьютере без облачного сервера и FCM. Внутри — плагин в процессе DSH вместо WebView, привязка по QR-коду с пином сертификата и журнал квитанций, из-за которого телефон никогда не повторяет команды вслепую. Читать далее

https://habr.com/ru/articles/1099110/?utm_campaign=1099110&utm_source=habrahabr&utm_medium=rss
Views: 4
Go to post Open in MAX Report an inaccuracy
Где тебя поймут по‑русски: как собрал карту для эмигрантов на Kotlin, PostGIS и пиксельной графике


Врач, нотариус, автосервис, сантехник на выезде — в новой стране такие места ищут по чатам релокантов, а через полгода половина ответов устаревает. SpeakMap собирает их на одной карте. Сейчас открыты Белград и Нови-Сад.Главное в продукте — не карта, а честность метки «здесь говорят по-русски». Любой может нажать «Да» или «Нет», а доверие к метке считается по нижней границе интервала Уилсона: один голос «да» ещё ничего не подтверждает. Читать далее

https://habr.com/ru/articles/1099076/?utm_campaign=1099076&utm_source=habrahabr&utm_medium=rss
Views: 4
Go to post Open in MAX Report an inaccuracy
Мобильная разработка за неделю #650 (19 — 25 октября)


В этом дайджесте Metal без магии и лечение телевизоров, Suspend на пальцах и Warcraft II на «Авроре», ИИ для расшифровки языка растений, крупнейшее изменение Xcode за 30 лет, как устроен IDL, отказ от «ненастоящих» градиентов и многое другое. Заходите! Читать далее

https://habr.com/ru/articles/1099012/?utm_campaign=1099012&utm_source=habrahabr&utm_medium=rss
Views: 7
Go to post Open in MAX Report an inaccuracy
Мобильная разработка за неделю #650 (19 — 25 октября)


В этом дайджесте Metal без магии и лечение телевизоров, Suspend на пальцах и Warcraft II на «Авроре», ИИ для расшифровки языка растений, крупнейшее изменение Xcode за 30 лет, как устроен IDL, отказ от «ненастоящих» градиентов и многое другое. Заходите! Читать далее

https://habr.com/ru/articles/1099012/?utm_campaign=1099012&utm_source=habrahabr&utm_medium=rss
Views: 7
Go to post Open in MAX Report an inaccuracy
Безопасность Apple Mobile Devices. Часть III. Что происходит после нажатия Power


Итак, в прошлой части мы остановились на мысли, что современный iPhone имеет смысл рассматривать уже не как устройство, в котором где-то лежит некий суперсекретный ключ, а как довольно сложную машину состояний, которая на каждом этапе проверяет, имеет ли следующий кусок системы право вообще существовать.Попробуем теперь пройти всю эту цепочку руками, от момента нажатия кнопки Power до запуска какого-нибудь Signal или Telegram, и посмотреть, в какой именно момент какие куски железа и софта начинают друг другу доверять.Сразу оговорюсь, что буду местами упрощать детали реализации, иначе вместо статьи получится справочник страниц на триста, но общая архитектура от этого не пострадает.Начинается все, как и раньше, с BootROM.Это тот самый маленький кусок кода, зашитый непосредственно в SoC еще на производстве и не подлежащий обновлению после того, как процессор покинул фабрику. Именно поэтому уязвимости уровня checkm8 были настолько неприятны для Apple: если ошибка находится в коде, который физически нельзя переписать, "починить" уже выпущенные устройства невозможно вообще, можно только изменить архитектуру следующего поколения железа.BootROM в данном случае является самым нижним корнем доверия основной системы.У него есть ровно одна фундаментальная задача: проверить, что следующий этап загрузки действительно подписан Apple, и только после этого передать ему управление.То есть в самом начале у нас пока нет ни iOS, ни файловой системы, ни пользовательского пароля, ни приложений, вообще ничего привычного. Есть процессор, немного ROM-кода и криптографическая проверка следующего куска. Читать далее

https://habr.com/ru/articles/1098952/?utm_campaign=1098952&utm_source=habrahabr&utm_medium=rss
Views: 7
Go to post Open in MAX Report an inaccuracy
Я не умею программировать и рисовать, но сделал гео-игру про славянских духов. Как ИИ построил Mifozov за неделю


Несколько лет я играл в Pokémon GO. Дело было не столько в покемонах, сколько в прогулках: выходишь вечером «на пять минут», а возвращаешься через два часа, пройдя десять километров. Во дворах собирались люди, ходили на рейды, знакомились, обсуждали, где что появилось.Потом игра ушла из России, и всё это пропало. Местные чаты затихли, а привычка гулять осталась без повода. Я всё думал: как снова собрать людей и выходить вместе на улицу так, чтобы это было не «надо пройтись», а «пойдём, там Жар-птица».Своя игра казалась фантастикой. Нужны программисты, художники, сервер, карта, деньги и годы работы. У меня из этого не было ничего, кроме желания. Читать далее

https://habr.com/ru/articles/1098830/?utm_campaign=1098830&utm_source=habrahabr&utm_medium=rss
Views: 12
Go to post Open in MAX Report an inaccuracy
i2pd 3.0: Первый мажорный релиз за 11 лет


Прошлый мажорный релиз i2pd с номером 2.1 состоялся в далёком 2015 году. Развитие i2pd дошло до релиза 2.61. Спустя почти 11 лет вдруг вышла 3.0. Развитие i2pd активно продолжалось всё это время, но чем примечателен последний релиз?Заходите и узнатете про фиксы критических уязвимостей, новый клиент под Android и что-то новое про торренты в I2P. Давайте разбираться

https://habr.com/ru/articles/1098476/?utm_campaign=1098476&utm_source=habrahabr&utm_medium=rss
Views: 15
Go to post Open in MAX Report an inaccuracy
ChaosBank — 131 переключаемый баг для тренировки мобильного тестирования


Я экспериментирую с подходами к автоматизации UI-тестов мобильных приложений: XCUITest, Espresso/Compose, Appium, Maestro. Быстро выяснилось, что гонять всё это не на чем: опенсорсные демо-приложения либо только под Android, либо слишком простые, и реальных багов в них почти нет.Поэтому я сделал ChaosBank — два зеркальных финтех-приложения, под iOS и Android, где баги — это фича: 131 дефект, от убытка, показанного как прибыль, до двойного списания при быстром тапе. Каждый включается и выключается конфигурацией. Рассказываю, как это устроено и как это можно использовать для тренировки, сравнения фреймворков и тестовых заданий. Читать далее

https://habr.com/ru/articles/1098668/?utm_campaign=1098668&utm_source=habrahabr&utm_medium=rss
Views: 13
Go to post Open in MAX Report an inaccuracy
The full feed — after free sign-up
VKontakte Telegram Odnoklassniki
Favorites at datool.ru

Follow the channel in your account

Sign up at datool.ru to add the channel “Мобильная разработка #1” to favorites and track its metrics.

Sign up
For channel owners

Verify your channel

Sign in or sign up at datool.ru, then add our bot to the channel following the instructions in your account. Once ownership is verified, the lock disappears and channel management becomes available.

Sign in or sign up

Report an inaccuracy

Describe what needs fixing. If you have a source, add a link.

You are leaving datool.ru

The link leads to an external website. datool.ru is not responsible for its content — check the address before entering passwords or payment details.

Redirecting in 10 s

Go