Как стать автором
Поиск
Написать публикацию
Обновить
135.99

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

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

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

Создавайте виджеты главного экрана iOS с помощью Flutter

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

Hola, Amigos! Меня зовут Сергей Климович, я Mobile TeamLead агентства заказной разработки Amiga и соавтор телеграм-канала Flutter. Много. На канале мы уже рассказывали про Home Widget для Android, теперь пришло время поговорить про iOS. Я нашел отличную статью по этой теме и решил поделиться с вами переводом. 

Читать далее

Обзор архитектуры Compose с использованием паттерна «координатор»

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

В этой статье рассмотрим, пример реализации архитектуры UI-слоя на Compose, которая основывается на Uni-directional data flow и state hoisting с использованием паттерна «координатор» для навигации. Вдохновением для меня послужила эта публикация, но я решил подробнее развернуть поднятую в ней тему архитектуры Compose и навигации.

Читать далее

Дай знать, где ты находишься: как мы разработали навигатор по Эрмитажу

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

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

Читать далее

Android и iOS, Flutter и Kotlin: что обо всём этом расскажут на Mobius

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

До конференции Mobius остался месяц, мы представляем Хабру её программу. И её вечно непросто поделить на блоки.

Понятно, что доклады «про iOS» и «про Android» интересны разным разработчикам, поэтому хабрапост хочется разделить пополам. Но как правильнее поступить с докладами по Flutter? А про Kotlin, когда есть KMP? А с теми, которые не привязаны к платформе?

В общем, не уделяйте слишком много внимания тому, как всё разделено на части — лучше смотрите, о чём будут сами доклады.

Программа Mobius 2024 Spring

Идеальный кейс внедрения DevSecOps. Так бывает?

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

Привет, на связи отдел безопасной разработки СИГМЫ (ОБР). И хоть наша команда сформировалась относительно недавно, мы уже приобщились к «вечному» — а именно «противостоянию» разработки и безопасников. Если вы читаете эту статью, скорее всего такое знакомо и вам. Но иногда в этом взаимодействии формируются настоящие бриллианты. И сегодня речь пойдет как раз о таком кейсе.

Читать далее

О, вы из Англии? Локализация Ozon Seller на iOS

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

Всем привет! Меня зовут Андрей, и я делаю iOS-приложение для продавцов Ozon Seller. Наша команда поставляет фичи, красит кнопки, работает над перформансом и  всячески улучшает пользовательский опыт работы продавцов на Ozon.

Нашим приложением активно пользуются юзеры из разных стран, и поэтому день Х, когда мы решим добавить поддержку разных языков, был неизбежен. В этой статье я расскажу про стандартный процесс локализации iOS-приложения, про то, с какими трудностями мы столкнулись и как их решили. Разберём системный алгоритм определения языка и объясню, почему он нам не подошёл. Сделаем перевод приложения «на лету», а также посмотрим, как изменился наш флоу работы со строками.

Читать далее

Reflection в iOS: как посмотреть содержимое любой сущности

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

В Swift, как и во многих других языках программирования, есть возможность получать информацию о структуре объекта в Runtime. Для этого в языке есть специальный механизм — Reflection. С его помощью можно просматривать содержимое любых сущностей, не зная о них абсолютно ничего.

Меня зовут Светлана Гладышева, я iOS-разработчик в Тинькофф. Расскажу, какие возможности есть у Reflection в Swift, в чем ограничения и подводные камни. Рассмотрим его применение на примерах и узнаем, для чего его можно использовать в повседневной работе. А еще поговорим о том, как можно отключить Reflection в проекте и на что это может повлиять.

Читать далее

BDUI: sapere aude или продолжай писать на коленке

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

Backend Driven UI — относительно новая парадигма создания приложений. Она позволяет сделать продукт индивидуально полезным для каждого пользователя. На личном опыте я убедился, что это очень важно в современном процессе мобильной (и не только) разработки.

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

Вперед

Может ли мобильный-разработчик стать CTO?

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

Да, может. На этом статью можно было бы закончить. Спасибо, что дочитали до конца, приходите поделиться своим опытом в комментариях.

Если серьёзно, карьера мобильного разработчика, который хочет вырасти в большого руководителя, может складываться по-разному. Например, мой путь начался в 2013 году, и за это время я успел поработать и в маленьких стартапах, и в больших корпорациях. Сейчас я Director of Engineering в Яндекс Go. Последние шесть лет я управляю разными командами разного размера: от 5 до 200+ человек.

В этой статье я хочу рассказать, какие есть пути развития в мобильной разработке, что делать, если ты уже тимлид, кто такие крутые Individual Contributors (топовые разработчики) и как стать одним из них. Обо всём этом читайте под катом: попробуем разобраться, как расти и куда это может завести.

Читать далее

Huawei продвигает собственную ОС и планирует дистанцироваться от Android, Windows и других операционных систем

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

На Хабре не раз и не два писали про Harmony OS, китайскую операционную систему, которая изначально базировалась на Андроиде, но потом стала постепенно удаляться от своих корней. Китайская компания Huawei, разработавшая Harmony OS, планирует продвигать свою операционную систему в качестве основного продукта для всех своих девайсов. Что происходит и какие у этого проекта перспективы — читайте под катом.

Читать далее

KMP, догфудинг и велосипеды в стартапе американской версии «Кухни на районе»

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

Привет! Меня зовут Максим, я руководитель мобильной разработки в KTS. Недавно я попросил рассказать об используемых технологиях бывшего коллегу Сеню Суздальницкого, CTO Sizl — стартапа доставки еды в Чикаго.

Получилось большое интервью, в котором мы поговорили о том, почему между Flutter, React Native и нативной разработкой для мобильных приложений он выбрал KMP, а также работу в «Рокетбанке» и «Кухне на районе», нюансы запуска стартапа в США и многое другое

Читать далее

Сам себе экосистема. Часть 4: как я реализовал клиент Telegram на Android-смартфоне 14-летней давности?

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

С момента выхода первой части статьи из рубрики «сам себе экосистема» прошёл уже практически год! За это время, мы успели с вами реализовать клиенты VK и YouTube, которые работают на Android 2.2+, а также на Windows Phone 8, написать небольшую 2D-игру с нуля весом менее 1Мб, которая работает практически везде и довести существующее приложение до ума, дабы оно работало даже на смартфоне с дисплеем 240x320! Но на дворе 2024 год, люди стремительно переходят из соц. сетей в продвинутые мессенджеры и уже сложно себе представить современного человека, который не пользовался бы «телегой» или даже «вайбером» в качестве основного средства общения. Поэтому я решил реализовать клиент Telegram на смартфоне 14-летней давности на базе официальной реализации MTProto от команды Telegram — TDLib. Сегодня мы с вами: узнаем новые причины мотивации вернуть в строй смартфоны прошлых лет, напишем на C# реле-сервер, который обрабатывает пакеты MTProto и кодирует их в простой текстовый формат датасетов, который можно моментально обработать даже при нестабильном GPRS-соединении на 21-летнем Siemens C60, а также узнаем о разработке миниатюрных Android-приложений на базе «голого» API-системы, которые не тянут за собой никаких зависимостей, в том числе и AppCompat/androidx. Интересно? Тогда жду вас под катом!
Читать дальше →

Анализ производительности React Native приложений: как выявить проблемы и улучшить перформанс

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

Привет, Хабр! Меня зовут Вадим, я мобильный разработчик в СберМаркете. В этой статье расскажу, как провести профилирование (оно же измерение производительности или оценка перформанса) в react native приложениях: как выявить источник проблем и решить их. В русскоязычных источниках не так много информации по данной теме. Я потратил немало времени, чтобы со всем разобраться, поэтому попытаюсь восполнить этот пробел и для вас :)

Читать далее

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

Кодогенерация токенов дизайн-системы для Android по Figma API

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

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

Рассказываю про наш тернистый путь к собственному генератору токенов дизайн-системы.

Читать далее

Продуктовый подход к pet-проекту или как я разработал музыкальное веб-приложение

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

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

Читать далее

Privacy Manifest: что нужно о нём знать для внедрения в проект

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

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

Читать далее

Сложная архитектура простых приложений

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

По мотивам Adidas Running (ex. Runtastic)

Как я бы проектировал это интересное, но малоизвестное у нас приложение в роли архитектора.

Предыстория

Рынка систем электронных соревнований (в 2012 г) нет, но есть огромный интерес к спортивному образу жизни и к соревнованиям. В США не менее 50 миллионов (!) человек (это примерно 15% всего населения) хотя бы раз в неделю выходят на пробежку.

Адидас имеет объем продаж 20–30 млрд долл. в год.

Основной рынок – США, остальные страны – второстепенные рынки.

Посмотреть архитектуру

К чему с годами приводит работа с Dependency Injection и Service Locator

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

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

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

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

Читать далее

Context receivers — новые extension functions

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

Поговорим сегодня про context receivers — фиче Kotlin, про которую я узнал давно, но смог найти применение лишь пару месяцев назад. Расскажу о том, что такое context receivers, где их можно использовать, и, конечно же, про «успешный успех» — минус 60% самописного DI в OzonID SDK. Но обо всём по порядку.

Читать далее

ViewModel + Kotlin Multiplatform. Пробуем нативное решение

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


Всем привет! На связи Анна Жаркова, руководитель группы мобильной разработки в компании Usetech. Компания Google объявили о своем интересе к Koltin Multiplatform на прошлом Google I/O 2023. Следом был обозначен вектор развития имеющихся решений архитектурных библиотек Jetpack для поддержки KMP. Буквально считанные часы назад компания Google опубликовали ожидаемую многими новинку, а именно ViewModels из библиотеки Lifecycle с поддержкой API Kotlin Multiplatform. И сейчас мы с вами проверим, насколько это удобно, что уже готово, а что нужно доработать.

Для начала освежим, с чем же мы работали до ViewModels из Lifecycle.

Сами по себе ViewModel как часть паттерна MVVM применительно к кросс-платформенным решениям идея не новая. Многие давно использовали собственную реализацию, совмещая также с платформенными архитектурами.
Читать дальше →

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