iOS Broadcast – Telegram
iOS Broadcast
3.46K subscribers
1.84K photos
87 videos
1.04K links
Подборка новостей и статей для iOS разработчиков.

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @ab_manager
Download Telegram
Привет, хочу поделиться классным каналом, который и сам читаю, про iOS разработку и мобильную разработку в целом.

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

👉 Подписывайтесь на @hardworkerIT
8👍4🤔21
🔨 CS193P Лекция 1
Обычная вводная лекция, о курсе, требования для прохождения курса и знакомство со всем необходимым набором возможностей Xcode. Самая интересная часть 1 лекции это домашнее задание, до 4 лекции от студентов Stanford требуется изучить основы Swift:

Цветовая кодировка разделов
🔘Серые темы не нужно читать сейчас
🟡Желтые темы необычны и требуют внимания
🔴Красные темы важны и требуют внимательного прочтения

Материалы к прочтению:
🟢Swift Tour
🟢Swift API Guidelines
🟢Swift Basics

Мои хайлдайты из плана для чтения:
🟢Словарь и массив являются мощными и часто используемыми структурами. Освойте их как можно раньше
Разобраться в разнице между let и var
🟢Функции являются типами первого рода в Swift (first-class citizens). Это означает, что их можно использовать как и любые другие типы данных
🟢Замыкания (Closure) более мощные, чем встроенные функции - являются ссылочными типами
🟢Перечисления важны в Swift
🟢Структуры являются value-type, классы - ссылочными типами
🟢Методы экземпляра, свойство self, изменение типов значений из методов экземпляра

Получил достаточно много 🔥в реакциях, так что введу разбор одной лекции в неделю. Тем кто хочет погрузиться в iOS разработку-предлагаю за эту неделю смотреть саму лекцию и задавать вопросы по домашнему заданию прямо в комментарии к посту.
#cs193p
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍71
🎄 Адвент календарь для программистов

Продолжаем предновогоднюю традицию - Advent of Code.
Это адвент-календарь небольших головоломок по программированию объединенных общей историей. Я создал приватную таблицу лидеров 1538681-2a00287b, если вы тоже не хотите соревноваться со всем миром - присоединяйтесь.
Первая задача появилась только что! В этом году всего 12 задач на 12 дней и отличный довод чтобы опробовать AI ассистентов и узнать, достаточно ли они уже хороши (ставлю что нет)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
🔱 Создавайте с головой для того чтобы получалось быстро.
Статья о том, как рост и успех компании могут быть подорваны из-за неправильного подхода к оптимизации. Команда Tuist рассказывают о паттерне "Перемещение нагрузки" в системах мышления, который приводит к симптоматическому решению проблем. В статье рассматривается метрика "Пропускная способность мержа", которая сигнализирует о состоянии инженерной организации.В статье подчеркивается важность оптимизации рабочих процессов, а не только оборудования, для повышения эффективности, естественно на примере Tuist:

Merge Throughput: Ключевой показатель
🟡Merge throughput — это количество успешных изменений кода, которые попадают в основную ветку каждый день.
🟡Этот показатель отражает скорость доставки функций, исправления ошибок и реакции на рыночные требования.
🟡С ростом команды merge throughput может снижаться, что указывает на проблемы в процессе разработки.

Фаза 1: Одинокий волк
🟡Основатель запускает стартап и работает один, используя AI-ассистенты.
🟡Скорость разработки высока, но нет контроля качества, что приводит к критическим ошибкам.

Фаза 2: Добавление безопасности
🟡Основатель добавляет CI и нанимает первого инженера.
🟡Процесс разработки становится медленнее, но стабильнее благодаря проверкам и ревью.

Фаза 3: Умножение команды
🟡Команда растет до пяти инженеров, но merge throughput не увеличивается пропорционально.
🟡Проблемы: задержки в ревью, частые конфликты, нестабильные тесты, нехватка CI-раннеров.

Фаза 4: Стена сложности
🟡Команда растет до 30 инженеров, но merge throughput остается низким.
🟡Проблемы: длительные CI, частые конфликты, нестабильные тесты, задержки в ревью.

Фаза 5: Ловушка грубой силы
🟡Команда предлагает три решения: более мощные машины, больше людей, переписывание кода.
🟡Все эти решения имеют недостатки и не решают основную проблему.

Фаза 6: Умная оптимизация
🟡Интеграция Tuist позволяет использовать бинарный кеш и выборочное тестирование.
🟡Только измененные модули перекомпилируются, только затронутые тесты выполняются.
🟡Это значительно сокращает время CI и улучшает эффективность.

Выводы:
🟢Компании часто сначала оптимизируют аппаратное обеспечение, что дает лишь небольшие улучшения.
🟢Увеличение числа разработчиков приводит к большей координации и конфликтам.
🟢Переписывание кода может решить одни проблемы, но создать другие.
🟢Оптимизация рабочих процессов, а не аппаратного обеспечения, дает значительные результаты.
🟢Бинарный кеш и выборочное тестирование сокращают время CI и повышают производительность.

Вы сталкивались с подобными проблемами? Самые интересные проблемы приходят при росте 100+ разработчиков, но на этом уровне уже нужен не Tuist
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
2
🔱 Учим AI читать логи Xcode Build
Продолжаю делиться последними хайлайтами из блога Tuist. На этот раз про интересную точку приложения AI в той области, где знаний даже у опытных разработчиков порой не хватает: Анализ логов сборки Xcode
🟢Система сборки Xcode не оптимизирована для понимания агентами ИИ.
🟢XCSift преобразует выходные данные сборки в структурированный JSON для использования ИИ.
🟢Протоколы сборки содержат структурированные данные, но они не всегда доступны для анализа.
🟢Структурированные данные сборки могут помочь агентам ИИ в диагностике и оптимизации сборок.
🟢Протоколы сборки могут использоваться для анализа производительности и зависимостей.
🟢Структурированные сообщения могут помочь агентам ИИ задавать вопросы о сборках на естественном языке.
🟢Протоколы сборки могут быть использованы для хранения и обработки данных о сборках.
🟢Корреляция данных сборки и запросов агентов ИИ является ключевым моментом для эффективного использования структурированных данных.

Ключевые выводы
🔵Система сборки сложнее, чем кажется, и требует детального инструментария.
🔵Структурированные данные в корне меняют возможности ИИ для анализа и оптимизации сборки.
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
📁 Дублирование в программировании
Немного базы, я сам пропагандирую схожую позицию, если копирование снижает когнитивную нагрузку и не несет рисков бизнес логике - не стоит прибегать к преждевременному рефакторингу. Дублирование не всегда является антипаттерном. Плохие абстракции и тесная связь хуже дублирования.

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

Код бизнес-логики
🟢Бизнес-логика, зависящая от контекста, должна быть продублирована.
🟢Универсальная бизнес-логика должна быть в одном месте.
🟢Предпочитайте дублирование неправильной абстракции.

Общие рекомендации
🟢Хранилища баз данных, внешние клиенты API и служебные функции не должны дублироваться.
🟢Важно учитывать контекст и последствия изменений при принятии решений о дублировании.
🟢Если что-то нужно продублировать один раз - это норма, если второй раз - повод задуматься
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
🔨 CS193P Лекция 2
🟢Переменная body как вычисляемое свойство.
🟢Использование v-стека для организации элементов.
🟢Аргументы v-стека
🟢• Комбинирование видов с помощью v-стеков и h-стеков.
🟢Представление контента как комбинация других представлений.
🟢Функция main и структура приложения.
🟢Работа с модификаторами
🟢Модификаторы и VStack
🟢Введение в игру «Взломщик кода»
🟢Добавление отступов и использование VStack
🟢Декомпозиция кода
🟢Функции и аргументы
🟢Работа с массивами в Swift
🟢Статические переменные цвета
🟢Вывод типов в Swift
🟢Работа с отладчиком
🟢Использование прозрачности для скрытия элементов.
🟢Предварительный просмотр

#cs193p
Please open Telegram to view this post
VIEW IN TELEGRAM
4
🍎 Добавляем Контакты прямо из SwiftUI
В статье показано, как без UIKit и мостов, на SwiftUI + Contacts.framework — реализовать экран, где пользователь может заполнить форму и сохранить новый контакт прямо в адресную книгу. Решил что полезно, т.е. большинство подобных туториалов используют устаревшее API.
Что это даёт разработчику:
🔵Полная нативная запись контактов из SwiftUI.
🔵Контроль над UI формы: свои валидации, кастомный дизайн, логика до/после сохранения.
🔵Удобно для мессенджеров, CRM-фич, социальных приложений и любых, кто работает с контактами.

Важно:
🔵Запросить разрешение на доступ к контактам (Privacy - Contacts Usage Denoscription).
🔵Использовать CNMutableContact + CNSaveRequest для записи.
🔵Обработать пользовательский отказ — UX должен быть понятным.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1