Обновить
41.9

iOS *

Мобильная ОС компании Apple

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

Модульная запутанность. Как распарсить одну модель в разных модулях

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

Меня зовут Константин и я лид мобильной команды в финтех компании PeterPartner.

Хочу поделиться тем как распарсить одну модель с бекенда в разных Impl модулях. И немного о многомодульных приложениях в целом.

Читать далее

Мобильная разработка за неделю #519 (11 — 17 декабря)

Время на прочтение4 мин
Охват и читатели4.7K
В новом выпуске усложнение iOS и избавление от рекурсии в Kotlin, cимволизация логов и новые фичи на старых Android, многомодульность на Flutter, опыт прохождения собеседования в Google, как много языков может влезть в одного программиста и многое другое!

Подписывайтесь на на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.

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

Разбор задачи D отборочного этапа Yandex Cup 2023 — iOS

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

Это статья из серии с разбором задач отборочного этапа Yandex Cup 2023 по направлению iOS-разработка с призовым фондом почти в 9 000 000 рублей. Повторюсь, правильных ответов у меня не было, и решал я уже после окончания отборочного этапа. Если заметите какие-либо неточности в формулировках, в размышлениях, в ответах, буду рад обсудить это в комментариях.

Начнем!)

Читать далее

От конструктора до облака: какие есть способы разработки мобильных приложений

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

Привет! На связи Вася Крючков, уже больше 7 лет я занимаюсь разработкой мобильных приложений и сейчас работаю в компании IMSHOP.IO, где за 5 лет разработали больше 150 приложений для ритейла. За эти годы часто встречал случаи, когда е-com менеджеры и технические директора сливали бюджеты на разработку мобильного приложения in-house, поскольку думали, что это наилучший вариант, но так и не запускали его. В этой статье я расскажу о том, какие способы разработки мобильного приложения существуют и какие есть плюсы и минусы у каждого из них с точки зрения бизнеса. Думаю, это статья будет полезна не только CTO и IT-директорам, но и e-com менеджерам и собственникам, которые хотят разобраться в вопросе. Конечно, мнений может быть много, но я построил статью, основываясь на своем опыте. 

Читать далее

How to add drag and drop to your app

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

Данная статья является переводом оригинальной статьи Пола Хансена How to add drag and drop to your app.

Перетаскивание - это чрезвычайно полезная функция, поэтому не удивляйтесь, если ваши пользователи отправят вам электронное письмо с просьбой добавить ее. Несмотря на то, что и UITableView, и UICollectionView поддерживают перетаскивание, для настройки все равно требуется изрядный объем работы.

Чтобы опробовать это сейчас, давайте создадим новое приложение в Xcode. Нам нужно поместить во ViewController две TableView, оба заполненные примерами данных.

Для этого нам нужно:

Читать далее

SwiftUI: Разбираемся с identity на примере переходов

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

Концепция идентификации (identity) в SwiftUI не так проста, как могло бы показаться на первый взгляд. Один из лучших способов разобраться в ней — понять роль идентичности в переходах (transitions).

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

Читать далее

Как много языков может влезть в одного программиста?

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

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

Если с каких-то рассуждений прямо сильно подгорит, приходи в комментарии, будет классно пообщаться!

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

Читать далее

Когда официальные гайды не такие и полезные или WebSocket на ktor

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

Привет! Меня зовут Константин и я лид мобильной команды в финтех компании PeterPartner.

В этой статье расскажу о том как мы добавляли поддержку одностороннего сокета в наше мобильное приложение на Kotlin Multiplatform с использованием ktor

Читать далее

Мобильная разработка за неделю #518 (4 — 10 декабря)

Время на прочтение5 мин
Охват и читатели2.4K
В нашем новом дайджесте устройство протокола iMessage и новое приложение Beeper Mini (которое уже не работает), бесплатный Xcode Cloud, новый ИИ от Google в Android, создание простого калькулятора, интернационализация от i до n, конец плоского дизайна и многое другое.

Подписывайтесь на на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.

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

Swift Utilities — Работа со SwiftData в Background

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

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

SwiftData отлично функционирует внутри View: достаточно добавить декоратор @Query к свойству, и все будет работать 'из коробки'. Однако, когда возникает желание вынести работу со SwiftData в отдельный модуль, начинают появляться сложности, особенно касаемо выполнения операций в фоновом режиме.

Читать далее

9 советов, которые облегчат путь до мидла

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

Для всех джунов в разработке и тех, кто хочет ими стать.

Так бывает в жизни, что периодически каждый оказывается в роли джуна. Это не только про начало карьерного пути, но и про новые навыки: изучить новую технологию, язык программирования. А вдруг кто-нибудь из вас захочет резко сменить карьерный вектор и залететь в ИТ, например, из HR, как это сделала я?

Привет! Меня зовут Даша, я iOS-разработчик в Точке.

Так сложилось, что я побывала по обе стороны баррикад, причём, как ни забавно, в обратном порядке: пришла в разработку из HR. 

Изначально я была IT-рекрутером: брала джунов в Точку и помогала командам выстроить процесс их адаптации так, чтобы они смогли вырасти в дальнейшем. А потом, по законам кармы, сама оказалась в роли джуниор iOS-разработчика и попробовала всё ранее придуманное на своей шкуре. 

Жизнь длинная, и всё бывает: ещё вчера ты был уверенным в себе профессионалом, а сегодня стал беспомощным младенцем. И это не очень приятное ощущение. Хочется как можно быстрее превратиться обратно в самостоятельного человека. 

Лови 9 советов, которые помогут тебе сделать это легче.

Читать далее

Идеальный REST-клиент для iOS

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

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

Читать далее

Как устроен протокол iMessage

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

В этом посте я вкратце расскажу о внутреннем устройстве iMessage, изученном мной в процессе работы над pypush — опенсорсным проектом воссоздания реализации iMessage.

Ради краткости и понятности я не буду вдаваться в технические подробности. Если вы хотите узнать, как конкретно всё реализовано, то изучите репозиторий pypush.

Читать далее

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

Механизм экспорта растровых изображений в Figma: как изменяется качество изображения

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

Механизм экспорта растровых изображений с масштабированием в Figma полезен для разработчиков Android и iOS. Это связано с разной плотностью пикселей на экранах мобильных устройств. Для максимального использования возможностей устройств рекомендуется экспортировать изображения под конкретную плотность пикселей.

Android-разработчики при экспорте из Figma используют масштабирование x1, x1.5, x2, x3 и x4. iOS-разработчики предпочитают x1, x2 и x3.

Читать далее

Swift Utilities — Интеграция SwiftUI в UIKit

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

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

Как можно начать переезжать на SwiftUI? Постепенно. Переписывать целый экран слишком дорого по времени, а вот переписать ячейку или кнопку куда быстрее. Таким способом можно мигрировать на SwiftUI, постепенно переписывая экран. В этом поможет класс HostingView.

Читать далее

Мобильная разработка за неделю #517 (27 ноября — 3 декабря)

Время на прочтение5 мин
Охват и читатели3.2K
В новом дайджесте создание самолетного радара для любимой дочки, Kotlin под капотом, утечки памяти, визуальная иерархия элементов, лучшие приложения года для iOS и Android, руководство по монетизации и многое другое!

Подписывайтесь на на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.

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

Ускоряем прохождение iOS UI-тестов. Часть 3. Старт приложения с определенного экрана

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

Хабр привет!

Меня зовут Борис. Я руководитель группы автоматизации тестирования в Звук.

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

Данная статья будет полезна iOS‑автоматизаторам с опытом, либо разработчикам.

В рамках этой статьи мы разберем:

Зачем стартовать приложение с определенного экрана?

Какие способы реализации существуют?

Реализация с помощью диплинков

Реализация с помощью ArgumentHandler для подмены стартового View

Плюсы и минусы обоих подходов

Читать далее

Проект: AI Note Recorder или как я не выполнил цель на 2023 год

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

В 2023 году одной из моих целей стало собрать команду, забрейнштормить и запустить вместе проект, набрать 100 пользователей.

Я подошёл к этому серьёзно, но у меня не получилось.

Этим постом я хочу прорефлексировать весь путь, почему не вышло, что сработало и что помешало.

С нуля, до первого прототипа и до затухания деятельности команды.

Читать далее

DebugMenu и визуальная иерархия элементов интерфейса

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

В начале квартала, в Альфе, мы выбираем себе технические таски — задачи, направленные на техническое развитие проекта, а не на продуктовую составляющую. При выборе задачи хочется, чтобы она соответствовала нескольким условиям:

 решает реальные проблемы нашей команды, упрощая ежедневную работу;

укладывается в четыре выделенных технических дня — наш формат работы предполагает выбор трех задач на квартал и их решение в течение 20% рабочего времени;

позволяет расти профессионально, давая шанс погрузиться в новые технологии и инструменты.

Среди технических задач, мое внимание привлекла задача по визуализации иерархии элементов интерфейса. Она казалась мне идеальной: помимо очевидной пользы для разработчиков, которым не всегда удобно работать с View Hierarchy в Xcode(в некоторых случаях, изображения у вью отсутствуют) и невозможно при сборках через AppCenter или TestFlight, задача обещала интересные вызовы — возможность поработать с SceneKit. К тому же, наличие открытых библиотек, решающих подобные задачи, предполагало легкость интеграции в наш проект.

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

Читать далее

Как добавить Flutter в нативное приложение iOS и протестировать его на Codemagic (Часть 3)

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

Hola, Amigos! На связи Саша Чаплыгин, Flutter dev компании заказной разработки Amiga. Вот и наконец-то 3 часть статьи, в которой будет идти речь про про использование «Hot Reload», «Hot Restart» и тестирование на Codemagic.

Читать далее