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
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👨💻 Анимация загрузки во Flutter своими руками
При разработке приложений время загрузки неизбежно. С точки зрения пользовательского опыта, наиболее важно показать пользователям, что загрузка идёт. Один из популярных подходов к информированию пользователей о том, что данные загружаются, заключается в отображении хромированного цвета с анимацией мерцания над формами, приближёнными к типу загружаемого контента. Давайте посмотрим, как легко это можно сделать с помощью Flutter.
🔎📖 Заглянем в официальную документацию
При разработке приложений время загрузки неизбежно. С точки зрения пользовательского опыта, наиболее важно показать пользователям, что загрузка идёт. Один из популярных подходов к информированию пользователей о том, что данные загружаются, заключается в отображении хромированного цвета с анимацией мерцания над формами, приближёнными к типу загружаемого контента. Давайте посмотрим, как легко это можно сделать с помощью Flutter.
🔎📖 Заглянем в официальную документацию
❤2👍2🔥1
#дайджест полезностей для мобильного разработчика
✴️ Photo Picker — получаем доступ к фотографиям в SwiftUI без запроса разрешения и сохраняя приватность пользователя.
✴️ Сложные анимации прокрутки — как создать сложную анимацию прокрутки с помощью новых API iOS 17.
✴️ Генератор стикеров WhatsApp — автор создаёт приложение на базе Dall-E 3 для генерации стикеров WhatsApp.
✴️ Анимирование View по сигналу — как запустить анимации вне области видимости View, используя Combine.
✴️ SwiftData — сортировка и фильтрация данных в SwiftUI с помощью динамических параметров.
✴️ Photo Picker — получаем доступ к фотографиям в SwiftUI без запроса разрешения и сохраняя приватность пользователя.
✴️ Сложные анимации прокрутки — как создать сложную анимацию прокрутки с помощью новых API iOS 17.
✴️ Генератор стикеров WhatsApp — автор создаёт приложение на базе Dall-E 3 для генерации стикеров WhatsApp.
✴️ Анимирование View по сигналу — как запустить анимации вне области видимости View, используя Combine.
✴️ SwiftData — сортировка и фильтрация данных в SwiftUI с помощью динамических параметров.
👍3❤2🔥1
🤔 Являются ли опциональные замыкания «сбегающими»?
func n(_ closure: (() -> Void)? = nil) {
// ...
}
👍3😁1
🛠️ «Бруклинский мост» между C++ и Kotlin
В статье рассматривается необходимость использования моста C++ в Android для тех задач, которые невозможно эффективно решить полностью на JVM, например для разработки пользовательского шифрования, создания пользовательских типов двоичных файлов, реализации межсетевого экрана.
💡 Цель — сделать приложения более стабильными за счет возможности раздельного тестирования кода на Kotlin и C++, и концепция «Бруклинского моста» призвана облегчить этот процесс.
Читать статью
#статья
В статье рассматривается необходимость использования моста C++ в Android для тех задач, которые невозможно эффективно решить полностью на JVM, например для разработки пользовательского шифрования, создания пользовательских типов двоичных файлов, реализации межсетевого экрана.
💡 Цель — сделать приложения более стабильными за счет возможности раздельного тестирования кода на Kotlin и C++, и концепция «Бруклинского моста» призвана облегчить этот процесс.
Читать статью
#статья
👍4
🔖💡 В Swift существует богатый набор методов работы с массивами, которые позволяют разработчикам эффективно манипулировать массивами. Разбираемся как они работают на примерах с эмодзи. Часть первая👇
1️⃣ Первый метод — .count
Здесь всё просто — считает количество элементов в массиве. Пример:
let a = [🔥, 💧, ☀️, ❄️]
a.count // 4
2️⃣ Второй метод — .filter
let a = [🔥, 💧, ☀️, ❄️, 🔥]
let b = a.filter { $0 == 🔥 }
print(b) // [🔥, 🔥]
3️⃣ Третий метод — .reversed
Такой же простой, как и первый. Возвращает обратную последовательность элементов исходной коллекции. Пример:
let a = [🔥, 💧, ☀️, ❄️, 🔥]
let b = a.reversed()
print(b) // [🔥, ❄️, ☀️, 💧, 🔥]
4️⃣ Четвёртый метод — .allSatisfy
Этот метод проверяет, удовлетворяют ли все элементы коллекции заданному условию. Пример:
let a = [🔥, 💧, ☀️, ❄️, 🔥]
let b = a..allSatisfy { $0 == 🔥 }
print(b) // false
5️⃣ Пятый метод — .contains
Метод проверяет, содержит ли коллекция определённый элемент. Пример:
let a = [🔥, 💧, ☀️, ❄️, 🔥]
let b = a.contains(💧)
print(b) // True
6️⃣ Шестой метод — .prefix
Метод возвращает начальный сегмент коллекции, содержащий указанное количество элементов. Пример:
let a = [🔥, 💧, ☀️, ❄️, 🔥]
let b = a.prefix(3)
print(b) // [🔥, 💧, ☀️]
7️⃣ Седьмой метод — .suffix
Метод похож на предыдущий, только возвращает указанное количество элементов начиная с конца коллекции. Пример:
let a = [🔥, 💧, ☀️, ❄️, 🔥]
let b = a.suffix(2)
print(b) // [❄️, 🔥]
8️⃣ Восьмой метод — .swapAt
Этот метод обменивает местами значения двух элементов в коллекции по их индексам. Пример:
let a = [🔥, 💧, ☀️, ❄️, 🔥]
let b = a.swapAt(0, 3)
print(b) // [❄️, 💧, ☀️, 🔥, 🔥]
Остальные методы разберём во второй части. Сохраняй и пользуйся📌
Здесь всё просто — считает количество элементов в массиве. Пример:
let a = [🔥, 💧, ☀️, ❄️]
a.count // 4
let a = [🔥, 💧, ☀️, ❄️, 🔥]
let b = a.filter { $0 == 🔥 }
print(b) // [🔥, 🔥]
Такой же простой, как и первый. Возвращает обратную последовательность элементов исходной коллекции. Пример:
let a = [🔥, 💧, ☀️, ❄️, 🔥]
let b = a.reversed()
print(b) // [🔥, ❄️, ☀️, 💧, 🔥]
Этот метод проверяет, удовлетворяют ли все элементы коллекции заданному условию. Пример:
let a = [🔥, 💧, ☀️, ❄️, 🔥]
let b = a..allSatisfy { $0 == 🔥 }
print(b) // false
Метод проверяет, содержит ли коллекция определённый элемент. Пример:
let a = [🔥, 💧, ☀️, ❄️, 🔥]
let b = a.contains(💧)
print(b) // True
Метод возвращает начальный сегмент коллекции, содержащий указанное количество элементов. Пример:
let a = [🔥, 💧, ☀️, ❄️, 🔥]
let b = a.prefix(3)
print(b) // [🔥, 💧, ☀️]
Метод похож на предыдущий, только возвращает указанное количество элементов начиная с конца коллекции. Пример:
let a = [🔥, 💧, ☀️, ❄️, 🔥]
let b = a.suffix(2)
print(b) // [❄️, 🔥]
Этот метод обменивает местами значения двух элементов в коллекции по их индексам. Пример:
let a = [🔥, 💧, ☀️, ❄️, 🔥]
let b = a.swapAt(0, 3)
print(b) // [❄️, 💧, ☀️, 🔥, 🔥]
Остальные методы разберём во второй части. Сохраняй и пользуйся
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14😁2❤1
🚀 Новый набор на стажировки в Тинькофф
Стажировка подойдет как для студентов, там и начинающих специалистов. Среди направлений есть Android-разработчик и iOS-разработчик. 😋
На стажировке вас ждёт много интересных и сложных проектов. Стажировка не для строчки в резюме, а для старта в ИТ-карьере. 👨💻
💡 Изучайте подробности и отправляйте заявку, дедлайн — 18 декабря: https://fintech.tinkoff.ru/start/
Стажировка подойдет как для студентов, там и начинающих специалистов. Среди направлений есть Android-разработчик и iOS-разработчик. 😋
На стажировке вас ждёт много интересных и сложных проектов. Стажировка не для строчки в резюме, а для старта в ИТ-карьере. 👨💻
💡 Изучайте подробности и отправляйте заявку, дедлайн — 18 декабря: https://fintech.tinkoff.ru/start/
❤3🔥3
В Swift 6, как и в предшественниках, вероятно, будут внесены улучшения в такие области, как синтаксис языка, производительность компилятора и совместимость с различными платформами.
Основное внимание может быть уделено улучшению функций безопасности, оптимизации для ускорения компиляции кода и расширению поддержки новых платформ Apple.
📖 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1🔥1🌚1
💬 Более опытные разработчики часто жалуются, что новичкам не хватает «базы». По их мнению, в программисты идут люди без профильного образования, что ведёт к общей деградации. Правы ли они? И что представляет собой эта «база»?
Поделись своим мнением 👇
#холивар
Поделись своим мнением 👇
#холивар
👍8❤2🔥1