Обновить

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

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

Массивы в Swift

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

Привет, Хабр! В прошлой статье мы поговорили о строках в Swift - об их особенностях, внутреннем устройстве и подводных камнях. И я подумал: ведь строки это по сути - коллекции. А какая главная и самая популярная коллекция в Swift? Конечно же, массивы. Их используют повсюду. Но вы когда-нибудь задумывались, как они устроены внутри? Давайте погрузимся внутрь массивов и посмотрим, что они из себя представляют.

Читать далее

Мобильная разработка за неделю #604 (22 — 28 сентября)

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

В этом выпуске рассуждения о месте Rust в iOS и MAX в Android, погружение в JNI и опыт Shopify с React Native, архитектурный сдвиг оффлайна, быстрый старт в CI, мобильный рынок Турции, продукты для бумеров и многое другое. Заходите!

Читать далее

Как требование к навигации повлияло на архитектуру мобильного приложения

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

Привет! Меня зовут Никита и я Android-разработчик. Сегодня я хочу рассказать, как нам вместе с командой Nexign удалось реализовать сборку бизнес-сценариев в приложении для регистрации новых клиентов с особыми требованиями по навигации.

Читать далее

Быстрый старт в CI на примере Flutter (под банальный Android и интересную «Аврору»)

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

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

Читать далее

Прорывная идея для существенного улучшения жизни незрячих: предложение запустить в массы новый интерфейс

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

Картинка: prostooleh, freepik.com

Есть один очень интересный вызов для разработчиков робототехники (или тех, кто хотел бы ими стать), который почему-то на данный момент большинство начинаний обходят стороной — управление массивом приводов. Ещё одна категория людей, кому будет явно интересна эта тема — разработчики мобильных приложений. 

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

Остаться в темноте... Это страшно даже представить, а ведь множество людей так и живут, и это для них суровая реальность...

Хорошо, если слух есть, а если его нет... Сложно представить, насколько осложняется коммуникация, когда пропадает зрительная составляющая в мире, где так много информации передаётся в визуальном, в частности текстовом, формате. По сути, человек остаётся изолированным один на один...

Ниже будет некоторый обзор темы, после чего, мы плавно придём к ОЧЕНЬ интересной (на мой взгляд) идее, думаю, что будет интересно!

Читать далее

Загрузка данных во ViewModel: рекомендации и Flow-based архитектура

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

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

Как показывает обсуждение в Твиттере, многие разработчики загружают данные в блоке init {} во ViewModel. Хотя подход кажется логичным, у него есть архитектурные недостатки. Автор статьи описал проблемы такого подхода и предложил гибкую альтернативу с использованием Flow.

Читать далее

Миграция на SPM: что мы выиграли и что потеряли

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

Спойлер: сократили размер приложений на 44% и ускорили их запуск в среднем на 51%.

Привет, Хабр! Меня зовут Владислав Сединкин, я занимаюсь iOS 10 лет и последние 2 года работаю в мобильной Core-команде Туту. В этом году мы решили сменить менеджер зависимостей и мигрировать с CocoaPods на SPM. Результаты оправдали ожидания, хотя и сложности на этом пути, конечно, были. В статье расскажу про проблемы, с которыми мы столкнулись в процессе, и предупрежу, на что стоит обратить внимание, чтобы не повторить наши ошибки.

Читать далее

Новая реальность найма: вы не прошли первый этап отбора из-за AI-галлюцинаций

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

Вы откликнулись на вакансию, написали сопроводительное. Через пару минут — автоответ: «Спасибо, вы не подходите». Никакого рекрутера, только модель, которая прогнала ваш текст через NLP-алгоритм и решила, что навыков не хватает. 

Меня зовут Татьяна Горбацевич, я руководитель отдела рекрутинга в KODE. В статье расскажу, где и как компании применяют AI в подборе сотрудников, а где модели пока недостаточно хороши. И главное — что про это думают кандидаты.

Читать далее

Как поддержать Flutter в своей Библиотеке. Опыт VK ID SDK

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

Привет! Меня зовут Даниил, я работаю в команде SDK в VK. Одно из направлений, которым занимается наша команда, — разработка SDK для авторизации через сервисы экосистемы VK. Он состоит из нескольких компонентов: авторизации, логина в один клик, шторки для входа с более удобным интерфейсом и поддержкой Mail и OK как провайдеров авторизации. 

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

Читать далее

Разбираемся с existential container в Swift

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

Existential container — это структура данных в рантайме, которая хранит значение типа скрытого за протоколом. Он появляется там, где мы используем название протокола в качестве типа переменной или аргумента функции. С помощью existential container реализован динамический вызов методов протокола, а также управление жизненным циклом внутренного значения типа.

Читать далее

Гайд по File Templates: как шарить шаблоны с однотипным кодом

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

Всем привет! На связи Дима Котиков, ведущий Android-разработчик в Т-Банке. Я все еще люблю разбираться в технологиях, разрабатывать под Android и KMP и пить латте на фундучном молоке :)

Расскажу, как можно шарить File Templates для своей команды, чтобы облегчить жизнь другим и сэкономить немного времени. Причем коллегам ничего самостоятельно не придется настраивать: подтянутый из git-а репозиторий с кодом все сделает сам. Эта статья — бонус к трем предыдущим, в которых я рассказывал, как уменьшить написание boilerplate-кода. Ссылки на них оставлю в конце статьи.

Читать далее

Погружение в JNI: проблемы и решения при взаимодействии между JVM и нативным кодом

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

Привет! Меня зовут Геннадий Денисов, я руковожу одной из команд разработки мобильного Яндекс Браузера для Android. Недавно в рамках одного проекта мы интегрировали С++‑код в мобильное приложение Браузера. В этой статье я поделюсь основными нюансами работы с Java Native Interface (JNI), инструментами для упрощения разработки и подробностями нашего подхода.

Читать далее

Новые подходы в Swift для тестирования: разбор технологии Swift Testing

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

Тестирование на Swift долгие годы держалось на трех китах: XCTest, сторонние библиотеки и собственная смекалка. Но на WWDC 24 Apple представила новый, современный фреймворк — Swift Testing, который предлагает концептуально новый подход к тестированию.

Меня зовут Кирилл Гусев. Я мобильный разработчик в ОК. В этой статье я расскажу о том, какие возможности предоставляет Swift Testing и как мы планируем их применять в ОК.

Читать далее

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

Офлайн-режим в мобильном приложении: зачем он нужен и как его реализовать

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

Представьте: пользователь открывает ваше приложение в метро, за секунду до въезда в тоннель. Вместо ошибки «Нет соединения» он видит контент, который уже загрузил, или даже продолжает заполнять форму — потому что приложение просто отложит синхронизацию до момента, когда сеть появится.

Это не магия, а продуманный офлайн-режим. В этой статье мы расскажем как реализовать его в приложении на iOS.

Читать далее

Мобильная разработка за неделю #603 (15 — 21 сентября)

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

В новом дайджесте Swift Runtime и производительность iOS-приложений, вопрос на 16К и полный айсберг Android, проектирование интерфейсов по азиатски, 17 платящих клиентов за час из Tinder, реклама на холодильниках и многое другое. Заходите!

Читать далее

Строки в Swift

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

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

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

Читать далее

Большой гайд как соответствовать ожиданиям работодателя в IT

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

Ты думаешь, что в IT достаточно быть сильным специалистом? Ошибаешься. Работодатели ждут от тебя гораздо большего, и часто об этом не говорят прямо.

Читать далее

Как создать собственный RenderObject

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

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

Меня зовут Александр, я Flutter-разработчик в Surf, и сегодня мы сделаем ещё один небольшой шаг к этим крутейшим возможностям — мы научимся создавать собственные RenderObject. 

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

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

Андроид всё еще не готов к RAW-видео

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

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

Сегодня вам предстоит увлекательное путешествие по стыку технологий, кода и технических решений, которые и расскажут вам то, о чем адепты съемки мобильного RAW‑видео предпочитают не говорить.

Читать далее

И ещё немного про то, что const в dart надо ставить где попало

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

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

Читать далее