Внимание! Доклад по 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
Всем привет! Возвращаемся к Вам после выходных с новой прямой трансляцией!
В это воскресенье у нас круглый стол на тему "Chat GPT и Нейронные сети". Поговорим про полезность нейронок, ответим на вопросы и попытаемся порассуждать что будет дальше. А главным гостем будет - Senior JS Разработчик Илья Юркин
По традиции за круглым столом вместе с нашим гостем будет следующий состав.
Сергей Ирбеткин, iOS Lead РНКБ Банка.
Максим Анохин, Senior iOS Санлайт.
Даниил Димов, iOS Dev at Улыбка Радуги.
Если ты хочешь чтобы ответили на твой вопрос - пиши мне в лс @new_repository 🙂
Встречаемся в 18-00 по Москве в воскресенье 14 мая по ссылке.
#diges #круглыйстол
В это воскресенье у нас круглый стол на тему "Chat GPT и Нейронные сети". Поговорим про полезность нейронок, ответим на вопросы и попытаемся порассуждать что будет дальше. А главным гостем будет - Senior JS Разработчик Илья Юркин
По традиции за круглым столом вместе с нашим гостем будет следующий состав.
Сергей Ирбеткин, iOS Lead РНКБ Банка.
Максим Анохин, Senior iOS Санлайт.
Даниил Димов, iOS Dev at Улыбка Радуги.
Если ты хочешь чтобы ответили на твой вопрос - пиши мне в лс @new_repository 🙂
Встречаемся в 18-00 по Москве в воскресенье 14 мая по ссылке.
#diges #круглыйстол
👍13❤6🔥4🤡2
Реализуем Универсальные ссылки на iOS
Универсальные ссылки (Universal Links) позволяют вам ссылаться на содержимое внутри вашего приложения, когда пользователь открывает определенный URL. По умолчанию веб-страницы открываются в браузере приложения, но вы можете настроить определенные пути, чтобы они открывались в вашем приложении, если оно установлено у пользователя
Разница между глубокими ссылками и универсальными ссылками
Прежде чем мы погрузимся в Универсальные ссылки, необходимо понять разницу с глубокими ссылками. Разницу лучше всего объяснить, взглянув на формат URL:
Глубокая ссылка: recipeapp://open-recipe?name=recipename
Универсальная ссылка: www.recipes.com/recipename
Глубокая ссылка использует пользовательскую схему с путем, определяющим действие для выполнения. Универсальные ссылки — это веб-адреса, которые открывают веб-страницу, если приложение не установлено. Другими словами: глубокие ссылки работают только в том случае, если приложение существует, а универсальные ссылки, если приложения нет, возвращаются к веб-сайту.
Для пользователей лучше использовать универсальные ссылки, чтобы гарантировать, что они найдут то, что ищут. Если вы не можете предоставить веб-вариант контента, на который вы ссылаетесь, вы можете рассмотреть возможность создания App Clip и повторного использования кода вашего основного приложения.
Вы можете использовать универсальные ссылки для создания интегрированного пользовательского опыта, открывая веб-адреса непосредственно в вашем мобильном приложении. В отличие от глубоких ссылок, пользователи будут перенаправлены на веб-страницу, если приложение не установлено. Entitlement внутри вашего приложения в сочетании с файлом, связанным с доменом, обеспечивает связь между вашим сайтом и приложением. Более подробно прочитать можно в данной статье. Автор рассказывает цель применения, код написания. Берите, пользуйтесь ;)
#digest #Универсальныессылки
Универсальные ссылки (Universal Links) позволяют вам ссылаться на содержимое внутри вашего приложения, когда пользователь открывает определенный URL. По умолчанию веб-страницы открываются в браузере приложения, но вы можете настроить определенные пути, чтобы они открывались в вашем приложении, если оно установлено у пользователя
Разница между глубокими ссылками и универсальными ссылками
Прежде чем мы погрузимся в Универсальные ссылки, необходимо понять разницу с глубокими ссылками. Разницу лучше всего объяснить, взглянув на формат URL:
Глубокая ссылка: recipeapp://open-recipe?name=recipename
Универсальная ссылка: www.recipes.com/recipename
Глубокая ссылка использует пользовательскую схему с путем, определяющим действие для выполнения. Универсальные ссылки — это веб-адреса, которые открывают веб-страницу, если приложение не установлено. Другими словами: глубокие ссылки работают только в том случае, если приложение существует, а универсальные ссылки, если приложения нет, возвращаются к веб-сайту.
Для пользователей лучше использовать универсальные ссылки, чтобы гарантировать, что они найдут то, что ищут. Если вы не можете предоставить веб-вариант контента, на который вы ссылаетесь, вы можете рассмотреть возможность создания App Clip и повторного использования кода вашего основного приложения.
Вы можете использовать универсальные ссылки для создания интегрированного пользовательского опыта, открывая веб-адреса непосредственно в вашем мобильном приложении. В отличие от глубоких ссылок, пользователи будут перенаправлены на веб-страницу, если приложение не установлено. Entitlement внутри вашего приложения в сочетании с файлом, связанным с доменом, обеспечивает связь между вашим сайтом и приложением. Более подробно прочитать можно в данной статье. Автор рассказывает цель применения, код написания. Берите, пользуйтесь ;)
#digest #Универсальныессылки
👍12❤2🔥2🤮2