iOS Broadcast
3.31K subscribers
1.69K photos
84 videos
971 links
Подборка новостей и статей для iOS разработчиков.

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @android_broadcast_bot
Download Telegram
The Coordinator Pattern: A Simple, Scalable Solution for iOS App Navigation

Координатор - паттерн, используемый для работы с навигацией и флоу. Объект координатора отвечает за навигацию и общение между экранами.
Для чего он нужен?
👉 Separation of concerns: Помогает сосредоточить обработку навигации и флоу в одном месте для упрощения понимания и поддержки.
👉 Reusability: позволяет разделять viewController'ы, облегчает их переиспользование и позволяет изменять флоу без изменений внутри модулей
👉 Scalability: проще следить за навигационным деревом, тем самым проще добавлять новые фичи и менять навигацию
👉 Координаторы могут быть соединены вместе в цепочку и создавать свою иерархию

#architecture
🔥6👎1
Swift IOS Interview Questions And Answers

Для тех кто проходит собеседования, проводит их или хочет улучшить свой технической английский 🧐
👉 Language features
👉 UI – Auto layout & UIKit
👉 Threading & concurrency 
👉 Memory management
👉 Architecture and design pattern

#interview
👍6👎3
Annotation Injection with compile-time safety in Swift

Пример реализации DI с:
👉 Compile-time safety
👉 Меньшим количеством бойлерплейта
👉 Синтаксическим сахаром (annotations)
👉 Без сторонних зависимостей

На изображении пример. Сначала создаем сервис, потом фабрику для него, потом DI контейнер, менеджер, propertyWrapper и наконец используем в классе.

#swift
👍4👎2
Пишем персистентный слой на Realm

В iOS в основном для реализаций БД используются CoreData и Realm.
В статье пример реализации сервиса сохранения данных на Realm

#ios
👍7👎31🤔1
iOS App Security: Best Practices

Поддерживаем безопасность в iOS приложениях. Некоторые примеры и способы из статьи:
👉 Apple’s App Sandbox. Каждое приложение в отдельной песочнице
👉 Data Protection API. Встроенное шифрование файлов приложения с 4 уровнями защиты
👉 Keychain. Защищаем чувствительные данные
👉 App Transport Security (ATS) блокирует незащищенные соединения (HTTP)
👉 SSL Pinning
👉 Push-нотификации с помощью Apple’s APNS services
👉 Apple’s CloudKit для хранения данных без бэкенда
👉 Не забывайте убирать принты в коде 😄
👉 CryptoKit - библиотека для шифрования
👉 Обфускация кода на случай установки приложения на джейлбрейкнутый девайс

#security
👍5👎1
Участвует ли Apple в современной ИИ-революции?

Аргументы, почему Apple не отстаёт в ИИ гонке 🤖
👉 Старший вице-президент по машинному обучению и стратегии развития искусственного интеллекта Джон Джаннандреа собрал в Apple лучшую команду из лучших спецов по ИИ. Говорят что у Apple даже есть своя секретная научная лаборатория базирующаяся близ Кембриджского университета
👉 Apple с 2017 года начала встраивать в свои чипы Neural Engine, являющийся встроенным ИИ-ускорителем
👉 И самое главное, что за последние примерно 12 лет Apple скупила уже около 30 стартапов и небольших компаний развивающих ИИ-проекты и AR/VR-проекты использующие ИИ

Больше ссылок по теме:
"Почему Apple может запустить свой поисковик и зачем это нужно компании"
"Так Apple делает свой автомобиль или нет?"

#AI
👍5👎3
Подборка видео на выходные 😎

📺 Watch this before you get the M2 Max Macbook Pro for coding (8 мин)
📺 UIKit или SwiftUI в 2022? (31 мин)
📺 How to Make a Searchable Map View in SwiftUI for Beginners – Step by Step (2023) (45 мин)
📺 Build a SwiftUI ChatGPT macOS App | OpenAI API | Menu Bar (14 мин)

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

#подборкавидео
👍5👎2
Лучшие техники ревью кода

👉 Создайте чек-лист для проверки кода
👉 Ограничьте количество строк кода для ревью за один раз. Это необходимо для того, чтобы обзор проходил с одинаковой эффективностью.
👉 Применяйте средства автоматизации. PVS-Studio (выявляет опечатки, мертвый код, потенциальные уязвимости), SonarQube (проверяет ошибки, соответствие стандартам кодирования, технический долг), AppRefactoring (выявляет дубликаты и пересечения фрагментов кода, предоставляя информацию для уникализации кода), Codacy (выявляет ошибки в коде, проблемы безопасности) и другие
👉 Дайте положительную обратную связь на кодревью

#процессы
👍7
How to write README file for the iOS project

Что должно быть в хорошем Readme?
👉 Название и предложение, коротко описывающее суть проекта
👉 Description - короткое описание проекта, цель и ключевые фичи
👉 Как запустить проект, включая все его зависимости и возможные проблемы
👉 Как использовать проект, документация и примеры
👉 Используемая архитектура и обоснование ее выбора
👉 Описание структуры проекта
👉 Как запустить тесты
👉 Как задеплоить проект, если есть такая возможность
👉 Менеджер зависимостей и как с ним работать, список библиотек с обоснованием их выбора
👉 Workflow: как заводить PR и репортить баги
👉 Тулза, использовавшаяся для дизайна
👉 Ссылка на доску с задачами и описание взаимодействия
👉 Ссылка на API и краткое описание работы с сетью

#documentation
👍12🔥1
Our 1 Mistake in iOS App Modularization That Slows our Xcode Build process

👉 Не всегда поможет замена MacBook на более мощную версию
👉 Проверяйте процесс сборки. Xcode 14 имеет встроенную функцию визуализации
👉 Иногда проблема медленной сборки более специфична для вашей кодовой базы или даже архитектурного уровня, как это произошло в случае из статьи (UIFramework - bottleneck)
👉 Всегда старайтесь сделать модульную структуру как можно более горизонтальной на каждом уровне, чтобы не создавать узких горлышек в процессе сборки

#build
👍4
KMM глазами iOS-разработчика

В KMM есть свои нюансы, которые описаны в статье. Но нет блокеров, которые заставили задуматься об отказе от KMM. Зато вот какие профиты для бизнеса были получены:
👉 Экономия времени разработки (зависит от проекта). 
Экономия будет больше, если в проектах много бизнес-логики находится на мобильном клиенте: офлайн-first решения
👉 Экономия времени переделок при изменении только бэкенда/логики без изменения UI — почти 50%
👉 Время погружения разработчиков iOS в KMM с 0 до реализации комплексных фичей — около 4 месяцев
👉 Bus factor — доработать KMM-логику могут не только iOS-разработчики, но и Android

#crossplatform
🔥6👍2👎1
Running tasks in parallel

Учимся запускать задачи параллельно с помощью old-school техник и фреймворков, а также новой structured concurrency API.
Складываем числа от 0 до миллиарда с 8 worker'ами с помощью:
👉 concurrentPerform 
👉 operation queues
👉 structured concurrency
👉 task groups

#swift
🔥7👎1🤩1
Что нового в Swift 5.7: Regex (4 мин)

Swift Regex очень удобен благодаря таким фичам, как билдеры или уже готовые парсеры. Способы использования:
👉 Regex-литералы. Нам больше не нужно использовать двойные escape-символы и беспокоиться о do-catch, как при работе с NSRegularExpression
👉 Run-time конструкции. Эта фича может очень пригодиться для полей поиска в редакторах или консольных утилит
👉 Regex-билдеры - структурированная форма написания регулярных выражений, доступная в Swift

На скринах примеры этих способов. В комментариях прикреплю демонстрацию преобразования Regex в Xcode

#swift
👍6👎1