👑 Одна билд-система, чтоб править всеми
Все iOS-разработчики привязаны к определенным системам сборки. Например, Tuist или CocoaPods. Когда на рынке появляется новое решение, мы не можем быстро взять и проверить, как оно работает, поскольку наш проект жестко описан и привязан к конкретной системе сборки.
В докладе автор разберет, как перестать полностью фиксировать описание проекта в файлах и как написать абстрактную билд-систему, которая реализует кеширование. К этой билд-системе можно подключать что угодно для сборки вашего проекта: тот же Tuist или Bazel.
👀 Смотреть доклад
#новость #ios
Все iOS-разработчики привязаны к определенным системам сборки. Например, Tuist или CocoaPods. Когда на рынке появляется новое решение, мы не можем быстро взять и проверить, как оно работает, поскольку наш проект жестко описан и привязан к конкретной системе сборки.
В докладе автор разберет, как перестать полностью фиксировать описание проекта в файлах и как написать абстрактную билд-систему, которая реализует кеширование. К этой билд-системе можно подключать что угодно для сборки вашего проекта: тот же Tuist или Bazel.
👀 Смотреть доклад
#новость #ios
👍2❤1
👾 Почему классы в Kotlin по умолчанию final?
Классы в Kotlin по умолчанию являются
В Kotlin рекомендуется использовать композицию вместо наследования для повторного использования кода и расширения функциональности.
#kotlin
Классы в Kotlin по умолчанию являются
final
для того, чтобы избежать случайного наследования и переопределения методов. Это сделано для повышения безопасности кода и уменьшения сложности программы, так как ограничение наследования помогает избежать ошибок, связанных с неожиданным изменением поведения унаследованных методов.В Kotlin рекомендуется использовать композицию вместо наследования для повторного использования кода и расширения функциональности.
#kotlin
🥰6👍2
🛠️ Giffy — клиент Giphy на чистой архитектуре
Giffy — клиентское приложение для Giphy, созданное с использованием таких интересных технологий для iOS, как TCA (The Composable Architecture by Point-Free), Swinject, SwiftUI, Чистая архитектура с подходом Generic Protocol, модуляризация SPM и XcodeGen.
⚙️ Giffy на GitHub
#новость #ios
Giffy — клиентское приложение для Giphy, созданное с использованием таких интересных технологий для iOS, как TCA (The Composable Architecture by Point-Free), Swinject, SwiftUI, Чистая архитектура с подходом Generic Protocol, модуляризация SPM и XcodeGen.
⚙️ Giffy на GitHub
#новость #ios
❤3🤩1
🧹 Чистим Android-проект просто и правильно
При разработке Android-приложений дисковое пространство может быстро загрязняться результатами сборки, кэшами Gradle и конфигурационными файлами IDE.
По умолчанию команда Android Studio «Build → Clean Project» удаляет не все. Могут накапливаться кэши, артефакты из модулей, остатки файлов Gradle и результаты сборки.
В этой статье представлен один скрипт, который комплексно решает все эти проблемы, с фантастическим выводом консоли, показывающим использование пространства до и после. Мы рассмотрим macOS/Linux (с помощью Bash) и Windows (с помощью Batch), а также проясним, как Lite-чистка скрипта сравнивается с Build → Clean Project с точки зрения освобождаемого дискового пространства и объема проекта.
👉 Читать статью
#новость #android
При разработке Android-приложений дисковое пространство может быстро загрязняться результатами сборки, кэшами Gradle и конфигурационными файлами IDE.
По умолчанию команда Android Studio «Build → Clean Project» удаляет не все. Могут накапливаться кэши, артефакты из модулей, остатки файлов Gradle и результаты сборки.
В этой статье представлен один скрипт, который комплексно решает все эти проблемы, с фантастическим выводом консоли, показывающим использование пространства до и после. Мы рассмотрим macOS/Linux (с помощью Bash) и Windows (с помощью Batch), а также проясним, как Lite-чистка скрипта сравнивается с Build → Clean Project с точки зрения освобождаемого дискового пространства и объема проекта.
👉 Читать статью
#новость #android
❤2👍2
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
❤2
🚛 Переезд с UIKIT на SwiftUI
В 2019 году компания Apple презентовала фреймворк SwiftUI. Изначально это был бесполезный, максимально сырой набор инструментов. Время шло, SwiftUI совершенствовался. Теперь на нем пишут стартапы, компании начинают внедрять его в проекты, «знание SwiftUI» все чаще появляется в вакансиях iOS разработчиков. Пора переходить с UIKit на SwiftUI.
👀 Смотреть видео
#новость #ios
В 2019 году компания Apple презентовала фреймворк SwiftUI. Изначально это был бесполезный, максимально сырой набор инструментов. Время шло, SwiftUI совершенствовался. Теперь на нем пишут стартапы, компании начинают внедрять его в проекты, «знание SwiftUI» все чаще появляется в вакансиях iOS разработчиков. Пора переходить с UIKit на SwiftUI.
👀 Смотреть видео
#новость #ios
❤7
📱 Приготовили для вас дайджест по актуальному из мира iOS, Android и кроссплатформы.
🔹 Как новая функция Xcode 16 помогла избавиться от 66,000 строк кода
🔹 Что такое Lazy Variables в Swift
🔹 Олег Афанасьев про причину создания Rustore и будущее Play Market
🔹 Google открывает доступ к Home API
🔹 PWA vs Native App. Как и зачем в Альфа-Бизнесе создавали свой MobileWeb
#дайджест
🔹 Как новая функция Xcode 16 помогла избавиться от 66,000 строк кода
🔹 Что такое Lazy Variables в Swift
🔹 Олег Афанасьев про причину создания Rustore и будущее Play Market
🔹 Google открывает доступ к Home API
🔹 PWA vs Native App. Как и зачем в Альфа-Бизнесе создавали свой MobileWeb
#дайджест
❤2👏2😁1
👋 Привет, мобильные разработчики!
Мы ищем участников для интервью на тему «Обучение навыкам в IT»!
Кто нам нужен?
✅ Вы недавно (в последние 6 месяцев) проходили курсы по техническим специальностям или математике.
✅ Вы разработчик, стремящийся освоить Data Science или Machine Learning.
Что вас ждет?
Участие в интервью по Zoom, которое займет не больше 45 минут.📞
🤑 1500 рублей на карту за ваше время.
Уникальный шанс пообщаться с нашим CEO! 😎
Как откликнуться?
✏️ Напишите в личные сообщения @artem_ceo
Мы ищем участников для интервью на тему «Обучение навыкам в IT»!
Кто нам нужен?
✅ Вы недавно (в последние 6 месяцев) проходили курсы по техническим специальностям или математике.
✅ Вы разработчик, стремящийся освоить Data Science или Machine Learning.
Что вас ждет?
Участие в интервью по Zoom, которое займет не больше 45 минут.📞
🤑 1500 рублей на карту за ваше время.
Уникальный шанс пообщаться с нашим CEO! 😎
Как откликнуться?
✏️ Напишите в личные сообщения @artem_ceo
❤2🎉1
🚙 Kotlin Coroutines под капотом
Вероятнее всего у вас спрашивали на собесе «как работают корутины под капотом?», вы не долго думая выбрасывали что‑то в стиле «там под капотом стейт‑машина, она определяет какая suspend функция будет выполняться», но понимали ли вы на самом деле всё о чем говорили?
В этой статье автор погружается в детали реализации корутин, объясняя ключевые концепты, такие как контексты, диспетчеры и механизмы отмены.
#новость #android #kotlin
Вероятнее всего у вас спрашивали на собесе «как работают корутины под капотом?», вы не долго думая выбрасывали что‑то в стиле «там под капотом стейт‑машина, она определяет какая suspend функция будет выполняться», но понимали ли вы на самом деле всё о чем говорили?
В этой статье автор погружается в детали реализации корутин, объясняя ключевые концепты, такие как контексты, диспетчеры и механизмы отмены.
#новость #android #kotlin
🔥6👍1👏1
🍏 Что такое перечисления (enumerations) в Swift?
Перечисление (enumeration)- это группа связанных значений.
Перечисления позволяют писать безопасный для типов код.
Теперь в своем коде вы можете вызвать, например,
Больше информации о перечислениях можно прочесть в этой статье.
#swift
Перечисление (enumeration)- это группа связанных значений.
Перечисления позволяют писать безопасный для типов код.
enum Direction {
case North
case East
case South
case West
}
Теперь в своем коде вы можете вызвать, например,
Direction.North
, вместо того чтобы использовать мистическую строку «North»
(которая легко может быть неправильно написана и вызвать раздражающие ошибки).Больше информации о перечислениях можно прочесть в этой статье.
#swift
🥱5❤1
Самые полезные каналы для программистов в одной подборке!
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
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 запрещена на территории РФ
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
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 запрещена на территории РФ
🥰1🌚1
📁 Примеры использования File Templates для типовых сценариев, где требуется шаблонный код
Это вторая статья из цикла про File Templates. В предыдущей части автор описал проблему с необходимостью написания шаблонного кода и вариантами решения, познакомил с инструментом шаблонов File Templates и разобрал синтаксис написания шаблонов.
В этой статье автор перейдет к практике — напишет шаблоны для кода типового экрана SomeFeature мобильного приложения.
👉 Читать статью
#новость #android #kotlin
Это вторая статья из цикла про File Templates. В предыдущей части автор описал проблему с необходимостью написания шаблонного кода и вариантами решения, познакомил с инструментом шаблонов File Templates и разобрал синтаксис написания шаблонов.
В этой статье автор перейдет к практике — напишет шаблоны для кода типового экрана SomeFeature мобильного приложения.
👉 Читать статью
#новость #android #kotlin
🔥3
✏️ CodeEditTextView — редактор кода
CodeEditTextView — текстовый редактор (замена NSTextView) для отображения и редактирования кода. Особенности: базовое редактирование текста, чрезвычайно быстрая начальная верстка, поддержка работы с большими документами, возможности настройки кодовых документов
⚙️ CodeEditTextView на GitHub
#ios
CodeEditTextView — текстовый редактор (замена NSTextView) для отображения и редактирования кода. Особенности: базовое редактирование текста, чрезвычайно быстрая начальная верстка, поддержка работы с большими документами, возможности настройки кодовых документов
⚙️ CodeEditTextView на GitHub
#ios
❤2😁2
👨💻 Что делаете во время кодинга?
👍 — слушаю музыку
❤️ — смотрю видео
👏 — работаю в полной тишине
🤩 — другое (напишу в комментариях)
👍 — слушаю музыку
❤️ — смотрю видео
👏 — работаю в полной тишине
🤩 — другое (напишу в комментариях)
👍49👏30❤7🤩3
📱 Запускаем приложения на своём iOS-симуляторе
Создание симулятора iOS для запуска приложений на macOS открывает новые горизонты в мобильной разработке.
В докладе рассматриваются внутренние аспекты iOS-приложений, включая формат Mach-O, динамическая подгрузка библиотек в рантайме и выделение памяти под выполняемый код. Автор также расскажет как запускать приложения, собранные через Xcode для iOS, внутри macOS.
👀 Смотреть доклад
#новость #ios
Создание симулятора iOS для запуска приложений на macOS открывает новые горизонты в мобильной разработке.
В докладе рассматриваются внутренние аспекты iOS-приложений, включая формат Mach-O, динамическая подгрузка библиотек в рантайме и выделение памяти под выполняемый код. Автор также расскажет как запускать приложения, собранные через Xcode для iOS, внутри macOS.
👀 Смотреть доклад
#новость #ios
❤3🥰2
👨💻 Топ-5 популярных вопросов на Android собеседовании [2025]
Cобеседования в IT — это всегда вызов и Android тут, конечно же, не исключение. Для успешного прохождения интервью в крупные и востребованные компании современный Android-разработик должен держать в голове огромное количетсво областей.
К счастью, многие вопросы пересекаются между компаниями, так что наработав некоторую «базу» из них вы сильно повысите свои шансы на положительный результат и заветный оффер.
В статье автор разберет топ-5 вопросов, с которыми можно столкнуться в крупных компаниях на российском рынке.
👉 Читать статью
#дайджест
Cобеседования в IT — это всегда вызов и Android тут, конечно же, не исключение. Для успешного прохождения интервью в крупные и востребованные компании современный Android-разработик должен держать в голове огромное количетсво областей.
К счастью, многие вопросы пересекаются между компаниями, так что наработав некоторую «базу» из них вы сильно повысите свои шансы на положительный результат и заветный оффер.
В статье автор разберет топ-5 вопросов, с которыми можно столкнуться в крупных компаниях на российском рынке.
👉 Читать статью
#дайджест
😁3❤1👍1🥰1
⚙️ Управление настройками с помощью Jetpack DataStore: простой подход к сохранению данных разных типов
При разработке Android-приложений часто возникает необходимость сохранять пользовательские настройки, такие как выбор темы, язык или другие данные пользователя. Jetpack DataStore — это современное решение для хранения таких данных, которое заменяет устаревший SharedPreferences.
В статье автор рассмотрит, как использовать DataStore для хранения различных типов данных (Boolean, Integer, Float и String) и как интегрировать его с архитектурой MVVM, используя StateFlow для обновления UI.
👉 Читать статью
#новость #android #kotlin
При разработке Android-приложений часто возникает необходимость сохранять пользовательские настройки, такие как выбор темы, язык или другие данные пользователя. Jetpack DataStore — это современное решение для хранения таких данных, которое заменяет устаревший SharedPreferences.
В статье автор рассмотрит, как использовать DataStore для хранения различных типов данных (Boolean, Integer, Float и String) и как интегрировать его с архитектурой MVVM, используя StateFlow для обновления UI.
👉 Читать статью
#новость #android #kotlin
👍4❤3
🤝 Дружим RabbitMQ и Flutter/Dart
Автор статьи поделиться опытом работы с брокером сообщений RabbitMQ из Dart-кода.
Будут разобраны такие вопросы:
• Как установить и запустить контейнер с RabbitMQ
• Как настроить RabbitMQ.
• Как создать Producer (отправителя) на Flutter.
• Как создать Consumer (потребителя) на Flutter.
👉 Читать статью
#новость #flutter
Автор статьи поделиться опытом работы с брокером сообщений RabbitMQ из Dart-кода.
Будут разобраны такие вопросы:
• Как установить и запустить контейнер с RabbitMQ
• Как настроить RabbitMQ.
• Как создать Producer (отправителя) на Flutter.
• Как создать Consumer (потребителя) на Flutter.
👉 Читать статью
#новость #flutter
❤2😁1
👾 Кодогенерация: кому нужна и как настроить
Кодогенерация — замечательный инструмент, но его нужно использовать обдуманно. Злоупотребление кодогенерацией может ограничить возможности кастомизации, однако это, в свою очередь, заставляет команды работать эффективнее.
В этой статье автор расскажет о кодогенерации в мобильной разработке: кто действительно нуждается в ней, как она применяется на практике и какую ценность можно извлечь из этого процесса.
👉 Читать статью
#новость
Кодогенерация — замечательный инструмент, но его нужно использовать обдуманно. Злоупотребление кодогенерацией может ограничить возможности кастомизации, однако это, в свою очередь, заставляет команды работать эффективнее.
В этой статье автор расскажет о кодогенерации в мобильной разработке: кто действительно нуждается в ней, как она применяется на практике и какую ценность можно извлечь из этого процесса.
👉 Читать статью
#новость
❤3
👾 Свойства, методы get и set
Свойства класса — это переменные, которые хранят состояние объекта класса. Как и любая переменная, свойство может иметь тип, имя и значение.
В классе можно объявить свойства с помощью ключевого слова
При создании своего класса мы хотим сами управлять его свойствами, контролируя то, какие данные могут быть предоставлены или перезаписаны. С этой целью создаются get и set методы (геттеры и сеттеры). Цель get-метода — вернуть значение, а set-метода — записать полученное значение в свойство класса.
В данном примере свойство
Если get и set методы не были созданы вручную, то для таких свойств Kotlin незаметно сам их генерирует. При этом для свойства, объявленного с
#kotlin
Свойства класса — это переменные, которые хранят состояние объекта класса. Как и любая переменная, свойство может иметь тип, имя и значение.
В классе можно объявить свойства с помощью ключевого слова
var
или val
. Свойства, объявленные с var
, могут быть изменены после их инициализации, а свойства, объявленные с val
, только для чтения.class Person {
var name: String = «»
val age: Int = 0
}
При создании своего класса мы хотим сами управлять его свойствами, контролируя то, какие данные могут быть предоставлены или перезаписаны. С этой целью создаются get и set методы (геттеры и сеттеры). Цель get-метода — вернуть значение, а set-метода — записать полученное значение в свойство класса.
var name: String = «»
get() = field.toUpperCase()set(value) {
field = «Name: $value»
}
В данном примере свойство
name
имеет тип String
и начальное значение пустой строки. Геттер возвращает значение свойства, преобразованное к верхнему регистру. Сеттер устанавливает значение свойства с добавлением префикса «Name: "
перед переданным значением. Слово field
используется для обращения к текущему значению свойства.Если get и set методы не были созданы вручную, то для таких свойств Kotlin незаметно сам их генерирует. При этом для свойства, объявленного с
val
, генерируется get-метод, а для свойства, объявленного с var
— и get, и set методы.#kotlin
❤2👍1
⚙️ Корутины в Kotlin: как сделать «Optimised Out» переменные видимыми
Отладка корутинов в Kotlin иногда может напоминать распутывание паутины невидимых нитей — в буквальном смысле. Одна из распространенных ошибок, с которой сталкиваются разработчики — появление страшного сообщения «optimised out» при проверке переменных в приостановленной корутине.
В этой статье автор расскажет, как динамически включать удобные для отладки настройки с помощью свойства
👉 Читать статью
#новость #android #kotlin
Отладка корутинов в Kotlin иногда может напоминать распутывание паутины невидимых нитей — в буквальном смысле. Одна из распространенных ошибок, с которой сталкиваются разработчики — появление страшного сообщения «optimised out» при проверке переменных в приостановленной корутине.
В этой статье автор расскажет, как динамически включать удобные для отладки настройки с помощью свойства
idea.active
, что позволит вам проверять переменные корутин в IntelliJ IDEA и Android Studio без ущерба для производительности.👉 Читать статью
#новость #android #kotlin
❤2😁1