Обновить
155.48

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

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

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

Как упростить разработку: опыт и размышления (компиляция из моей переписки)

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

В процессе разработки программного обеспечения часто возникает вопрос: нужно ли заранее проектировать структуру кода и устанавливать строгие правила, чтобы облегчить работу команды? Недавний диалог между разработчиками Азазелем и Сашей проливает свет на этот вопрос и предлагает интересный взгляд на организацию процесса разработки.

Азазель предложил идею, которая кажется логичной и полезной:

Читать далее

Поддержка PWA в Аврора 5.2

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

В версии ОС «Аврора» 5.2 наш браузер получает долгожданную поддержку Progressive Web Apps (PWA) - технологии, которая позволяет веб-приложениям выглядеть и работать как полноценные нативные приложения.

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

Меня зовут Тимур Валеев, я руковожу командой, которая занимается развитием браузера для ОС «Аврора», и сегодня мы разберем, как это было реализовано.

Читать далее

Мобильная разработка за неделю #601 (1 — 7 сентября)

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

В новом дайджесте «стеклянный мир» iOS 26 и Flow-контейнеры в Compose, Android Glance Widget и жизненный цикл UIViewController 2025, лучшие практики агентного программирования, как замедлить программу и почему это может быть полезно, приложения, вышедшие в июле, и заработавшие больше $50,000, и многое другое. Заходите!

Читать далее

Next.js меня окончательно достал

Время на прочтение9 мин
Количество просмотров18K

Наконец, настал этот момент, и я решился написать статью. Давно хотел, но как-то не хватало мотивации. А ведь, знаете, как говорят: «гнев — лучший мотиватор». Есть же такое выражение?

Предыстория

Я приглашаю вас в путешествие, но сначала нужно расставить декорации. Представьте, что вы работаете в некой компании X, и один из ваших сервисов на Next.js крякнулся. Ну и поскольку это Next.js, то мы понятия не имеем, что конкретно произошло, так как логирование процессов по умолчанию включено только при разработке.

И теперь перед нами квест — найти и настроить механизм логирования для продакшена. Будет нелегко, но нам как бы не привыкать.

Читать далее

Мой путь новичка в разработке: FreeSpace — мобильное приложение для любителей космоса

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

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

Читать далее

Календарь домашних тренировок — 10 улучшений в пет-проекте

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

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 установок приложения.

Читать далее

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

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

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

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

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

Читать далее

Жизненный цикл UIViewController в 2025 году: что изменилось и что устарело

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров2.4K

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

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров746

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

Читать далее

Взлом через картинку в Apple: уроки громкой уязвимости для разработчиков

Время на прочтение7 мин
Количество просмотров4.7K

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

Читать далее

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

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

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

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

Читать далее

Claude Code: лучшие практики агентного программирования

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

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

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

Читать дальше

Проверил график изменения цен и увидел совсем не то, что показывал маркетплейс

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

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

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

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

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

Читать далее

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

События, которым можно доверять: выстраивание процесса работы с разметкой приложения с точки зрения аналитика

Время на прочтение16 мин
Количество просмотров1.8K

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

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

Читать далее

Android. Glance Widgets. Начало

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

Android. Glance widgets.

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

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

Читать далее

Flutter дайджест — Лето 2025 (июль + август)

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

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

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

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

Читать далее

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

Время на прочтение6 мин
Количество просмотров8.5K

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

Читать далее

Пользователь как сервер или «Request-Based» архитектура на примере Open Source Блокнота

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

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

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

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

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

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

Читать далее

Compose Multiplatform простое приложение c MVI

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

Статья об использовании мультиплатформенного Android и iOS решения на Compose с минимальным количеством сторонних beta библиотек. Настройке проекта для iOS и Android, а также тестировании с помощью локального сервера Netty

Из сторонних бета-библиотек используется buildkonfig = "0.17.1"

Room - База данных

Ktor - Network. Также задействован embeddedServer для эмуляции сервера

Koin - Dependency Injection

Coroutine Flow

Compose Navigation

Clean Architecture

Читать далее

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

Время на прочтение5 мин
Количество просмотров1.6K

В этом “юбилейном” выпуске память в Swift и ужесточение проверки разработчиков для сторонней установки приложений от Google, очередная смерть Flutter и инструмент для поиска и анализа ошибок, все != nil в коде, pixel-perfect тестирования дизайн-системы в Android, Польша как главный рынок приложений Европы и многое другое. Заходите!

Читать далее

Вклад авторов