Обновить

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

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

Как из джуна за год вырастить мидла

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

Привет, Хабр! Я — Алексей Григорьев, лид iOS-разработки продуктов Future Crew в MWS. Наша команда со стартап-вайбом: технологий свежих много, стек обновляется часто, требования к скорости внедрения — высокие. Нужны мотивированные сотрудники, но нет времени и сил искать готовых сеньоров. Поэтому мы ставим на рост внутри команды. Не просто не боимся брать стажеров и джунов — нам даже это интересно. От первого лица почитать историю о том, как мы вырастили джуна до мидла за год, можно тут. 

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

Читать далее

Что такое ANR и как с ним работать правильно

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

ANR — это не просто “зависание”, а молчаливый краш, который напрямую бьёт по удержанию пользователей. В статье разбираю, как работает механизм ANR, какие ошибки его вызывают, как анализировать traces.txt, какие библиотеки помогают отслеживать блокировки (ANR-WatchDog, ANR-Spy, Firebase Crashlytics), и как построить процессы, чтобы QA-команда научилась ловить их ещё до релиза.

Читать далее

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

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

В новом дайджесте трещины в Liquid Glass и опыт собеседования в Microsoft, шутки и веселье в Android и запрет программистам писать код, взлом на собеседовании, Supercell против ЕС, интеграция Predictive back и многое другое. Заходите!

Читать далее

Вайбуем в закрытом корпконтуре с Android Studio, Continue и Ollama в локальном режиме

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

Привет! Меня зовут Александр Карташов, и я Android-lead в IT-подразделении компании Спортмастер. Сегодня я расскажу вам о том, как настроить Android Studio для работы с LLM в режиме агента, получить максимум эффекта даже от небольших моделей на компьютерах, не обладающих мощной видеокартой, о тонкостях и некоторых важных настройках плагинов, особенностях запросов к нейронке. Эта статья-гайд поможет вам развеять страх того, что локальные модели для кодинга — это сложно, и позволит вам почувствовать лёгкий корпоративный вайб-кодинг даже внутри закрытого корпоративного контура.

Проблема

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

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

Погрузиться в вайб

Как ставить задачи разработчикам и укладываться в дедлайны

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

Размытые и неструктурированные задачи почти всегда заканчиваются доработками и сдвигами сроков. Ключ к снижению рисков — правильное и четкое оформление задачи. 

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

В статье Владислава Ларкина, операционный директор студии комплексной разработки цифровых решений CleverPumpkin, делится опытом и объясняет, как формализация задач помогает упростить коммуникацию, сэкономить время, бюджет и силы команды. Компания разрабатывает мобильные приложения на заказ и параллельно развивает собственные продукты, поэтому подход проверен на практике — как на клиентских проектах, так и внутренних.

Читать далее

Мы запретили программистам писать код и ускорили релизы в 2 раза. Как к этому пришли

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

Мы ускорили релизный цикл в 2 раза за счёт жёсткого shift‑left: запретили писать и коммитить код без ранней проверки требований и автогенерации тестов ИИ. Рассказываем, как у нас это получилось и насколько выгоден такой подход компании.

Читайте, как этого добились

Интеграция Predictive back в Android

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

В Android 13 Google представил новую «фишку»: predicitve‑навигация. Это API позволяет пользователю «посмотреть» на какой экран он вернется, не выполняя непосредственно возврат. Подобный функционал довольно давно есть в iOS и, например, в Telegram на Android. Теперь же данный функционал должен работать в Android «из коробки», а с Android 16 будет включен по умолчанию. Немного поресерчив тему можно найти для его работы необходимо включить флаг enableOnBackInvokedCallback и мигрировать на BackPressedDispatcher. Посмотрим так ли это.

Читать далее

Написал приложение с помощью GPT-5 и вот что получилось

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

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

Читать далее

Android для новичков: как не наломать дров с корутинами и какие привычки оставить в прошлом

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

Когда только начинаешь разрабатывать под Android, самые неприятные баги появляются не из-за опечаток, а из-за систематических ошибок. Хардкод строк и цветов, корутины, которые живут сами по себе, попытки писать Compose по старинке, как старые view — всё это превращается в технический долг, который мешает развивать продукт. 

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

Исправить ошибки в Android-разработке

К вопросу о шифровании данных на мобильных устройствах бизнес-пользователей

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

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

Представьте, что ваш телефон — это личный сейф, в котором хранятся самые ценные и конфиденциальные вещи. Что если кто‑то получит доступ к этому сейфу? Важно, чтобы доступ к вашим данным был только у вас. Именно здесь на помощь приходит шифрование.

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

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

Процесс шифрования данных

Представим, что у нас есть некоторая шкаф‑картотека с ящиками, которая стоит в нашем офисе. Любой ящик можно открыть, достать карточку и прочитать ту информацию, которая на ней написана.

Читать далее

UI Kit как рычаг роста: как связать Figma и код

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

Как превратить UI Kit из дизайнерского артефакта в живую систему, где обновление стиля в Figma автоматически обновляет код на Android.

В статье — наш путь от ручного копирования палитр до генерации типобезопасных токенов через KotlinPoet, Gradle-плагины и Figma JSON.

Расскажу, как бизнес получает скорость и консистентность, как темная тема перестаёт быть болью, и почему iOS может безболезненно присоединиться к этой архитектуре.

Читать далее

Шутки и веселье в публичном Android API

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

Ранее я рассказывал об относительно малоизвестной и ныне удалённой строке-заполнителе в Android, использовавшейся в качестве пасхалки. Это был выдуманный оператор сотовой связи под названием El Telco Loco. Сегодня я расскажу о методах и других частях публично доступного Android API, которые могут показаться больше смешными, чем полезными. Это пасхальные яйца, шутки, видимые только разработчикам приложений для Android, но не обычным пользователям.

Читать далее

Мобильная разработка за неделю #606 (6 — 12 октября)

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

В этом выпуске отрисовка SF Symbols в SwiftUI и краши Android-приложений, неблокирующие заставки и история о переезде на React Native, физический продукт, вместо очередного SaaS, запрет бесплатных раздач приложений от Apple, Топ-10 лучших бесплатных нейросетей и многое другое. Заходите!

Читать далее

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

«Ох, зря я туда полез…»: история о том, как мы переезжали на React Native

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

Привет, Хабр! На связи снова Саша Мищенко, тимлид платформенной команды в Профи.ру. И сегодня я хочу поделиться нашей поучительной историей переезда с нативного кода на React Native.

Если кратко, то было интересно и иногда даже страшно...

Читать далее

Vivaldi 7.6 для мобильных устройств — Всё в ваших руках

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

Современный смартфон - удивительная вещь. Фактически у нас на ладони оказывается мощный инструмент, позволяющий решать массу повседневных задач, поэтому мы почти не выпускаем его из рук. И очень важно, чтобы браузер, используемый в телефоне, обладал способностью адаптироваться под привычки и запросы своего пользователя. Встречайте Vivaldi 7.6 для iOS и Android - с новыми удобными функциями, повышающими комфорт и скорость работы в сети.

Читать далее

Современная магия. Капля росы

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

Бывало ли у кого‑нибудь так, что начинаете реализовывать одну идею, а она плавно преобразовывается в другую, а затем ещё в одну, и вот, у вас на выходе уже совершенно свежая история, только лишь отдалённо напоминающая начальную задумку. Думаю, наверняка, бывало!

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

Вот и на этот раз, у меня была идея сначала попробовать реализовать простейшую игру, на подобие «крестиков‑ноликов», только с более расширенным сюжетом (о ней как‑нибудь тоже обязательно расскажем). Но в какой то момент совершенно неожиданно у меня пропали кодовые наработки, которые были написаны на промежуточном этапе, и «со скрипом» пришлось возвращаться к самому началу написания программы.

И вот когда повторно пишешь что‑нибудь, во‑первых, часто бывает просто лень и неинтересно заново точь‑в-точь воспроизводить то, что делал все последние месяцы. А во‑вторых, обязательно будут появляться новые мысли, и как оказывается, начальный замысел может «уплывать» совсем в другую сторону от первоначального.

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

Читать далее

Почему моё Android-приложение крашится?

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

Привет! Меня зовут Абакар, я работаю главным техническим лидером разработки в Альфа-Банке.

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

Сегодня мы с вами разберёмся, почему это происходит и какие механизмы лежат в основе такого поведения. Итак, в путь!

Читать далее

Отвлекать разработчиков ПО намного вреднее, чем считает большинство менеджеров

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

После COVID-19 наша культура труда в основном изменилась к лучшему, но были и негативные изменения, например, увеличение количества совещаний на 13,5%[1].

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

В своей знаменитой статье «Maker's Schedule, Manager’s Schedule» [2] Пол Грэм писал:

«Когда работаешь в режиме творца, совещания — это катастрофа. Единственное совещание может поломать день, разделив его на две части, в каждой из которых невозможно сделать ничего достаточно сложного».

Эта проблема не решилась с появлением ИИ-помощников в кодинге; напротив, она усугубилась, потому что менеджеры теперь считают, что разработчики могут быть продуктивными в меньших временных интервалах.

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

Читать далее

Мобильная разработка за неделю #605 (29 сентября — 5 октября)

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

В новом дайджесте OCR-сервер на iPhone и разработчики против регистрации Google, скрытые угрозы Room и golden-тесты во Flutter, Kotlett и динамические обновления без релизов и BDUI, мобильный интерфейс без человека, приложения, вышедшие в августе, и заработавшие больше $50К и многое другое. Заходите!

Читать далее

Swift Codable

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

Привет, Хабр!

На этой неделе мы поговорим ещё об одном встроенном типе Swift - Codable. Думаю, все, кто писал клиент-серверные приложения, сталкивались с этим протоколом: он позволяет преобразовывать наши структуры в бинарные данные и обратно. Однако, полагаю, немногие задумывались, как этот привычный механизм работает под капотом. Сегодня я постараюсь рассказать об этом.

Читать далее