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

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

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

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

РКН: https://gosuslugi.ru/snet/67a4adec1b17b35b6c0d8389
Download Telegram
Media is too big
VIEW IN TELEGRAM
🛠️ Применяем шаблон Builder в Kotlin

Шаблон проектирования Builder позволяет создавать сложные объекты в несколько этапов. Но насколько он применим к Kotlin?

Автор видео разбирает традиционную версию шаблона Builder, и рассказывает, как можно улучшить его с помощью языка и библиотечных возможностей Kotlin.

Посмотреть на ютубе 📺

🕐 Таймкоды:

00:00 — Начало
00:18 — Пример кода
02:01 — Традиционный вид шаблона
05:02 — Модернизация шаблона в Kotlin
09:15 — Итоги
Please open Telegram to view this post
VIEW IN TELEGRAM
Делегаты и делегированные свойства в Kotlin

📖 Погрузимся в мир делегатов и делегированных свойств в Kotlin. Эта тема может показаться сложной на первый взгляд, но автор объясняет её максимально понятно и подробно.

В статье также есть примеры использования встроенных делегатов (lazy, observable), а также создание пользовательских делегатов с помощью интерфейсов ReadOnlyProperty и ReadWriteProperty.
👍4
Осторожно, Combine!

📖 Разработчик из команды Яндекс Диска поделился опытом, как они Combine добавляли. В статье он разбирает проблемы, с которыми столкнулась команда, и как их исправили, а также к каким выводам после этого пришли.

А ещё поделился библиотекой с фиксами и экстеншенами к Combine 🎁
4
Что такое Home-виджеты и как их подружить с вашим приложением на Flutter

Cуществуют нативные инструменты, которые интегрируются с Flutter. Например, создавать виджеты на Android можно с помощью Glance или XML, а на iOS — с WidgetKit. Эти технологии позволяют внедрять так называемые Home Widgets — элементы, с которыми можно взаимодействовать напрямую с домашнего экрана.

📖 В этой статье разбираются основные инструменты, и как их внедрять и использовать во Flutter-приложениях.
⚙️ Динамические модули в приложениях на Android

Размер приложения часто играет важную роль в восприятии его пользователями и принятии ими решения о скачивании. Исследования показывают, что чем меньше размер APK, тем выше вероятность его установки и тем реже оно оказывается в списке на удаление.

📖 Для внедрения одной из SDK, основанной на Flutter, команда Яндекс Go прибегла к механизму Dynamic Feature Delivery. Т. к. информации в русскоязычном сегменте о DFD крайне мало, они делятся своим опытом интеграции.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека программиста | программирование, кодинг, разработка
📨 Как работают очереди и брокеры сообщений

Очередь сообщений — структура данных, которая хранит сообщения в порядке FIFO. Представьте, что вашему приложению нужно обрабатывать файлы, которые загружают пользователи. Очередь сообщений в этом случае может выступать как очередь задач, обрабатывающая задания асинхронно:

1️⃣ Пользователь загружает большой файл для обработки.
2️⃣ Веб-сервер принимает файл и создает задание.
3️⃣ Задание добавляется в очередь задач, а файл загружается в объектное хранилище.
4️⃣ Позже рабочий процесс забирает задания из очереди одно за другим и обрабатывает их, получая файл из хранилища.

Это самый простой пример. Очереди сообщений можно использовать для:

✔️ Планирования и управления фоновыми задачами.
✔️ Распределения задач между несколькими рабочими процессами.
✔️ Управления сервисами подписки и уведомлений.
✔️ Буферизации данных.
✔️ Повторных попыток обработки платежей и многого другого.

Подробнее читайте в нашем гайде 👇

🔗 Читать статью
🔗 Зеркало
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

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

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍2
Вакансии «Библиотеки программиста» — ждем вас в команде!

Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов
👉Переводчик и автор оригинальных статей

Подробности тут

Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴

Ждем ваших откликов 👾
This media is not supported in your browser
VIEW IN TELEGRAM
📐 Избавляемся от рутинных ADB команд с помощью Shortcuts

Это не инструкция по использованию Shortcuts на Mac. Это про то, как легко можно упростить себе жизнь и создать многофункциональный инструмент без глубоких знаний программирования.

📖 Статья даст готовое решение для автоматизации работы с командами ADB, которыми автор делится в конце. Но главное — это идея, которую вы сможете адаптировать к своим ежедневным процессам.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥3👍2😁2🔥1
😭💰⬆️ Shut up and give my money: как просить повышения зарплаты

Рассказываем, когда и как правильно поднимать вопрос о повышении зарплаты. Проверенные тактики, аргументы и советы.

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

📖 Читать статью
📖 Зеркало
4
⚡️Разыгрываем флагманский смартфон

«Библиотека программиста» разыгрывает один из трех смартфонов на выбор:
🔹Samsung Galaxy S24 Ultra на 1 ТБ
🔹Xiaomi 14 Ultra на 512 ГБ
🔹iPhone 16 Pro Max на 512 ГБ

🔥 А еще 99 участников розыгрыша получат скидку 50% на наш курс Базовые модели ML и приложения!
Промокод будет действителен до 20 ноября.

Условия просты:
→ подписаться на Библиотека нейротекста
→ подписаться на Библиотека нейрозвука
→ подписаться на Библиотека нейрокартинок
→ нажать на кнопку «Участвовать» под этим постом

Итоги появятся 30 октября в 20:00 по московскому времени в нашем канале Библиотека программиста. Затем мы свяжемся с победителем, который сам выберет смартфон. Тем, кто получит промокод, мы вышлем его в течение недели после окончания розыгрыша.

⚠️ Убедитесь, что вам можно написать в личные сообщения или следите за результатами — если мы не сможем с вами связаться, то не сможем и отправить приз. Доставить мы можем только в города России и Беларуси.
👍2
Objective-C не кусается: как перестать бояться Legacy и стать настоящим iOS-ниндзя

📖 Поговорим про тему, которая волнует многих разработчиков: использование старых технологий в iOS-разработке, таких как Objective-C. Тут возникает очень насущный вопрос, является ли он легаси?

Легаси — это не просто старый код, написанный на устаревших языках или с использованием старых технологий, это любой код, который сложно поддерживать и развивать. Это может быть и относительно новый код, если он плохо структурирован, недостаточно документирован или содержит множество технического долга.
💾 TinyStorage — простая и легкая замена UserDefaults для постоянного хранения данных

TinyStorage — простая и легкая замена UserDefaults (не обертка, а именно замена, лишенная некоторых недостатков нативного фреймворка) с более надежным доступом и встроенной поддержкой типов Codable.

Как и UserDefaults, TinyStorage предназначен для использования с относительно небольшими значениями. Не храните в TinyStorage массивные базы данных, так как он не оптимизирован для этого, но он достаточно быстр для извлечения сохраненных типов Codable. В качестве ориентира, размер хранилища не должен превышать 1 МБ.

Ссылка на GitHub 😺
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰4
🤖 Вышла бета-версия iOS 18.2 с Apple Intelligence

Сегодня компания Apple выложила первые бета-версии грядущих обновлений iOS 18.2, iPadOS 18.2 и macOS Sequoia 15.2 для тестирования разработчиками.

Apple представила новые функции Siri, инструменты для создания изображений и многое другое. Вот что нас ждёт ждёт:

Image Playground (приложение Apple для создания изображений, которое может создавать с помощью текстовых подсказок).
Image Wand (Генерация по грубому эскизу с Apple Pencil на iPad).
Genmoji (это новые кастомные emoji).
Интеграция Siri с ChatGPT (для выполнения определенных запросов, но только с разрешения пользователя).
Visual Intelligence (функция, которая позволяет получать информацию о том, что находится вокруг вас).
Инструменты для письма (Apple улучшает функцию Writing Tools, добавляя возможность вносить изменения по своему усмотрению).

Новые бета-версии включают API для разработчиков, позволяющие добавлять инструменты Writing Tools, Genmoji и Image Playground в приложения сторонних разработчиков.

На данный момент бета-версия доступна только разработчикам, у которых есть устройство с поддержкой Apple Intelligence.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁3
Экономьте время, копируя готовый код в свой проект

Представьте, что вы могли бы скопировать код страницы и вставить его в свой новый или существующий проект. С FlutterLibrary это возможно. На странице можно найти виджеты, готовые шаблоны и отдельные страницы, которые помогут вам создавать приложения еще быстрее.

Всё просто! Выбираете любой элемент, и наведении курсора на любой из экранов вы увидите кнопку «Скопировать код». Нажмите на него, и все готово — вставьте код в свой проект.

Ссылка на проект 👈
👍2
💪 Обновление Apple TestFlight: переработанный дизайн и критерии тестирования

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

Также добавили опцию Tester Criteria. С её помощью разработчики могут указать список устройств, для которых нужно провести тестирование. Можно выбрать определённую модель iPhone и указать версию iOS. Критерии применяются как к публичным ссылкам на тестирование, так и к частным приглашениям.

Помимо этого появилась статистика. Разработчики теперь могут видеть, сколько пользователей просматривали приложение в TestFlight и сколько из них решили установить бета-версию. Также в отдельном пункте показывается, сколько тестировщиков не соответствует установленным критериям тестирования.
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍4🥰1
Встречаем yx_scope: DI-фреймворк для работы со скоупами в открытом доступе

Для больших проектов не всегда хватает одного модуля: иногда надо пошарить какие‑нибудь классы или UI‑элементы. Так со временем проект дробится на много мелких модулей, которые так или иначе связаны разного рода зависимостями. И если за этим не следить, то рано или поздно структура проекта может стать запутанной.

Сложности подтолкнули Яндекс к поиску собственного решения, которое удовлетворяло бы всем требованиям. И теперь они готовы поделиться им с комьюнити: решение — это группа библиотек yx_scope.

📖 Читать статью
😺 Ссылка на GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
iOS 18 для разработчиков: Ключевые изменения в UIKit

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

В этой статье автор делится и показывает самые интересные обновления в UIKit — новый TabBar, анимации, совместимость UIKit/SwiftUI и многое другое.
👍31
🔒 Пример взлома покупок в Android-приложении и защита от этого

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

📖 В этой статье автор рассказывает о том, как Frida, может обойти механизмы биллинга в приложениях для Android. Также показывает, как можно взломать небезопасные процессы покупок и что могут сделать разработчики.
👍2🔥1
#вопросы_с_собеседований

Kotlin

Вопрос: Как создать «статический» метод для перечисления в Kotiln?

В классе enum можно определить объект класса:

enum class CircleType {
FIRST,
SECOND,
THIRD;
companion object {
fun random(): CircleType = FIRST
}
}

Потом вы сможете вызывать эту функцию как CircleType.random().
🥱9👍32🌚1