Telegram Web
📱 Запускаем приложения на своём iOS-симуляторе

Создание симулятора iOS для запуска приложений на macOS открывает новые горизонты в мобильной разработке.

В докладе рассматриваются внутренние аспекты iOS-приложений, включая формат Mach-O, динамическая подгрузка библиотек в рантайме и выделение памяти под выполняемый код. Автор также расскажет как запускать приложения, собранные через Xcode для iOS, внутри macOS.

👀 Смотреть доклад

#новость #ios
👨‍💻 Топ-5 популярных вопросов на Android собеседовании [2025]

Cобеседования в IT — это всегда вызов и Android тут, конечно же, не исключение. Для успешного прохождения интервью в крупные и востребованные компании современный Android-разработик должен держать в голове огромное количетсво областей.

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

В статье автор разберет топ-5 вопросов, с которыми можно столкнуться в крупных компаниях на российском рынке.

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

#дайджест
⚙️ Управление настройками с помощью Jetpack DataStore: простой подход к сохранению данных разных типов

При разработке Android-приложений часто возникает необходимость сохранять пользовательские настройки, такие как выбор темы, язык или другие данные пользователя. Jetpack DataStore — это современное решение для хранения таких данных, которое заменяет устаревший SharedPreferences.

В статье автор рассмотрит, как использовать DataStore для хранения различных типов данных (Boolean, Integer, Float и String) и как интегрировать его с архитектурой MVVM, используя StateFlow для обновления UI.

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

#новость #android #kotlin
🤝 Дружим RabbitMQ и Flutter/Dart

Автор статьи поделиться опытом работы с брокером сообщений RabbitMQ из Dart-кода.

Будут разобраны такие вопросы:

• Как установить и запустить контейнер с RabbitMQ
• Как настроить RabbitMQ.
• Как создать Producer (отправителя) на Flutter.
• Как создать Consumer (потребителя) на Flutter.

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

#новость #flutter
👾 Кодогенерация: кому нужна и как настроить

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

В этой статье автор расскажет о кодогенерации в мобильной разработке: кто действительно нуждается в ней, как она применяется на практике и какую ценность можно извлечь из этого процесса.

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

#новость
👾 Свойства, методы get и set

Свойства класса — это переменные, которые хранят состояние объекта класса. Как и любая переменная, свойство может иметь тип, имя и значение.

В классе можно объявить свойства с помощью ключевого слова 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
⚙️ Корутины в Kotlin: как сделать «Optimised Out» переменные видимыми

Отладка корутинов в Kotlin иногда может напоминать распутывание паутины невидимых нитей — в буквальном смысле. Одна из распространенных ошибок, с которой сталкиваются разработчики — появление страшного сообщения «optimised out» при проверке переменных в приостановленной корутине.

В этой статье автор расскажет, как динамически включать удобные для отладки настройки с помощью свойства idea.active, что позволит вам проверять переменные корутин в IntelliJ IDEA и Android Studio без ущерба для производительности.

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

#новость #android #kotlin
🔧 Строим архитектуру для SwiftUI

SwiftUI фундаментально отличается от UIKit, поэтому он требует своего подхода к архитектуре. Известные паттерны, такие как MVP, MVVM и другие, в чистом виде не адаптированы под особенности SwiftUI.

В статье автор рассказывает о создании собственной архитектуры для разработки на SwiftUI.

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

#новость #ios #swift
👨‍💻 Blueprint — декларативный UI-конструктор

Blueprint предоставляет архитектуру, которая позволяет декларативно определять иерархию пользовательского интерфейса с помощью значений (структур и перечислений Swift), отображать эту иерархию в приложении, обновлять её при изменении состояния приложения (включая анимированные переходы).

Blueprint появился раньше SwiftUI и работает немного по-другому. Вы можете разместить BlueprintView в SwiftUI, чтобы встроить Blueprint в SwiftUI, а также использовать предоставленный ElementView для создания предварительных просмотров Blueprint в Xcode.

⚙️ Blueprint на GitHub

#новость #ios
💬 ТОП-8 фраз, которые испортят впечатление о вас на собеседовании

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

Есть проверенные подходы, которые помогут избежать таких ситуаций, выстроить грамотное общение и оставить положительное впечатление. Готовы узнать больше? 🌟

🔗 Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
✍️ Открытая редакция: ищем авторов для рубрики DevLife

Друзья, нас часто спрашивают про публикацию материалов о личном опыте и знаниях в IT. Пора это систематизировать!

Пишите нам, если у вас есть история о том, как вы:
• выросли в профессии
• освоили новые технологии
• сделали крутой карьерный скачок
• эпично лажанулись
• создали интересные проекты

Требования к статье простые:
• Реальный опыт
• Конкретные шаги
• От 5000 знаков
• Ссылка на Google Docs

Лучшие истории опубликуем на сайте и в наших соцсетях с общим охватом 1 млн+ человек.

Присылайте свои статьи на почту [email protected] с темой «DevLife»
Вакансии «Библиотеки программиста» — ждем вас в команде!

Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов

Подробности тут

Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴

Ждем ваших откликов 👾
🚙 Переезжаем с фрагментов на (De)compose

В процессе перевода проекта на Jetpack Compose рано или поздно появляются вопросы: зачем нужны фрагменты, активити и вьюмодели, ведь можно реализовать навигацию прямо между Composable-функциями.

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

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

👀 Смотреть доклад

#новость #android
🍏 typealias в Swift

Typealias, как следует из названия, является псевдонимом для существующего типа данных.

Вы можете создать его следующим образом:

typealias Weight = Float


Теперь вы можете использовать Weight вместо Float:

let mass1: Weight = 150.0
let mass2: Weight = 220.0
let total: Weight = mass1 + mass2


#swift
📦 MMKV — эффективное key-valu хранилище от Tencent

MMKV — это эффективный, небольшой и простой в использовании мобильный фреймворк для хранения ключевых значений (key-value), используемый Tencent в приложении WeChat. В настоящее время он доступен для Android, iOS/macOS, Windows, POSIX и HarmonyOS NEXT.

Фичи:

🔹 эффективность — MMKV использует mmap для синхронизации памяти с файлами и protobuf для кодирования/декодирования значений, максимально используя возможности Android для достижения наилучшей производительности;

🔹 многопроцессный параллелизм — MMKV поддерживает одновременный доступ процессов к чтению-чтению и чтению-записи;

🔹 простота — можно использовать MMKV по мере необходимости, все изменения сохраняются немедленно;

🔹 небольшой — 50K в бинарнике.

⚙️ MMKV на GitHub

#новость #android
📱 YPay & YPay Inventory для Flutter — приложений

В этой статье автор делится опытом работы над YPay и YPay inventory для Flutter, рассказывает про возможности библиотек и как их использовать, а также о проблемах, с которыми столкнулся. В полезных ссылках указано всё необходимое для желающих подробнее узнать о Яндекс Пэй.

Может, после прочтения появится желание интегрировать библиотеки в своё мобильное приложение 📚

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

#новость #flutter
🌵🕵️‍♂ Git-квест: 10 испытаний для повелителя репозиториев

От простого push до таинственного cherry-pick — пройдите все уровни нашего Git-квеста и докажите, что достойны звания Git-мастера.

Пройти тест
📝 Вызов защищённого API из iOS-приложения на Swift

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

В этой статье автор показывает, как настроить Auth0 для получения токена доступа OAuth 2.0, который позволит вам безопасно, надёжно и от имени пользователя вызывать защищённый API из вашего приложения.

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

#новость #ios #swift
👾 Kotlinx.serialization и работа с JSON

Наверное, все мы хотя бы раз сталкивались с задачей сериализации данных, будь то обмен данными с сервером, сохранение состояния объекта в файл или передача данных между различными приложениями. В Kotlin для этих целей удобно использовать библиотеку Kotlinx.serialization, которая позволяет работать с данными, сериализуя и десериализуя их в различные форматы, такие как JSON, CBOR, и Protocol Buffers.

В статье автор рассказывает, как настроить и использовать kotlinx.serialization в своём проекте, а также показывает примеры эффективной работы с JSON.

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

#новость #kotlin #android
2025/07/06 07:48:41
Back to Top
HTML Embed Code: