Live coding интервью для iOS разработчиков (11 мин)
Разбор наиболее популярных задач, которые вы можете встретить на live coding этапе. Время, затраченное на решение таких задач, не должно превышать 30 минут, а их количество, обычно, ограничивается 1–2 задачами за одно интервью. В статье задачи на следующие темы:
👉 Thread-safe class
👉 DispatchGroup
👉 High-order functions
👉 Type erasure
👉 Any and Some
#interview
Разбор наиболее популярных задач, которые вы можете встретить на live coding этапе. Время, затраченное на решение таких задач, не должно превышать 30 минут, а их количество, обычно, ограничивается 1–2 задачами за одно интервью. В статье задачи на следующие темы:
👉 Thread-safe class
👉 DispatchGroup
👉 High-order functions
👉 Type erasure
👉 Any and Some
#interview
👍15👎1
Building a Neural Network from Scratch in SwiftUI
Пример, того как просто интегрировать CoreML в iOS приложение 🤖
Добавляем SwiftUI view (скрин 1), где будем размещать изображение и предсказание на его основе.
Затем добавляем CoreML модель через File > New > File > “Core ML Model” (скрин 2).
#coreML
Пример, того как просто интегрировать CoreML в iOS приложение 🤖
Добавляем SwiftUI view (скрин 1), где будем размещать изображение и предсказание на его основе.
Затем добавляем CoreML модель через File > New > File > “Core ML Model” (скрин 2).
#coreML
🤩3👍1👎1
NSPredicate: старый API с новыми сюрпризами
Выводы из статьи:
👉 В Swift результат
👉
👉 При извлечении из хранилища CoreData SQLite предикат выше не будет совпадать с объектами, у которых свойство, соответствующее
👉 Это можно обойти так:
👉 Урок: Проверяйте все и всегда
#swift
Выводы из статьи:
👉 В Swift результат
nil != nonNilValue
является истинным.👉
NSPredicate(format: "%K != %@", stringKey, nonNilValue)
, будет соответствовать объектам, у которых свойство, соответствующее stringKey
, равно nil
👉 При извлечении из хранилища CoreData SQLite предикат выше не будет совпадать с объектами, у которых свойство, соответствующее
stringKey
, равно nil
. Это происходит потому, что Core Data напрямую мапирует команду с SQL, а SQL определяет, что не существует значения, равного или неравного null
👉 Это можно обойти так:
NSPredicate(format: "%K != %@ OR %K == NIL", stringKey, nonNilValue, stringKey)
👉 Урок: Проверяйте все и всегда
#swift
👍7👎1
Подборка видео на выходные 🤩
📺 How to Manage SwiftUI Updates with Swift If Available (35 мин)
📺 Tech Interview Fest | Моковое собеседование IOS Junior |Solvery + Coffee&Code |Екатерина Батеева, VK (92 мин)
📺 Подписка в iOS: сборки, CI, bundle ID, сертификаты | Mad Brains Техно (44 мин)
📺 What’s New in iOS 16.4? The Features That Matter (5 мин)
#подборкавидео
📺 How to Manage SwiftUI Updates with Swift If Available (35 мин)
📺 Tech Interview Fest | Моковое собеседование IOS Junior |Solvery + Coffee&Code |Екатерина Батеева, VK (92 мин)
📺 Подписка в iOS: сборки, CI, bundle ID, сертификаты | Mad Brains Техно (44 мин)
📺 What’s New in iOS 16.4? The Features That Matter (5 мин)
#подборкавидео
👍2🤩2👎1
Adding a stretchable header to a SwiftUI ScrollView
Статья о том, как реализовать растягивающийся header в приложении.
Реализация в GitHub
#компоненты
Статья о том, как реализовать растягивающийся header в приложении.
Реализация в GitHub
#компоненты
👍9👎1
Топ вопросов на Junior собеседованиях
Вот примеры вопросов из статьи на позицию Junior iOS Dev:
👉 Что такое Value Type и Reference Type?
👉 Для любой ли структуры работает copy-on-write (COW)?
👉 Почему в каких-то моментах лучше использовать Value Type, а в каких-то Reference Type?
👉 Можно ли наследовать со структур?
Что такое утечка памяти и почему она образуется?
👉 Что такое Automatic Reference Counting (ARC)?
При каких условиях счетчик уменьшается?
👉 Если на объект есть только 1 слабая ссылка, создастся он или нет?
👉 Расскажите про жизненный цикл View controllers?
👉 В каком методе происходит подсчет Constraints?
#interview
Вот примеры вопросов из статьи на позицию Junior iOS Dev:
👉 Что такое Value Type и Reference Type?
👉 Для любой ли структуры работает copy-on-write (COW)?
👉 Почему в каких-то моментах лучше использовать Value Type, а в каких-то Reference Type?
👉 Можно ли наследовать со структур?
Что такое утечка памяти и почему она образуется?
👉 Что такое Automatic Reference Counting (ARC)?
При каких условиях счетчик уменьшается?
👉 Если на объект есть только 1 слабая ссылка, создастся он или нет?
👉 Расскажите про жизненный цикл View controllers?
👉 В каком методе происходит подсчет Constraints?
#interview
👍8👎1
Forwarded from Kotlin Multiplatform Broadcast (Кирилл Розов)
📺 Compose iOS. Как это работает #0 (1 час)
Мы в Тинькофф запустили новое шоу - "Как это работает". В пилотном выпуски позвали Лешу Гладкова, автора Mobile Developer, чтобы он показал нам свой опыт с Compose iOS. Увидите код и работы приложения на iOS симуляторе, а также боли запуска )
Мы в Тинькофф запустили новое шоу - "Как это работает". В пилотном выпуски позвали Лешу Гладкова, автора Mobile Developer, чтобы он показал нам свой опыт с Compose iOS. Увидите код и работы приложения на iOS симуляторе, а также боли запуска )
👍6👎1
An Unexpected Behavior of Subclasses in Swift
Название статьи подсказывает, но посмотрите на код со скрина и подумайте, что будет выведено
Father: Odin
Son: Thor
Son: Odin
Может ли такое произойти в реальном проекте? Да, например со ViewController'ами.
Когда мы переопределяем метод с дефолтным значением, безопаснее не менять эти дефолтные значения. Причина заключается в том, что дефолтные значения привязаны к статическому типу и не вычисляются динамически.
#swift
Название статьи подсказывает, но посмотрите на код со скрина и подумайте, что будет выведено
Son: Thor
Son: Odin
Когда мы переопределяем метод с дефолтным значением, безопаснее не менять эти дефолтные значения. Причина заключается в том, что дефолтные значения привязаны к статическому типу и не вычисляются динамически.
#swift
😱14👍5👎1
Make it for me: Factory pattern and Swift
Используйте фабричный метод, если вы:
👉 заранее не знаете точных типов и зависимостей объектов, с которыми должен работать ваш код
👉 хотите предоставить пользователям вашей библиотеки способ расширения ее внутренних компонентов
👉 хотите сэкономить системные ресурсы за счет повторного использования существующих объектов, а не каждый раз пересобирать их
#patterns
Используйте фабричный метод, если вы:
👉 заранее не знаете точных типов и зависимостей объектов, с которыми должен работать ваш код
👉 хотите предоставить пользователям вашей библиотеки способ расширения ее внутренних компонентов
👉 хотите сэкономить системные ресурсы за счет повторного использования существующих объектов, а не каждый раз пересобирать их
#patterns
👍5👎1
Вышло ядро Linux 6.2 с поддержкой Apple M1
Благодаря добавлению поддержки чипов Apple M1 Pro, M1 Max и M1 Ultra, владельцы новых Mac могут рассчитывать на запуск Linux на своих машинах с процессором M1. Конечно, на данный момент все экспериментально, но это ненадолго.
Кроме поддержки M1, ядро Linux 6.2 включает множество функций, созданных такими компаниями, как Intel, AMD, Google и Red Hat
#os
Благодаря добавлению поддержки чипов Apple M1 Pro, M1 Max и M1 Ultra, владельцы новых Mac могут рассчитывать на запуск Linux на своих машинах с процессором M1. Конечно, на данный момент все экспериментально, но это ненадолго.
Кроме поддержки M1, ядро Linux 6.2 включает множество функций, созданных такими компаниями, как Intel, AMD, Google и Red Hat
#os
❤4🤩4👍1👎1
72% всех iPhone работают на iOS 16
Если взять вообще все смартфоны Apple, то 72% всех iPhone работают под управлением iOS 16, а 20% — на iOS 15. Около 8% iPhone работают под управлением более ранних версий.
Принятие iOS 16 опережает iOS 15 на основе данных, опубликованных компанией в январе 2022 года. Тогда около 72% моделей iPhone, выпущенных за последние четыре года, работали под управлением iOS 15, и 63% вообще всех iPhone работали на пятнадцатой версии.
#ios
Если взять вообще все смартфоны Apple, то 72% всех iPhone работают под управлением iOS 16, а 20% — на iOS 15. Около 8% iPhone работают под управлением более ранних версий.
Принятие iOS 16 опережает iOS 15 на основе данных, опубликованных компанией в январе 2022 года. Тогда около 72% моделей iPhone, выпущенных за последние четыре года, работали под управлением iOS 15, и 63% вообще всех iPhone работали на пятнадцатой версии.
#ios
👍8👎1
Introducing EditKit Pro
EditKit Pro встраивается в Xcode и добавляет:
👉 генерацию комментариев MARK
👉 Beautify JSON, например, для моков
👉 генерацию Codable структур из JSON
👉 разбиение массива или длинной строки на несколько строк
👉 сортировку по алфавиту для импортов и других строк кода
Это лишь некоторые фичи EditKit Pro
Ссылка на скачивание
#tools
EditKit Pro встраивается в Xcode и добавляет:
👉 генерацию комментариев MARK
👉 Beautify JSON, например, для моков
👉 генерацию Codable структур из JSON
👉 разбиение массива или длинной строки на несколько строк
👉 сортировку по алфавиту для импортов и других строк кода
Это лишь некоторые фичи EditKit Pro
Ссылка на скачивание
#tools
👍10👎1
7 открытых iOS-проектов, которые помогут изучить SwiftUI
👉 Clean Architecture for SwiftUI + Combine
👉 The OldOS Project - воссоздает полнофункциональную версию iOS 4 в SwiftUI
👉 SwiftUICraft - Minecraft, но сделанный с помощью SwiftUI
👉 Velik - приложение для отслеживания поездок, созданное на SwiftUI с использованием Combine и CoreData
👉 Open Sesame - менеджер паролей с множеством функций
👉 Swiftui 2048
👉 Expense Tracker - приложение для отслеживания расходов, созданное с помощью Core Data и SwiftUI
#swiftUI
👉 Clean Architecture for SwiftUI + Combine
👉 The OldOS Project - воссоздает полнофункциональную версию iOS 4 в SwiftUI
👉 SwiftUICraft - Minecraft, но сделанный с помощью SwiftUI
👉 Velik - приложение для отслеживания поездок, созданное на SwiftUI с использованием Combine и CoreData
👉 Open Sesame - менеджер паролей с множеством функций
👉 Swiftui 2048
👉 Expense Tracker - приложение для отслеживания расходов, созданное с помощью Core Data и SwiftUI
#swiftUI
👍8👎1