tgoop.com »
United States »
Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck » Telegram Web
🤔 Деньги или любимое дело?
Вопрос о выборе между работой, которая не приносит удовольствия, но обеспечивает высокий доход, и любимым делом с низкой зарплатой волнует многих. Каждый из нас сталкивается с этой дилеммой, и порой решение оказывается непростым.
Что важнее для вас: финансовая стабильность или удовлетворение от работы. Какой путь выберете вы? Голосуйте и пишите своё мнение в комментариях 💬
❤️ — работать не нелюбимой работе и много зарабатывать
🤝 — на любимой работе за маленькую зп
Библиотека мобильного разработчика #междусобойчик
Вопрос о выборе между работой, которая не приносит удовольствия, но обеспечивает высокий доход, и любимым делом с низкой зарплатой волнует многих. Каждый из нас сталкивается с этой дилеммой, и порой решение оказывается непростым.
Что важнее для вас: финансовая стабильность или удовлетворение от работы. Какой путь выберете вы? Голосуйте и пишите своё мнение в комментариях 💬
❤️ — работать не нелюбимой работе и много зарабатывать
🤝 — на любимой работе за маленькую зп
Библиотека мобильного разработчика #междусобойчик
❤15🤝14
📱 Приготовили для вас дайджест по актуальному из мира iOS, Android и кроссплатформы.
🔹 Настраиваем работу с iOS-проектами в Zed
🔹 Расследуем дело асинхронного программирования с Леонидом Каневским
🔹 Хакнуть Qt: как мы запускали Picture-in-Picture в навигаторе 2ГИС
🔹 Как мы ускоряли Android-сборку «селлера»
🔹 Автоматизация версионирования в Kotlin Multiplatform: Решение для Android и iOS
Библиотека мобильного разработчика #свежак
🔹 Настраиваем работу с iOS-проектами в Zed
🔹 Расследуем дело асинхронного программирования с Леонидом Каневским
🔹 Хакнуть Qt: как мы запускали Picture-in-Picture в навигаторе 2ГИС
🔹 Как мы ускоряли Android-сборку «селлера»
🔹 Автоматизация версионирования в Kotlin Multiplatform: Решение для Android и iOS
Библиотека мобильного разработчика #свежак
🔥2
📝 Шпаргалка: автозамыкание (autoclosure) в Swift
Автозамыкание оборачивает аргумент функции в замыкание.
Когда вызывается autoclosure, оно возвращает значение выражения, завернутого внутрь.
Автозамыкание — это не что иное, как синтаксическое удобство для написания более чистого кода.
Иногда синтаксически удобно использовать
Это происходит потому, что
Это может сделать код более читабельным.
Однако помните, что Apple говорит об использовании автозамыканий :
Вот пример того, как
Как видите, вызов функции
Библиотека мобильного разработчика #буст
Автозамыкание оборачивает аргумент функции в замыкание.
Когда вызывается autoclosure, оно возвращает значение выражения, завернутого внутрь.
Автозамыкание — это не что иное, как синтаксическое удобство для написания более чистого кода.
Иногда синтаксически удобно использовать
autoclosure
при работе с функцией, которая принимает аргумент замыкания.Это происходит потому, что
autoclosure
позволяет не использовать фигурные скобки {}
.Это может сделать код более читабельным.
Однако помните, что Apple говорит об использовании автозамыканий :
Обычно принято вызывать функции, которые принимают autoclosure, но не принято реализовывать такого рода функции.
Вот пример того, как
autoclosure
упрощает код. В первом фрагменте используется обычное замыкание, а во втором — autoclosure
. Посмотрите, как вызов функции I_will
стал более читабельным во втором фрагменте:
func I_will(_ perform_action: () -> Void) {
perform_action()
}
I_will({
print(«Hello, world!»)
})
func I_will(_ perform_action: @autoclosure () -> Void) {
perform_action()
}
I_will(print(«Hello, world»))
Как видите, вызов функции
I_will
больше не требует использования фигурных скобок.Библиотека мобильного разработчика #буст
❤3😁1
🚰 Топ-7 утечек памяти Android
Утечки памяти — тихие убийцы производительности приложений. Даже в 2025 году, когда Jetpack Compose доминирует в разработке пользовательских интерфейсов и появляются новые модные инструменты, эти ошибки все еще преследуют разработчиков.
Автор статьи разберет 7 наиболее распространенных виновников и вооружит вас проверенными в бою решениями.
👉 Читать статью
Библиотека мобильного разработчика #свежак
Утечки памяти — тихие убийцы производительности приложений. Даже в 2025 году, когда Jetpack Compose доминирует в разработке пользовательских интерфейсов и появляются новые модные инструменты, эти ошибки все еще преследуют разработчиков.
Автор статьи разберет 7 наиболее распространенных виновников и вооружит вас проверенными в бою решениями.
👉 Читать статью
Библиотека мобильного разработчика #свежак
👍5🥱2❤1
🗓️ Апрель будет насыщен конференциями и профильными тусовками разного масштаба.
🔹 Gamedev CityFest
• Когда: 5 апреля
• Где: Новосибирск
• Формат: офлайн
• Участие: платное
Конференция будет интересна разработчикам игр: как профессионалам направления, так и новичкам, издателям, гейм-дизайнерам, художникам, продюсерам, рекрутерам и другим специалистам индустрии. Участников ждёт три потока докладов, воркшоп и дискуссионная панель на актуальные темы.
🔹 HolyJS 2025 Spring
• Когда: 7-8 апреля
• Где: Москва
• Формат: онлайн и офлайн
• Участие: платное
Спикеры на конференции разберут JS-разработку с разных ракурсов: веб-технологии, Node.js, графика и анимации, web3, блокчейн. Будут разобраны реальные кейсы и подняты вопросы безопасности. Участники обменяются опытом, обсудят обновление языка JavaScript, поговорят о фреймворках и инструментах, а также поучаствуют в дискуссиях со спикерами.
👉 Читать полностью
Библиотека мобильного разработчика #свежак
🔹 Gamedev CityFest
• Когда: 5 апреля
• Где: Новосибирск
• Формат: офлайн
• Участие: платное
Конференция будет интересна разработчикам игр: как профессионалам направления, так и новичкам, издателям, гейм-дизайнерам, художникам, продюсерам, рекрутерам и другим специалистам индустрии. Участников ждёт три потока докладов, воркшоп и дискуссионная панель на актуальные темы.
🔹 HolyJS 2025 Spring
• Когда: 7-8 апреля
• Где: Москва
• Формат: онлайн и офлайн
• Участие: платное
Спикеры на конференции разберут JS-разработку с разных ракурсов: веб-технологии, Node.js, графика и анимации, web3, блокчейн. Будут разобраны реальные кейсы и подняты вопросы безопасности. Участники обменяются опытом, обсудят обновление языка JavaScript, поговорят о фреймворках и инструментах, а также поучаствуют в дискуссиях со спикерами.
👉 Читать полностью
Библиотека мобильного разработчика #свежак
❤2
🎭 Dev Memes: 1 апреля, а баги всё те же
Сегодня день официально разрешённого троллинга — и мы не могли пройти мимо. Собрали подборку мемов для мобильного разработчика, которые вызывают лёгкое желание уволиться.
👉 Всё это — из нашего мемного канала «Библиотека IT-мемов»
Библиотека мобильного разработчика
Сегодня день официально разрешённого троллинга — и мы не могли пройти мимо. Собрали подборку мемов для мобильного разработчика, которые вызывают лёгкое желание уволиться.
👉 Всё это — из нашего мемного канала «Библиотека IT-мемов»
Библиотека мобильного разработчика
😁7
🎰 Инструмент недели: SDK для скретч-карт
Scratchify — это легкий и настраиваемый SDK для скретч-карт, созданный с использованием Jetpack Compose Multiplatform (поддерживает Android и iOS). Он позволяет создавать интерактивные скретч-поверхности, на которых пользователи могут соскрести верхний слой, чтобы открыть скрытый под ней контент. Идеально подходит для поощрений, скидок, сюрпризов и элементов геймификации в вашем приложении.
⚙️ Scratchify на GitHub
Библиотека мобильного разработчика #буст
Scratchify — это легкий и настраиваемый SDK для скретч-карт, созданный с использованием Jetpack Compose Multiplatform (поддерживает Android и iOS). Он позволяет создавать интерактивные скретч-поверхности, на которых пользователи могут соскрести верхний слой, чтобы открыть скрытый под ней контент. Идеально подходит для поощрений, скидок, сюрпризов и элементов геймификации в вашем приложении.
⚙️ Scratchify на GitHub
Библиотека мобильного разработчика #буст
❤2
Forwarded from Proglib.academy | IT-курсы
🧐 Разбираемся: FAANG — не мечта, а капкан
Раньше работа в Google или Meta казалась вершиной айтишной карьеры. Сейчас — всё чаще звучат слова «стресс», «сокращения», «выгорание».
➡️ В статье разбираем
— Почему бывшие сотрудники бегут из FAANG
— Как изменилась культура внутри Big Tech
— Где теперь искать стабильность и уважение
— Реальные комментарии от действующих инженеров
— И что на самом деле стоит за блестящей обёрткой FAANG
Если вы всё ещё решаете LeetCode ради «заветной должности» — обязательно прочитайте нашу статью.
📎 Ссылка
🔵 Включайся в обучение и устраивайся куда хочешь, тебя ждет продвинутый этап нашего курса «Алгоритмы и структуры данных»
Раньше работа в Google или Meta казалась вершиной айтишной карьеры. Сейчас — всё чаще звучат слова «стресс», «сокращения», «выгорание».
— Почему бывшие сотрудники бегут из FAANG
— Как изменилась культура внутри Big Tech
— Где теперь искать стабильность и уважение
— Реальные комментарии от действующих инженеров
— И что на самом деле стоит за блестящей обёрткой FAANG
Если вы всё ещё решаете LeetCode ради «заветной должности» — обязательно прочитайте нашу статью.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1🤔1
📝 Промпт для идеального код ревью
Чтобы облегчить код ревью, используйте этот промпт для ChatGPT:
⚡ Как вы обычно проводите код ревью? Делитесь в комментариях!
Библиотека мобильного разработчика #буст
Чтобы облегчить код ревью, используйте этот промпт для ChatGPT:
1. Проанализируй приведенный [язык] код на предмет признаков проблемного кода и предложи улучшения: [фрагмент кода].
2. Проверь [язык] код на предмет правильности логирования и мониторинга: [фрагмент кода].
3. Проанализируй [язык] код на предмет потенциальных проблем масштабируемости: [фрагмент кода].
4. Оцени тестовое покрытие этого [язык] кода: [фрагмент кода].
5. Оцени [язык] код на совместимость с [платформой или технологией]: [фрагмент кода].
⚡ Как вы обычно проводите код ревью? Делитесь в комментариях!
Библиотека мобильного разработчика #буст
🤩2
💻 How to: реализовать кастомный делегат
Чтобы написать кастомный делегат, нужно определить класс, который реализует интерфейс
Классы, реализующие
•
•
Например, рассмотрим создание кастомного делегата для логирования изменения значения свойства:
Здесь мы определяем класс
Затем мы можем использовать наш кастомный делегат следующим образом:
Здесь мы создаем экземпляр класса
👉 Подробнее в статье
Библиотека мобильного разработчика #буст
Чтобы написать кастомный делегат, нужно определить класс, который реализует интерфейс
ReadOnlyProperty
для делегата val
или ReadWriteProperty
для делегата var.Классы, реализующие
ReadOnlyProperty
и ReadWriteProperty
, содержат два метода:•
getValue(thisRef: T, property: KProperty<*>): R,
который должен возвращать значение свойства.•
setValue(thisRef: T, property: KProperty<*>, value: R)
, который должен устанавливать значение свойства.Например, рассмотрим создание кастомного делегата для логирования изменения значения свойства:
class LoggingDelegate(private var value: T) : ReadWriteProperty {override fun getValue(thisRef: Any?, property: KProperty): T {println(«Getting value of ${property.name}: $value»)return value}override fun setValue(thisRef: Any?, property: KProperty, value: T) {println(«Setting value of ${property.name} to $value»)this.value = value}}
Здесь мы определяем класс
LoggingDelegate
, который реализует интерфейс ReadWriteProperty
. Метод getValue
выводит в консоль текущее значение свойства и возвращает его, а метод setValue
выводит новое значение свойства в консоль и сохраняет его в переменной value
.Затем мы можем использовать наш кастомный делегат следующим образом:
class MyClass {var myProperty: Int by LoggingDelegate(0)}fun main() {val obj = MyClass()obj.myProperty = 42 // Setting value of myProperty to 42println(obj.myProperty) // Getting value of myProperty: 42}
Здесь мы создаем экземпляр класса
MyClass
, который содержит свойство myProperty
, использующее наш кастомный делегат LoggingDelegate
. При установке значения свойства или получении его значения будут вызываться соответствующие методы нашего делегата, и мы увидим соответствующие сообщения в консоли.👉 Подробнее в статье
Библиотека мобильного разработчика #буст
🤩2👍1
⚔️ Микросервисы vs. Монолит
В мире разработки программного обеспечения выбор архитектурного подхода — это один из самых важных и стратегических шагов.
На одной стороне баррикад стоят микросервисы, обещающие гибкость, масштабируемость и независимость команд. На другой — монолитные приложения, которые, несмотря на свою кажущуюся устарелость, продолжают привлекать разработчиков своей простотой и целостностью.
Какой подход лучше? Микросервисы действительно обеспечивают более быструю разработку и развёртывание, или же монолиты всё ещё имеют свои преимущества в стабильности и управляемости?
❤️ — Микросервисы
🤝 — Монолит
Библиотека мобильного разработчика #междусобойчик
В мире разработки программного обеспечения выбор архитектурного подхода — это один из самых важных и стратегических шагов.
На одной стороне баррикад стоят микросервисы, обещающие гибкость, масштабируемость и независимость команд. На другой — монолитные приложения, которые, несмотря на свою кажущуюся устарелость, продолжают привлекать разработчиков своей простотой и целостностью.
Какой подход лучше? Микросервисы действительно обеспечивают более быструю разработку и развёртывание, или же монолиты всё ещё имеют свои преимущества в стабильности и управляемости?
❤️ — Микросервисы
🤝 — Монолит
Библиотека мобильного разработчика #междусобойчик
🤝8❤6🥱4
⛓️ Распутываем легаси-код на Android проекте
Попадая на новый проект с долгой историей, вас неизбежно ждёт легаси-код. Возможно, проект прошёл через несколько команд, и теперь он в ваших руках. Бывает, что на проекте уже нет контекст-овнера, а на любой вопрос тимлид отвечает: «Так исторически сложилось».
Приложение может тормозить, состояние определяться десятками мутабельных переменных. Фризы, утечки памяти, файлы на сотни, а то и тысячи строк кода. Год-обжекты. Знакомо?
Автор даёт несколько советов, которые помогут разобраться в происходящем и распутать спагетти-код.
👉 Читать статью
Библиотека мобильного разработчика #свежак
Попадая на новый проект с долгой историей, вас неизбежно ждёт легаси-код. Возможно, проект прошёл через несколько команд, и теперь он в ваших руках. Бывает, что на проекте уже нет контекст-овнера, а на любой вопрос тимлид отвечает: «Так исторически сложилось».
Приложение может тормозить, состояние определяться десятками мутабельных переменных. Фризы, утечки памяти, файлы на сотни, а то и тысячи строк кода. Год-обжекты. Знакомо?
Автор даёт несколько советов, которые помогут разобраться в происходящем и распутать спагетти-код.
👉 Читать статью
Библиотека мобильного разработчика #свежак
❤2😢1
Forwarded from Proglib.academy | IT-курсы
Математика в действии — как уравнения, придуманные века назад, сегодня управляют интернетом, медициной, космосом и вашими финансами.
— Как египтяне строили пирамиды с помощью математики
— Почему Wi-Fi и JPEG невозможны без преобразования Фурье
— Что объединяет кота Шредингера и квантовые компьютеры
— Как формула Гаусса управляет фондовыми рынками
— И при чём тут Джеймс Гарфилд и i² = –1
🔗 Читайте статью
Proglib Academy
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1