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

Swift *

Открытый объектно-ориентированный язык

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

Удобная навигация в SwiftUI для iOS 16 и выше

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

Не будем мусолить всем известную проблему с навигацией в SwiftUI до 16 iOS, так как уже много крутых статей на эту тему есть в открытом доступе. Близится релиз 18 iOS, а это значит, что минимальные таргеты поднимутся на единичку ближе к 16 🥳

В данной статье хочу представить на `мой взгляд` наиболее удобную реализацию навигации на NavigationStack. Разумеется в концепции старого доброго MVVM, поэтому фанаты UDF извините 😜

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

Новости

Скрытая (на виду) сила KeyPath'ов

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

Привет! Меня зовут Максим Черноусов, и я занимаюсь iOS-разработкой в Райфе. Я обожаю использовать и дизайнить классные API. А один из самых часто используемых строительных блоков для хороших API в Swift — это KeyPath'ы. Сегодня о них и поговорим.

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

Пишем свой Swift макрос без лида, ИТ-курсов и кредитов

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

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

Сегодня я хотел бы рассказать вам о макросах в Swift 5.9, как их можно применять для избавление от бойлерплейта в коде, как их создавать, какие сложности есть с ними и куда всё это движется. Так как я работаю в команде дизайн-системы, мы рассмотрим макросы на примере добавления метода copy для всех моделей UI-компонентов.

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

Russkaya latinica

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

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

Читать далее
Всего голосов 36: ↑11 и ↓25-9
Комментарии209

Истории

Куб для ваших сторис*

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

*как в Кое‑что‑грамме или Telegram.

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

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

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

Расширяем возможности мобильного приложения на WebView. Опыт Ozon Банк

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


Привет, Хабр! Меня зовут Георгий, я руководитель команды Ozon Банк iOS. Я занимаюсь разработкой и развитием мобильного направления финансовых продуктов Ozon.

Сегодня хочу поделиться опытом нашей команды по запуску мобильного приложения на WebView.  

Часто разработчики используют только встроенный API взаимодействия JavaScript c нативными кодом, например Web API, но нам этого оказалось мало, и мы расширили спектр возможностей подхода web-native. Внутри статьи я расскажу, какой подход выбрал, как к этому пришёл и как обошёл возникшие проблемы. Подчеркну плюсы и минусы использования своего решения и в конце предложу несколько идей дальнейшего развития выбранного пути.

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

Пишем виджет в Control Center (iOS 18)

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

На WWDC 2024 Apple представила — виджеты в Control Center для iOS 18. Это новшество позволяет разработчикам добавлять собственные виджеты в новое место в приложении: Control Center, Home Screen. Но можем ли мы делать кастомную вёрстку в новых виджетах? Или подтянуть данные из сети?

В этой статье разберёмся с новыми виджетами, ответим на вопросы выше. А в завершении статьи вы найдёте сниппеты кода, чтобы быстро добавить виджеты в свой проект.

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

Изучаем новые структуры данных для iOS разработчика

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

Мобильные разработчики редко сталкиваются в работе со сложными структурами данных. Как правило, в рутинных задачах вполне достаточно уметь использовать  ArrayDictionary и Set. Но сегодня не об этом. Хороших статей о том, как устроены эти структуры данных, предостаточно.

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

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

Принципы SOLID на примере iOS-разработки

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

Привет, меня зовут Антон, я iOS-разработчик в компании Surf. Все программисты хотят писать красивый, масштабируемый и сопровождаемый код, и мобильщики – не исключение. Как в этом помогут принципы SOLID, и зачем они нужны?

Расскажем и покажем на примерах (куда без этого). Кейсы в статье относятся к iOS-разработке, но они будут полезны для всех разработчиков, независимо от стека.

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

Адаптируем VoiceOver для людей

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

Меня зовут Женя Тютюев, я iOS-разработчик в компании 2ГИС. Хочу поделиться, как адаптировал наше приложение под VoiceOver: 

— Делюсь историей про сдвиг парадигмы и как перешёл из стадии «делать, потому что Эпл советует» в совершенно новую — «делать для людей». 

— Как разработал новый вид snapshot-тестирования, чтобы ничего не ломалось при добавлении новых неадаптированных элементов. 

— И описал несколько нюансов, которые важно учесть в работе: escape, динамический расчёт доступности, укрупнение элементов.

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

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

Макросы — напишут код за вас, но есть нюанс…

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

Привет! Меня зовут Настя Ищенко, я — iOS-разработчик в KTS.

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

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

Алиса ПРО — для мобильного разработчика

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

Всем привет! Меня зовут Сергей, моё основное направление — мобильные приложения, но помимо этого я пристально наблюдаю за тем, что происходит с ИИ.

Давайте попробуем использовать YaGPT в повседневной работе мобильного разработчика

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

Защита iOS-приложений от реверс-инженеринга

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

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

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

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

Как мы искали применение App Clip… и нашли?

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

Мы в Додо часто заигрываем с новыми технологиями и делаем прикольные фичи. Вы, наверняка, уже использовали Live Activities для отслеживания своего заказа и слышали про AI-пиццу, а может быть и пробовали её.

Недавно у нас дошли руки до App Clips. Мы решили разобраться, могут ли они быть нам полезны, сделали своё мини-приложение и запустили его на проде.

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

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

Swift 5.10

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

Это минорное обновление языка перед мажорным переходом на Swift 6, которое сосредоточено в основном на устранение проблем с data race при компиляции.

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

Введение в тестирование на Swift Testing

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

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

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

Apple Pro Weekly News (10.06 – 16.06.24)

Время на прочтение21 мин
Количество просмотров935

Итоги конференции разработчиков Apple WWDC24, какие пасхалки там были спрятаны, что нового замечено в iOS 18, какие новинки Apple приготовила для разработчиков, что за нюансы при запуске Apple Intelligence, кому партнёрство Apple и OpenAI не нравится, а что сказал Тим Кук об ИИ. Это и многое другое – в свежем выпуске дайджеста Apple Pro Weekly News.

Перейти к новостям
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

CI/CD заказывали? Или простое, но подробное руководство по настройке CI/CD под несколько iOS проектов

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

Привет, меня зовут Дмитрий, и я iOS разработчик в компании Triada. В этой статье я расскажу, как настроить CI/CD для вашего iOS приложения, и приведу пошаговую инструкцию, как сделать это правильно с первого раза – чтобы не пришлось переделывать.

Мы настроим CI/CD для iOS проекта с репозиторием на GitLab с использованием Fastlane. Сборки будем отправлять в Testflight и в Firebase, если он у вас используется.

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

SwiftUI и MVI

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

UIKit впервые появился в iOS 2 и до сих пор остаётся с нами. Со временем мы привыкли к нему и научились с ним работать. Мы нашли различные архитектурные подходы, и MVVM стал самым популярным, на мой взгляд. С выходом SwiftUI, MVVM ещё больше укрепил свои позиции, в то время как другие архитектуры не очень хорошо себя чувствую на SwiftUI.

Однако архитектуры, которые, казалось бы, не могут быть использованы со SwiftUI, возможно адаптировать к SwiftUI, и они даже могут быть удобнее, чем MVVM.

Я хочу рассказать об одной из таких архитектур — MVI

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

Виды логирования в Swift

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

Привет! Меня зовут Владислав Даниелян, я iOS-разработчик в AGIMA. Предлагаю немного поговорить о принтах. Это одна из первых и наиболее используемых функций, с которой начинаются первые шаги в разработке у любого новичка:

Цель статьи — сэкономить время начинающих разработчиков, уберечь их от бесконечного потока непонятных сообщений в консоли и от нервов, потраченных на поиск «той самой» строки, которая всё объясняет. Мы разберем виды принтов и напишем свой небольшой логгер, который можно внедрить сразу, параллельно чтению.

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