⚔️ Работать на удаленке или в офисе?
Понедельник, 9:00. Один разработчик в пижаме уже запустил IDE, держа в одной руке кота, а в другой — кофе. В это же время его коллега едет в офис, стоя в пробке и слушая подкаст с ускорением 1.5x. Две реальности современного разработчика. Но какая эффективнее?
Недавние исследования показывают, что продуктивность на удалёнке выше на 13%, НО... отчуждение и профессиональное выгорание тоже часто выше.
Где лучше писать код: дома с котом или в офисе с коллегами? Голосуйте и пишите свое мнение в комментариях 💬
❤️ — удалёнка навсегда, работаю в пижаме и счастлив
🤝 — только офис, нужны люди и границы
👾 — гибрид, ни нашим, ни вашим
Библиотека мобильного разработчика #междусобойчик
Понедельник, 9:00. Один разработчик в пижаме уже запустил IDE, держа в одной руке кота, а в другой — кофе. В это же время его коллега едет в офис, стоя в пробке и слушая подкаст с ускорением 1.5x. Две реальности современного разработчика. Но какая эффективнее?
Недавние исследования показывают, что продуктивность на удалёнке выше на 13%, НО... отчуждение и профессиональное выгорание тоже часто выше.
Где лучше писать код: дома с котом или в офисе с коллегами? Голосуйте и пишите свое мнение в комментариях 💬
❤️ — удалёнка навсегда, работаю в пижаме и счастлив
🤝 — только офис, нужны люди и границы
👾 — гибрид, ни нашим, ни вашим
Библиотека мобильного разработчика #междусобойчик
❤45👾22🤝3
📱 Приготовили для вас дайджест по актуальному из мира iOS, Android и кроссплатформы.
🔹 Производительный SwiftUI: используем UIKit
🔹 Эволюция шпионского софта под iOS
🔹 Объединяем Compose и View: бесшовное взаимодействие с помощью CompositionLocal
🔹 7 мощных возможностей Kotlin, используемых продвинутыми разработчиками
🔹 Решение задач распознавания на Flutter
Библиотека мобильного разработчика #свежак
🔹 Производительный SwiftUI: используем UIKit
🔹 Эволюция шпионского софта под iOS
🔹 Объединяем Compose и View: бесшовное взаимодействие с помощью CompositionLocal
🔹 7 мощных возможностей Kotlin, используемых продвинутыми разработчиками
🔹 Решение задач распознавания на Flutter
Библиотека мобильного разработчика #свежак
👍2🔥2
🍏 Что такое tuple?
Значения
Вы можете создать
Например:
Чтобы получить доступ к значению внутри 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. Оба инструмента решают одну задачу — управление зависимостями, но делают это по-разному.
Автор статьи анализирует принципиальные различия между ними, их плюсы и минусы, а также даёт рекомендации по выбору подходящего инструмента в зависимости от сложности и требований нового проекта.
👉 Читать статью
Библиотека мобильного разработчика #буст
Многие разработчики знакомы с такими широко известными инструментами внедрения зависимостей (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.
👉 Читать подробнее
Библиотека мобильного разработчика #буст
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.
👉 Читать подробнее
Библиотека мобильного разработчика #буст
👍7❤2
Media is too big
VIEW IN TELEGRAM
Proglib рассказывает базу в формате рилса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Отобрали для вас полезные и проверенные каналы для программистов — в них вы найдете все самое интересное, от технических новостей до практических гайдов.
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
Forwarded from Библиотека джависта | Java, Spring, Maven, Hibernate
🧩💊 Алгоритмическая самоуспокоенность: как мы разучились думать своей головой
Каждый день мы сталкиваемся с бесконечным потоком информации, которая не просто наполняет наш день, а управляет нашими мыслями. Социальные сети, алгоритмы и вечная гонка за вниманием приводят к тому, что мы забываем, как думать собственной головой.
Это не просто влияет на настроение, но и на способность анализировать информацию, принимать решения и, главное, не становиться частью системы манипуляций.
Если вы хотите вернуться к осознанному подходу в восприятии мира и научиться фильтровать контент, то эта тема точно для вас.
🔗 Подробнее в статье
🐸 Библиотека джависта
Каждый день мы сталкиваемся с бесконечным потоком информации, которая не просто наполняет наш день, а управляет нашими мыслями. Социальные сети, алгоритмы и вечная гонка за вниманием приводят к тому, что мы забываем, как думать собственной головой.
Это не просто влияет на настроение, но и на способность анализировать информацию, принимать решения и, главное, не становиться частью системы манипуляций.
Если вы хотите вернуться к осознанному подходу в восприятии мира и научиться фильтровать контент, то эта тема точно для вас.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
📝 Промпт для идеального документирования кода
Чтобы писать доку быстрее, используйте этот промпт для ChatGPT:
Бонус: добавьте «
⚡ Как вы обычно документируете свой код? Делитесь в комментариях!
Библиотека мобильного разработчика #буст
Чтобы писать доку быстрее, используйте этот промпт для 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‑приложением для передачи данных. В поисках удобного решения автор обратил внимание на
Прежде чем перейти к практической реализации, автор разбирает основные сценарии использования
Библиотека мобильного разработчика #свежак
Идея для статьи возникла из желания разобраться, как организовать общение между браузером и Android‑приложением для передачи данных. В поисках удобного решения автор обратил внимание на
ServerSocket
— простой и гибкий способ локального взаимодействия без лишних сложностей.Прежде чем перейти к практической реализации, автор разбирает основные сценарии использования
ServerSocket
и межпроцессного взаимодействия в рамках одного процесса и приводит примеры рабочего кода.Библиотека мобильного разработчика #свежак
❤4
В нашем чате работает бот Shieldy — он защищает от спама, запрашивая у новых участников решение простой капчи.
⚠️ Проблема, с которой сталкиваются многие: вы нажимаете под постом «Прокомментировать», пишете что-то, а потом получаете бан и не можете писать комментарии.
❓Почему так: Shieldy отправляет капчу в сам чат, а не в комментарии под конкретный пост. Из-за этого капчу можно не увидеть, не отправить ответ на нее, и бот автоматически заблокирует вас.
— Зайдите в описание канала с телефона и нажмите кнопку Discuss / Чат
— Нажмите Join / Присоединиться
— Сразу обратите внимание на сообщение от бота Shieldy
— Решите простой пример и отправьте ответ в чат
После этого бот отправит приветственное сообщение и вы сможете оставлять комментарии. Эту проверку нужно пройти только один раз при вступлении в чат.
❗️ Если вас все-таки забанили
— Это временная блокировка на несколько минут
— Подождите и попробуйте зайти позже, бот снова отправит вам капчу
Админы канала никак не могут ускорить процесс, бот автоматически снимает с вас блокировку через пару минут. Мы понимаем, что эта система неидеальна, и ищем более удобное решение.
👾 Спасибо, что активно участвуете в обсуждении наших постов!
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔1
🐛 Расскажите про ваш первый баг
Помните тот момент, когда вы впервые обнаружили баг в своём коде? Тот самый момент истины, когда монитор превратился в поле битвы между вами и компилятором, а Stack Overflow стал вашим лучшим другом?
Делитесь в комментариях своими историями о первом баге:
— Что это был за проект?
— Как долго вы искали решение?
— Какие эмоции испытали, когда нашли причину?
— Какой урок вынесли?
Библиотека мобильного разработчика #междусобойчик
Помните тот момент, когда вы впервые обнаружили баг в своём коде? Тот самый момент истины, когда монитор превратился в поле битвы между вами и компилятором, а Stack Overflow стал вашим лучшим другом?
Делитесь в комментариях своими историями о первом баге:
— Что это был за проект?
— Как долго вы искали решение?
— Какие эмоции испытали, когда нашли причину?
— Какой урок вынесли?
Библиотека мобильного разработчика #междусобойчик
❤1
👨💻 Выжимаем максимум из код-ревью
Большинство разработчиков не любит проводить код-ревью. Все понимают, что это важно и нужно, могут с ходу назвать три-четыре причины необходимости этого процесса. Но раз за разом они всячески избегают его. Или участвуют в нём неэффективно.
Поэтому разрушим шаблоны — не будем акцентировать внимание на важности и полезности код-ревью, а разберёмся в причинах сложившейся неприязни к этому процессу. И попробуем понять, как с этим жить.
👉 Читать статью
Библиотека мобильного разработчика #буст
Большинство разработчиков не любит проводить код-ревью. Все понимают, что это важно и нужно, могут с ходу назвать три-четыре причины необходимости этого процесса. Но раз за разом они всячески избегают его. Или участвуют в нём неэффективно.
Поэтому разрушим шаблоны — не будем акцентировать внимание на важности и полезности код-ревью, а разберёмся в причинах сложившейся неприязни к этому процессу. И попробуем понять, как с этим жить.
👉 Читать статью
Библиотека мобильного разработчика #буст
😁5❤1
📊 Собес по Data Science: 10 вопросов, которые разделяют джунов от мидлов
Залетай на тест, который валит даже мидлов! Собрали для тебя 10 каверзных вопросов, которые тимлиды обожают подкидывать на собесах. Здесь нет простых задачек — только те, на которых спотыкаются 80% кандидатов. Пройди этот челлендж, чтобы быть во всеоружии на следующем интервью.
✅ Пройти тест
Библиотека мобильного разработчика #свежак
Залетай на тест, который валит даже мидлов! Собрали для тебя 10 каверзных вопросов, которые тимлиды обожают подкидывать на собесах. Здесь нет простых задачек — только те, на которых спотыкаются 80% кандидатов. Пройди этот челлендж, чтобы быть во всеоружии на следующем интервью.
✅ Пройти тест
Библиотека мобильного разработчика #свежак
❤3
🧩 Айтишный кроссворд
Держите кроссворд — зашифровали 6 понятий, часто используемых среди разработчиков.
1. Полезная фишечка.
2. Файлы и библиотеки, которые нужно использовать вместе, чтобы ускорить процесс загрузки страниц.
3. Перенос кода из разработки на рабочий сервер.
4. Готовый набор инструментов для разработки.
5. Полезная встреча айтишников.
6. Айтишник над айтишниками.
Попробуйте угадать!
Пишите ответы в комментариях 👇
Библиотека мобильного разработчика #междусобойчик
Держите кроссворд — зашифровали 6 понятий, часто используемых среди разработчиков.
1. Полезная фишечка.
2. Файлы и библиотеки, которые нужно использовать вместе, чтобы ускорить процесс загрузки страниц.
3. Перенос кода из разработки на рабочий сервер.
4. Готовый набор инструментов для разработки.
5. Полезная встреча айтишников.
6. Айтишник над айтишниками.
Попробуйте угадать!
Пишите ответы в комментариях 👇
Библиотека мобильного разработчика #междусобойчик
🥱5👏2
📱 Приготовили для вас дайджест по актуальному из мира iOS, Android и кроссплатформы.
🔹 Соединяем две точки с помощью отрезков прямых линий и закругленных углов в SwiftUI
🔹 Разработка под Apple Vision Pro
🔹 Ликбез по разрешениям в Android
🔹 Создаём многомодульную библиотеку на Android: как же собрать fat-aar?
🔹 Полезные библиотеки для React-приложений в 2025 году: на что обратить внимание
Библиотека мобильного разработчика #свежак
🔹 Соединяем две точки с помощью отрезков прямых линий и закругленных углов в SwiftUI
🔹 Разработка под Apple Vision Pro
🔹 Ликбез по разрешениям в Android
🔹 Создаём многомодульную библиотеку на Android: как же собрать fat-aar?
🔹 Полезные библиотеки для React-приложений в 2025 году: на что обратить внимание
Библиотека мобильного разработчика #свежак
❤2
👾 Это база: companion object (также Singleton)
Объекты можно объявлять внутри класса, при этом нет каких-либо ограничений по их количеству. Но только один объект можно пометить ключевым словом
Синглтон-свойство
Важно отметить, что
Такому объекту можно не указывать свое имя, и обращаться к методам и свойствам объекта через имя содержащего его класса без явного указания имени объекта.
Компилируется в
Библиотека мобильного разработчика #буст
Объекты можно объявлять внутри класса, при этом нет каких-либо ограничений по их количеству. Но только один объект можно пометить ключевым словом
companion object
в рамках одного класса.Синглтон-свойство
companion object
достигается за счет того, что он создается внутри класса в качестве статического поля. Он будет инициализирован при первом обращении к нему или при создании первого экземпляра класса, в котором он объявлен.Важно отметить, что
companion object
будет инициализирован первым, а затем уже будет создан экземпляр класса:class MyClass {
init {
// Выполняется всегда после инициализации companion object
}
companion object {
init {
// Выполняется всегда перед блоком init содержащего класса
}}}
val myClass = MyClass()
Такому объекту можно не указывать свое имя, и обращаться к методам и свойствам объекта через имя содержащего его класса без явного указания имени объекта.
class SomeClass {
companion object {
fun create()
}
}
val someClass = SomeClass.create()
Компилируется в
public static final class
на Java. Работает подобно ключевому слову static
в Java.Библиотека мобильного разработчика #буст
❤7
Forwarded from Библиотека девопса | DevOps, SRE, Sysadmin
☸️ CKAD 2025. Самый свежий гайд по сдаче сертификации Certified Kubernetes Application Developer
CKAD стал более строгим к деталям — без системной подготовки можно завалить даже на банальных заданиях. Если хочется разобраться, что важно для получения сертификации — эта статья сэкономит часы.
➡️ Читать статью
🐸 Библиотека devops'a
CKAD стал более строгим к деталям — без системной подготовки можно завалить даже на банальных заданиях. Если хочется разобраться, что важно для получения сертификации — эта статья сэкономит часы.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2