Практический пример создания View-компонента на SwiftUI
В этой статье пошаговое руководство как создать собственный Custom View для городов, используя Sruct, Computed Property и несколько функций, чтобы рассчитать количество лайков и поездок. Вы можете адаптировать код по себя, и попробовать видоизменить его.
#digest
В этой статье пошаговое руководство как создать собственный Custom View для городов, используя Sruct, Computed Property и несколько функций, чтобы рассчитать количество лайков и поездок. Вы можете адаптировать код по себя, и попробовать видоизменить его.
#digest
❤10👍6💩3🔥1
Cocoapods, Carthage, SPM: как выбрать менеджер зависимостей в iOS
Senior iOS-разработчик red_mad_robot Аня Кочешкова рассказала, чем отличаются три менеджера зависимостей, в каких случаях и для каких задач подойдёт тот или иной. Аня подробно объяснила, что такое семантическое версионирование, как устроены модули кода и в чём разница между динамическими и статическими библиотеками. Материал будет полезен джунам, которые только начали погружаться в разработку.
Head of Android red_mad_robot Central Asia Влад Бауэр поделился опытом, как решил нехватку iOS-разработчиков на одном из внутренних проектов. Он придумал решение: пошарил часть кода и перенёс его в Kotlin Multiplatform Mobile. Спойлер: у Влада получилось, и теперь он рассказывает о нюансах, с которыми ему пришлось столкнуться.
Источник канал
#digest #люди
Senior iOS-разработчик red_mad_robot Аня Кочешкова рассказала, чем отличаются три менеджера зависимостей, в каких случаях и для каких задач подойдёт тот или иной. Аня подробно объяснила, что такое семантическое версионирование, как устроены модули кода и в чём разница между динамическими и статическими библиотеками. Материал будет полезен джунам, которые только начали погружаться в разработку.
Head of Android red_mad_robot Central Asia Влад Бауэр поделился опытом, как решил нехватку iOS-разработчиков на одном из внутренних проектов. Он придумал решение: пошарил часть кода и перенёс его в Kotlin Multiplatform Mobile. Спойлер: у Влада получилось, и теперь он рассказывает о нюансах, с которыми ему пришлось столкнуться.
Источник канал
#digest #люди
👍7🔥3❤2👎2
Внимание! Доклад по Async/await
В это воскресенье я проведу доклад на тему Async/await
В докладе будет:
• Реализация Async/await на реальных проектах.
• Разберем все особенности данной фичи.
• Какие подводные камни мы можем ожидать, используя Async/await.
И в конце позадаем вопросы...😊
Встречаемся в 18-00 по Москве в воскресенье 16 апреля по ссылке
#digest #доклад
В это воскресенье я проведу доклад на тему Async/await
В докладе будет:
• Реализация Async/await на реальных проектах.
• Разберем все особенности данной фичи.
• Какие подводные камни мы можем ожидать, используя Async/await.
И в конце позадаем вопросы...😊
Встречаемся в 18-00 по Москве в воскресенье 16 апреля по ссылке
#digest #доклад
👍29🔥7❤6👎2
SwiftFormat: форматирование кода Swift
SwiftFormat — библиотека и инструмент командной строки для реформатирования кода Swift. SwiftFormat выходит за рамки того, что можно ожидать от форматера кода. В дополнение к корректировке пробелов он может вставлять или удалять неявные self, удалять лишние скобки и исправлять многие другие отклонения от стандартных идиом Swift.
Многие программисты предпочитают свой стиль форматирования кода, а другие, кажется, совершенно не замечают существующих в проекте соглашений о форматировании (к негодованию своих коллег). При совместной работе над проектом может быть полезно договориться об общем стиле кодирования, но применение этого стиля вручную утомительно, чревато ошибками и может привести к спорам, если некоторые участники воспринимают его более серьезно, чем другие. Наличие инструмента для автоматического внедрения общего стиля устраняет эти проблемы и позволяет сосредоточиться на поведении кода, а не на его представлении.
#digest
SwiftFormat — библиотека и инструмент командной строки для реформатирования кода Swift. SwiftFormat выходит за рамки того, что можно ожидать от форматера кода. В дополнение к корректировке пробелов он может вставлять или удалять неявные self, удалять лишние скобки и исправлять многие другие отклонения от стандартных идиом Swift.
Многие программисты предпочитают свой стиль форматирования кода, а другие, кажется, совершенно не замечают существующих в проекте соглашений о форматировании (к негодованию своих коллег). При совместной работе над проектом может быть полезно договориться об общем стиле кодирования, но применение этого стиля вручную утомительно, чревато ошибками и может привести к спорам, если некоторые участники воспринимают его более серьезно, чем другие. Наличие инструмента для автоматического внедрения общего стиля устраняет эти проблемы и позволяет сосредоточиться на поведении кода, а не на его представлении.
#digest
👍12🔥5👎2👏2
Покупки в приложении в iOS
В этом руководстве, которое состоит из нескольких статей, автор статьи продемонстрирует, как добавлять покупки в приложение без лишних проблем, начиная с настройки покупок в App Store Connect и заканчивая обработкой покупок в приложении с примерами исходного кода.
IAP позволяет разработчикам взимать плату с пользователей за определенную функциональность или контент во время использования приложения.
Внедрение IAP требует, чтобы приложение использовало StoreKit API на устройстве. StoreKit управляет всеми коммуникациями с серверами Apple iTunes для получения информации о продукте и выполнения транзакций. Профиль подготовки должен быть настроен для IAP, а информация о продукте должна быть введена в App Store Connect.
#digest
В этом руководстве, которое состоит из нескольких статей, автор статьи продемонстрирует, как добавлять покупки в приложение без лишних проблем, начиная с настройки покупок в App Store Connect и заканчивая обработкой покупок в приложении с примерами исходного кода.
IAP позволяет разработчикам взимать плату с пользователей за определенную функциональность или контент во время использования приложения.
Внедрение IAP требует, чтобы приложение использовало StoreKit API на устройстве. StoreKit управляет всеми коммуникациями с серверами Apple iTunes для получения информации о продукте и выполнения транзакций. Профиль подготовки должен быть настроен для IAP, а информация о продукте должна быть введена в App Store Connect.
#digest
👍14❤4👎2🔥1
Цикломатическая сложность в Swift
Цикломатическая сложность — это важный аспект качества кода, который может повлиять на читаемость, сопровождаемость и тестируемость программы. Понимая и измеряя цикломатическую сложность в коде, разработчики могут повысить качество и эффективность своей работы.
Чем выше цикломатическая сложность, тем сложнее поток управления в приложении. Когда мы разрабатываем программное обеспечение, мы всегда стремимся к наименьшей сложности, чтобы обеспечить хорошую сопровождаемость кода.
Высокая цикломатическая сложность может сделать код более трудным для чтения, понимания и сопровождения. Это может привести к тому, что код будет сложнее тестировать, отлаживать и модифицировать. Высокая сложность может увеличить вероятность ошибок в коде, исправление которых может быть дорогостоящим.
Снижая цикломатическую сложность программы, разработчики могут облегчить понимание, сопровождение и тестирование кода, что в конечном итоге приведет к уменьшению количества ошибок и повышению эффективности разработки.
В Swift для измерения цикломатической сложности разработчики могут использовать такие инструменты, как встроенный статический анализатор Xcode или инструменты сторонних разработчиков, например SwiftLint.
Чтобы уменьшить цикломатическую сложность в Swift, разработчики могут использовать несколько приемов. Один из распространенных методов — упрощение потока управления путем использования защитных операторов вместо вложенных операторов if. Это может сделать код более читабельным и сократить количество ветвлений в коде.
Другая техника заключается в рефакторизации сложных методов или функций на более мелкие, более управляемые части. Это позволяет разбить сложный код на более мелкие и понятные фрагменты, которые легче тестировать и поддерживать.
#digest
Цикломатическая сложность — это важный аспект качества кода, который может повлиять на читаемость, сопровождаемость и тестируемость программы. Понимая и измеряя цикломатическую сложность в коде, разработчики могут повысить качество и эффективность своей работы.
Чем выше цикломатическая сложность, тем сложнее поток управления в приложении. Когда мы разрабатываем программное обеспечение, мы всегда стремимся к наименьшей сложности, чтобы обеспечить хорошую сопровождаемость кода.
Высокая цикломатическая сложность может сделать код более трудным для чтения, понимания и сопровождения. Это может привести к тому, что код будет сложнее тестировать, отлаживать и модифицировать. Высокая сложность может увеличить вероятность ошибок в коде, исправление которых может быть дорогостоящим.
Снижая цикломатическую сложность программы, разработчики могут облегчить понимание, сопровождение и тестирование кода, что в конечном итоге приведет к уменьшению количества ошибок и повышению эффективности разработки.
В Swift для измерения цикломатической сложности разработчики могут использовать такие инструменты, как встроенный статический анализатор Xcode или инструменты сторонних разработчиков, например SwiftLint.
Чтобы уменьшить цикломатическую сложность в Swift, разработчики могут использовать несколько приемов. Один из распространенных методов — упрощение потока управления путем использования защитных операторов вместо вложенных операторов if. Это может сделать код более читабельным и сократить количество ветвлений в коде.
Другая техника заключается в рефакторизации сложных методов или функций на более мелкие, более управляемые части. Это позволяет разбить сложный код на более мелкие и понятные фрагменты, которые легче тестировать и поддерживать.
#digest
👍11🤯3👎2🔥2❤1
Swift iOS подготовка к собеседованиям
Большой цикл статей для подготовки к собесам по iOS(общие вопросы, Swift, SwiftUi, архитектура, design pattern, многопоточность, http/https, структуры данных, база данных и тд).
• Part 1 – Language features
• Part 2 – Auto layout & UIKit
• Part 3 – Threading & concurrency
• Part 4 – Memory management
• Part 5 – Architecture and design pattern
• Part 6 – Top 100+ iOS Interview Questions And Answers in 2023
• IOS Developer – Bonus Interview Questions
#digest #собеседования
Большой цикл статей для подготовки к собесам по iOS(общие вопросы, Swift, SwiftUi, архитектура, design pattern, многопоточность, http/https, структуры данных, база данных и тд).
• Part 1 – Language features
• Part 2 – Auto layout & UIKit
• Part 3 – Threading & concurrency
• Part 4 – Memory management
• Part 5 – Architecture and design pattern
• Part 6 – Top 100+ iOS Interview Questions And Answers in 2023
• IOS Developer – Bonus Interview Questions
#digest #собеседования
👍28🔥7❤3🤮2
📷 Пишем камеру на AVFoundation
В это воскресенье Эмиль Имамов, iOS разработчик продукта "3D Платформа" поведает нас в мир библиотеки AVFoundation и расскажет, как с ним работать на реальных проектах.
Так же у Эмиля написана статья на habr. Ознакомиться перед докладом можно по ссылке.
По традиции, в конце пообщаемся за разработку, зададим вопросы подписчиков и многое многое другое. Посмотреть можно по ссылке.
Встречаемся завтра, в 18-00 по Москве.
#digest #доклад
В это воскресенье Эмиль Имамов, iOS разработчик продукта "3D Платформа" поведает нас в мир библиотеки AVFoundation и расскажет, как с ним работать на реальных проектах.
Так же у Эмиля написана статья на habr. Ознакомиться перед докладом можно по ссылке.
По традиции, в конце пообщаемся за разработку, зададим вопросы подписчиков и многое многое другое. Посмотреть можно по ссылке.
Встречаемся завтра, в 18-00 по Москве.
#digest #доклад
👍17🔥4🤮2❤1
Как хранить данные в iOS: UserDefaults, Keychain и сэндвичи
Хранение данных — одна из самых ведущих тем в разработке. Очень важно уметь выбирать подходящий инструмент для разных ситуаций и знать, как хранить данные безопасно и максимально эффективно, не замедляя приложение. Старший iOS-разработчик red_mad_robot Аня Кочешкова рассказывает о механизмах хранения, способах работы с ними, а также плюсах и минусах каждого подхода.
Зачем вообще хранить данные? Например, если нужно кешировать какую-то информацию для ускорения работы, работать в офлайн-режиме или сохранить пользовательские настройки. Выбор механизма зависит от поставленной задачи, объёма данных, которые нужно хранить, и множества других факторов. Данные можно хранить в UserDefaults, Keychain, Property Lists или же базах данных и NSCache.
UserDefaults — для хранения пользовательских настроек и флагов.
Keychain — для безопасного хранения данных.
Property Lists — для хранения конфигурации приложения или его библиотек.
Базы данных — для хранения большого объёма различных данных.
NSCache — для хранения временных данных.
Подробнее как работать с каждым инструментом, сколько хранятся данные и в чём плюсы и минусы каждого подход тут.
#digest
Хранение данных — одна из самых ведущих тем в разработке. Очень важно уметь выбирать подходящий инструмент для разных ситуаций и знать, как хранить данные безопасно и максимально эффективно, не замедляя приложение. Старший iOS-разработчик red_mad_robot Аня Кочешкова рассказывает о механизмах хранения, способах работы с ними, а также плюсах и минусах каждого подхода.
Зачем вообще хранить данные? Например, если нужно кешировать какую-то информацию для ускорения работы, работать в офлайн-режиме или сохранить пользовательские настройки. Выбор механизма зависит от поставленной задачи, объёма данных, которые нужно хранить, и множества других факторов. Данные можно хранить в UserDefaults, Keychain, Property Lists или же базах данных и NSCache.
UserDefaults — для хранения пользовательских настроек и флагов.
Keychain — для безопасного хранения данных.
Property Lists — для хранения конфигурации приложения или его библиотек.
Базы данных — для хранения большого объёма различных данных.
NSCache — для хранения временных данных.
Подробнее как работать с каждым инструментом, сколько хранятся данные и в чём плюсы и минусы каждого подход тут.
#digest
👍15❤5🔥4💩2
Combine от А до Я
Combine - это мощная платформа в Swift, которая помогает вам управлять асинхронными потоками данных, предоставляя декларативный способ обработки сложных асинхронных операций. Это неотъемлемая часть современной разработки iOS и может использоваться в различных сценариях, таких как сетевые запросы, пользовательский ввод и многое другое.
Понимая фундаментальные концепции издателей, операторов и подписок, вы можете воспользоваться преимуществами Combine для создания адаптивных и эффективных приложений для iOS.
Вот руководство от А до Я по началу работы с Combine в Swift с примерами кода для тех, у кого нет опыта.
#digest #combine
Combine - это мощная платформа в Swift, которая помогает вам управлять асинхронными потоками данных, предоставляя декларативный способ обработки сложных асинхронных операций. Это неотъемлемая часть современной разработки iOS и может использоваться в различных сценариях, таких как сетевые запросы, пользовательский ввод и многое другое.
Понимая фундаментальные концепции издателей, операторов и подписок, вы можете воспользоваться преимуществами Combine для создания адаптивных и эффективных приложений для iOS.
Вот руководство от А до Я по началу работы с Combine в Swift с примерами кода для тех, у кого нет опыта.
#digest #combine
👍14❤4🔥3💩2
И снова всем привет! Возвращаемся к Вам с очередным контентом.
В это воскресенье у нас новое интервью на канале. Гость - Анатолий Кнутарев.
Менеджер проектов сайта и мобильного приложения
Мы с ним хотим пообщаться и поспрашивать его за:
• Можно ли стать хорошим пм-ом если ты не работал как разработчик?
• Поговорим про контроль и коммуникацию между отделами
• Поговорим про рынок труда
Если у вас есть вопросы к гостю - пишите мне в лс @new_repository 🙂
Встречаемся в 18-00 по Москве в воскресенье 30 апреля по ссылке.
#digest #интервью
В это воскресенье у нас новое интервью на канале. Гость - Анатолий Кнутарев.
Менеджер проектов сайта и мобильного приложения
Мы с ним хотим пообщаться и поспрашивать его за:
• Можно ли стать хорошим пм-ом если ты не работал как разработчик?
• Поговорим про контроль и коммуникацию между отделами
• Поговорим про рынок труда
Если у вас есть вопросы к гостю - пишите мне в лс @new_repository 🙂
Встречаемся в 18-00 по Москве в воскресенье 30 апреля по ссылке.
#digest #интервью
❤8👍2🔥2🥴2
Как торговаться на собеседовании, чтобы получить максимум и не потерять оффер
Как бы это неприятно ни звучало, собеседование — это всегда история про «продажу себя». И тут важно понимать то, что цену, конечно, устанавливает работодатель, но часто ее можно увеличить в свою пользу
У каждого есть своя цель, свой набор приемов и свои аргументы — и вы ими обмениваетесь, пока один из вас не «победит».
Сами торги заключаются в том, что вы или наниматель называете цену. А затем пытаетесь склонить ее в свою сторону, отталкиваясь от собственных задач и интересов. Побеждает тот, у кого доводов больше и кто не стесняется их применять. Для соискателя «победа» — это получить оффер с хорошей зарплатой, желательно больше ожидаемой. И у нанимателя тоже есть своя победа — договориться о минимальной зарплате, даже если есть бюджет на большую.
У нанимателей в этом часто есть фора: они собеседуют сотни кандидатов и уже хорошо натренировались. Но при этом и пространства у них часто больше, даже за пределами озвученной сверху вилки. И, если вы и правда их заинтересуете, они, скорее всего, уступят.
О том, как подготовиться к таким торгам, как торговаться и как тренироваться торговаться читайте в данной статье.
#digest #собеседования
Как бы это неприятно ни звучало, собеседование — это всегда история про «продажу себя». И тут важно понимать то, что цену, конечно, устанавливает работодатель, но часто ее можно увеличить в свою пользу
У каждого есть своя цель, свой набор приемов и свои аргументы — и вы ими обмениваетесь, пока один из вас не «победит».
Сами торги заключаются в том, что вы или наниматель называете цену. А затем пытаетесь склонить ее в свою сторону, отталкиваясь от собственных задач и интересов. Побеждает тот, у кого доводов больше и кто не стесняется их применять. Для соискателя «победа» — это получить оффер с хорошей зарплатой, желательно больше ожидаемой. И у нанимателя тоже есть своя победа — договориться о минимальной зарплате, даже если есть бюджет на большую.
У нанимателей в этом часто есть фора: они собеседуют сотни кандидатов и уже хорошо натренировались. Но при этом и пространства у них часто больше, даже за пределами озвученной сверху вилки. И, если вы и правда их заинтересуете, они, скорее всего, уступят.
О том, как подготовиться к таким торгам, как торговаться и как тренироваться торговаться читайте в данной статье.
#digest #собеседования
❤8👍3🔥2💩1
This media is not supported in your browser
VIEW IN TELEGRAM
📚FSCalendar библиотека для реализации календаря
Если у вас есть задание, или вы хотите реализовать крутой, красивый календарь. То советую присмотреться к данной библиотеке.
Это полностью настраиваемая библиотека календарей под iOS, совместимая с Objective-C и Swift. 🗓
На мой взгляд одна из лучших библиотек для добавления кастомного календаря в проект
Ссылка на git
📚CalendarKit - похожая библиотека календаря, но для показа задач на день или неделю. Их можно использовать в тандеме.
Это полностью настраиваемая библиотека календарей под iOS, совместимая со Swift.
Git: https://github.com/richardtop/CalendarKit
Приложение-референс: https://github.com/richardtop/CalendarApp
Видеоурок по созданию такого приложения: https://www.youtube.com/watch?v=cJ63-_z1qg8
#digest #полезное #библиотека
Если у вас есть задание, или вы хотите реализовать крутой, красивый календарь. То советую присмотреться к данной библиотеке.
Это полностью настраиваемая библиотека календарей под iOS, совместимая с Objective-C и Swift. 🗓
На мой взгляд одна из лучших библиотек для добавления кастомного календаря в проект
Ссылка на git
📚CalendarKit - похожая библиотека календаря, но для показа задач на день или неделю. Их можно использовать в тандеме.
Это полностью настраиваемая библиотека календарей под iOS, совместимая со Swift.
Git: https://github.com/richardtop/CalendarKit
Приложение-референс: https://github.com/richardtop/CalendarApp
Видеоурок по созданию такого приложения: https://www.youtube.com/watch?v=cJ63-_z1qg8
#digest #полезное #библиотека
👍13❤2🔥1🤮1
Как реализовать FaceID или TouchID в iOS
Биометрическая аутентификация - это форма нового безопасного шага, который сокращает процесс использования сложных алгоритмов и операций.
Swift обрабатывает биометрическую аутентификацию в LocalAuthentication фреймворке и использует LAContext в качестве класса. Apple ограничивает три попытки для FaceID и две для TouchID, пока это не приведет пользователя к вводу кода экрана блокировки или возврату к экрану входа в систему. Вы можете настроить локализацию кнопки отмены и кнопку “Использовать пароль” в качестве запасного варианта.
Перед их внедрением нам нужно добавить наше разрешение на использование FaceID в нашем Info.plist файле. TouchID не требует такого разрешения.
Статья с примерами кода на SwiftUI, UIKit.
#digest #FaceID #TouchID
Биометрическая аутентификация - это форма нового безопасного шага, который сокращает процесс использования сложных алгоритмов и операций.
Swift обрабатывает биометрическую аутентификацию в LocalAuthentication фреймворке и использует LAContext в качестве класса. Apple ограничивает три попытки для FaceID и две для TouchID, пока это не приведет пользователя к вводу кода экрана блокировки или возврату к экрану входа в систему. Вы можете настроить локализацию кнопки отмены и кнопку “Использовать пароль” в качестве запасного варианта.
Перед их внедрением нам нужно добавить наше разрешение на использование FaceID в нашем Info.plist файле. TouchID не требует такого разрешения.
Статья с примерами кода на SwiftUI, UIKit.
#digest #FaceID #TouchID
👍6❤3👎2🔥1
Почему увольняют самых опытных? Потому что они слишком умные. Тейлоризм 21-го века
Опытный и талантливый сотрудник — носитель знаний и опыта. На него полагаются коллеги, он выполняет в десять раз больше работы, чем джун. Казалось бы, руководство должно молиться на такого разработчика. Но нет, к нему не испытывают особой благодарности и зачастую рады от него избавиться. Почему так происходит?
Наверное, опытный и авторитетный специалист в подчинении не нравится менеджерам. Ведь они сами таким авторитетом не обладают. «Рок-звезда» среди разработчиков не нравится и руководству, которое теряет нити управления компанией, наблюдая человека намного умнее и талантливее себя. Они боятся и терпят его только до тех пор, пока на нём всё держится.
Эгоцентричному менеджеру не хочется иметь в подчинении специалиста, который на голову выше его по интеллекту и способностям. «Рок-звезда» унижает окружающих самим фактом своего существования, а менеджеров ставит на место, метко комментируя результаты их глупых инициатив, тимбилдингов и планёрок. Он ведь сам не боится увольнения, потому что его с руками оторвёт любая компания конкурентов.
В итоге складывается ситуация, что с одной стороны находится умнейший специалист, который не боится увольнения. А с другой — группа посредственных управленцев, которым эта «звезда» как кость в горле. Финал немного предсказуем.
Если смотреть в суть, то проблема не в конкретном человеке. Проблема с любым опытным сотрудником, который проработал в компании достаточно долгое время. С каждым годом у компании всё больше причин его уволить, взяв на замену молодого.
Читать продолжение в интерессной статье.
#процессы
Опытный и талантливый сотрудник — носитель знаний и опыта. На него полагаются коллеги, он выполняет в десять раз больше работы, чем джун. Казалось бы, руководство должно молиться на такого разработчика. Но нет, к нему не испытывают особой благодарности и зачастую рады от него избавиться. Почему так происходит?
Наверное, опытный и авторитетный специалист в подчинении не нравится менеджерам. Ведь они сами таким авторитетом не обладают. «Рок-звезда» среди разработчиков не нравится и руководству, которое теряет нити управления компанией, наблюдая человека намного умнее и талантливее себя. Они боятся и терпят его только до тех пор, пока на нём всё держится.
Эгоцентричному менеджеру не хочется иметь в подчинении специалиста, который на голову выше его по интеллекту и способностям. «Рок-звезда» унижает окружающих самим фактом своего существования, а менеджеров ставит на место, метко комментируя результаты их глупых инициатив, тимбилдингов и планёрок. Он ведь сам не боится увольнения, потому что его с руками оторвёт любая компания конкурентов.
В итоге складывается ситуация, что с одной стороны находится умнейший специалист, который не боится увольнения. А с другой — группа посредственных управленцев, которым эта «звезда» как кость в горле. Финал немного предсказуем.
Если смотреть в суть, то проблема не в конкретном человеке. Проблема с любым опытным сотрудником, который проработал в компании достаточно долгое время. С каждым годом у компании всё больше причин его уволить, взяв на замену молодого.
Читать продолжение в интерессной статье.
#процессы
👍9👎5❤4🤯2🔥1
Всем привет! Если кто-то задаётся вопросами, что с трансляциями, и будут ли прямые эфиры? Да, будут. Сейчас идут праздники, и после них мы с вами вернёмся со следующими темами
- Круглый стол на обсуждение чат GPT и нейроных сетей.
-HTTP/HTTPS протоколы. Доклад
- Идеальный кандидат на собеседовании. Доклад
Всем спасибо! Всем хороших выходных ❤️☺️
- Круглый стол на обсуждение чат GPT и нейроных сетей.
-HTTP/HTTPS протоколы. Доклад
- Идеальный кандидат на собеседовании. Доклад
Всем спасибо! Всем хороших выходных ❤️☺️
❤17🔥7🤡3👍2
Ветеранов осталось очень мало, а те, что живы, уже в преклонном возрасте. Если у вас есть родные или знакомые - скажите им, пожалуйста, спасибо от всех нас, когда будете поздравлять.
С Великим праздником!
С Великим праздником!
❤48👏6🤡6👍4💩4🤮2🤔1🏆1
Акторы в Swift (Actors in swift)
Что такое актор как сущность? Это не класс и не структура. Вот некоторые характеристики актора:
- Он является ссылочным типом.
- Он может иметь свойства, методы, инициализаторы и деинициализаторы.
- Он не поддерживает наследование.
- Его общедоступные свойства и методы не могут быть получены прямым доступом извне; мы должны использовать await и только в асинхронном контексте.
- Он может выполнять только один метод одновременно, независимо от того, как мы обращаемся к актору.
Пример, как работают акторы в Swift можно прочитать подробно в данной статье. Автор делится примерами реализаций, и как с ними работать в реальных проектах.
#digest #actor
Что такое актор как сущность? Это не класс и не структура. Вот некоторые характеристики актора:
- Он является ссылочным типом.
- Он может иметь свойства, методы, инициализаторы и деинициализаторы.
- Он не поддерживает наследование.
- Его общедоступные свойства и методы не могут быть получены прямым доступом извне; мы должны использовать await и только в асинхронном контексте.
- Он может выполнять только один метод одновременно, независимо от того, как мы обращаемся к актору.
Пример, как работают акторы в Swift можно прочитать подробно в данной статье. Автор делится примерами реализаций, и как с ними работать в реальных проектах.
#digest #actor
❤12👍3🔥3💩2
This media is not supported in your browser
VIEW IN TELEGRAM
Hero - это библиотека для создания переходов между контроллерами просмотра iOS.
Она предоставляет декларативный слой поверх громоздких API-интерфейсов UIKit для перехода, что делает пользовательские переходы легкой задачей для разработчиков.
На уровне контроллера просмотра Hero предоставляет несколько переходов по шаблону, которые вы можете настроить с помощью heroModalAnimationType, heroNavigationAnimationType и heroTabBarAnimationType. Они могут быть использованы в качестве основы ваших пользовательских переходов. Объедините с heroID & heroModifiers, чтобы создавать свои собственные уникальные переходы.
Продолжительность автоматически определяется изменением расстояния и размера, что избавляет вас от лишних хлопот и обеспечивает последовательную и восхитительную анимацию.
#digest #библиотека
Она предоставляет декларативный слой поверх громоздких API-интерфейсов UIKit для перехода, что делает пользовательские переходы легкой задачей для разработчиков.
На уровне контроллера просмотра Hero предоставляет несколько переходов по шаблону, которые вы можете настроить с помощью heroModalAnimationType, heroNavigationAnimationType и heroTabBarAnimationType. Они могут быть использованы в качестве основы ваших пользовательских переходов. Объедините с heroID & heroModifiers, чтобы создавать свои собственные уникальные переходы.
Продолжительность автоматически определяется изменением расстояния и размера, что избавляет вас от лишних хлопот и обеспечивает последовательную и восхитительную анимацию.
#digest #библиотека
👍15❤4🔥2💩1