Как стать автором
Обновить
65.95

Разработка под iOS *

Популярная мобильная ОС

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

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

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

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

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

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

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

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

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

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

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

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

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

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

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

Читать далее
Всего голосов 20: ↑13 и ↓7+6
Комментарии18

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

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

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

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

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

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

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

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

Читать далее
Всего голосов 13: ↑13 и ↓0+13
Комментарии1

Истории

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

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

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

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

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии1

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

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

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

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

Читать далее
Всего голосов 5: ↑4 и ↓1+3
Комментарии4

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

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

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

Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии0

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

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

Хабр привет!

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

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

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

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

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

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

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

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

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

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

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

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

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

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

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

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

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии20

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

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

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

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

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

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

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

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

Читать далее
Всего голосов 17: ↑17 и ↓0+17
Комментарии1

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

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

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

Читать далее
Рейтинг0
Комментарии3

Как появились веб-пуши Apple в Тинькофф

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

Всем привет! Мы — архитектор разработки публичных веб-приложений Борис и разработчик системы-шлюза отправки нотификаций Данила. Расскажем о том, как создавались веб-пуши iOS в Тинькофф, как их настраивали и с какими проблемами столкнулись в процессе разработки.

Читать далее
Всего голосов 16: ↑14 и ↓2+12
Комментарии8

Kotlin Multiplatform в мобильной разработке. Рецепты общего кода для Android и iOS

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

Kotlin Multiplatform — технология, которая позволяет использовать общую кодовую базу для бизнес-логики приложений разных платформ и писать платформенный код только там, где это необходимо. Хотя последнее время о ней много и часто говорят, найти информацию о нюансах внедрения KMP в проекты довольно сложно. В этом мы убедились лично, когда пытались разобраться, что и как именно можно безболезненно выносить в common-модуль. 

Читать далее
Всего голосов 10: ↑9 и ↓1+8
Комментарии7

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

Мобильная разработка за неделю #516 (20 — 26 ноября)

Время на прочтение5 мин
Количество просмотров4.8K
В нашей новой подборке отслеживание изменений в SwiftUI и тысяча проблем App Clip, Kotlin под капотом и простая архитектура, OpenStreetMap в Flutter, 18 лет работы в Google, мышление Platform Engineer, приложением №1 в App Store, которое не обновлялись уже 7 лет и многое другое!

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

Читать дальше →
Всего голосов 3: ↑3 и ↓0+3
Комментарии1

Что можно и что нельзя делать с Async/Await

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

Синтаксис async/await, введенный в Swift 5.5, значительно упростил асинхронное программирование, сделав его более доступным и интуитивно понятным. Однако, как и любой мощный инструмент, он может быть использован неправильно. Здесь я хочу рассмотреть пять распространенных ошибок, которые разработчики часто допускают при использовании async/await и предложить стратегии их избегания.

Ошибка 1: Необработка Ошибок

Асинхронные функции Swift могут вызывать ошибки, так же как и их синхронные аналоги. Однако многие разработчики, особенно те, кто только начинает работать с синтаксисом async/await, могут упускать обработку ошибок, что приводит к сбоям или непредсказуемому поведению.

Решение

Синтаксис do-catch в Swift - ключ к обработке ошибок из асинхронных функций. Обернув вызов асинхронной функции в блок do-catch, вы можете перехватить и обработать любые выброшенные ошибки, предотвратив сбои и обеспечивая предсказуемое поведение вашего приложения.

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии0

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

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

Hola, Amigos! На связи Саша Чаплыгин, Flutter dev компании заказной разработки Amiga. Нашел интересную статью на английском о том, как добавить Flutter в новый или существующий проект Native iOS. Решил поделиться с вами переводом. Это вторая часть, в которой будет идти речь про реализацию экрана Flutter в приложение для iOS и использование platform channel.

Читать далее
Всего голосов 7: ↑6 и ↓1+5
Комментарии1

ChatGPT-4 в помощь: используем AI в доработке простого iOS-приложения

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

Мне всегда было интересно, получится ли применить AI-инструменты в трудовых буднях программиста. Когда появился ChatGPT, я начал пробовать использовать его в работе, и он быстро стал для меня вспомогательным инструментом. Буквально на днях вышло его крупное обновление, и стала доступна новая функциональность, которая делает его еще удобнее для разработчика.

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

Для наглядности буду демонстрировать все на открытом pet-проекте, чтобы вы видели работу новых функций GPT-4 в действии.

Читать далее
Всего голосов 22: ↑21 и ↓1+20
Комментарии14

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

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

Hola, Amigos! На связи Саша Чаплыгин, Flutter dev компании заказной разработки Amiga. Нашел интересную статью, решил поделиться переводом. Автор материала рассказывает, как добавить Flutter в новый или существующий проект Native iOS и протестировать его на Codemagic CI/CD с помощью codemagic.yaml.

Читать далее
Всего голосов 13: ↑12 и ↓1+11
Комментарии0

App Clip и тысяча проблем

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

Menusa - проект Dodo Brands. Инструмент по автоматизации процессов для малого бизнеса в сфере общепита.

В этой статье расскажу как мы добавляли функционал вызова официанта в App Clip и с какими проблемами столкнулись.

Читать далее
Всего голосов 13: ↑12 и ↓1+11
Комментарии8

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

Время на прочтение5 мин
Количество просмотров2K
В этом дайджесте для мобильных разработчиков листаем страницы и повышаем качество кода, защищаем и исследуем код, исследуем новый релиз Flutter, делаем дизайн-систему, автотесты, определяем “производительность” рекламных сетей.

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

Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии0