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

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

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

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

Как работает async/await в Swift

Уровень сложностиСложный
Время на прочтение27 мин
Количество просмотров4.1K

Функция async/await в Swift появилась в iOS 15, и я полагаю, что на данный момент вы уже знаете, как ее использовать. Но задумывались ли вы когда-нибудь о том, как работает async/await изнутри? Или, может быть, почему выглядит и ведет себя именно так? Или даже почему вообще была представлена?

В типичной для SwiftRocks манере мы углубимся в компилятор Swift, чтобы ответить на вопросы о том, как работает async/await внутри. Это не инструкция по использованию async/await, а глубокое погружение в историю и реализацию этой функции, чтобы понять, как она работает, почему она работает, чего можно добиться с ее помощью и, самое главное, какие нюансы следует учитывать при работе с ней.

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

Пути внедрения поддержки скриптов в Dart/Flutter

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

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

«Бред!»- ответят скептики. «Выкладывай!» - ответят энтузиасты.

В рамках данной статьи я предлагаю вам рассмотреть возможные пути для интеграции функционала выполнения скриптов в ваши Dart/Flutter приложения.

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

Самый простой CI/CD пайплайн для flutter приложения с Codemagic. Часть 2

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

В предыдущей статье мы рассмотрели, как организовать самый простой CI/CD для сборки под Android через Codemagic.

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

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

Task и structured concurrency в swift

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

В данной части из серии статей про Swift concurrency мы подробно остановимся на сущности под названием Task и разберем на примерах, как с ней работать. Также поговорим про structured concurrency. Что это такое, как это понятие связано с Task и почему механизмы языка async/await structured, но не concurrent.

Помимо этого, мы разберем инструменты и механизмы structured concurrency. Среди них async let, Task hierarchy и Task cancellation. И, как обычно, не оставлю вас без примеров применения этого букета конкуррентности.

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

Помощь на старте: 10 полезных ссылок для начинающих iOS-разработчиков

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

Всем привет! Меня зовут Денис Сурков, я iOS-разработчик в компании «Мой спорт» и наставник на курсе «iOS-разработчик» в Яндекс Практикуме.

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

К подборке
Всего голосов 10: ↑9 и ↓1+8
Комментарии0

Мобильная разработка за неделю #527 (19 — 25 февраля)

Время на прочтение4 мин
Количество просмотров1.7K
В нашем новом еженедельном выпуске приложение для Apple Vision Pro за 8 дней и анимированные переходы, Android 15 для разработчиков и делегаты в Kotlin, гироскопический параллакс, разработчики мобильных приложений в 1С и многое другое!

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

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

SwiftUI уроки (часть 1)

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

В чём особенность этих уроков?

Основаны на книге "Mastering SwiftUI" от Appcoda: Мы берем за основу материал этой книги, но не слепо следуем ей.

Интерпретация и перевод: Мы адаптируем материал книги для русскоговорящей аудитории, делая его более понятным и удобным для восприятия.

Для начинающих и опытных: Эти уроки подойдут как тем, кто только начинает изучать SwiftUI, так и тем, кто хочет узнать что-то новое об этом фреймворке.

Чего вы можете ожидать?

Пошаговое изучение SwiftUI: Мы будем проходить все основные темы, от простых до сложных.

Практические примеры: Вы сможете закрепить полученные знания, выполняя практические задания.

Присоединяйтесь к этой серии!

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

Мобильная разработка за неделю #526 (12 — 18 февраля)

Время на прочтение4 мин
Количество просмотров1.9K
В этой еженедельной подборке опровергаем архитектурные заблуждения и знакомимся с Swift Algorithms, собеседуем в RuStore и двигаем рукой справа налево, уменьшаем продуктовую анимацию, тащим новые технологии, идем в Мордор с Фродо и многое другое!

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

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

Мобильная разработка за неделю #526 (12 — 18 февраля)

Время на прочтение4 мин
Количество просмотров1.9K
В этой еженедельной подборке опровергаем архитектурные заблуждения и знакомимся с Swift Algorithms, собеседуем в RuStore и двигаем рукой справа налево, уменьшаем продуктовую анимацию, тащим новые технологии, идем в Мордор с Фродо и многое другое!

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

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

Создание кастомного React Native компонента Switch с помощью библиотек Reanimated и Gesture Handler (Часть 2)

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

Всех приветствую! Это вторая и заключительная часть моего цикла статей по созданию кастомного компонента Switch с помощью библиотек Reanimated и Gesture Handler. Здесь мы рассмотрим реализацию логики пропса disabled, добавим пару новых фич и напишем обработку изменения состояния value вне компонента.

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

Топ-5 распространенных практик написания хорошего Swift-кода

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

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

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

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

Как устроен @State в SwiftUI

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

Привет! Меня зовут Илья, я iOS разработчик в компании Банки.ру
Уже больше двух лет наше приложение мы пишем на SwiftUI.

В статье расскажу о Property Wrapper'е @State.

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

Камера как сканер штрих-кодов: проблемы, инструменты и эксперименты

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

Всем привет, меня зовут Никита, я старший разработчик в компании Озон и работаю над iOS-приложением «Пункт Озон».

«Пункт Озон» — это мобильное приложение для работников и менеджеров пункта выдачи заказов (далее просто ПВЗ). В приложении множество различных разделов для повседневной работы. Самые популярные разделы — это «Приёмка», «Выдача» и «Инвентаризация», что в мобильной, что в web-версии. Именно они помогают выполнить главные задачи работников ПВЗ — принять заказы на баланс и позже выдать их клиентам.

Для скорости работы и защиты от ошибок работники ПВЗ производят эти действия через сканирование штрих-кодов, расположенных на самих заказах или на тарах, в которых они приезжают. Если брать web-версию, то там «все просто»: покупается нормальный/качественный отдельный сканер, подключается к ПК — и проблем, считай, нет. А вот с мобильным приложением дела обстоят немного не так. У смартфона есть только камера, и она явно не проектировалась под задачу «сканируем только штрих-коды». Но с другой стороны, камера делает фотографию, а раз у нас есть фотография, то можно там найти штрих-код. К счастью, Apple и Google предоставляют нам инструментарий для этого.

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

с какими проблемами столкнулись пользователи при использовании мобильного сканера, и почему мы стали искать возможность его улучшения;

сравнение инструментов, которые предлагает Apple;

технический обзор одного из них;

история его внедрения в наше приложение и конечные результаты.

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

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

Опровергаю пять архитектурных заблуждений

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

Привет! Я Алексей, iOS-разработчик в Тинькофф. Участвую в развитии архитектуры приложения, провожу собеседования и занимаюсь менторингом разработчиков.

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

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

Опровергаю пять архитектурных заблуждений

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

Привет! Я Алексей, iOS-разработчик в Тинькофф. Участвую в развитии архитектуры приложения, провожу собеседования и занимаюсь менторингом разработчиков.

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

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

Мобильная разработка за неделю #525 (5 — 11 февраля)

Время на прочтение5 мин
Количество просмотров2.4K
В новом дайджесте разбираемся со SwiftData и кодом доставки пиццы, изучаем в будущее swift-testing и мастерстве программирования, обманываем на технических собеседованиях с помощью ChatGPT, определяем самые скачиваемые и зарабатывающие приложения в России в январе и многое другое!

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

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

Создание кастомного React Native компонента Switch с помощью библиотек Reanimated и Gesture Handler (Часть 1)

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

Приветствую дорогой читатель! Если тебя интересует разработка под React Native и ты хочешь научиться работать с анимациями и отслеживаниями нажатий, то эта статья для тебя. Данная статья первая, что вышла из под моего пера клавиш ноутбука, поэтому прошу сильно не кидаться тапками. Здесь мы рассмотрим работу с кастомными анимациями в React Native и использование библиотек react-native-reanimated и react-native-gesture-handler.

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

Раскраска SVG картинки во flutter, и почему я решил отключить Impeller

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

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

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

Удобство и/или безопасность? Tinkoff edition

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

Вы приходите домой и открываете почтовый ящик. Одновременно с этим на 5 минут открывается сейф у вас в доме. Удобно? Возможно, в некоторых случаях, да. Очевидно и интуитивно? Каждый решит в своём случае.

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

Стеки и Очереди в Swift

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

В этой статье мы исследуем две фундаментальные структуры данных, которые являются неотъемлемой частью программирования на Swift: стеки и очереди. Они представляют собой коллекции элементов с особыми правилами для добавления и удаления элементов. Стеки работают по принципу "последним пришел, первым ушел" (LIFO), что делает их идеальными для задач, связанных с обратной навигацией или отменой действий. Очереди, следуя принципу "первым пришел, первым ушел" (FIFO), идеально подходят для задач, требующих обработки элементов в порядке их поступления, например, в управлении задачами или потоками данных.

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