iOS Dev
前往频道在 Telegram
👨💻Автор: Виктор Грушевский (@Viktorianec) ⚒️ База: https://boosty.to/ios_dev | 🤖 @iOSIQBot | https://iosiq.ru 🍏Канал об iOS-разработке, алгоритмах и архитектурах ⭐️ Подготовка к собесам ⭐️ Код. Много кода. #ios #mobile #swift
显示更多7 966
订阅者
+1524 小时
+187 天
+5230 天
帖子存档
7 967
Редизайн приложения Photos!
Фильтр по скриншотам (очень полезная фича при разработке), новый интерфейс для сортировки по времени, ввели Collections - можно искать фото по темам.
Коллекции можно сортировать, пинить и не только.
Добавили карусель с лучими моментами и Featured Photos (всё можно кастомизировать).
😃 iOS Dev
7 967
Алгоритмы: терминология и примеры
Для того, чтобы понять сложность алгоритма, иногда достаточно просто использовать свою интуицию (не нужно слишком глубоких математических знаний).
Например, если код использует один цикл, в котором мы проходим по всем n элементов входных данных, сложность O(n).
Если у нас есть два вложенных цикла, это O(n^2), и так далее.
📖 Конечно, в канале уже был пост про сложность алгоритмов.
Но бывают и далеко не самые очевидные моменты.
🧠 Пришло время новой секции в iOS IQ (добавлено две части, на теорию и на оценку кода). Есть и интерактивный формат в тестфлайте.
❤️Получить доступ можно сразу на год.
🐱 А в честь WWDC со скидкой 24% - вот тут (ссылка работает ровно неделю).
😃 iOS IQ
7 967
Как справиться с секцией на написание кода?
Чтобы оценить кандидата, компании используют одну, либо сразу две итерации:
1️⃣ Лайв-кодинг. Нужно решить техническую задачу перед интервьюерами (от 0.5 до 1.5 часов).
2️⃣ Тестовое задание. Чаще всего на срок от одного-двух дней (иногда неделя).
📖 Вот тут можно ознакомиться с некоторыми полезными советами про прохождению этой секции. Среди них:
🔘 Прочтите условие несколько раз. Как известно в условии вопроса часто половина решения (особенно касается лайв-кодинга).
🔘 Разделите техническую задачу на следующие темы: обязательные требования и дополнительные требования.
🔘 Выпишите вопросы. Уточните их у интервьюера.
🔘 Убедитесь, можно ли юзать сторонние либы перед тем, как их добавлять.
При подготовке также важно определиться, какой именно архитектурный паттерн вам нужен.
✅Другие советы и задачи можно найти вот тут.
😃 iOS Dev
7 967
Вопрос из приложения iOS IQ
🐱 Попробуйте догадаться, какая временная сложность у алгоритма для решения задачи «Ханойские башни».
Это пример из приложения, доступного на бусти (кстати, есть хардкор-режим для настоящих профессионалов).
✅Уже сейчас можно попробовать воглавить таблицу лидеров.
😃 iOS Dev
7 967
Три важных слова – Митап, Android, Алиса
Команда мобильной разработки Алисы приглашает Android-разработчиков на свой первый митап в Екатеринбурге.
Расскажем, как использование RFC может улучшить процесс разработки на примере нашей библиотеки для платформ Android и iOS.
Поговорим о том, из каких этапов состоит производство станции Дуо Макс и ТВ станций, как мы решаем задачу автоматизации процесса проверки качества производимых устройств.
А ещё поделимся нашим опытом и лучшими практиками использования TV Input Framework.
Зарегистрироваться можно по ссылке.
Реклама. ООО "Яндекс", ИНН 7736207543.
7 967
The Composable Architecture: часто задаваемые вопросы
Создатели компонуемой архитектуры (или же TCA) собрали ответы на часто задаваемые вопросы, и развеяли несколько мифов (в том числе и о минусах):
🔗 Следует ли использовать TCA для всех типов приложений?
🔗 Идет ли TCA вразрез со SwiftUI?
🔗 Не является ли ведение отдельного перечисления «действий» лишней работой?
🔗 Являются ли функции TCA неэффективными, потому что все состояние приложения хранится в одном массивном типе?
🔗 Нужно ли быть знакомым с «функциональным программированием», чтобы использовать TCA?
📖 Другие (не менее важные) вопросы создатели архитектуры также рассмотрели в своём блоге.
✅Узнать больше про архитектуры можно в этом посте.
😃 iOS Dev
7 967
Протоколы в iOS: назначение и примеры
Даже при частом использовании протоколов начинающие разработчики могут не знать все особенности.
Например,
Identifiable постоянно нужен в SwiftUI, но почему он обычно применяется для списков? Или CustomStringConvertible, который вполне подойдёт для более удобного дебага наших моделей.
📖 В этой статье разбираются популярные протоколы на примерах кода.
🧠 Ах да, кстати, приложение уже в тестфлайте и вы можете получить ранний доступ.
Кстати, проголосовавшие в опросе будут приятно удивлены списку тем внутри.
😃 iOS Dev7 967
Настраиваемая кнопка с разными состояниями в SwiftUI
Конечно, задача мобильных разработчиков далеко не только в покраске кнопок, но знать несколько подходов и обладать арсеналом таких навыков необходимо.
SwiftUI в несколько раз упрощает создание переиспользуемой кнопки (и добавление конфигов).
📖 Вот тут можно увидеть подходы к созданию такого элемента на реальных примерах.
😃 iOS Dev
7 967
Объяснение использования
@preconcurrency в Swift
Если включить -strict-concurrency для своих существующих проектов, то, вероятнее всего, при первой компиляции проекта Xcode выдаст множество предупреждений и/или ошибок.
Этого можно избежать с использованием @preconcurrency, можно использовать для:
📼 functions
📼 types
📼 protocols
📼 imports
С помощью @preconcurrency появляется возможность импортировать старые модули в новый код.
Это отличный способ начать постепенно внедрять строгий параллелизм по мере приближения выпуска Swift 6.
📖 В этом посте рассмотрены примеры использования и ошибки, которые могут встретиться.
😃 iOS Dev7 967
Как сделать иконку приложения анимированной?
Наверняка, многие могли задуматься и раньше, как избежать алерта при выборе альтернативной иконки.
Bryce Bostwick, разработчик, знакомый по великолепным постам о реверс-инжиниринге, попробовал покопать глубже, и написал большое исследование о том, как создать иллюзию анимации (на самом деле для этого нужно достаточно часто менять эти иконки).
📖 Почитать увлекательную статью можно здесь (и рекомендую посмотреть остальные статьи блога).
📺 В формате видео вот тут.
🛠 Демо-проект (посмотреть и попробовать повторить) доступен на github. Напоминаю про этот пост, если захотите выложить в стор.
✅Больше крутых эффектов можно увидеь здесь или тут.
😃 iOS Dev
7 967
Подготовка к собеседованиям: Swift Concurrency
Подготовил вопросы, которые помогут новичкам и опытным разработчикам, знакомым с концепциями параллелизма и заинтересованным в изучении синтаксиса и API Swift Concurrency.
Можно узнать что-то новое о приоритетах, выполнении нескольких задач одновременно и многом другом. Задачи постарался по максимуму покрыть примерами с кодом. Некоторые из вопросов уже добавлены в приложение.
✅Доступ можно получить здесь или тут сразу на год.
Больше важных тем:
🔗 Блок вопросов: многопоточность (и бонус)
🔗 Собеседования: вопросы на понимание кода
🔗 DispatchQueue: практические вопросы
😃 iOS Dev
7 967
Что означает spacing = nil в SwiftUI?
Понимание принципов Spacing важно при работе со сложной версткой, а владение определенными техниками может помочь добиться эффектов, которые сложно реализовать традиционными методами.
Как можно видеть на гифке, когда используется nil, расстояние между Text и соседними элементами больше не равны.
Из документации Apple:
При установке nil расстояние должно быть дефолтным умолчанию для каждой пары subviews.
Но, как оказывается, это значение не фиксировано.
📖 В этой статье объясняется, что на самом деле означает значение nil по умолчанию для параметра Spacing.
Кроме того, рассматриваются и другие аспекты, связанные с этим свойством.
😃 iOS Dev
