8058
Полезные материалы по всему, что может быть интересно мобильному разработчику. Обратная связь: @proglibrary_feedback_bot Конференции и митапы: @event_listener_bot По вопросам рекламы: http://ad.proglib.io/?utm_source=mobileproglib или @proglib_adv
Избавляемся от рутинных ADB команд с помощью Shortcuts
Это не инструкция по использованию Shortcuts на Mac. Это про то, как легко можно упростить себе жизнь и создать многофункциональный инструмент без глубоких знаний программирования.
📖 Статья даст готовое решение для автоматизации работы с командами ADB, которыми автор делится в конце. Но главное — это идея, которую вы сможете адаптировать к своим ежедневным процессам.
❗Вакансии «Библиотеки программиста» — ждем вас в команде!
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов
👉Переводчик и автор оригинальных статей
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
📨 Как работают очереди и брокеры сообщений
Очередь сообщений — структура данных, которая хранит сообщения в порядке FIFO. Представьте, что вашему приложению нужно обрабатывать файлы, которые загружают пользователи. Очередь сообщений в этом случае может выступать как очередь задач, обрабатывающая задания асинхронно:
1️⃣ Пользователь загружает большой файл для обработки.
2️⃣ Веб-сервер принимает файл и создает задание.
3️⃣ Задание добавляется в очередь задач, а файл загружается в объектное хранилище.
4️⃣ Позже рабочий процесс забирает задания из очереди одно за другим и обрабатывает их, получая файл из хранилища.
Это самый простой пример. Очереди сообщений можно использовать для:
✔️ Планирования и управления фоновыми задачами.
✔️ Распределения задач между несколькими рабочими процессами.
✔️ Управления сервисами подписки и уведомлений.
✔️ Буферизации данных.
✔️ Повторных попыток обработки платежей и многого другого.
Подробнее читайте в нашем гайде 👇
🔗 Читать статью
🔗 Зеркало
⚙️ Динамические модули в приложениях на Android
Размер приложения часто играет важную роль в восприятии его пользователями и принятии ими решения о скачивании. Исследования показывают, что чем меньше размер APK, тем выше вероятность его установки и тем реже оно оказывается в списке на удаление.
📖 Для внедрения одной из SDK, основанной на Flutter, команда Яндекс Go прибегла к механизму Dynamic Feature Delivery. Т. к. информации в русскоязычном сегменте о DFD крайне мало, они делятся своим опытом интеграции.
Осторожно, Combine!
📖 Разработчик из команды Яндекс Диска поделился опытом, как они Combine добавляли. В статье он разбирает проблемы, с которыми столкнулась команда, и как их исправили, а также к каким выводам после этого пришли.
А ещё поделился библиотекой с фиксами и экстеншенами к Combine 🎁
🛠️ Применяем шаблон Builder в Kotlin
Шаблон проектирования Builder позволяет создавать сложные объекты в несколько этапов. Но насколько он применим к Kotlin?
Автор видео разбирает традиционную версию шаблона Builder, и рассказывает, как можно улучшить его с помощью языка и библиотечных возможностей Kotlin.
Посмотреть на ютубе 📺
🕐 Таймкоды:
00:00 — Начало
00:18 — Пример кода
02:01 — Традиционный вид шаблона
05:02 — Модернизация шаблона в Kotlin
09:15 — Итоги
🚀 Как сделать работу с сетью ещё быстрее
Сетевые задержки до сих пор мешают юзерам. На решение проблемы приходит метод «сжатия общего словаря», который снижает объем передаваемых данных за счет повторного использования ранее переданных элементов.
📖 Применение этого метода может ускорить передачу данных, особенно в условиях медленного интернета.
Самые полезные каналы для программистов в одной подборке!
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
Азбука айтишника — здесь мы познаем азы из мира программирования
🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion
#️⃣C#
Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
☁️DevOps
Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
🐘PHP
Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Библиотека разработчика игр | Gamedev, Unity, Unreal Engine
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ
⚠️UserDefaults: история о труднопонимаемых ошибках и потерянных данных
UserDefaults — удобный инструмент для сохранения данных локально. К примеру, пользовательские настройки. Инструмент действительно удобный, позволяет легко обмениваться данными между основной и вспомогательными целями приложения и много другого.
Но! Не забывайте, что его нельзя использоваться для:
– Хранения конфиденциальных данных, для этого есть Keychain.
– Хранения больших объемов данных, используйте Core Data или Swift Data.
📖 Статья с разбором проблем, с которыми вы (скорее всего) столкнетесь, в ходе использования UserDefaults.
🎊 Релиз фреймворка Tauri 2.0
В начале октября состоялся выпуск стабильной версии проекта Tauri 2.0, развивающего фреймворк для создания многоплатформенных пользовательских приложений с графическим интерфейсом, построенных с использованием веб-технологий.
Список изменений по ссылке
Ссылка на GitHub
🧙 Принципы S.O.L.I.D. в Swift
Аббревиатура SOLID представляет собой набор из пяти принципов проектирования в объектно-ориентированном программировании. Эти принципы стали общепризнанным руководством по созданию высококачественных, поддерживаемых и масштабируемых систем.
Один из примеров, который очень часто встречается при работе с приложениями, — создание сетевого уровня. Существует множество форм для его создания, но по мере роста кода его трудно поддерживать, если он плохо структурирован.
🌐 Рассмотрим пример сетевого класса.
Опрос «Как вы учитесь с помощью телефона: поделитесь своим опытом!»
Дорогие подписчики, мы на миссии улучшений, и вы — наш ключ! 🔑
💻 Пишите на Swift, как Apple
Существует множество правил для языка программирования Swift. Более привлекательная кодовая конвенция для Swift от AirBnB:
– Используйте PascalCase для имен типов и протоколов и lowerCamelCase для всего остального.
– Называйте булевые значения именами типа isSpaceShip, hasSpacesuit и т.д. Это дает понять, что это именно булевы, а не другие типы.
Однако, нету лучшей конвенции для разработки на Swift, чем собственный стиль Apple. Вот несколько подходов, которые значительно улучшат чтение кода.
🕵🏻♂️ Исследуем приложение на максимум
📖 У Apple вышла новая серия уроков, в которой можно узнать, как использовать Instruments для анализа производительности, ресурсов и поведения приложений.
В уроках затронуты темы:
– Улучшение отзывчивости
– Потребление памяти
– Анализ сложного поведения
⚙️ Gemini Nano теперь доступен на Android в экспериментальном режиме
Компания открывает доступ к экспериментам с Gemini Nano для всех разработчиков Android с AI Edge SDK через AICore. Первоначально разработчики смогут экспериментировать с текстовыми подсказками на устройствах серии Pixel 9.
Ознакомиться с видеоинструкцией можно тут 👈
Доступ к Gemini Nano тут 👈
Список телефонов, которые поддерживают Gemini Nano (доступ ожидается в будущем):
Google Pixel 8Читать полностью…
Google Pixel 8 Pro
Google Pixel 8a
Motorola Edge 50 Ultra
Motorola Razr 50 Ultra
Samsung Galaxy S24
Samsung Galaxy S24+
Samsung Galaxy S24 Ultra
Samsung Galaxy S24 FE
Samsung Galaxy Z Flip 6
Samsung Galaxy Z Fold 6
Realme GT 6
Xiaomi 14T
Xiaomi 14T Pro
Xiaomi MIX Flip
🎃 Промокод на хеллоуин
50% на курс по Machine Learning
BIGDRAW😄 Тут мы подробно рассмотрели, из чего состоит курс:Онлайн-курс «Базовые модели ML и приложения»
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Крутое событие для мобильных разработчиков — Я.Субботник 16 ноября!
Встречаемся на масштабном митапе в московском офисе Яндекса на «Парке культуры».
В программе — доклады об iOS и Android, экскурсия по «Красной Розе» и командный квиз с участием автора блога Mobile Developer Алексея Гладкова и руководителя мобильной разработки Супераппа Яндекса Артура Василова. А ещё нетворкинг и афтерпати с угощениями и напитками.
Регистрируйтесь и присоединяйтесь офлайн или онлайн.
Что такое Home-виджеты и как их подружить с вашим приложением на Flutter
Cуществуют нативные инструменты, которые интегрируются с Flutter. Например, создавать виджеты на Android можно с помощью Glance или XML, а на iOS — с WidgetKit. Эти технологии позволяют внедрять так называемые Home Widgets — элементы, с которыми можно взаимодействовать напрямую с домашнего экрана.
📖 В этой статье разбираются основные инструменты, и как их внедрять и использовать во Flutter-приложениях.
Делегаты и делегированные свойства в Kotlin
📖 Погрузимся в мир делегатов и делегированных свойств в Kotlin. Эта тема может показаться сложной на первый взгляд, но автор объясняет её максимально понятно и подробно.
В статье также есть примеры использования встроенных делегатов (lazy, observable), а также создание пользовательских делегатов с помощью интерфейсов ReadOnlyProperty и ReadWriteProperty.
У каждого такое было...
Давайте в комментариях соберём лучшие отмазки для айтишников.
Начинаем: «Не баг, а фича». Продолжаем 👇
📁 Самые важные пакеты в экосистеме Dart и Flutter на Pub 2024
Компания Very Good Ventures провела исследование и опубликовала рейтинг самых важных пакетов в экосистеме Dart и Flutter.
📖 Как проводилось исследование и какие пакеты вошли в топ от независимых разработчиков, компаний и сообщества — в статье.
🎉 Google релизнули Android 15
Нововведений огромное количество. Собрали список самых свежих нововведений:
🔒 Защита от кражи:
Android 15 вводит функцию Theft Detection Lock, использующую ИИ для обнаружения подозрительной активности. Если телефон «почувствует», что его украли, он автоматически заблокируется. Также появилась возможность удаленной блокировки устройства с помощью номера телефона.
🔍Приватное пространство:
Новая функция Private Space позволяет создать отдельную защищенную область для хранения конфиденциальных приложений. Когда она заблокирована, приложения остаются невидимыми для посторонних глаз.
⚙️Улучшения для складных устройств и планшетов:
Теперь можно закреплять панель задач на экране и создавать комбинации приложений для быстрого запуска в режиме разделенного экрана.
📎Другое: Улучшена работа камеры при слабом освещении, поддержка спутниковых сообщений в приложениях операторов связи, упрощенный вход с помощью Passkeys.
Android 15 уже распространяется для поддерживаемых устройств Pixel 👇
Pixel 9 Pro FoldЧитать полностью…
Pixel 9 Pro XL
Pixel 9 Pro
Pixel 9
Pixel 8a
Pixel 8 Pro
Pixel 8
Pixel Fold
Pixel Tablet
Pixel 7a
Pixel 7 Pro
Pixel 7
Pixel 6a
Pixel 6 Pro
Pixel 6
Делаем анимацию печати текста в SwiftUI
Одним из интересных эффектов является анимация печатной машинки, когда текст появляется символ за символом, как будто его набирают в режиме реального времени.
Например, такую анимацию особенно используют в чат-ботах с ИИ.
Как реализовать этот эффект в SwiftUI — гайд 👈
🎤 Собеседование iOS-разработчика: проектирование и лайфкодинг
В данном выпуске вы увидите по сути тот лайфкодинг, который вы можете наблюдать в повседневной работе. По ходу собеседования спрашивают и теоретические вопросы, которые так или иначе относятся к часто используемым кейсам в iOS-разработке.
Смотрим по ссылке 📺
📖 Утечка: на Android появится «Терминал» и возможность запуска Linux-приложений
Сотрудники портала Android Authority обнаружили в исходном коде Android (AOSP) поддержку программы «Терминал». Оно служит для запуска дистрибутива Linux и совместимых приложений. Такое нововведение делает Android на шаг ближе к десктопным операционным системам.
Приложение «Терминал» является частью Android Virtualization Framework (AVF) и содержит WebView, который подключается к виртуальной машине Linux через локальный IP-адрес, позволяя выполнять команды Linux с хоста Android. Ранее это приложение нужно было вручную включать с помощью команды оболочки, а затем самостоятельно настраивать виртуальную машину. Но с недавних пор Google начала работу над полной интеграцией «Терминала» в Android, который можно будет активировать через настройки разработчиков.
Будете пользоваться?
#дайджест для Android-разработчиков 👋
🧹Google выпустила Ink API — Jetpack-библиотеку для работы со стилусами на Android.
💰 Простое Android-приложения для отправки биткоинов с существующего кошелька, отображения его баланса и списка транзакций.
☕️ Новый подход к безопасному управлению состояниями в Kotlin-приложениях.
🫵 «Безопасный» переход с Retrofit на Ktor.
💬 Узнайте больше о том, как вы можете использовать Gemini API в своем приложении.
🔎 Глубокое погружение в генерацию APK.
💪 10 SDK, чтобы улучшить ваше мобильное приложение.
Привет, друзья! 👋
Мы хотим обсудить важную тему — токсичность в среде разработчиков и значимость поддержки и наставничества. Нам интересно узнать ваше мнение и опыт! Поделитесь своими мыслями, и самые полезные советы мы включим в нашу статью. Вот несколько вопросов для вас:
🤔 Приходилось ли вам сталкиваться с токсичными коллегами на работе? Как вы справлялись с этой ситуацией?
🌟 Какие качества вы считаете важными для хорошего наставника в IT-сфере?
💡 Какие советы вы бы дали тем, кто хочет создать более поддерживающую и позитивную рабочую атмосферу?
Спасибо за ваше участие! Ваши ответы помогут сделать рабочую среду лучше для всех. 🚀
#Kotlin
Задача c LeetCode: First Unique Character in a String
Дана строка s, найдите первый неповторяющийся символ в ней и верните его индекс. Если такого символа не существует, верните -1.
Input: s = «leetcode»Output: 0
💻 15 лучших ноутбуков для программиста в 2024 году
Хочешь заменить свой рабочий ноут?