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

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @android_broadcast_bot
Download Telegram
What is the difference between #available and @available

#available для потребителей API. Помогает проверить доступность фичей на платформе и справиться с ломающими изменениями API.

@available для создателей API. Помогает обозначить доступность класса или метода для потребителей API.

#swift
👍6👎1
Как подключить российский SSL-сертификат к iOS-приложению

Одна из санкций, которая досталась России, — запрет на выдачу и продление SSL-сертификатов. Это приводит к тому, что у некоторых компаний сертификат может протухнуть и сайты перестанут открываться.
На iOS действуем так:
👉 Выставляем NSAllowsArbitraryLoadsInWebContent в Info.plist в true
👉 Добавляем в проект сертификат с сайта Минцифры
👉 Добавляем в код дополнительную проверку сертификата

#ios
👎11👍7
Какие проблемы решает Release Train в мобильной разработке

Release Train — это процесс координации релизов между командами. Все релизы происходят по фиксированному графику, независимо от того, готовы фичи или нет. Поезд не ждёт вас. Если вы опоздали, то ждите следующего.
С внедрением Release Train появляется предсказуемость релизов и раскатки фич, метрики показывают положительную динамику.

#процессы
🔥10👍3👎1😁1
Apple снова работает над собственным поисковиком

Согласно недавней новости The Information, Apple работает над онлайн-поисковиком, который будет конкурировать с Google на фоне более широких улучшений поиска Spotlight.
Считается, что поисковая группа Apple состоит не менее чем из 200 сотрудников и поддерживает Spotlight, Siri Suggestions и ответы, предоставляемые Siri. По словам одного человека, связанного с командой, команде еще как минимум четыре года до запуска полной замены поиска Google.

#apple
👍7👎2🔥1
Статические и динамические фреймворки на iOS — обсуждение с ChatGPT

ChatGPT уже достаточно обучен, чтобы знать, что частый ответ - «это зависит». Вот его мнение, а подробнее в статье.
Статические и динамические фреймворки — это два типа предварительно скомпилированных библиотек. Статические фреймворки увеличивают размер приложения, но обеспечивают более быстрое время запуска, в то время как динамические фреймворки не увеличивают размер приложения, но могут иметь более медленное время запуска. В конечном итоге решение об использовании статического или динамического фреймворка будет зависеть от конкретных потребностей вашего приложения и ваших целей разработки.

#ios
👎3🤩2
В честь нового года устраиваем розыгрыш призов. Призы - рюкзак XD Design Bobby Soft. Подойдет тем кто не любим большой рюкзак и предпочитает мягкие. От вас подписка и вступить в участие в конкурсе. Подведу итоги 15 января.
👍11🔥2
Зарплата в IT за год выросла на 16.5%

По данным аналитиков SuperJob есть четкая зависимость уровня зарплат программистов от «сложности», «престижности» вуза, который они закончили: самые высокие средние заработки в IT в 2022 году — у выпускников МФТИ, МГУ им. Ломоносова ИТМО, МИФИ и МГТУ им.Н.Э.Баумана.
Зарплатные предложения IT-компаний Москвы для junior-специалистов, Net (на руки, после уплаты налогов), fix (без учета дополнительных льгот и компенсаций), руб. в месяц составляют у программистом PHP 90 000—120 000 руб., у программистов Python − 90 000—120 000 руб., у программист Ruby − 100 000—120 000 руб., программистам C++ − 100 000—120 000 руб., а у программистов Java 100 000—130 000 руб.

#оффтоп
🤔10😁4👍2👎2🤩2
🎄Новый год уже на пороге, а значит самое время подвести итоги года уходящего. В этом году iOS Broadcast только появился, но уже неплохо подрос. Каждый день мы старались собирать для вас все самое полезное и интересное из мира iOS разработки: новости и лайфхаки, приемы SwiftUI, инсайты о процессах и многое другое.
Спасибо за ваше ответное внимание, реакции и комментарии!❤️
До 9 января мы будем на каникулах, а в новом году продолжим вещать для вас ☃️
13👍3👎2
unit-тестирование здорового человека ч.1

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

Плюсы юнит-тестов:
👉 Выгода на долгой дистанции
👉 Рефакторинг проще
👉 Скорость поддержки
👉 Переиспользование кода
👉 Документация кода
👉 Дополнительные гарантии. Особенно, когда возвращаешься через пол года к коду и сомневаешься была ли выполнена проверка должным образом

#testing
🔥6👎5👍1🤔1
SwiftUI в 2022. Что нового?

👉 Swift Charts - фреймворк, благодаря которому можно создавать линейные графики, гистограммы или точечные диаграммы
👉 Навигация. Компонент NavigationView стал deprecated в iOS 16 и заменен на NavigationStack и NavigationSplitView. Основные изменения в API навигации позволяют добавлять и убирать view из стека, гибко управлять роутингом между view, программно делать data-driven структуру экранов и переходов в приложении
👉 Многострочные TextField, MultiDatePicker, Gauge, ShareLink
👉 AnyLayout для создания динамического лэйаута, который реагирует на действия пользователей или изменения среды (размеров и ориентаций экрана)

#swiftUI
🔥9👍1👎1
Подробный гайд Dynamic Island и Live Activities

В данной статье разобрали как добавить Live Activity в любое приложение, правильно следить за его циклом обновления, а также какие проблемы это может принести, если это делать неправильно.

#ios
🔥5👎1
Это ужасно бесит — подборка косяков, постоянно встречающихся от сайта к сайту, от приложения к приложению

👉 Приложения, в которых нельзя отключить рекламные пуши
👉 Безосновательное разлогинивание
👉 Сброс выбранного города или неверное его отображение
👉 Выбор дат без возможности ввода с клавиатуры
👉 Буквенная клавиатура для телефонных номеров и неуместная автокоррекция ввода
👉 Куки 🤦‍♂️ (Наш сайт использует куки, разрешите нам использовать куки, куки-куки-куки...)

#userExperience
🔥8👍2👎1
Создаем VIPER шаблон с помощью Generamba

Если вам не нравится тратить много времени на создание шаблонов для VIPER, можно воспользоваться Generamba.
В статье гайд о том, как все настроить.

#tools
👎14👍3
Splash screen vs Launch screen in iOS

Чаще всего под понятием Splash screen понимают экран, который появляется во время первичной загрузки и часто содержит в себе логотип приложения.
Launch screen, согласно Apple, предназначен для сокращения времени запуска.
Рекомендации по имплементации Launch screen:
👉 Он должен быть практически идентичным первому экрану приложения
👉 Убедитесь, что экран корректно работает в dark mode
👉 Избегайте использования текста, так как он не может быть локализован
👉 Избегайте задержки пользователей
👉 Не размещайте логотип и другие элементы брендинга

#ios
👍9👎1
Как настроить Gitlab CI/CD в связке с Fastlane для iOS-проектов на Mac mini

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

После выполнения действий из гайда должны получиться:
👉 три общих раннера и один специфический
👉 YML файл с четырьмя стадиями: build, test, deploy и distribute
👉 fastlane файл, выполняющий deploy и distribute в Testflight
👉 интеграция с Discord

 #ci
👍8👎1
CI/CD для iOS-проектов: на железе или в облаке? Что лучше, по версии Doubletapp

Если вам хватит 1500 минут на проекты и вы не используете сторонние зависимости, то Xcode Cloud — ваш выбор. Также он довольно хорошо подойдет для масштабирования.
Если у вас всего один проект, который требует больше времени и в перспективе его не нужно будет масштабировать, то CI/CD можно разворачивать напрямую на своем железе.
Если это не так и у вас есть железо, которого хватит на все ваши проекты, то присмотритесь к развертыванию виртуальных машин на нем. Если же его не хватает и вам достаточно времени и зависимостей, предоставляемых Gitlab, то SaaS-раннеры станут отличным решением. Но если нет, то стоит арендовать мощности у сервисов и на них настраивать машину под свои нужды.

#ci
👍3👎1