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

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @android_broadcast_bot
Download Telegram
Forwarded from Kotlin Multiplatform Broadcast (Кирилл Розов)
TouchLab представили KMMBridge - набор Gradle инструментов для помощи в публикации и использования pre-build KMM Xcode Framework бинарников

👉 Документация
👉 Исходный код на GitHub

#kmm #gradle
👍3
Developer guide on the iOS file system

В целях безопасности для записи и чтения файлов каждое iOS приложение имеет свою изолированную sandbox директорию. В качестве исключения доступны фото, музыка, контакты и некоторые другие данные.

Sandbox состоит из:
👉 Bundle Container Directory - содержит ресурсы приложения (доступ read-only)
👉 Data Container Directory, делится на:
- Documents: контент, сгенерированный пользователем
- Library - для хранения фалов приложения, которые не должны просочиться пользователю
- tmp - для временных файлов

#iOS
🔥3
Известность команд iOS разработки 2022

В опросе среди 900 iOS разработчиков узнали много интересного. Некоторые пойнты из исследования:
👉 57% респондентов работают в командах из 10 и более человек
👉 78.7% iOS разработчиков имеют высшее образование
👉 Джуны смотрят видео на YouTube, читают книги и проходят курсы. С переходом в мидлы фокус сдвигается на статьи и общение с коллегами. Синьорство прививает вкус к Твиттеру
и email-рассылкам. А тимлиды предпочитают ходить на конференции и чаще общаться с коллегами
👉 Наиболее привлекательные компании: Яндекс, Тинькофф и Авито

#оффтоп
👍4🤩1
Использование Apple Swift и SwiftUI в iOS 16

Занятные графики об использовании бинарников, UIKit и SwiftUI, языков программирования в iOS.
Принятие Swift продолжает экспоненциальный рост и в этом году язык превзошел C++. Точно так же SwiftUI начинает все больше использоваться самой Apple: количество двоичных файлов, использующих SwiftUI, удвоилось от iOS 15 к iOS 16. Apple использует собственные платформы — хороший знак для этих фреймворков.

#iOS
🔥4👎1
Алгоритмы сортировки в Swift

Каков наиболее эффективный способ отсортировать миллион 32-битных пользователей? Это частый вопрос на собеседовании в таких компаниях как Google.
В статье три популярных алгоритма сортировки с кодом на Swift и видеопримерами.

#swift
👍3👎2
Утройсво многопоточности в Swift

Для нас доступны следующие способы работы с потоками:
👉 pthread - самый низкий уровень, не рекомендуется к использованию
👉 NSThread - абстракция над pthread
👉 Grand Central Dispatch - высокоуровневое API, позволяющее создавать пользовательские очереди, управлять задачами в них, решать вопросы синхронизации и делать это максимально эффективно
👉 NSOperation - это по сути те же очереди, вместо DispatchQueue здесь OperationQueue, а вместо DispatchWorkItem — Operation

Подробнее о каждом из способов, а также о проблемах многопоточности в статье

#swift
🔥3👍1
The View Controller Hierarchy

Если вы забыли как строятся отношения между контроллерами внутри приложения, то эта статья от Apple поможет восполнить пробелы

Основные типы контроллеров:
👉 The Root View Controller - головной контроллер, с которого начинаются все флоу в приложении. Каждый UIWnidow имеет ровно один такой контроллер❗️
👉 Container View Controller - позволяет собирать сложные интерфейсы из более управляемых и многократно используемых частей. Например, UINavigationController
👉 Presented View Controllers - экран, открытый поверх другого

#navigation
🔥2👎1
6 YouTube channels that every iOS developer should subscribe

Очередной повод выучить или подтянуть английский:
👉 Paul Hudson - канал автора сайта Hacking with Swift с обучающими видео
👉 Darrel Root - обучающие видео по Swift
👉 iOS Conf SG - ежегодная конференция iOS разработчиков в Сингапуре
👉 CodeWithChris - самый большой канал с iOS туториалами на YouTube (из био канала)
👉 Lets Build That App - канал, где переписывают популярные приложения из AppStore
👉 Sean Allen - туториалы по iOS и оффтопные shorts

#education
🔥4👎1
Is Swift Combine Dead?

Есть мнение, что Combine умер, поскольку Apple представила Swift Concurrency, а Combine получает лишь минорные апдейты. Авторы статьи считают, что это не так, и у Combine есть плюсы:
👉 не пропустите обновления данных из-за того, что забыли присвоить где-то делегат
👉 легче оперировать над потоком данных (убирать дубликаты, объединять значения и т.д.)
👉 можно иметь больше одного подписчика

В чем Combine плох? В интеграции с другими решениями. Например, со Swift Concurrency. Но каждый инструмент хорош для своих задач. А в статье примеры для каких 🙂

#swift
👍3👎1
Исключения из принципа YAGNI

👉 Всё, что относится к правилу «ноль, один, бесконечность». Если в требованиях пункт «нам нужно сохранять адрес пользователя» превращается в «нам нужно сохранять два адреса», скорее всего лучше сразу обеспечить возможность сохранять много адресов
👉 Управление версиями. Не помешает заранее задуматься о том, как, допустим, система клиент – сервер будет распознавать разные версии и реагировать на них
👉 Логирование. Особенно в тех случаях, когда баги устраняются постфактум или в сложновоспроизводимых ситуациях
👉 Временные метки. Например, время создания или перехода в какое-либо состояние
👉 Реляционные базы данных. Большая часть данных реляционна по своей природе, поэтому нереляционная база – плохой выбор по умолчанию практически для любого приложения

#architecture
👍3👎2
iOS 16.1 Что нового? Apple выполняет обещания 25 октября

Основные обновления:
👉 Live Activity — интерактивные push-уведомления на экране блокировки.
👉 Можно удалить Apple кошелек 
👉 Индикатор процента заряда батареи
👉 Загрузка контента в приложении перед первым запуском приложений. Приложения смогут работать в фоновом режиме для загрузки контента еще до первого запуска
👉 Общая библиотека фотографий iCloud. Это отдельная медиатека, которой могут поделиться до пяти пользователей

#iOS
🔥3👍1👎1
iOS: Навигация по-новому

По мере развития SwiftUI основной компонент навигации NavigationView был заменен на NavigationStack.
В чем суть: теперь навигация становится возможной даже при помощи передачи пути для навигации. Те кто пользовался DeepLink или UniversalLink возрадуются. Теперь и на их улице будет праздник. 
Вся навигация сводится к передаче массива с условными названиями экранов в переменную пути. NavigarionStack пройдет все цепочку навигации автоматически, и покажет последний экран в цепочке.

#ui
👍8👎2
Protocol Oriented Programming in Swift (4 мин)

Плюсы использования протоколов:
👉 Типы могут соответствовать и получать поведение по умолчанию от более, чем одного протокола (в отличие от наследования)
👉 Протоколам могут соответствовать классы, структуры и перечисления, в то время как наследоваться могут только классы
👉 Протоколы позволяют реализовать retroactive modeling благодаря расширениям

Когда они полезны?
👉 Для написания юнит тестов. Вы можете с лёгкостью подменить реализацию
👉 Протоколы позволяют скрыть типы пользовательских сценариев от view controller'ов, либо от любых других объектов

#architecture
🔥4👎3
Подробности и обсуждение в комментариях 🙊