Kotlin Coroutines: The real difference between Job.cancel() and Scope.cancel()
Небольшая статья, с наглядными примерами отличий
🔸 The basics: Job vs CoroutineScope
🔸 Key differences in practice
🔸 Real-world analogy
🔸 When to use each
🔸 Summary
👉 Читать
👉 @MobDevPortal
Небольшая статья, с наглядными примерами отличий
Job.cancel() и Scope.cancel() и в каких случаях, что использовать.Please open Telegram to view this post
VIEW IN TELEGRAM
❤6
SwiftUI Совет
Управляйте размером кругового
👉 @MobDevPortal
Управляйте размером кругового
ProgressView с помощью модификатора .controlSize().Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🤔1
Если необходимо сохранить идентичность компонента, который меняет своё положение, это можно реализовать с помощью
Эта функция позволяет использовать одни и те же composable-объекты в качестве дочерних элементов разных родительских компонентов.
Это особенно полезно при создании адаптивных макетов.
👉 @MobDevPortal
movableContentOf. Эта функция позволяет использовать одни и те же composable-объекты в качестве дочерних элементов разных родительских компонентов.
Это особенно полезно при создании адаптивных макетов.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Это ТАК раздражает, когда 😡
Но ты знал, что в SwiftUI есть встроенный способ решить эту проблему?
И что для этого нужен всего один ряд кода?
👉 @MobDevPortal
TextField не отображает весь введённый текст Но ты знал, что в SwiftUI есть встроенный способ решить эту проблему?
И что для этого нужен всего один ряд кода?
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍4
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍5
Фишка по SwiftUI
Когда пилишь пейволл на SwiftUI с StoreKit, можно кастомизировать отображение подписок через модификатор
Сейчас в комплекте есть 6 встроенных стилей на выбор
👉 @MobDevPortal
Когда пилишь пейволл на SwiftUI с StoreKit, можно кастомизировать отображение подписок через модификатор
subscriptionStoreControlStyle()Сейчас в комплекте есть 6 встроенных стилей на выбор
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2
В чем разница между Immutable и Stable в Compose?
🔸 Immutable следует использовать для действительно неизменяемых классов, которые не могут изменяться.
🔸 Stable означает, что данный класс не будет обновляться без уведомления наблюдателей. Например, класс, агрегирующий
В большинстве случаев Compose может самостоятельно определить стабильность класса, и явные аннотации не требуются, однако их можно использовать, чтобы явно указать стабильность конкретного типа.
❗️ На данный момент Compose обрабатывает аннотации Immutable и Stable абсолютно одинаково
👉 @MobDevPortal
State, является стабильным, поскольку все наблюдатели State будут повторно перекомпонованы при изменении его значения. 𝐒𝐭𝐚𝐛𝐥𝐞 — это понятие, специфичное именно для Compose. Если аргумент компонуемой функции стабильный, нам не нужно проверять его содержимое, чтобы определить необходимость повторной перекомпоновки; достаточно проверить ссылку на объект.В большинстве случаев Compose может самостоятельно определить стабильность класса, и явные аннотации не требуются, однако их можно использовать, чтобы явно указать стабильность конкретного типа.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍2
Совет по SwiftUI
При отображении поповера вы можете настроить его положение с помощью параметра
👉 @MobDevPortal
При отображении поповера вы можете настроить его положение с помощью параметра
arrowEdgePlease open Telegram to view this post
VIEW IN TELEGRAM
❤7👍3
Forwarded from IT Portal
Xcode превратился в Cursor — туда завезли поддержку ChatGPT и других LLM. Можно подключаться по API или запускать локально
Причём для ChatGPT даже не нужен аккаунт OpenAI — доступен базовый режим с ограниченными лимитами
Apple также не забыли про важную для вайбкодеров фичу — поддержка Voice Control позволяет писать код голосом, общаясь с LLM напрямую
Обо всём этом рассказали сегодня на WWDC 2025. Запись презентации здесь
@IT_Portal
Причём для ChatGPT даже не нужен аккаунт OpenAI — доступен базовый режим с ограниченными лимитами
Apple также не забыли про важную для вайбкодеров фичу — поддержка Voice Control позволяет писать код голосом, общаясь с LLM напрямую
Обо всём этом рассказали сегодня на WWDC 2025. Запись презентации здесь
@IT_Portal
🔥10❤3👎2
This media is not supported in your browser
VIEW IN TELEGRAM
Офигеть! Это происходит
Вот я на macOS 26 Beta запускаю контейнеры без установленного Docker
😱 НАТИВНАЯ ПОДДЕРЖКА КОНТЕЙНЕРОВ В MACOS
https://github.com/apple/container
👉 @MobDevPortal
Вот я на macOS 26 Beta запускаю контейнеры без установленного Docker
https://github.com/apple/container
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14👍4
Что такое Android Runtime?
Мы пишем код на Kotlin/Java, и при сборке APK он преобразуется в байткод.
В нашем APK-файле будут находиться
Наши Android-устройства не могут выполнять байткод напрямую, поэтому его необходимо транслировать в машинный код. Эта трансляция осуществляется средой выполнения Android — Android Runtime.
Kotlin/Java > байткод (.dex-файлы в APK) > машинный код
Теперь, когда мы знаем, что такое Android Runtime, пора узнать о различных типах Android Runtime и их эволюции:
🔸 Dalvik
🔸 ART
Узнайте больше здесь:
https://outcomeschool.com/blog/dalvik-art-jit-aot
👉 @MobDevPortal
Мы пишем код на Kotlin/Java, и при сборке APK он преобразуется в байткод.
В нашем APK-файле будут находиться
.dex-файлы, содержащие байткод.Наши Android-устройства не могут выполнять байткод напрямую, поэтому его необходимо транслировать в машинный код. Эта трансляция осуществляется средой выполнения Android — Android Runtime.
Kotlin/Java > байткод (.dex-файлы в APK) > машинный код
Теперь, когда мы знаем, что такое Android Runtime, пора узнать о различных типах Android Runtime и их эволюции:
Узнайте больше здесь:
https://outcomeschool.com/blog/dalvik-art-jit-aot
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍6😁2
This media is not supported in your browser
VIEW IN TELEGRAM
VisualTransformation — это инструмент в Jetpack Compose, который позволяет изменять визуальное отображение текста в TextField, не затрагивая при этом фактическое значение ввода. Например, его можно использовать для маскировки цифр или вставки дефисов при вводе номера кредитной картыОн форматирует текст в процессе ввода, улучшая читаемость и делая текст более удобным для восприятия. При грамотно реализованной визуальной трансформации пользователь может вводить данные без необходимости заботиться о форматировании
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤4
Совет по SwiftUI
Закрепи важные элементы интерфейса, например кнопку "Продолжить" на экране онбординга, с помощью модификатора
👉 @MobDevPortal
Закрепи важные элементы интерфейса, например кнопку "Продолжить" на экране онбординга, с помощью модификатора
safeAreaInset(), чтобы основной контент можно было скроллить независимо.Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤5
This media is not supported in your browser
VIEW IN TELEGRAM
Принёс полезное — базу актуальных бесплатных API, которую регулярно обновляют 😇
Внутри аж 403 штуки на любой вкус: от игр и погоды до финансов и здоровья
Алгоритмы присваивают рейтинг каждому API на основе надежности, частоты ошибок и времени отклика
Если апишка перестает работать или становится платной, она теряет рейтинг и удаляется с сайта
👉 @MobDevPortal
Внутри аж 403 штуки на любой вкус: от игр и погоды до финансов и здоровья
Алгоритмы присваивают рейтинг каждому API на основе надежности, частоты ошибок и времени отклика
Если апишка перестает работать или становится платной, она теряет рейтинг и удаляется с сайта
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10😁1
Анонсирована рабочая группа Swift on Android — цель: сделать Android официально поддерживаемой платформой для Swift и поддерживать эту интеграцию на постоянной основе.
Подробнее тут: https://forums.swift.org/t/announcing-the-android-workgroup/80666
👉 @MobDevPortal
Подробнее тут: https://forums.swift.org/t/announcing-the-android-workgroup/80666
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤4🔥1
Использование
Следует использовать
👉 @MobDevPortal
Column для отображения длинного списка загружает все элементы сразу, что замедляет работу приложенияСледует использовать
LazyColumn, которая загружает только необходимые элементыPlease open Telegram to view this post
VIEW IN TELEGRAM
❤11👍3😁1🌚1
Новое в SwiftUI
Начиная с iOS 26.0+, можно задавать отступы для секций в
👉 @MobDevPortal
Начиная с iOS 26.0+, можно задавать отступы для секций в
List с помощью модификатора listSectionMargins()Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Gemini CLI — опенсорс AI-агент для разработчиков от Google, который работает прямо в терминале
На борту — Gemini 2.5 Pro, контекст 1М токенов, 60 запросов/мин и 1000 в сутки — бесплатно (нужен только гугл-аккаунт)
Можно писать и дебажить код, автоматизировать задачи, ресерчить
При желании можно прикрутить любой MCP сервер. Например, генерировать прямо из терминала картинки (Imagen) или видео (Veo)
Исходники на GitHub
👉 @MobDevPortal
На борту — Gemini 2.5 Pro, контекст 1М токенов, 60 запросов/мин и 1000 в сутки — бесплатно (нужен только гугл-аккаунт)
Можно писать и дебажить код, автоматизировать задачи, ресерчить
При желании можно прикрутить любой MCP сервер. Например, генерировать прямо из терминала картинки (Imagen) или видео (Veo)
npm install -g @google/gemini-cli
Исходники на GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥3👍2