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

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @android_broadcast_bot
Download Telegram
Coordinator pattern with Tab Bar Controller

Как настроить навигацию в iOS приложении, где есть различные флоу и UITabBarController?

👉 Создаем AppCoordinator - это главный координатор приложения. Он должен быть строго один❗️
👉 AppCoordinator будет открывать и хранить в childCoordinators основные флоу. Например, Login и TabBar
👉 Каждый последующий флоу может иметь собственный координатор, открывать новые флоу и сохранять их в свои childCoordinators
👉 Каждый координатор в методе start() открывает новый флоу на родительском, а в методе finish() - закрывает и говорит родительскому координатору взять на себя управление после закрытия
👉 TabBarCoordinator открывает несколько флоу одновременно для каждого таба и умеет переключать эти табы

#ui
12
This media is not supported in your browser
VIEW IN TELEGRAM
clipped() не оказывает влияния на проверку касаний

Модификатор clipped() в SwiftUI обрезает вью до своих(модификатора) границ, скрывая все, что выходит за пределы этих границ. Но обратите внимание, что обрезание не влияет на проверку касаний (hit testing); обрезанный вью по-прежнему принимает тапы / клики за пределами видимой области.

#ui
👍8👎2
AppCode 2022.3 Release and End of Sales and Support

Вышел релиз AppCode 2022.3, совместимый с macOS 13 и Xcode 14.2. Также было объявлено о завершении проекта. На 14 декабря прекращена продажа и обновление подписок AppCode.

#tools
😢15😁5👍1👎1
Удаляем фон у фото используя CoreML

В статье описан опыт внедрения модели U2Net в приложение для создания коллажа. Исторически, обрезание фона происходило на устройстве силами библиотеки GPUImage, но результат оставлял желать лучшего. U2Net справляется с задачей на отлично, при этом light версия модели весит 4.6 мб, full - 175.9 мб и грузится в фоне.

#ml #swift
👍8👎1
Как устроено приложение Калькулятор на iPhone

Приложение маленькое, но сделано на сценах.
Ширину лейбла внутри контейнера с полем для ввода пересчитывают при каждом вводе новой цифры или операции. На вью добавили 3 жеста - свайп, лонг-пресс и тап.
В портретном режиме скрытых UIView нет. Значит, при повороте устройства, новые кнопки добавляются и расставляются на лету. Кнопки из портретного режима сохраняются между поворотами.
Приложение поддерживает Voice Over и Voice Control для всех интерактивных элементов.

#ios
👍13👎1
Stack Overflow: 74% of developers are open to new jobs

Зарплата - основной мотиватор сменить работу для ~54% опрошенных. Другими причинами респонденты называли возможности для роста (~38%), желание поработать с новыми технологиями (~35%) и баланс работы и отдыха (23%).
Причины, которые делают компанию более привлекательной: developer experience (42%), продукт (35%) и обучение у разработчиков за пределами команды (34%).

#оффтоп
👍8👎1
Understand Swift Autoclosures (4 мин)

Autoclosure оборачивает аргумент функции в closure. При вызове autoclosure, возвращается результат выражения, обернутого в него.
Довольно часто мы вызываем функции, которые используют autoclosure (например, метод assert в тестах), но редко пишем их сами. В некоторых случаях autoclosure может синтаксически улучшить код.

#swift
👍9😁1
The Hidden Cost of Software Automation (9 мин)

Автоматизация стоит дороже, чем кажется, и вот почему:
1. Нестандартные решений. Под данным пунктом можно понимать цену изучения инструментов для автоматизации
2. Поддержка. Может потребоваться отдельная команда DevOps
3. Потерянный контекст. Если человек, который поддерживал автоматизированное решение уволится, не поучится ли так, что автоматизацию придется делать заново?
Таким образом, автоматизация - это отдельная часть разработки, создание которой - только вершина айсберга. Она нуждается в изменениях и улучшениях. Если этим не заниматься, однажды она превратится в никому непонятный черный ящик.

#процессы
👍4👎1
Swift модуляризация вашего проекта

Заворачиваем небольшой проект в SPM за 10 шагов

#swift
👍8👎1
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