Обновить
512K+

Разработка мобильных приложений *

Android, iOS, Windows Phone и прочие

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

Как я с помощью автоматизации выиграл iPhone от McDonald’s

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

Несколько лет назад сеть McDonald проводила промо-акцию, в которой через простую мини-игру можно было выиграть iPhone. Называлась эта игра «FriesHit» и была доступна в мобильном приложении McDonald’s (бельгийская версия). Это просто примитивная тапалка, целью которой являлось занять первую строчку таблицы лидеров, чтобы заполучить заветный iPhone (или Samsung S10, если вы окажетесь на втором месте; но кому он нужен).

Каждый день таблица лидеров аннулировалась, то есть компания ежедневно отдавала iPhone X занявшему первое место (как я понял, это происходило целый месяц). Естественно, в игре есть свой подвох — чтобы набрать победные очки, нужно соревноваться с другими игроками. Хитрость в том, что для покупки жизней в игре вы тратите «баллы лояльности». Кто не знает, эти баллы вам начисляют за покупку товаров в сети (типа потратьте €1 в ресторане McDonald's и получите 10 баллов).

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

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

Читать далее

Новости

FiT календарь тренировок — финал трилогии пет-проекта

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

Год назад я опубликовал первую статью про разработку приложения календаря тренировок. Спустя 5 месяцев опубликовал рассказ о 10 обновлениях. Сейчас время финала истории - ещё 7 обновлений за 7 месяцев.

Сам регулярно пользуюсь приложением - оно добавляет мотивации заниматься спортом дальше, сохраняет график тренировок, следит за объемом выполненных упражнений. На текущий момент в приложении больше 150 зарегистрированных пользователей.

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

Исходный код

Приложение в RuStore

Веб-версия

Frontend: Typescript, Vitest, Vite, Vue, Tanstack Query, Vue I18n, Tauri

Backend: Typescript, Vitest, Esbuild, Fastify, Mongoose, MongoDB, Swagger

Читать далее

Kotlin без «воды»: новая книга для тех, кто хочет изучить язык на практике

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

Некоторые языки программирования начинают по-настоящему ценить тогда, когда разработчик замечает: значительная часть усилий уходит на решение задачи, а не на борьбу с инструментом. Экосистема Java — хороший пример такого накопленного трения. Она несет в себе наследие решений, принятых десятилетия назад, притом они не обязательно плохие — просто раньше не учитывались те сценарии, которые сегодня стали повседневностью: интенсивная работа с асинхронностью, быстрые итерации, требования к читаемости и поддерживаемости кода. Kotlin возник как попытка аккуратно убрать часть этого трения, не разрушая существующую инфраструктуру. Речь здесь идет о другом уровне комфорта при решении привычных задач — от базовых конструкций до построения полноценных сервисов. Именно этому посвящена только что вышедшая в издательстве «БХВ» книга Елены Ван Энгелен – Масловой «Kotlin. Краткий курс».

Что внутри?

ИИ аватар: как создать в Telegram Mini App: React, Django, HeyGen API и генерация видео

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

Завернул AI-генерацию ИИ аватаров в Telegram Mini App: загружаешь фото, пишешь текст — бот присылает видео, где аватар произносит этот текст. Стек: React 19 + Django + Celery + HeyGen API. Рассказываю про авторизацию через initData, поллинг асинхронных задач, и почему подключение T-Bank Acquiring по 54-ФЗ заняло больше времени, чем вся остальная интеграция.

Читать далее

Wildberries, Ozon и Сбер начали блокировать VPN-пользователей: как приложения определяют, что у вас включен VPN

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

Wildberries показывает «У вас включен VPN? Отключите», Ozon не грузит карточки товаров, ВкусВилл предупреждает об ошибках. Минцифры дало 20+ компаниям дедлайн до 15 апреля. Разбираю 5 методов, которыми приложение на вашем телефоне определяет VPN — от проверки tun0-интерфейса на Android до рассинхронизации GPS, IP и SIM-карты.

Читать далее

Что «убило» BlackBerry

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

Иногда разговоры о технологиях начинаются не с выхода новых девайсов или очередного релиза, а с фразы: «А помнишь BlackBerry?». Сегодня эту компанию знают не все, но в начале 2000-х она была стандартом, а не мемом. Смартфон BlackBerry ценили за предсказуемость, надежность и контроль. Почта доходила всегда,а связь работала даже при слабом сигнале.

Привет, Хабр! Меня зовут Владимир Сергеев. Я эксперт практики UC и ПО для совместной работы К2Тех. Мы не станем повторять сюжет недавно вышедшего фильма и постфактум разбирать стратегические ошибки руководства компании. Давайте на примере BlackBerry оценим пределы хорошо спроектированной системы и разберемся, какие технологические ошибки и инженерные компромиссы останавливают развитие компании и приводят к проигрышу в конкурентной гонке.

Читать далее

Мобильное приложение DogPlanner. Перезагрузка…

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

Давайте немножечко поговорим о творчестве в целом, создании собственных проектов в принципе, и дальнейшем развитии мобильного приложения для домашних питомцев DogPlanner (доступно в Google PlayRuStore и других известных площадках) в частности. Мы уже говорили, что когда человек начинает заниматься каким-либо собственным проектом, он не задумывается насколько это занятие может растянуться. Мы сейчас говорим не о бизнес проекте, в котором изначально чётко описываются цель и средства её достижения, определяется команда и сроки, и поехали... Нет.

Читать далее

Лампа с цифровым джинном: как я упрашивал ИИ unit-тесты писать

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

Изначально я хотел поделиться опытом написания unit-тестов с помощью ИИ. Но по мере написания статьи она превратилась в историю изменения взглядов на использование нейросетей. И как отсутствие энтузиазма и в какой-то степени отрицание сменились если не оптимизмом, то увлечённостью и любопытством...

Читать далее

Неразработчик + чат с ИИ + Android Studio: промежуточные результаты после публикации двух приложений

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

Я бизнес‑аналитик. Пишу мобильные приложения с нуля — без исходных знаний кода, архитектуры, дизайна и маркетинга. Инструменты те же: Claude в чате и копипаст в Android Studio.

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

Ссылка на первую статью. Здесь не будет пересказа. Это именно промежуточный срез: что произошло после публикации, когда пришли реальные пользователи и реальные проблемы.

Читать далее

Запускаю свой продукт. Часть 1: поиск идеи, которая выстрелит и будет мотивировать продолжать

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

Я запускаю свой продукт без команды, без бюджета и с полной занятостью в найме. К концу года он либо начнет приносить деньги, либо я тихо вернусь обратно и сделаю вид, что ничего не было. Это первая часть – про поиск идеи, которая найдет отклик у потенциальных пользователей и от которой не будет тошнить.

Читать далее

Room 3 — новый мажор «комнаты». И да, теперь с поддержкой wasmJs

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

Привет! Давайте разберёмся, что там накатили в новом мажоре Room. На момент написания актуальная версия — 3.0.0-alpha02, а стабильный релиз обещают где-то к лету.

Если вдруг выпали из контекста: Room — это повсеместно используемая ORM-обёртка над SQLite ранее только для Android, с недавнего времени и для Kotlin Multiplatform.

И у неё вышел 3 мажор! Подробнее внутри.

Читать далее

Обновляем токен авторизации при помощи Dio

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

Hola, Amigos! На связи Павел Гершевич, Mobile Team Lead агентства продуктовой разработки Amiga и соавтор книги “Основы Flutter”. В каждом приложении мы авторизуем пользователей, но не все встраивают механизмы обновления токенов.

Из статьи вы узнаете:

- Из чего состоит JWT-токен?

- Зачем нужны Interceptor’ы в Dio и  чем отличается QueryInterceptor?

- Какие есть способы обновления токенов?

Читать далее

Apple хочет чтобы я купил Mac за 200к. У меня два приложения в App Store и ни одного макбука

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

У меня нет макбука. Но два моих приложения лежат в App Store. Рассказываю весь путь: регистрация Apple Developer из России, сертификаты без Xcode, автоматическая сборка через GitHub Actions. Три варианта: для вайбкодеров, программистов без мака и хардкорщиков.

Читать далее

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

Как Swift работает с памятью: подробный гайд для разработчиков. Часть 2

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

Всем привет! Я Данила Горячкин — iOS-инженер в команде Performance в Авито. Занимаюсь оптимизацией производительности iOS‑приложений и менторингом разработчиков.

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

Читать далее

Кэширование сетевых запросов в Ktorfit с помощью Ktor Plugins

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

Привет!

Ktor постепенно становится полноценной альтернативой классической связке OkHttp + Retrofit. Его ключевые преимущества — кроссплатформенность, чистый Kotlin, асинхронность и корутины, а также высокая гибкость и управляемость. Кроме того, ожидается поддержка HTTP/3, чего, судя по всему, не планируется в OkHttp.

Ktorfit же — это обёртка над Ktor, которая предоставляет более удобное API, практически идентичное Retrofit, что особенно удобно при миграции Retrofit —> Ktorfit. Короче, Ktorfit — это Retrofit для Kotlin Multiplatform.

В этой статье я продемонстрирую алгоритм написания простого кэша запросов для Ktorfit, используя механизм Ktor Pluguns.

Читать далее

Первый в своем роде ИИ помощник на вашем телефоне

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

Мы с братом создали Sova AI (https://ayconic.io/sova), ИИ агента на Андроиде, который оперирует приложениями и выполняет ваши хотелки таски на телефоне. Это первый ассистент, которому не нужны ADB, USB, PC, root и т.д., просто самое обычно приложение, которое устанавливается на Андроид (пока IOS в разработке) и всегда с вами, куда бы вы не пошли (звучит страшно? 😁).

Зачем еще один ИИ ассистент?

Потому что он единственный в своем роде, все остальные “mobile-use” требуют подключения к PC, и это конечно неудобно и не интересно. Если уже есть PC, то лучше уже на нем и выполнять различные задачи, зачем тогда телефон мучать? Computer-use, browser-use вполне себе прекрасно работают на PC.

Нам хотелось ассистента, который всегда будет на телефоне, а не когда мы с кабелем USB возле компа, ассистента который будет делать на телефоне все, что может делать пользователь, а не еще один умный браузер (привет Perplexity) который будет требовать API чтобы что-то сделать, или кастрированный Gemini assistant который только и твердит что он ИИ модель и не может ничего. Они в большинстве просто бесполезны, как и все чатботы которые всего лишь чатботы, но почему-то называются AI assistant для маркетинга.

Что оно умеет

Как и computer‑use он делает клики, скроллы, открывает приложения, и симулирует любые действия пользователя. Под капотом — работа с Accessibility API Андроида, используем tree экрана и скриншоты. Только на скриншотах мало что сделаешь, модели не очень хорошо с ними работают, оптимизируют картинки каждый по своему и так далее. Поэтому мы сделали определенную комбинацию того и другого, с экономией токенов, чтобы пользователи не продавали себя в рабство из‑за одного заказа еды. Также его можно сделать асситентом по умолчанию и оно будет реагировать на ваши голосовые команды и делать что захотите, без этого всего «Я ИИ модель и ничего не могу делать, хнык‑хнык».

Читать далее

Оптимизация производительности во Flutter

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

Производительность Flutter-приложения напрямую зависит от качества написанного кода: лишние перестроения UI, тяжёлые операции в основном потоке, неправильная работа со списками и изображениями — всё это ведёт к фризам, падению FPS и ухудшению пользовательского опыта. 

В данной статье мы собрали наиболее распространённые ошибки, которые снижают производительность Flutter-приложений, и показали, как их избежать на практике.

Читать далее

Как автор книг по Kotlin проверял мой проект: разбор ошибок в Coroutines и архитектуре

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

Проведя аудит GitHub, я обнаружил, что полноценных реализаций Gemini-клиента с глубокой проработкой архитектуры практически нет. Я решил стать первым, кто выложит в открытый доступ не просто обертку над API, а готовую архитектурную базу с точным повторением UI оригинального Gemini.

Читать далее

Я заменил целую команду разработки на ИИ. 0 рублей, 2 недели, 2 приложения

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

Меня зовут [неважно], я бизнес-аналитик. Моя работа — писать ТЗ, рисовать процессы в BPMN, ругаться с разработчиками из-за неправильно понятых требований и пить кофе на стендапах. За 5 лет в профессии я не написал ни одной строчки кода. Ни одной. Даже Hello World.

В начале 2026-го я поймал себя на мысли, которая наверняка посещала каждого бизнес-аналитика: «Я точно знаю, что нужно сделать. Я подробно описываю как это должно работать. Единственное, чего я не могу — написать код». А потом я прочитал очередной пост про то, как кто-то с помощью ИИ создал приложение за выходные, и подумал: а что если моя профессия — это и есть идеальная подготовка к работе с ИИ-ассистентами?

Спойлер: через 2 недели у меня было 2 приложения в RuStore, 0 рублей затрат и 14 скачиваний. Да, четырнадцать. Но обо всём по порядку.

Читать далее

Пакет yx_virtual_device: опенсорс‑инструмент для упрощения тестирования Flutter‑приложений

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

При разработке мобильных приложений на Flutter рано или поздно сталкиваешься с необходимостью проверить, как твой интерфейс выглядит на разных устройствах. Держать под рукой десяток телефонов и планшетов — нереально, а постоянно переключаться между эмуляторами — долго и неудобно.

Для решения этой проблемы я написал пакет yx_virtual_device, который позволяет симулировать экраны различных устройств прямо во время разработки, не выходя из запущенного приложения. В этой статье — о том, что умеет этот пакет, как с ним работать, а также почему было сложно подружить его с Flutter и как в итоге это удалось сделать.

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