Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck
9.83K subscribers
1.46K photos
70 videos
52 files
4.21K links
Все самое полезное для мобильного разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/b60af5a4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a4adec1b17b35b6c0d8389
加入频道
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 будут выбраны из группы выдающихся финалистов этого года и будут объявлены в ближайшие недели.

Подробнее
👍4
🏎 Async/await в Swift

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
🛡️ Эффективности проверок безопасности в популярных магазинах приложений

В статье проводится углубленный анализ того, как различные магазины приложений проверяют приложения на наличие уязвимостей, бросая вызов некоторым распространённым в отрасли убеждениям. Материал ориентирован не на анализ приложений на наличие вредоносного кода, вредоносного ПО или вредоносной рекламы, а именно на проверку уязвимостей. 🔎

В исследовании рассматривается крупные магазины приложений, такие как 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, компании, которая занимается разработкой голосовых ассистентов и умных устройств.
👍4
🎉 Вышел Flutter 3.16

Этот релиз устанавливает Material 3 в качестве новой темы по умолчанию, представляет предварительную версию Impeller для Android, позволяет добавлять расширения для DevTools и многое другое!

Читать подробнее 📖
👍6
💡 Подсказки в приложение с помощью нового инструмента TipKit

TipKit — инструмента для добавления всплывающих окон с инструкциями в приложения, впервые упомянутого на WWDC 2023. Apple использует его в iOS 17 для таких приложений, как «Сообщения» и «Фотографии». 📲

В статье автор освещает функциональные возможности и настройки TipKit, повышающие вовлечённость пользователей и обучение в приложениях. 📈

Статья 📃
Официальная документация 📖
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32
#вопросы_с_собеседований

Вопрос по Swift

🤔 Как бы вы реализовали «ленивую» загрузку изображений?

Для «ленивой» загрузки изображений обычно используют комбинацию кэширования и асинхронной загрузки. Библиотеки типа SDWebImage или AlamofireImage могут оказать неоценимую помощь. Эти библиотеки получают изображение в фоновом режиме, позволяя пользовательскому интерфейсу оставаться отзывчивым, и кэшируют его для последующего использования, экономя таким образом полосу пропускания.
🥱6🌚31🔥1
🥵 7 типов «сложных» разработчиков

Как найти подход к таким «сложным» типам и сделать работу в команде более эффективной и приятной? Рассказываем в статье, как с ними работать, чтобы избежать конфликтов и достичь общих целей.

Читать статью

#почитать
👍4🔥3🤔1
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👨‍💻 Анимация загрузки во Flutter своими руками

При разработке приложений время загрузки неизбежно. С точки зрения пользовательского опыта, наиболее важно показать пользователям, что загрузка идёт. Один из популярных подходов к информированию пользователей о том, что данные загружаются, заключается в отображении хромированного цвета с анимацией мерцания над формами, приближёнными к типу загружаемого контента. Давайте посмотрим, как легко это можно сделать с помощью Flutter.

🔎📖 Заглянем в официальную документацию
2👍2🔥1
#дайджест полезностей для мобильного разработчика

✴️ Photo Picker — получаем доступ к фотографиям в SwiftUI без запроса разрешения и сохраняя приватность пользователя.

✴️ Сложные анимации прокрутки — как создать сложную анимацию прокрутки с помощью новых API iOS 17.

✴️ Генератор стикеров WhatsApp — автор создаёт приложение на базе Dall-E 3 для генерации стикеров WhatsApp.

✴️ Анимирование View по сигналу — как запустить анимации вне области видимости View, используя Combine.

✴️ SwiftData — сортировка и фильтрация данных в SwiftUI с помощью динамических параметров.
👍32🔥1
🤔 Являются ли опциональные замыкания «сбегающими»?


func n(_ closure: (() -> Void)? = nil) {
// ...
}
👍3😁1
🛠️ «Бруклинский мост» между C++ и Kotlin

В статье рассматривается необходимость использования моста 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) // [❄️, 💧, ☀️, 🔥, 🔥]

Остальные методы разберём во второй части. Сохраняй и пользуйся 📌
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14😁21
🚀 Новый набор на стажировки в Тинькофф

Стажировка подойдет как для студентов, там и начинающих специалистов. Среди направлений есть Android-разработчик и iOS-разработчик. 😋

На стажировке вас ждёт много интересных и сложных проектов. Стажировка не для строчки в резюме, а для старта в ИТ-карьере. 👨‍💻

💡 Изучайте подробности и отправляйте заявку, дедлайн — 18 декабря: https://fintech.tinkoff.ru/start/
3🔥3
🚀 Какие инновации нас ждут в Swift 6?

В Swift 6, как и в предшественниках, вероятно, будут внесены улучшения в такие области, как синтаксис языка, производительность компилятора и совместимость с различными платформами.

Основное внимание может быть уделено улучшению функций безопасности, оптимизации для ускорения компиляции кода и расширению поддержки новых платформ Apple.

📖 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31🔥1🌚1
💬 Более опытные разработчики часто жалуются, что новичкам не хватает «базы». По их мнению, в программисты идут люди без профильного образования, что ведёт к общей деградации. Правы ли они? И что представляет собой эта «база»?

Поделись своим мнением 👇

#холивар
👍82🔥1