TGViewer
Channel Public Channel
iOS Mobile | YeaHub

iOS Mobile | YeaHub

@yeahub_ios_mobile

Теория, подготовка к интервью и курсы для iOS разработчиков

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Subscribers
249
Photos
404
Videos
36
Links
585

Showing posts older than #467 · Back to latest

Older Posts 16 shown
Post #466 97
#Собес #git
🤔 Как посмотреть, что именно вы изменили в определенном файле git?

💬 Кратко:
Используйте команду git diff для просмотра изменений. Для конкретного файла:
git diff ‹имя_файла>


📌 Полный разбор + примеры использования — на платформе:
👉
Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
  • ❤ 1
Post #465 114
🖥 Middle iOS разработчик в компанию ВК

Техническое собеседование. Весна 2025. 200к+. Опыт в резюме: 3.5 года. Обсуждение фокусировалось на архитектуре, производительности и глубоком понимании iOS-стэка

Вопросы:
- Можно ли создать кастомный аналог Optional? Как работает вложенность опционалов (например, Int???)?
- Зачем нужен модификатор @escaping для замыканий?
- Почему в проекте предпочитают ручную верстку на UlKit вместо SwiftUI?
- Как организовать выполнение группы запросов с использованием DispatchGroup?

Все вопросы можно посмотреть на нашей платформе

#собес #коллекции
  • 👍 1
Post #464 105
#полезное
😱 Как мигрировать UIKit-интерфейс на scene-based в iOS

Для iOS 18.4 и выше уже сейчас вы можете видеть сообщение в консоли для старых неадаптированных проектов:
This process does not adopt UIScene lifecycle.
This will become an assert in a future version.



А кто ставил бетку Xcode и пробовал собрать для 26 оси, наверняка видели и сообщения пострашнее:
UIScene lifecycle will soon be required.
Failure to adopt will result in an assert in the future.


В следующем за 26 осью мажорном релизе приложение, основанное не на сценах вообще не запустится.

Сейчас я работаю над большим проектом, в котором до сих пор не только многое на Objective-C, но и одна из задач в текущих релизах - заадоптить саппорт для CarPlay, так что здесь без корректного перехода на сцены ничего бы не получилось.

На самом деле всё довольно просто, для этого вам нужно всего лишь:

1⃣ Добавляем саппорт сцен в plist:
<key>UIApplicationSceneManifest</key>
<dict>
<key>UIApplicationSupportsMultipleScenes</key>
<false/>
<key>UISceneConfigurations</key>
<dict>
<key>UIWindowSceneSessionRoleApplication</key>
<array>
<dict>
<key>UISceneConfigurationName</key>
<string>Default Configuration</string>
<key>UISceneDelegateClassName</key>
<string>$(PRODUCT_MODULE_NAME).SceneDelegate</string>
<key>UISceneStoryboardFile</key>
<string>Main</string>
</dict>
</array>
</dict>
</dict>


// Скорее всего, в небольших проектах достаточно будет одной сцены, но если у вас mac catalyst, например - то поддержка мультисцен буквально мастхэв для многих кейсов.




2⃣ Кроме этого, нужно задать конфиг для каждой из использующихся в проекте сцен:
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(
_ application: UIApplication,
configurationForConnecting connectingSceneSession: UISceneSession,
options: UIScene.ConnectionOptions
) -> UISceneConfiguration {


// Each UISceneConfiguration have a unique configuration name.
// The configuration name is a app-specific name
// you use to identify the scene, and it corresponds to entries
// in the `Info.plist` scene manifest.
var configurationName: String!

switch options.userActivities.first?.activityType {
case UserActivity.GalleryOpenInspectorActivityType:
// Create a photo inspector window scene.
configurationName = "Inspector Configuration"
default:
// Create a default gallery window scene.
configurationName = "Default Configuration"
}

return UISceneConfiguration(
name: configurationName,
sessionRole: connectingSceneSession.role
)
}
}


3⃣ И запилить метод willConnectTo:
import UIKit
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?

func scene(
_ scene: UIScene,
willConnectTo session: UISceneSession,
options connectionOptions: UIScene.ConnectionOptions
) {
// Confirm the scene is a window scene in iOS or iPadOS.
guard let windowScene = scene as? UIWindowScene else { return }

window = UIWindow(windowScene: windowScene)
window?.rootViewController = YourRootViewController()
window?.makeKeyAndVisible()
}
}


Сама логика останется буквально той же, за небольшой поправкой, что ваш код из applicationDidBecomeActive(_:) надо перенести в sceneDidBecomeActive(_:), и так далее.

👉Новости 👉База вопросов Dev
Telegram YeaHub Главные новости и обновления платформы YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников. Платформа: https://yeahub.ru Для связи: @ruslan_kuyanets
  • ❤‍🔥 1
Post #463 84
#Собес #git
🤔 Почему мы делаем git pull, а затем git push?

💬 Кратко:
Мы делаем git pull , чтобы сначала синхронизировать наш локальный репозиторий с последними изменениями из удаленного. Затем выполняем git push , чтобы отправить свои изменения. Это помогает избежать конфликтов и сохранить согласованность данных между участниками команды.

📌 Полный разбор + примеры использования — на платформе:
👉
Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Post #462 90
#статьи
😎 Как настроить CI/CD-пайплайн для iOS-проектов

В этой статье вы узнаете, как настроить сквозной (end-to-end) CI/CD-пайплайн для ваших iOS-проектов с помощью TeamCity Cloud. Она охватывает всё: от интеграции с системами контроля версий (VCS) и автоматизации сборки с помощью fastlane до подписи и упаковки ваших приложений для последующей публикации в TestFlight.

👉Новости 👉База вопросов
Post #460 95
#полезное
😊 Познакомьтесь с новым дизайном иконок приложений
Совсем скоро пользователи станут массово обновляться до iOS 26 и лучшим способом дешево добиться вау-эффекта от вашего приложения - адаптировать иконку приложения под новые требования:

🟠Обновленные значки основаны на многослойных иконках visionOS и свойствах стекла.
🟠Новый материал позволяет создавать ощущение глубины и подсвечивания изнутри.
🟠Обновленные режимы внешнего вида включают монохромное стекло и тонированное стекло.
🟠Обновленная система проектирования упрощает дизайн для iOS, macOS, watchOS и App Store.
🟠Многослойность является ключевым компонентом нового языка дизайна.
🟠Прозрачность и размытость улучшают внешний вид материала.
🟠Важно учитывать наложение слоев, прозрачность и размытость для максимальной эффективности использования материалов и режимов оформления.

👉Новости 👉База вопросов
Post #459 91
#Собес #git
🤔 Как вы разрешаете конфликты в Git?

💬 Кратко:
Конфликты возникают, когда изменения из удаленного и локального репозиториев пересекаются. Чтобы разрешить конфликт, нужно вручную отредактировать проблемные файлы, выбрать правильную версию, а затем зафиксировать изменения.

📌 Полный разбор + примеры использования — на платформе:
👉
Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Post #458 173
#новости
❤️‍🔥 Apple и власти РФ ведут переговоры о предустановке RuStore
Apple вступила в переговоры с властями РФ и бизнесом: в ближайшее время может вновь появиться возможность скачивать заблокированные в App Store российские приложения.

Возвращение заблокированных приложений
🔵Российские власти и бизнес ведут переговоры о допуске RuStore в App Store.
🔵Apple пообещала Минцифры не препятствовать размещению RuStore.
🔵Вопрос обсуждался с главой РФПИ Кириллом Дмитриевым.

Возможные сценарии и сроки
🟠Apple может сделать RuStore доступным только в РФ.
🟠RuStore может появиться в iPhone осенью.
🟠С 1 сентября 2025 года все смартфоны и планшеты в России должны иметь предустановленные российские магазины приложений.

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

👉Новости 👉База вопросов
  • ❤ 1
Post #457 89
#полезное
👋 Интеграция контента приложения в системный поиск
Одна из задач опытного разработчика - продвигать хорошие продуктовые идеи. Особенно это актуально в контексте платформенных особенностей. Редкий продакт при продумывании гипотезы для веба и мобильных приложений вспомнит о специфичной фиче на iOS. Но вот предложить добавить поддержку точно стоит. Одной из таких фичей является системный поиск Spotlight. И как раз на эту тему сегодня вышла статья:
🔵Отображение данных приложения в поиске Spotlight
🔵Как добавить данные в индекс системного поиска Spotlight
🔵Настройка ранжирования результатов
🔵Как реализовать диплинк
🔵Как использовать Spotlight внутри приложения
🔵Персонализация результатов
Не перестаю удивляться тому факту, что большая часть приложений вообще не использует такой удобный и бесплатный механизм продвижения.
Нативные фичи, про которые все забывают при проработке продуктовых гипотез.

👉Новости 👉База вопросов
  • ❤ 1
Post #456 131
#полезное
😱 Приложение от создателей SwiftUI позволяет писать код на айфоне и шарить его в тестфлайт

Bitrig создает нативные приложения Swift через общение с AI.

За считанные минуты и без знания кода (это заявление сильное, конечно) можно создать простое приложение и развернуть его в TestFlight.

Протестить можно здесь, доступно 5 запросов по умолчанию без подписки.

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

Результат запроса на написание погодного приложения на экране (а код, который получился, пошарил сюда).

На мой взгляд, хайп на него спадёт (вернее, более крупные AI-решения попробуют сделать превью у себя), но сама идея пилить приложения на девайсах интересная.

👉Новости 👉База вопросов
  • ❤ 1
Post #455 137
#Собес #git
🤔 Что такое ветка в репозитории Git?

💬 Кратко:
Ветка - это независимая линия разработки в Git. Она позволяет работать над новой функциональностью или исправлениями, не затрагивая основную версию проекта. После завершения работы изменения из ветки можно объединить с основной веткой.

📌 Полный разбор + примеры использования — на платформе:
👉
Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
  • ❤ 1
Post #450 131
#полезное
🛞 Улучшения поиска в iOS 26

В iOS и iPadOS 26 обновлен интерфейс поиска с новыми способами размещения и визуальным стилем. Это является одним из ключевых изменений и именно его адаптация покажет настоящее обновление приложения под iOS 26. В статье рассматриваются ключевые изменения в SDK:
🟠Обновлены API SwiftUI для поддержки изменений в поиске.
🟠Рассмотрены два распространенных шаблона поиска: на панели инструментов и на панели вкладок.
🟠Обновления касаются размещения и визуального стиля поля поиска.
🟠Введены новые типы содержимого панели инструментов для детального просмотра и поиска на панели инструментов.
🟠Обновлен дизайн панели вкладок Liquid Glass для поиска на вкладке Поиск
В целом, внедрение нового дизайна для поиска не требует особых усилий но дает значительный буст UX. пользователей.

👉Новости 👉База вопросов
  • ❤ 1
Post #449 128
#полезное
🛞 Как работать с SwiftData в фоновом режиме в Swift 6

Это может пригодиться, например, при работе с новыми LLM API (может быть множество случаев, когда мы хотим сохранить данные в существующие модели SwiftData).

В этом материале можно посмотреть на пример адаптации существующего проекта (спойлер, всё не так сложно, как может показаться).

👉Новости 👉База вопросов
  • ❤ 1
Post #448 114
#новости
🏠 Apple наращивает производство iPhone в Индии на пяти заводах

Впервые все четыре модели iPhone 17 будут изготовлены в Индии

👉Новости 👉База вопросов
  • ❤ 1
Post #447 132
#Собес #git
🤔 Какие различные стратегии ветвления вы знаете?

💬 Кратко:
Централизованный рабочий процесс (Centralized Workflow). Веткой разработки по умолчанию является main, и все изменения фиксируются в этой ветке. Этот рабочий процесс не требует других веток, кроме главной.

Рабочий процесс разветвления функций (Feature Branching Workflow). Основная идея рабочего процесса разветвления функций заключается в том, что разработка всех функций должна вестись в специальной ветке, а не в основной.

Рабочий процесс Gitflow. Gitflow определяет строгую модель ветвления, разработанную вокруг релиза проекта. Это обеспечивает надежную основу для управления большими проектами. Она назначает очень специфические роли различным веткам и определяет, как и когда они должны взаимодействовать. В дополнение к функциональным веткам используются отдельные ветки для подготовки, поддержки и записи релизов.

Рабочий процесс Forking. Forking Workflow принципиально отличается от других популярных рабочих процессов Git. Вместо того чтобы использовать единый серверный репозиторий в качестве "центральной" кодовой базы, он предоставляет каждому разработчику свой серверный репозиторий. Это означает, что каждый участник имеет не один, а два Git-репозитория: частный локальный и публичный серверный. Чаще всего Forking Workflow встречается в публичных проектах с открытым исходным кодом.

📌 Полный разбор + примеры использования — на платформе:
👉
Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
  • ❤ 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →