Библиотека мобильного разработчика | 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
📉🤦 152 000 уволенных в IT за год: кому это помогло?

Корпоративная бензопила снова в деле: каждый месяц 2 миллиона американцев теряют работу из-за сокращений. Но действительно ли это помогает компаниям?

🔗 Читать статью
🥰4👍1
⚔️ Работать на удаленке или в офисе?

Понедельник, 9:00. Один разработчик в пижаме уже запустил IDE, держа в одной руке кота, а в другой — кофе. В это же время его коллега едет в офис, стоя в пробке и слушая подкаст с ускорением 1.5x. Две реальности современного разработчика. Но какая эффективнее?

Недавние исследования показывают, что продуктивность на удалёнке выше на 13%, НО... отчуждение и профессиональное выгорание тоже часто выше.

Где лучше писать код: дома с котом или в офисе с коллегами? Голосуйте и пишите свое мнение в комментариях 💬

❤️ — удалёнка навсегда, работаю в пижаме и счастлив
🤝 — только офис, нужны люди и границы
👾 — гибрид, ни нашим, ни вашим

Библиотека мобильного разработчика #междусобойчик
45👾22🤝3
🍏 Что такое tuple?

Tuple (кортеж) — это значение, которое можно использовать для объединения нескольких значений вместе, например, в виде пары.

Значения tuple не обязательно должны быть одного типа.

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

Например:

var coordinates3D = (1.0, 2.0, 5.0)


Чтобы получить доступ к значению внутри tuple, используйте точечную нотацию и индекс:

let xPos = coordinates3D.0


Кортежи также могут быть созданы таким образом, чтобы каждое значение имело имя:

var coordinates3D = (x: 1.0, y: 2.0, z: 5.0)


В этом случае вы можете получить доступ к определённому значению кортежа по его имени:

let xPos = coordinates3D.x


Библиотека мобильного разработчика #буст
3🥱1
👨‍💻 Сравнение Dagger 2, Dagger Hilt и Koin

Многие разработчики знакомы с такими широко известными инструментами внедрения зависимостей (DI), как Koin и Dagger. Оба инструмента решают одну задачу — управление зависимостями, но делают это по-разному.

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

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

Библиотека мобильного разработчика #буст
👍2
📝 Шпаргалка: Kotlin suspend функции

1. Что такое suspend функция

Suspend-функции — это специальные функции в Kotlin, предназначенные для работы с корутинами. Они позволяют приостанавливать выполнение кода без блокировки потока, что делает их идеальными для асинхронных операций (например, сетевых запросов, работы с базой данных или долгих вычислений). Ключевое слово suspend указывает компилятору, что функция может быть «приостановлена» и позже возобновлена, не занимая поток исполнения.

Мы можем вызвать suspend функцию только из корутины или из другой suspend функции и это гарантирует нам, что мы будем иметь доступ к Continuation и соответственно сможем написать правильную suspend функцию, которая сможет передать результат своей работы через объект Continuation.

2. Зачем нужны suspend-функции?

Основные цели:


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

Избежание «callback hell». Suspend-функции позволяют избежать вложенных колбэков, улучшая читаемость.

Эффективное использование ресурсов. Приостановка корутины не блокирует поток, что особенно важно в однопоточных средах (например, Android UI-поток).

Интеграция с корутинами. Suspend-функции могут вызываться только из другой suspend-функции или корутины.

3. Во что компилируются suspend-функции?

При компиляции suspend-функции преобразуются в объект «state machine». Каждая приостановка (например, вызов другой suspend-функции или delay) разбивает код на части, которые выполняются между точками приостановки.

Каждый вызов другой suspend-функции становится точкой приостановки. Компилятор разбивает код на блоки между этими точками и сохраняет:

• Текущий label (номер состояния).

• Локальные переменные.

Структура скомпилированного кода:

• Компилятор добавляет скрытый параметр Continuation (представляет контекст выполнения).

• Функция разбивается на блоки, соответствующие участкам кода между точками приостановки.

• Для каждого состояния генерируется отдельный case в switch-конструкции.

• Сохраняет локальные переменные и текущий label в объекте Continuation.

👉 Читать подробнее

Библиотека мобильного разработчика #буст
👍72
Media is too big
VIEW IN TELEGRAM
🧑‍💻 Какой язык программирования учить в 2025 году

Proglib рассказывает базу в формате рилса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🏃‍♀️ 40+ каналов, которые должен читать каждый разработчик

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

IT Job Hub | Работа и вакансии в IT — избранные IT-вакансии

Библиотека программиста — новости из мира IT и технологий

Книги для программистов — самые годные книги по любым языкам и стекам

IT-мемы — мемы про жизу айтишника

Proglib Academy — обучение и курсы, чтобы стать топовым специалистом

Азбука айтишника — азы из мира разработки

Библиотека нейросетей — лайфхаки и промпты для разных задач, баттлы нейронок и новости из мира ИИ

Библиотека фронтендера — все о JS, React, Angular и не только

Библиотека мобильного разработчика — лайфхаки и новости из мира Swift и Kotlin

Библиотека хакера — уязвимости, атаки, бэкдоры и как от них защититься

Библиотека тестировщика — самое интересное о том, как крашить код

🦫 Go
Библиотека Go-разработчика
Библиотека задач по Go
Библиотека Go для собеса
Вакансии по Go

#️⃣ C#
Библиотека шарписта
Библиотека задач по C#
Библиотека собеса по C#
Вакансии по C#

🔧 DevOps
Библиотека devops’а
Библиотека задач по DevOps
Библиотека собеса по DevOps
Вакансии по DevOps & SRE

🐘 PHP
Библиотека пхпшника
Библиотека задач по PHP
Библиотека PHP для собеса
Вакансии по PHP, Symfony, Laravel

🐍 Python
Библиотека питониста
Библиотека Python для собеса
Библиотека задач по Python
Вакансии по питону, Django, Flask

☕️ Java
Библиотека джависта
Библиотека задач по Java
Библиотека Java для собеса
Вакансии по Java

📊 Data Science
Библиотека дата-сайентиста
Библиотека задач по Data Science
Библиотека Data Science для собеса
Вакансии по Data Science

🎮 C++
Библиотека C/C++ разработчика
Библиотека задач по C++
Библиотека C++ для собеса
Вакансии по C++

Подписывайтесь на интересные вам каналы и сохраняйте пост в закладки, чтобы не потерять 🔑
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍1🔥1
🧩💊 Алгоритмическая самоуспокоенность: как мы разучились думать своей головой

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

Это не просто влияет на настроение, но и на способность анализировать информацию, принимать решения и, главное, не становиться частью системы манипуляций.

Если вы хотите вернуться к осознанному подходу в восприятии мира и научиться фильтровать контент, то эта тема точно для вас.

🔗 Подробнее в статье

🐸 Библиотека джависта
Please open Telegram to view this post
VIEW IN TELEGRAM
3
📝 Промпт для идеального документирования кода

Чтобы писать доку быстрее, используйте этот промпт для ChatGPT:


Include:
1. General description of functionality
2. Description of parameters and return values
3. Usage examples
4. Potential errors and how to fix them
5. Information about algorithm complexity, if applicableCode:[insert your code here]


Бонус: добавьте «Explain the logic in simple terms for a beginner developer», чтобы логику вашего кода понял даже новичок.

Как вы обычно документируете свой код? Делитесь в комментариях!

Библиотека мобильного разработчика #буст
🤝3🤔2
📲 ServerSocket для IPC в Android

Идея для статьи возникла из желания разобраться, как организовать общение между браузером и Android‑приложением для передачи данных. В поисках удобного решения автор обратил внимание на ServerSocket — простой и гибкий способ локального взаимодействия без лишних сложностей.

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

Библиотека мобильного разработчика #свежак
4
💬 Как оставлять комментарии в чате нашего канала

В нашем чате работает бот Shieldy — он защищает от спама, запрашивая у новых участников решение простой капчи.

⚠️ Проблема, с которой сталкиваются многие: вы нажимаете под постом «Прокомментировать», пишете что-то, а потом получаете бан и не можете писать комментарии.

Почему так: Shieldy отправляет капчу в сам чат, а не в комментарии под конкретный пост. Из-за этого капчу можно не увидеть, не отправить ответ на нее, и бот автоматически заблокирует вас.

Как присоединиться к чату, чтобы бот вас не забанил

— Зайдите в описание канала с телефона и нажмите кнопку Discuss / Чат
— Нажмите Join / Присоединиться
— Сразу обратите внимание на сообщение от бота Shieldy
— Решите простой пример и отправьте ответ в чат

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

❗️ Если вас все-таки забанили

— Это временная блокировка на несколько минут
— Подождите и попробуйте зайти позже, бот снова отправит вам капчу

Админы канала никак не могут ускорить процесс, бот автоматически снимает с вас блокировку через пару минут. Мы понимаем, что эта система неидеальна, и ищем более удобное решение.

👾 Спасибо, что активно участвуете в обсуждении наших постов!
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔1
🐛 Расскажите про ваш первый баг

Помните тот момент, когда вы впервые обнаружили баг в своём коде? Тот самый момент истины, когда монитор превратился в поле битвы между вами и компилятором, а Stack Overflow стал вашим лучшим другом?

Делитесь в комментариях своими историями о первом баге:

Что это был за проект?
— Как долго вы искали решение?
— Какие эмоции испытали, когда нашли причину?
— Какой урок вынесли?

Библиотека мобильного разработчика #междусобойчик
1
👨‍💻 Выжимаем максимум из код-ревью

Большинство разработчиков не любит проводить код-ревью. Все понимают, что это важно и нужно, могут с ходу назвать три-четыре причины необходимости этого процесса. Но раз за разом они всячески избегают его. Или участвуют в нём неэффективно.

Поэтому разрушим шаблоны — не будем акцентировать внимание на важности и полезности код-ревью, а разберёмся в причинах сложившейся неприязни к этому процессу. И попробуем понять, как с этим жить.

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

Библиотека мобильного разработчика #буст
😁51
📊 Собес по Data Science: 10 вопросов, которые разделяют джунов от мидлов

Залетай на тест, который валит даже мидлов! Собрали для тебя 10 каверзных вопросов, которые тимлиды обожают подкидывать на собесах. Здесь нет простых задачек — только те, на которых спотыкаются 80% кандидатов. Пройди этот челлендж, чтобы быть во всеоружии на следующем интервью.

Пройти тест

Библиотека мобильного разработчика #свежак
3
🧩 Айтишный кроссворд

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

1. Полезная фишечка.

2. Файлы и библиотеки, которые нужно использовать вместе, чтобы ускорить процесс загрузки страниц.

3. Перенос кода из разработки на рабочий сервер.

4. Готовый набор инструментов для разработки.

5. Полезная встреча айтишников.

6. Айтишник над айтишниками.

Попробуйте угадать!
Пишите ответы в комментариях 👇

Библиотека мобильного разработчика #междусобойчик
🥱5👏2