Обновить
256K+

Android *

Пишем под самую популярную мобильную ОС

216,17
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Я искал идеальный телефон для цифрового детокса. Кажется, я его нашёл

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели9.1K

Вообще идея перейти на кнопочный телефон пришла со времён, когда я нашёл сообщество dumbphones. Суть этого движения не в глупых телефонах, а в управлении вниманием. Ведь много лет назад телефон служил средством связи, средством решения проблем. Но в наше время самая большая задача смартфона — это развлечения и сжигание времени впустую. И вот это сообщество людей, уставших от рабства алгоритмов и синих экранов, переходит со смартфонов на старые звонилки / MP3-плееры / полноценные камеры и записные книжки.

Но я к такому не готов. Я уже почти год ходил с Nokia N95, и это тяжело. Юзер экспириенс давно шагнул вперёд, и старые телефоны остались позади. А также, как ни крути, приложения в современном мире очень важны. Ведь даже такая банальщина, как карты и погода, старому телефону будет недоступна.

И вот, кажется, я нашёл золотую середину! Это кнопочный телефон на Android. Его экран слишком мал для залипания, при этом железо достаточно современное, он не тормозит, тянет карты и мессенджеры, держит зарядку несколько дней и стоит буквально 6к рублей — разве можно просить о большем?

Об этом телефоне далее в статье.

Новости

Как я починил энергосбережение OnePlus 3T на mainline ядре

Уровень сложностиСложный
Время на прочтение33 мин
Охват и читатели9.7K

Первая часть закончилась тем, что телефон заработал, и какое-то время этим всё и ограничивалось. postmarketOS на mainline-ядре, сверху Docker, Tailscale и один небольшой сервис, которому от меня ничего не требовалось. Я убрал телефон на полку и перестал о нём думать — ровно этого я от него и хотел.

Сервис работал. Заодно выяснилось, что процессор всё это время держался на 70 °C. Не под нагрузкой, а в покое, днём и ночью, на устройстве без вентилятора и без радиатора, где тепло уходит только через собственный алюминиевый корпус.

Вопрос, который стоило задать сразу: чем он занят, что даёт такую температуру. Дальше — ответ на него.

Читать далее

Погружение в One‑Time Events в Android

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели5.8K

Представьте, перед вами задача – после авторизации пользователя навигировать его на главный экран, или показать snackbar, например, об ошибке.

В Android для таких событий есть специальное название – One-Time Events, или же просто Effects – события, которые мы отправляем UI из ViewModel и хотим, чтобы они обработались ровно один раз.
И они отличаются от состояния экрана! Состояние существует всегда, а effect отправляется и обрабатывается единожды; в состоянии существуют данные, с которыми user взаимодействует, или которые повторно могут отображаться на экране, когда как effect — совершенно противоположное.

Моделировать такой паттерн можно несколькими способами: через состояние, SharedFlow или Channel. В этой статье мы разберем на простом примере каждый подход и обсудим минусы и плюсы, а также обсудим лучшее обходное решение!

Читать далее

Тренажер ТРИЗ для инженеров

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели8.9K

Я давно работаю инженером и когда узнал про ТРИЗ очень заинтересовался. Изучив все приемы пришел к выводу - а ведь не надо даже в наше время уже сидеть и долго мыслить над проблемами разработки ведь все основные шаблоны уже описаны. А ведь каждый шаблон это фактически выход из определенной ситуации и проблемы. В начале я сделал приложение в котором с начало показывается название приема и скрыто его значение. По типу приложения для заучивания слов. Но это мне показалось не очень интересным и скучным, поэтому долго я им не прозанимался и вскоре забыл про него.

Вторая жизнь у приложения появилась после идеи сделать по 50 задач на каждый прием и решать их тем самым запоминая шаблон на опыте. Дальше неачались несколько дней мучения клоуда чат джпт на бесплатных тарифах. Они генерили мне для каждого приема по 50 задач. Кстати дисписк не очень справлялся с этой задачей, поэтому и не был использован.

И вот через несколько дней появилось мое приложение. Ну а теперь подробней о нем.

Читать далее

Как за вами следит Яндекс: часть 1/3

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели66K

Полный реверс-инжиниринг APK Яндекса: разбираем механизмы сбора аудио, геолокации, платежных данных и списков установленного ПО

Читать далее

Мобильная разработка за неделю #641 (27 июля — 2 августа)

Время на прочтение4 мин
Охват и читатели8.8K

В этом дайджесте дистрибуция iOS‑приложения без App Store и 5 лет Compose, верификация Android разработчиков и нагрев iOS-устройств как продуктовая метрика, локальные LLM на iPhone, “бумажный” асинхронный Kotlin, ускорение корутин, пошаговая инструкция по внедрению скелетон-загрузок, проговаривания мыслей для ИИ и многое другое. Заходите!

Читать далее

5 странных гаджетов 2026 года: смартфоны с E‑Ink, Linux‑раскладушка, наладонник и кое‑что еще

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели13K

В этой подборке — несколько самых необычных мобильных устройств 2026 года. Смартфоны с двумя разными экранами, раскладушка без браузера и социальных сетей, модульный E Ink‑телефон, карманный Linux®‑компьютер и другие гаджеты, которые идут против современных трендов. Некоторые из них выглядят странно, другие — неожиданно практично. Возможно, вы знаете о каких‑то необычных моделях, что не попали в список? В таком случае обязательно сообщайте о них в комментариях. Что ж, поехали!

Читать далее

Уведомления на Android без Google: почему UnifiedPush через публичный ntfy у вас не работает

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели14K

Как вы помните мы делаем мессенджер. Google-сервисы в нашем основном регионе недоступны, значит FCM отпадает, что мы с этим сделали?

Стандартный ответ на эту задачу известен и выглядит красиво: UnifiedPush. Открытый контракт, никакого Google, пользователь сам выбирает, через кого получать сигналы. Мы так и сделали в июне, всё заработало на тестовых устройствах, и мы поехали дальше.

Полтора месяца спустя пошли жалобы, что уведомления не приходят. Мы полезли в логи прода и обнаружили, что четыре из пяти попыток разбудить устройство заканчивались отказом, и так было с первого дня работы фичи. Ниже разбор: почему так, почему платный тариф это не лечит, и что мы в итоге написали сами. Цифры настоящие, из журнала боевого сервера.

Читать далее

Асинхронный Kotlin. Обзор новинки

Время на прочтение5 мин
Охват и читатели13K

Приветствуем, Хабр.

Как знают наши постоянные читатели, в последние пару лет мы регулярно заходим на территорию языка Kotlin. Базовой литературы по Kotlin сейчас достаточно, но сегодня мы хотим презентовать вам новинку для настоящих профессионалов — «Асинхронный Kotlin». Книга подготовлена Яной Седовой @Ioanna на основе её собственного курса «Kotlin Coroutines & Flow для Android: от основ до production» размещённого на платформе «Степик». Яна Седова активно работает с этой платформой, вот, что она успела на ней разместить.

Читать далее

Делаем модуль на C++ для приложения React Native

Уровень сложностиСредний
Время на прочтение20 мин
Охват и читатели6.7K

Я не планировал переписывать приложение React Native на C++.

Большая часть приложения прекрасно работала на TypeScript: экраны, формы, валидация, навигация, логика продукта — все это находилось именно там, где нужно. 

Проблема была более узкой и специфичной: нам нужно было, чтобы один фрагмент логики работал с производительностью, близкой к нативной, оставался общим для Android и iOS и при этом был доступен из JavaScript через обычный типизированный API.

Поначалу все звучало слишком просто. Написать интерфейс на TypeScript, позволить Codegen генерировать контракты, перенести основную логику на C++, зарегистрировать модуль на обеих платформах и использовать его из React Native как любой другой модуль.

Спойлер: да, это работает.

Чистый модуль Turbo Native на C++ действительно может дать вам одну реализацию для Android и iOS, типизированную границу через Codegen, меньшие накладные расходы, чем у старого Bridge, и удобный способ повторного использования существующего кода на C или C++ внутри приложения React Native.

Спойлер номер два: код на C++ — это не самая сложная часть.

Самое сложное начинается вокруг: CMake, NDK, Xcode, Objective-C++, время жизни среды выполнения JSI, регистрация модулей, границы потоков, владение памятью, обработка ошибок, сборки Expo, сторонние библиотеки и вопрос, который никто не хочет задавать слишком поздно — действительно ли этот модуль должен быть нативным?

В этой статье я подробно расскажу о создании C++ Turbo Native модуля для React Native: где этот подход полезен, где он добавляет скрытые затраты на поддержку, чем отличается регистрация для Android и iOS, почему важна обертка TypeScript и почему сам TurboModule должен оставаться «тонким».

Читать далее

Верификация Android разработчиков: что будет с устройствами в России

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели27K

Привет, Хабр! Это SafeMobile. Прошлым летом Google объявил, что на Android телефоны можно будет устанавливать приложения только от проверенных разработчиков. С тех пор нас регулярно спрашивают, что будет с устройствами, которыми управляет MDM – могут ли они остаться без управления, будут ли проблемы с распространением инхаусного софта и т.д.

В этой статье мы расскажем, что узнали – если на устройствах нет сервисов Google, можно не беспокоиться, но и на сертифицированных Google устройствах в РФ, похоже, всё хорошо. Детали под катом.

Верифицироваться

В 2017 году мне в комментариях написали «иди в нишу». Я пошёл в 2024

Уровень сложностиПростой
Время на прочтение16 мин
Охват и читатели7.8K

В декабре 2016 я запустил доску объявлений. В марте 2017 написал на Спарке статью о том, как пытаюсь притащить на неё трафик. Статья была честная до неприличия: три месяца работы, около 14 тысяч рублей на рекламу, 450 рублей выручки.

Отдельным памятником стоит таргет во ВКонтакте. 515 тысяч показов, 41 переход, два поданных объявления. CTR ноль целых ноль ноль восемь. Восемь тысячных процента. Я тогда пересчитал трижды, потому что решил, что где‑то потерял запятую.

Под статьёй набежали люди и сказали примерно одно и то же: не тягайся с Авито, иди в нишу.

Я поблагодарил за фидбек и пошёл тягаться с Авито дальше.

Прошло девять лет. Сайт теперь называется косплей‑барахолкой, есть фотолента, есть приложение на проверке в Google Play, и есть довольно неловкая история с App Store, из‑за которой у меня спрашивали квитанции за квартиру. Рассказываю всё по порядку, включая места, где я выглядел глупо.

Читать далее

Мобильная разработка за неделю #640 (20 — 26 июля)

Время на прочтение5 мин
Охват и читатели8.8K

В новом выпуске как Apple в iOS 27 удалось сократить время запуска приложений и разработка системы автоматической синхронизации фотографий, интервью с Senior iOS инженером из TikTok’а и интеллектуальные приложения для Android с Jetpacker, 15 лет Kotlin, безмолвные ошибки, что и как измерять в мобильной разработке, частная социальная сеть без алгоритмов и рекламы и многое другое. Подключайтесь!

Читать далее

Ближайшие события

Как найти ленивого в команде разработки?

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели20K

Совместная разработка, и как найти лентяя в команде. История о том как я пришёл к созданию плагина для OpenSource.

Если у Вас закрались в голову мысли, что один из персонажей не работает, я думаю этот инструмент будет для Вас полезен.

А чтобы не читать всю статью инструменты можно быстро посмотреть

JETBRAINS MARKETPLACE

VISUAL STUDIO MARKETPLACE

Найти лентяя

Автоматизация метаданных App Store и Google Play с fastlane и Azure Pipelines

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели10K

Приложение поддерживает 20+ языков. Каждое обновление — это не только новая сборка, но и правки в обоих магазинах: название, подзаголовок, описание, «что нового». Для каждого языка, на каждой платформе, через медленный веб-интерфейс.

При двух десятках языков и двух платформах обновление «что нового» вручную занимает 30–40 минут. При этом легко ошибиться: скопировать не ту версию текста, забыть один язык, перепутать поля между iOS и Android.

В статье покажу, как свести всё это к одному коммиту.

Читать далее

Измеряя незримое: что и как измерять в мобильной разработке

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели7.4K

Всем привет! Меня зовут Алексей, я техлид Android-направления в компании Домклик.

Этой статьёй я открываю цикл материалов, в которых будут собраны мысли, советы и инструкции о том, как сделать приложение и процессы его разработки измеримыми, как находить «узкие места», диагностировать проблемы и причины их возникновения, а также фиксировать их наличие. Минимум кода, сложных терминов и «rocket science» — только практический опыт и наработки по различным метрикам.

Читать далее

Как я добавил HEIF, HEIC и AVIF в Android-ImageMagick7

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели14K

HEIF, HEIC и AVIF на Android через ImageMagick: хроника внедрения в два этапа. Без лишней воды — только проблемы и их решения.

Читать далее

Как мы делаем 2D-симулятор грузоперевозок: что уже готово и куда движемся к MVP

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели12K

Делаем Truck Sim 2D — 2D-симулятор грузоперевозок на Godot 4.6 для Android и ПК. Физический груз на RigidBody2D, который реально может выпасть из кузова, производственная цепочка от шахты до завода и первая сетевая версия на ENet — уже играбельная сборка 0.2.8. Рассказываем, как это устроено внутри и что планируем до MVP: превращаем LAN-конвой в настоящий кооператив

Читать далее

Свободный и бесплатный ɹǝddoH — multi-hop SSH L3 VPN для iOS/Android

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели15K

Как я сделал свободный и бесплатный ɹǝddoH - multi-hop SSH L3 VPN для iOS/Android

И запаковал сервер так, что его можно поднять с телефона: вбил IP и root-пароль - и нода в библиотеке. Цепочка из нескольких VPS - entry → relay → exit. Теперь даже на сервер заходить не надо.

Преамбула

Раньше я делал Naive-клиент, и он нормально работал. Но потом клоуны решили включить поведенческий анализ. И вот - все. Ничего не работает. Дальше опять начинается гуглинг и, в итоге, опять я прихожу к VLESS с кучей надстроек, эмуляций различных браузеров, игр и так далее. Ах да, еще надо это все настраивать, делать цепочки из нескольких серверов, чтобы выход и вход не совпадал, заниматься скриптингом и снова молиться, что все заработает и будет работать дальше. А тем временем ssh -D отлично работал все это время, и я такой, а почему бы не выдать root всем завернуть это все внутрь ssh, да еще и по цепочке, да еще и чтобы настраивалось одной кнопкой. И не прокси, а полноценный VPN.

Ведь протокол уже есть - SSH. Его не надо изобретать. Им пользуются все, как и https. Если клоуны заблокируют SSH, то это будет конечно весело, тут уже, боюсь, я ничем помочь не смогу. Осталось лишь написать клиент под это дело, опубликовать его в сторах, доказать опять Apple что это приложение уникальное (как они достали с этим), рассказать ревьюверам в Гугле что такое SSH и как оно работает... тяжела жизнь Open Source программиста. Но я справился.

Читать далее

Мобильная разработка за неделю #639 (13 — 19 июля)

Время на прочтение5 мин
Охват и читатели11K

В этом дайджесте вопросы о System Design и аннотации в Kotlin, Gradle под капотом и как мигрировать Flutter-приложение на SPM, как отправить 1 миллион уведомлений, открытый веб в виде социальной ленты, архитектура независимого умного дома и многое другое. Заходите!

Читать далее
1
23 ...