🤔 Задача A: Yandex Cup 2023 — iOS
Представлен код на Swift. Выберите правильные идеи относительно того, что хотел сказать автор:
1. оператор должен быть postfix
2. @escaping в объявлении избыточен
3. @autoclosure в объявлении избыточен
4. throws в объявлении избыточен
5. тип переменной v в данном случае является типом неопционального(Wrapped) значения
6. данный код не скомпилируется
7. Wrapped в данном примере является generic типом
8. для такого объявления нужно объявить собственный тип ошибки вместо типа Error
9. без явного задания precedence group оператор будет объявлен с DefaultPrecedence
Разбор ответов:
1. Оператор должен быть postfix: Оператор !! объявлен как infix, что подразумевает использование его между двумя операндами (например, a !! b). Если бы он должен был быть postfix, то он бы использовался после операнда (например, a!!). В данном контексте, если оператор предназначен для использования с одним операндом Optional, то он должен был бы быть postfix, но по коду видно, что он принимает два аргумента, так что это утверждение неверное.
2. @escaping в объявлении избыточен: Атрибут @escaping используется, когда замыкание может быть вызвано после того, как функция, которой оно было передано, завершит выполнение. В данном коде нет никаких признаков, что замыкание будет использоваться вне функции, так что атрибут избыточен.
3. @autoclosure в объявлении избыточен: Атрибут @autoclosure создает замыкание из выражения автоматически, что удобно, когда функция должна быть вызвана с выражением в качестве аргумента, которое должно быть вычислено только при необходимости. В данном контексте, если функция всегда будет вызывать e() в случае ошибки, использование @autoclosure уместно для упрощения вызова функции.
4. throws в объявлении избыточен: Поскольку функция действительно выбрасывает ошибку (через оператор throw), в сигнатуре функции обязательно должно быть указание throws, указывающее, что функция может вызвать исключение.
5. Тип переменной v является типом неопционального (Wrapped) значения: Это неверно, так как в контексте Optional, Wrapped относится к типу данных, который Optional может содержать, и может быть как опциональным, так и неопциональным в зависимости от контекста.
6. Данный код не скомпилируется: Не можем быть уверены без дополнительного контекста и тестирования в компиляторе.
7. Wrapped в данном примере является generic типом: Это верно, Wrapped является обобщенным типом, который Optional «оборачивает», и может представлять любой тип.
8. Для такого объявления нужно объявить собственный тип ошибки вместо типа Error: Это неверно, так как Error - это общий протокол для типов ошибок в Swift, который может быть реализован любым пользовательским типом ошибки.
9. Без явного задания precedence group оператор будет объявлен с DefaultPrecedence: Это утверждение верно. Если группа приоритета для оператора не задана, то по умолчанию используется DefaultPrecedence, что влияет на порядок, в котором операторы будут применяться при разборе выражений.
infix operator !!
extension Optional {
public static func !!(
v: Self,
e: @escaping @autoclosure () > Error
) throws -> Wrapped {
guard let unwrapped = v else { throw e() )
} return unwrapped
}
}
Представлен код на Swift. Выберите правильные идеи относительно того, что хотел сказать автор:
1. оператор должен быть postfix
2. @escaping в объявлении избыточен
3. @autoclosure в объявлении избыточен
4. throws в объявлении избыточен
5. тип переменной v в данном случае является типом неопционального(Wrapped) значения
6. данный код не скомпилируется
7. Wrapped в данном примере является generic типом
8. для такого объявления нужно объявить собственный тип ошибки вместо типа Error
9. без явного задания precedence group оператор будет объявлен с DefaultPrecedence
1. Оператор должен быть postfix: Оператор !! объявлен как infix, что подразумевает использование его между двумя операндами (например, a !! b). Если бы он должен был быть postfix, то он бы использовался после операнда (например, a!!). В данном контексте, если оператор предназначен для использования с одним операндом Optional, то он должен был бы быть postfix, но по коду видно, что он принимает два аргумента, так что это утверждение неверное.
2.
3.
4. throws в объявлении избыточен: Поскольку функция действительно выбрасывает ошибку (через оператор throw), в сигнатуре функции обязательно должно быть указание throws, указывающее, что функция может вызвать исключение.
5. Тип переменной v является типом неопционального (Wrapped) значения: Это неверно, так как в контексте Optional, Wrapped относится к типу данных, который Optional может содержать, и может быть как опциональным, так и неопциональным в зависимости от контекста.
6. Данный код не скомпилируется: Не можем быть уверены без дополнительного контекста и тестирования в компиляторе.
7. Wrapped в данном примере является generic типом: Это верно, Wrapped является обобщенным типом, который Optional «оборачивает», и может представлять любой тип.
8. Для такого объявления нужно объявить собственный тип ошибки вместо типа Error: Это неверно, так как Error - это общий протокол для типов ошибок в Swift, который может быть реализован любым пользовательским типом ошибки.
9. Без явного задания precedence group оператор будет объявлен с DefaultPrecedence: Это утверждение верно. Если группа приоритета для оператора не задана, то по умолчанию используется DefaultPrecedence, что влияет на порядок, в котором операторы будут применяться при разборе выражений.
👍6❤3
📣 Apple анонсировала Swift Student Challenge 2024
Swift Student Challenge — это мероприятие, запущенное Apple для поддержки студентов-разработчиков в течение длительного времени, которые учатся и создают приложения на языке программирования Swift.
Приём заявок от студентов со всего мира начнётся в феврале следующего года.
Из 350 победителей Swift Student Challenge 2024 будут отобраны 50 выдающихся участников, которые получат возможность посетить штаб-квартиру Apple в Купертино, штат Калифорния, чтобы пообщаться с другими победителями и командой Apple.
Все победители Swift Student Challenge 2024 получат памятные призы от Apple, годовое членство в программе Apple Developer Program и бесплатный ваучер на сдачу сертификационного экзамена по разработке приложений с помощью Swift.
📖Ознакомиться
Swift Student Challenge — это мероприятие, запущенное Apple для поддержки студентов-разработчиков в течение длительного времени, которые учатся и создают приложения на языке программирования Swift.
Приём заявок от студентов со всего мира начнётся в феврале следующего года.
Из 350 победителей Swift Student Challenge 2024 будут отобраны 50 выдающихся участников, которые получат возможность посетить штаб-квартиру Apple в Купертино, штат Калифорния, чтобы пообщаться с другими победителями и командой Apple.
Все победители Swift Student Challenge 2024 получат памятные призы от Apple, годовое членство в программе Apple Developer Program и бесплатный ваучер на сдачу сертификационного экзамена по разработке приложений с помощью Swift.
📖Ознакомиться
👍2🔥2
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🤔Почему новость о выходе релиза Kotlin 1.9.20 относится не только к мобильным разработчикам? Дело в том, что команда Kotlin представила стабильный выпуск Kotlin Multiplatform (KMP), который готов к использованию в продакшене. Да и Kotlin сам по себе среди прочего компилируется в Wasm, что значительно расширяет его возможности.
🤩Технология KMP призвана упростить разработку кроссплатформенных проектов. Это сокращает время, затрачиваемое на написание и поддержку одного и того же кода для разных платформ, сохраняя при этом гибкость и преимущества нативной разработки.
🔥Узнайте подробнее об эволюции KMP, о том, как она может оптимизировать процесс разработки и какие образовательные ресурсы доступны для вас, чтобы максимально эффективно использовать эту технологию.
#новости
🤩Технология KMP призвана упростить разработку кроссплатформенных проектов. Это сокращает время, затрачиваемое на написание и поддержку одного и того же кода для разных платформ, сохраняя при этом гибкость и преимущества нативной разработки.
🔥Узнайте подробнее об эволюции KMP, о том, как она может оптимизировать процесс разработки и какие образовательные ресурсы доступны для вас, чтобы максимально эффективно использовать эту технологию.
#новости
🎉7❤1👍1
🚦 Google вводит новые правила проверки приложений в Play
Google ввела новые правила для проверки приложений в Google Play, целящиеся на повышение качества приложений на платформе. Теперь все разработчики должны соответствовать расширенным требованиям перед публикацией приложений. Разработчики могут выбирать сроки проверки в Play Console, и если срок не выбран до 29 февраля 2024 года, Google назначит его автоматически. Новые личные аккаунты разработчиков должны тестировать приложения на группе пользователей перед выпуском. Время на проверку приложений увеличено, чтобы обеспечить их безопасность и соответствие политикам Google.
Подробнее можно ознакомиться здесь.
Google ввела новые правила для проверки приложений в Google Play, целящиеся на повышение качества приложений на платформе. Теперь все разработчики должны соответствовать расширенным требованиям перед публикацией приложений. Разработчики могут выбирать сроки проверки в Play Console, и если срок не выбран до 29 февраля 2024 года, Google назначит его автоматически. Новые личные аккаунты разработчиков должны тестировать приложения на группе пользователей перед выпуском. Время на проверку приложений увеличено, чтобы обеспечить их безопасность и соответствие политикам Google.
Подробнее можно ознакомиться здесь.
👍2🔥2
#дайджест полезностей для Android-разработчика
🔹 FlowOn — важность безопасности потоков в Android-приложениях, особенно при балансировке фоновой обработки и отзывчивости пользовательского интерфейса.
🔹 Архитектура MVI — реализации архитектуры Model-View-Intent (MVI) в разработке приложений для Android с использованием Kotlin Flow.
🔹 Jetpack Compose Animation для новичков — пошаговый подход к реализации простых, но эффективных анимаций.
🔹 Региональные настройки — функция, появившаяся в Android 14 Beta 5, позволяет пользователям устанавливать региональные настройки.
🔹 Создание тестируемого кода на Kotlin — важность написания чистого и тестируемого кода.
🔹 FlowOn — важность безопасности потоков в Android-приложениях, особенно при балансировке фоновой обработки и отзывчивости пользовательского интерфейса.
🔹 Архитектура MVI — реализации архитектуры Model-View-Intent (MVI) в разработке приложений для Android с использованием Kotlin Flow.
🔹 Jetpack Compose Animation для новичков — пошаговый подход к реализации простых, но эффективных анимаций.
🔹 Региональные настройки — функция, появившаяся в Android 14 Beta 5, позволяет пользователям устанавливать региональные настройки.
🔹 Создание тестируемого кода на Kotlin — важность написания чистого и тестируемого кода.
🔥2👍1
🛑 Натыкаясь на вакансии стажёров, часто можно увидеть бесплатные стажировки с сроком более 3 месяцев.
Без опыта найти работу сложно, и любая стажировка на вес золота. Но правда, что люди готовы пойти на такое? Компании просто хотят сэкономить на ЗП сотрудников?🫤
С одной стороны, стажировка — возможность получить опыт, а с другой — важно соблюдать справедливость в условиях труда.🤔
Расскажите, как вы относитесь к бесплатным стажировкам?
Какой срок стажировки считаете приемлемым, прежде чем она станет оплачиваемой?
Возможно, у вас есть свои истории на эту тему. Поделитесь опытом👇
#холивар
Без опыта найти работу сложно, и любая стажировка на вес золота. Но правда, что люди готовы пойти на такое? Компании просто хотят сэкономить на ЗП сотрудников?
С одной стороны, стажировка — возможность получить опыт, а с другой — важно соблюдать справедливость в условиях труда.
Расскажите, как вы относитесь к бесплатным стажировкам?
Какой срок стажировки считаете приемлемым, прежде чем она станет оплачиваемой?
Возможно, у вас есть свои истории на эту тему. Поделитесь опытом
#холивар
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Какой срок бесплатной стажировки считаете приемлемым?
Anonymous Poll
29%
до 1 месяца
28%
1-3 месяца
3%
3-6 месяцев
40%
Только оплачиваемая стажировка
💯1
👨💻 Запуск LLM и diffusion models на iPhone и Mac
С помощью Core ML можно интегрировать LLM (большие языковые модели) и модели генерации в приложения, разработанные на Swift. Однако, для эффективного использования этих технологий, необходимо не только уметь их преобразовывать, но и понимать, как они функционируют, какие данные они требуют на входе, и как осуществлять итерации для генерации нужных результатов. Обо всех шагах подробнее в видео.
Смотреть
#видео
С помощью Core ML можно интегрировать LLM (большие языковые модели) и модели генерации в приложения, разработанные на Swift. Однако, для эффективного использования этих технологий, необходимо не только уметь их преобразовывать, но и понимать, как они функционируют, какие данные они требуют на входе, и как осуществлять итерации для генерации нужных результатов. Обо всех шагах подробнее в видео.
Смотреть
#видео
🔥1
#вопросы_с_собеседований
Вопрос по Kotlin
Что такое инфиксная функция в Kotlin?
Инфиксная функция используется для вызова функции без использования скобок и круглых скобок. Для использования инфиксной функции необходимо использовать ключевое слово infix.
Пример:
class Operations {
var x = 10;
infix fun minus(num: Int) {
this.x = this.x — num
}
}
fun main() {
val opr = Operations()
opr minus 8
print(opr.x)
}
Вопрос по Kotlin
Что такое инфиксная функция в Kotlin?
Пример:
class Operations {
var x = 10;
infix fun minus(num: Int) {
this.x = this.x — num
}
}
fun main() {
val opr = Operations()
opr minus 8
print(opr.x)
}
👍12
This media is not supported in your browser
VIEW IN TELEGRAM
🎉 Apple назвала финалистов премии App Store Award 2023
Более десяти лет редакционная группа App Store вручает награды App Store Awards, выделяя лучшие приложения и игры года. Они отмечают около 40 разработчиков в 10 категориях за их выдающиеся достижения, изобретательность и технические достижения в приложениях и играх. Победители App Store Award будут выбраны из группы выдающихся финалистов этого года и будут объявлены в ближайшие недели.
Подробнее
Более десяти лет редакционная группа App Store вручает награды App Store Awards, выделяя лучшие приложения и игры года. Они отмечают около 40 разработчиков в 10 категориях за их выдающиеся достижения, изобретательность и технические достижения в приложениях и играх. Победители App Store Award будут выбраны из группы выдающихся финалистов этого года и будут объявлены в ближайшие недели.
Подробнее
👍4
Swift async/await — это новая фича языка, добавленная в swift 5.5. Она позволяет функциям выполняться асинхронно, не блокируя текущий поток исполнения, и при этом сохраняет простоту и читаемость кода, аналогичную синхронному коду.
Пример кода:
func fetchUserData() async throws -> UserData {
// Здесь может быть код, выполняющий асинхронный запрос
}
func updateUserInterface() async {
do {
let userData = try await fetchUserData()
// Обновление интерфейса пользователя с полученными данными
} catch {
// Обработка ошибок
}
}
История и реализация этой функции, чтобы понять, как она работает, почему она работает, чего вы можете достичь с помощью её, и самое главное, какие ошибки вы должны знать, работая с ней.
Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍2
Почему вы ушли/уходите с предыдущего места работы?
Anonymous Poll
43%
Низкая зарплата
10%
Конфликты
9%
Смена направления
26%
Самореализация
11%
Личные обстоятельства
🛡️ Эффективности проверок безопасности в популярных магазинах приложений
В статье проводится углубленный анализ того, как различные магазины приложений проверяют приложения на наличие уязвимостей, бросая вызов некоторым распространённым в отрасли убеждениям. Материал ориентирован не на анализ приложений на наличие вредоносного кода, вредоносного ПО или вредоносной рекламы, а именно на проверку уязвимостей.🔎
В исследовании рассматривается крупные магазины приложений, такие как Google Play, Huawei AppGallery, Xiaomi GetApps, Samsung Galaxy Store, RuStore и Nashstore.📲
Читать
В статье проводится углубленный анализ того, как различные магазины приложений проверяют приложения на наличие уязвимостей, бросая вызов некоторым распространённым в отрасли убеждениям. Материал ориентирован не на анализ приложений на наличие вредоносного кода, вредоносного ПО или вредоносной рекламы, а именно на проверку уязвимостей.
В исследовании рассматривается крупные магазины приложений, такие как Google Play, Huawei AppGallery, Xiaomi GetApps, Samsung Galaxy Store, RuStore и Nashstore.
Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
#дайджест полезностей для мобильного разработчика 😋
💠 Гибкие и лаконичные автотесты — стратегии, позволяющие сделать автоматические тесты гибкими и лаконичными.
💠 Безопасность в Android — как защитить API-ключи в Android от кражи и утечки.
💠 Нюансы в работе программиста — то, что вам не расскажут о работе программистов.
💠 Повышение качества iOS-кода — рекомендации по повышению качества iOS-кода.
💠 Собеседования в SberDevices — как устроены собеседования в SberDevices, компании, которая занимается разработкой голосовых ассистентов и умных устройств.
💠 Гибкие и лаконичные автотесты — стратегии, позволяющие сделать автоматические тесты гибкими и лаконичными.
💠 Безопасность в Android — как защитить API-ключи в Android от кражи и утечки.
💠 Нюансы в работе программиста — то, что вам не расскажут о работе программистов.
💠 Повышение качества iOS-кода — рекомендации по повышению качества iOS-кода.
💠 Собеседования в SberDevices — как устроены собеседования в SberDevices, компании, которая занимается разработкой голосовых ассистентов и умных устройств.
👍4
🎉 Вышел Flutter 3.16
Этот релиз устанавливает Material 3 в качестве новой темы по умолчанию, представляет предварительную версию Impeller для Android, позволяет добавлять расширения для DevTools и многое другое!
Читать подробнее 📖
Этот релиз устанавливает Material 3 в качестве новой темы по умолчанию, представляет предварительную версию Impeller для Android, позволяет добавлять расширения для DevTools и многое другое!
Читать подробнее 📖
👍6
TipKit — инструмента для добавления всплывающих окон с инструкциями в приложения, впервые упомянутого на WWDC 2023. Apple использует его в iOS 17 для таких приложений, как «Сообщения» и «Фотографии».
В статье автор освещает функциональные возможности и настройки TipKit, повышающие вовлечённость пользователей и обучение в приложениях.
Статья 📃
Официальная документация 📖
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤2
#вопросы_с_собеседований
Вопрос по Swift
🤔 Как бы вы реализовали «ленивую» загрузку изображений?
Для «ленивой» загрузки изображений обычно используют комбинацию кэширования и асинхронной загрузки. Библиотеки типа SDWebImage или AlamofireImage могут оказать неоценимую помощь. Эти библиотеки получают изображение в фоновом режиме, позволяя пользовательскому интерфейсу оставаться отзывчивым, и кэшируют его для последующего использования, экономя таким образом полосу пропускания.
Вопрос по Swift
🤔 Как бы вы реализовали «ленивую» загрузку изображений?
🥱6🌚3❤1🔥1
🥵 7 типов «сложных» разработчиков
Как найти подход к таким «сложным» типам и сделать работу в команде более эффективной и приятной? Рассказываем в статье, как с ними работать, чтобы избежать конфликтов и достичь общих целей.
Читать статью
#почитать
Как найти подход к таким «сложным» типам и сделать работу в команде более эффективной и приятной? Рассказываем в статье, как с ними работать, чтобы избежать конфликтов и достичь общих целей.
Читать статью
#почитать
👍4🔥3🤔1