Лента постов канала Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck (@mobileproglib) https://t.me/mobileproglib Все самое полезное для мобильного разработчика в одном канале. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/b60af5a4 Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a4adec1b17b35b6c0d8389 ru https://linkbaza.com/catalog/-1001194965543 Sat, 04 Oct 2025 22:00:24 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Sat, 04 Oct 2025 20:02:50 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Sat, 04 Oct 2025 16:02:45 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Sat, 04 Oct 2025 12:00:04 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Fri, 03 Oct 2025 21:01:43 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Fri, 03 Oct 2025 14:00:33 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Fri, 03 Oct 2025 09:01:25 +0300
⚙️ Оптимизация времени запуска мобильного приложения

Заметили, что ваше приложение долго запускается? Этот промпт поможет найти и устранить узкие места в процессе старта.

📝 Промпт:

Analyze and optimize mobile app startup time that includes:

— Measure cold/warm/hot start durations
— Identify main thread blockers during launch
— Optimize application class initialization
— Reduce dynamic feature module loading time
— Implement lazy loading for heavy components
— Optimize dependency injection setup
— Improve splash screen and initial UI rendering


💡 Расширения:

— Добавьте Implement asynchronous resource loading для параллельной загрузки ресурсов
— Добавьте Add startup tracing and performance monitoring для постоянного отслеживания
— Добавьте Optimize pre-dexing and multidex configuration для больших приложений

🐸 Библиотека мобильного разработчика

#буст #MiddlePath
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Thu, 02 Oct 2025 21:02:07 +0300
🔒 Поймай меня, если сможешь: как обнаружить Root и Frida

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

Но эти меры не защитят от злоумышленника, который изучит логику работы приложения и использует полученные данные для атаки. Различные модификации Android, такие как root-права и кастомная прошивка, позволяют злоумышленнику быстрее и детальнее исследовать приложение.

Таисия рассказала об опыте решения проблемы по обнаружению эмуляторов, устройств с root-правами или кастомными прошивками. А еще познакомила нас с набором инструментов Frida, позволяющих внедрять код в другие приложения буквально на лету. Рассмотрела возможности и принцип работы этого тулкита и описала метод по его обнаружению, который можно использовать в проекте.

Доклад будет полезен тем, кто хочет максимально защитить свое мобильное приложение от различных угроз.

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

🐸 Библиотека мобильного разработчика

#свежак
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Thu, 02 Oct 2025 18:01:07 +0300
👾 AI-агенты — настоящее, о котором все говорят!

Уже 3 октября стартует второй поток нашего нового курса «AI-агенты для DS-специалистов».

Это продвинутая программа для тех, кто хочет получить прикладной опыт с LLM и решать сложные задачи.

На обучении вы соберёте полноценные LLM-системы с учётом особенностей доменных областей, получите hands-on навыки RAG, Crew-AI / Autogen / LangGraph и агентов.

🎓 В рамках курса вы научитесь:

1️⃣ адаптировать LLM под разные предметные области и данные
2️⃣ собирать свою RAG-систему: от ретривера и реранкера до генератора и оценки качества
3️⃣ строить AI-агентов с нуля — на основе сценариев, функций и взаимодействия с внешней средой

Научитесь применять похожие подходы в разных доменных областях, получите фундамент для уверенного прохождения NLP system design интервью и перехода на следующий грейд.

🗓️ Завтра первый вебинар, успевайте залететь в ряды ИИ-первопроходцев 👈🏻
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Thu, 02 Oct 2025 14:02:02 +0300
🤖 Лучшие нейросети для повышения уникальности текста в 2025 году

Топ-10 нейросетей для создания уникального контента. Обзор Arcy, ChatGPT, YandexGPT и других сервисов с ценами, функциями и советами по повышению оригинальности текстов.

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

🐸 Библиотека мобильного разработчика

#MadeInProglib
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Thu, 02 Oct 2025 09:03:37 +0300
🔍 Сompanion 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.

🐸 Библиотека мобильного разработчика

#буст #MiddlePath #Kotlin
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Wed, 01 Oct 2025 22:20:49 +0300
💰 Полный гайд по golden-тестам во Flutter

При создании интерфейса важно проверить, как он реально выглядит. Часто это проверяют все участники процесса — от разработчиков до менеджеров. И для автоматизации и упрощения процесса визуального тестирования приложения есть специальный инструмент — golden‑тесты.

Это методология тестирования, в которой текущий UI сравнивается с предварительно сгенерированным «золотым» эталоном. Если вы уже слышали про скриншот‑тесты — это примерно то же самое, но есть нюансы.

➡️ В этой статье автор:

🔘 Познакомит с методологией, рассмотрит её преимущества и недостатки, а также когда её стоит и не стоит применять.

🔘 Напишет базовый golden‑тест на примере стандартных инструментов библиотеки flutter_test.

🔘 Рассмотрит пакет alchemist, который решает проблему платформозависимости flutter_test.

🔘 Даст прикладные рекомендации по применению тестов и настройке IDE и CI.

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

🐸 Библиотека мобильного разработчика

#свежак #Flutter
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Wed, 01 Oct 2025 14:00:01 +0300
🐸 Библиотека мобильного разработчика

#КодКрашТест #JuniorKit #Kotlin
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Wed, 01 Oct 2025 09:00:43 +0300
🛡 adb shell dumpsys package – детальная информация об установленном приложении

Получайте полную техническую информацию о любом установленном приложении на Android-устройстве – от версий и разрешений до активности процессов.

📌 Ключевые сценарии:

1. Информация о версиях:
adb shell dumpsys package com.yourapp.package | grep -E "versionName|versionCode"


2. Проверка разрешений:
adb shell dumpsys package com.yourapp.package | grep -A 20 "requested permissions"


3. Информация о активностях и сервисах:
adb shell dumpsys package com.yourapp.package | grep -E "Activity|Service|Receiver"


4. Детали установки APK:
adb shell dumpsys package com.yourapp.package | grep -A 10 "Installation"


⚡️ Полезные фильтры:

1. Только основные данные:
adb shell dumpsys package com.yourapp.package | head -50


2. Поиск конкретной активности:
adb shell dumpsys package com.yourapp.package | grep -B 5 -A 5 "MainActivity"


3. Информация о подписантах:
adb shell dumpsys package com.yourapp.package | grep -A 15 "Signatures"


🔍 А вы используете dumpsys для отладки? Какие еще параметры dumpsys вам полезны?

🐸 Библиотека мобильного разработчика

#буст #JuniorKit #Android
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Tue, 30 Sep 2025 21:01:03 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Tue, 30 Sep 2025 18:00:37 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Tue, 30 Sep 2025 14:02:53 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Tue, 30 Sep 2025 09:04:35 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Mon, 29 Sep 2025 21:00:24 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Mon, 29 Sep 2025 14:10:18 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Mon, 29 Sep 2025 09:00:43 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Sun, 28 Sep 2025 20:04:24 +0300
🗓 Новости недели

Приготовили для вас дайджест по актуальному из мира iOS, Android и кроссплатформы.

🔵 Почему большие проекты Swift утыкаются в стену

С большими кодовыми базами Swift трудно работать — медленная сборка, нестабильное тестирование, сложные графы. Автор подробно разберёт, почему инструментарий Apple испытывает трудности при масштабировании и как команды могут преодолеть эти трудности без React Native или Bazel.

🔵Новые подходы в Swift для тестирования: разбор технологии Swift Testing

Тестирование на Swift долгие годы держалось на трех китах: XCTest, сторонние библиотеки и собственная смекалка. Но на WWDC 24 Apple представила новый, современный фреймворк — Swift Testing, который предлагает концептуально новый подход к тестированию.

🔵 Kotlin QA: как перейти с Java и писать тесты в 2 раза быстрее

Многие команды QA инженеров сталкиваются с выбором: остаться на привычном Java‑стеке или перейти на Kotlin. В этой статье мы рассмотрим некоторые ключевые различия, преимущества и практические аспекты перехода на Kotlin в контексте автоматизации тестирования.

🔵 Google обновляет Play Store, добавляя ИИ-функции и многое другое

Google сообщил, что вносит ряд изменений во внешний вид и функциональность Play Store, чтобы лучше персонализировать магазин для своих пользователей и повысить его вовлеченность.

🔵 React Native перевернул игру

Исправил ли React Native все свои проблемы? Кто его использует? А главное стал ли RN лучше, чем Flutter и Kotlin Multiplatform?

🐸 Библиотека мобильного разработчика

#свежак
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Sun, 28 Sep 2025 19:00:33 +0300
⏳ Последние часы со скидкой!

Мы уже закрыли вебинар «ИИ-агенты: новая фаза развития AI», но запись всё ещё доступна.

А дальше остаётся только практика. На курсе «ИИ-агенты для DS-специалистов» ты научишься разрабатывать агентов, собирать RAG-системы и адаптировать LLM под бизнес.

⏰ Сегодня цена ещё 57.000 ₽ с промокодом datarascals.
Завтра — 69.000 ₽.

👉 Успеть оплатить до полуночи
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Sun, 28 Sep 2025 16:03:14 +0300
Можно ли в Swift вернуть из функции несколько значений

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

Кроме того, объект может быть сложным типом, например классом, структурой, кортежем или массивом. В этой ситуации вы можете объединить несколько значений в сложный тип. После этого вы формально возвращаете один элемент с несколькими значениями, хранящимися внутри этой структуры данных.

➡️ Вот как можно вернуть несколько значений, хранящихся в кортеже:

func functionWithMultipleReturnValues(
val1: Int,
val2: Int
) -> (sum: Int, product: Int) {
let sum = val1 + val2
let prod = val1 * val2
return (sum, prod)
}
let result = functionWithMultipleReturnValues(val1: 10, val2: 20)
let s = result.sum
let p = result.product


🐸 Библиотека мобильного разработчика

#буст #MiddlePath #Swift
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Sun, 28 Sep 2025 12:00:23 +0300
🎓 Как вайб-кодинг меняет рынок IT-образования

Помнишь свою первую программу "Hello World"? А сейчас студенты начинают с фразы «Привет, ChatGPT, создай мне приложение для учета расходов». И знаешь что? Получают рабочий результат быстрее, чем мы когда-то выводили эту чертову строчку на экран. Это меняет всю философию обучения программированию.

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

🐸 Библиотека мобильного разработчика

#MadeInProglib
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Sat, 27 Sep 2025 20:02:29 +0300
🐸 Библиотека мобильного разработчика

#BugOrFeature
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Sat, 27 Sep 2025 18:00:49 +0300
🚀 Всё о курсе «ИИ-агенты для DS-специалистов»

❓ Зачем нужны ИИ-агенты?

Это системы, которые берут на себя задачи аналитики и автоматизации. Именно они становятся основой для работы с корпоративными данными и для поддержки принятия решений.

❓ Зачем мне курс?

Курс отвечает на три ключевых вопроса:

— Как построить собственную систему агентов с нуля?
— Каким образом использовать RAG-подход для работы с корпоративными данными?
— Как адаптировать LLM под реальные задачи бизнеса?

Подходит ли это мне?

Курс рассчитан на специалистов уровня middle+ и senior: ML/AI инженеров, Data Scientists, backend и platform-разработчиков. Подойдёт и студентам CS/DS, если вы готовы к продвинутым практикам.

Запись вводной встречи «ИИ-агенты: новая фаза развития искусственного интеллекта» доступна по ссылке.

❓ Когда старт?

Обучение начинается 3 октября.

Сколько стоит?

До 28 сентября действует скидка → 57 000 ₽ вместо 69 000 ₽ (промокод datarascals).

🔗 Описание программы и регистрация
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Sat, 27 Sep 2025 16:00:50 +0300
В чем здесь проблема и как вы можете ее решить

Пишите свои ответы в комментариях 👇

🐸 Библиотека мобильного разработчика

#междусобойчик #JuniorKit
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Sat, 27 Sep 2025 12:03:02 +0300
🤫 Мы в X

Там всё, что вы любите: полезные материалы, код без цензуры, ну и конечно мемы.

⚡️ В общем, идите на X

🐸 Библиотека мобильного разработчика

#свежак
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Fri, 26 Sep 2025 21:02:41 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Fri, 26 Sep 2025 18:00:58 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Fri, 26 Sep 2025 14:02:40 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Fri, 26 Sep 2025 09:01:56 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Thu, 25 Sep 2025 21:05:27 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Thu, 25 Sep 2025 14:01:56 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Thu, 25 Sep 2025 09:01:37 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Wed, 24 Sep 2025 20:59:58 +0300
🦢 Вышла версия Swift 6.2

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

➡️ Читайте дальше, чтобы узнать подробнее об изменениях в языке, библиотеках, рабочих процессах, поддержке платформ и о том, с чего начать работу со Swift 6.2.

🐸 Библиотека мобильного разработчика

#свежак #iOS
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Wed, 24 Sep 2025 15:12:31 +0300
❗ Сегодня премьера

В 19:00 МСК стартует бесплатный вебинар с Максимом Шаланкиным«ИИ-агенты: новая фаза развития искусственного интеллекта».

В программе:
— почему агенты ≠ чат-боты;
— живое демо простого агента;
— и как эта тема встроена в курс, который разработан под руководством Никиты Зелинского.

Это прямой эфир: подключиться можно через лендинг курса.
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Wed, 24 Sep 2025 13:59:58 +0300
🧗 Кто такие Unit-лид и Technical Owner — и почему эти роли нужны в IT-командах

Когда компания переходит от «сделать и забыть» к «развивать и совершенствовать», старые роли перестают работать. Нужны люди, которые будут жить продуктом, а не просто выполнять задачи. Unit-лид и Technical Owner — именно такие специалисты. Объясняем, что они делают и почему без них продуктовый подход обречен на провал.

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

🐸 Библиотека мобильного разработчика

#MadeInProglib
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Wed, 24 Sep 2025 09:05:13 +0300
⚡️Команда дня: adb logcat

Хотите быстро отследить, что происходит в приложении на устройстве или эмуляторе?
На помощь приходит простая команда:

adb logcat | grep "MyTag"


📌 Что делает:

— Подключается к логам Android-устройства или эмулятора
— Фильтрует вывод по тегу (например, MyTag, который вы используете в Log.d(...))
— Показывает только нужные строки, чтобы не тонуть в море системных логов

👀 Полезно, когда:

— Нужно быстро найти крэш или баг прямо на реальном устройстве
— Хотите дебажить только свою часть логов, а не весь Android-спам
— Проверяете работу логирования перед релизом

💡 Совет:

Добавьте уровни логов для фильтрации:

adb logcat *:E   # только ошибки  
adb logcat *:W # предупреждения и выше


👉 А вы часто используете adb logcat в работе?

🐸 Библиотека мобильного разработчика

#буст #JuniorKit #Android
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Tue, 23 Sep 2025 21:01:50 +0300
🐸 Библиотека мобильного разработчика

#BugOrFeature
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Tue, 23 Sep 2025 14:04:21 +0300
🔍 Шаблон архитектуры MVC (Model View Controller)

Шаблон MVC предполагает разделение кода на 3 компонента. При создании класса/файла приложения разработчик должен отнести его к одному из следующих трёх уровней:

🔹 Модель:

Этот компонент хранит данные приложения. Он ничего не знает об интерфейсе. Модель отвечает за обработку логики предметной области (реальных бизнес-правил) и взаимодействие с базой данных и сетевыми уровнями.

🔹 Представление:

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

🔹 Контроллер:

Этот компонент устанавливает связь между Представлением и Моделью. Он содержит основную логику приложения, получает информацию о действиях пользователя и обновляет Модель в соответствии с потребностями.

Несмотря на применение схемы MVC для модульного проектирования приложения, уровни кода зависят друг от друга. В этом шаблоне Представление и Контроллер зависят от Модели. Для применения шаблона MVC в проекте можно использовать несколько подходов:

➡️ Подход 1: Действия и фрагменты могут выполнять роль контроллера и отвечать за обновление представления.

➡️ Подход 2: Используйте активность или фрагменты в качестве представлений и контроллера, а модель будет отдельным классом, который не наследуется от какого-либо класса Android.

В MVC данные обновляет контроллер, а представление их только отображает. Модель отделена и тестируется независимо от UI. Если представление соблюдает принцип единой ответственности — лишь передаёт действия контроллеру и показывает данные без бизнес-логики — то его достаточно проверять UI-тестами.

🐸 Библиотека мобильного разработчика

#буст #SeniorView #Android
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Tue, 23 Sep 2025 10:02:37 +0300
💙 Топ вакансий для мобильных разработчиков за неделю

Мобильный разработчик (React Native/другие) —‍ от 150 000 до 350 000 ₽, удалёнка

Senior iOS Developer (Swift) —‍ удалёнка

Flutter разработчик —‍ до 370 000 ₽, удалёнка

iOS Developer —‍ до 2 000 $, удалёнка

Мобильный разработчик (Flutter) —‍ от 90 000 до 120 000 ₽, удалёнка

➡️ Еще больше топовых вакансий —‍ в нашем канале Mobile jobs

🐸 Библиотека мобильного разработчика

#свежак
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Mon, 22 Sep 2025 22:00:16 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Mon, 22 Sep 2025 21:00:46 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Mon, 22 Sep 2025 14:03:40 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Mon, 22 Sep 2025 09:02:44 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Sun, 21 Sep 2025 17:17:49 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Sat, 20 Sep 2025 12:04:31 +0300
🐸 Библиотека мобильного разработчика

#развлекалово
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Fri, 19 Sep 2025 22:03:16 +0300
⚡️ Бесплатный вебинар — ИИ-агенты: новая фаза развития AI

24 сентября в 19:00 МСК состоится бесплатный вебинар с Максимом Шаланкиным — Data Science Team Lead в финтех-команде MWS, а познакомиться с ним ближе можно в его тг-канале.

Тема:
«ИИ-агенты: новая фаза развития искусственного интеллекта».


На вебинаре разберёмся, почему агенты — это следующий шаг после ChatGPT, чем они отличаются от обычных моделей и как уже приносят бизнесу ROI до 80%. А дальше я покажу, как эта тема ложится в наш курс по ИИ-агентам, который разработан под руководством Никиты Зелинского.

Подробности рассказываем в гс выше — включай, чтобы не пропустить.
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Fri, 19 Sep 2025 21:04:15 +0300
👾 Визуализация рекомпозиций в Jetpack Compose

Представьте, вы открываете пул‑реквест и взгляд цепляется за знакомые паттерны: нестабильный параметр в Composable‑функции, remember без ключа, применение трансформаций на Layout‑фазе. Сразу хочется написать комментарий‑лекцию о том, почему это ударит по производительности и почему лучше так не делать.

Вот только объяснения отнимают время и не всегда наглядно доносят суть проблемы. Особенно это актуально для новичков, которым сложно сопоставить абстракции с реальным поведением UI.

В этой статье автор расскажет о разработке собственного приложения, которое в реальном времени визуализирует рекомпозиции. Чтобы заставить его работать, пришлось залезть под капот компилятора Kotlin и подружиться с его внутренними API: FIR и IR.

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

🐸 Библиотека мобильного разработчика

#свежак
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Fri, 19 Sep 2025 10:23:15 +0300
5 SwiftUI-хаков для более чистых приложений

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

1️⃣ Более безопасный способ развертывания Optional в представлениях

Вместо бесконечных операторов if let создайте простое расширение, которое сделает обработку опциональных параметров естественной:

extension View {
@ViewBuilder
func ifLet(_ value: T?, content: (T) -> Content) -> some View {
if let value {
content(value)
} else {
self
}
}
}


Теперь вы можете просто писать:

Text("Hello")
.ifLet(username) { Text("Welcome, \($0)") }


2️⃣ Условные модификаторы без лишних сложностей

Мы все пишем .padding() или .opacity() с условиями. Вместо того, чтобы заключать целые представления в блоки if, используйте это:

extension View {
@ViewBuilder
func apply(_ condition: Bool, modifier: (Self) -> some View) -> some View {
if condition {
modifier(self)
} else {
self
}
}
}


Использование:

Text("Premium")
.apply(isPro) { $0.foregroundColor(.yellow) }


Одна строка, ничего лишнего.

3️⃣ Многоразовый AsyncImage с плейсхолдером

Загрузка изображений — обычное дело, но повторение одной и той же логики плейсхолдера утомляет. Сделайте один раз:

struct RemoteImage: View {
let url: URL
var body: some View {
AsyncImage(url: url) { phase in
switch phase {
case .success(let image): image.resizable().scaledToFit()
case .failure(_): Color.gray
case .empty: ProgressView()
@unknown default: EmptyView()
}
}
}
}


Теперь вам больше не придётся переписывать загрузчики изображений.

4️⃣ Форматирование даты в одну строку

Вместо того, чтобы создавать DateFormatter везде, добавьте расширение:

extension Date {
func formatted(_ style: DateFormatter.Style = .medium) -> String {
let formatter = DateFormatter()
formatter.dateStyle = style
return formatter.string(from: self)
}
}


Использование:

Text(Date().formatted(.long))


Легко читаемый и многоразовый код.

5️⃣ Автоматические вставки SafeArea

Не любите бороться с .ignoresSafeArea()? Добавьте небольшой вспомогательный метод:

extension View {
func fillScreen() -> some View {
self.frame(maxWidth: .infinity, maxHeight: .infinity)
.ignoresSafeArea()
}
}


Теперь для каждого полноэкранного представления требуется всего один модификатор.

🐸 Библиотека мобильного разработчика

#буст
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Thu, 18 Sep 2025 23:00:01 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Thu, 18 Sep 2025 22:00:32 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Thu, 18 Sep 2025 10:41:34 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Wed, 17 Sep 2025 21:00:04 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Wed, 17 Sep 2025 10:18:07 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Tue, 16 Sep 2025 23:03:15 +0300
🤖⚡️ ТОП-9 популярных AI-агентов для разработки в 2025 году

Знаешь, что общего у всех крутых девелоперов в 2025? Они не пишут код руками — они управляют AI-агентами. От автодополнения до генерации целых модулей: показываю, какие инструменты реально ускоряют разработку и почему без них ты уже отстаешь.

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

🐸 Библиотека мобильного разработчика

#свежак
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Tue, 16 Sep 2025 17:55:03 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Tue, 16 Sep 2025 10:21:33 +0300
👨‍💻 Model Context Protocol Server для документации Apple

Apple Docs MCP дает доступ к официальной документации Apple для разработчиков по языку Swift, фреймворкам, API, SwiftUI, UIKit и видеоматериалам WWDC через Model Context Protocol. Это позволяет реализовать, например, поиск документации по iOS, macOS, watchOS, tvOS и visionOS с помощью ИИ-запросов на естественном языке.

Получайте мгновенный доступ к примерам кода на Swift/Objective-C, справочникам по API и техническим руководствам прямо в Claude, Cursor или любом другом совместимом с MCP ИИ-помощнике.

💻 Apple Docs MCP на GitHub

🐸 Библиотека мобильного разработчика

#буст
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Mon, 15 Sep 2025 22:00:21 +0300
Началось
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Mon, 15 Sep 2025 21:02:17 +0300
💻 Топ вакансий для мобильных разработчиков за неделю

Senior IOS/Teamlead mobile developer Kotlin Multiplatform — удалёнка

Android-разработчик приложений —‍ от 180 000 до 350 000 ₽, удалёнка

Разработчик iOS —‍ от 200 000 ₽, удалёнка

Senior/Lead Mobile Developer —‍ от 400 000 до 560 000 ₽, удалёнка

iOS-разработчик —‍ от 350 000 ₽, удалёнка

➡️ Еще больше топовых вакансий —‍ в нашем канале Mobile jobs

🐸 Библиотека мобильного разработчика

#свежак
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Mon, 15 Sep 2025 10:01:51 +0300
🐸 Библиотека мобильного разработчика

#междусобойчик
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Sun, 14 Sep 2025 20:05:26 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Sat, 13 Sep 2025 18:45:07 +0300
📣 SQL или NoSQL — вот в чём вопрос

Все мы знаем, что в мире технологий баз данных существует два основных направления: SQL и NoSQL, реляционные и нереляционные базы данных. Различия между ними заключаются в том, как они спроектированы, какие типы данных поддерживают, как хранят информацию.

Реляционные БД хранят структурированные данные, которые обычно представляют объекты реального мира. Скажем, это могут быть сведения о человеке, или о содержимом корзины для товаров в магазине, сгруппированные в таблицах, формат которых задан на этапе проектирования хранилища.

Нереляционные БД устроены иначе. Например, документо-ориентированные базы хранят информацию в виде иерархических структур данных. Речь может идти об объектах с произвольным набором атрибутов. То, что в реляционной БД будет разбито на несколько взаимосвязанных таблиц, в нереляционной может храниться в виде целостной сущности.

Приходилось ли вам выбирать системы управления базами данных для собственных проектов? Голосуйте и пишите, что и почему вы в итоге выбрали 💬

❤️ — SQL
👍 
NoSQL
🤝 — использую оба подхода

🐸 Библиотека мобильного разработчика 

#междусобойчик
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Sat, 13 Sep 2025 13:18:20 +0300
🐸 Библиотека мобильного разработчика

#развлекалово
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Fri, 12 Sep 2025 21:02:04 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Fri, 12 Sep 2025 18:13:51 +0300
🔥 Последняя неделя перед стартом курса по AI-агентам

Старт курса уже 15го числа! Если вы планировали вписаться — сейчас ПОСЛЕДНИЙ шанс забронировать место

На курсе:
разложим LLM по косточкам: токенизация, SFT, PEFT, инференс
— соберём RAG и научимся оценивать его адекватно
— построим настоящую мультиагентную систему — архитектуру, которая умеет расти
— разберём CoPilot, сломаем через prompt injection (спасибо Максу)
— и наконец, посмотрим, как это работает в MCP и реальных кейсах

📍 Это 5 живых вебинаров + раздатка + домашки + чат с преподавателями

И главное — возможность реально разобраться, как проектировать системы на LLM, а не просто «поиграться с API»

Промокод на 5.000₽: LASTCALL

👉 Курс здесь
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Fri, 12 Sep 2025 16:08:13 +0300
✏️ xcrun simctl pushотправляем пуш-уведомления в симулятор iOS без сервера

💡 Зачем это нужно?

Тестирование пуш-уведомлений на iOS-симуляторе стало еще проще. Не нужно настраивать бэкенд или использовать сторонние сервисы – отправляйте нотификации прямо из терминала.

🔥 Как отправить пуш:

1. Создайте JSON-файл с payload (notification.apns):
{
"aps": {
"alert": {
"title": "Важное уведомление",
"body": "Привет из командной строки!"
},
"sound": "default"
},
"customData": "test123"
}

2. Отправьте на устройство:

xcrun simctl push booted com.yourapp.bundleid notification.apns


🎯 Полезные варианты:

Отправка на конкретный симулятор:

xcrun simctl push   


Быстрая отправка без файла (через pipe):

echo '{"aps":{"alert":"Test"}}' | xcrun simctl push booted com.yourapp.bundleid -


Лайфхаки:

Посмотреть список устройств:

xcrun simctl list devices | grep Booted


Тестирование разных сценариев:

- Нотификации с действиями (actions)
- Фоновые уведомления (content-available)
- Кастомные данные (custom keys)

А вы тестируете пуши через терминал? Делитесь своими скриптами в комментариях 💬

🐸 Библиотека мобильного разработчика

#буст
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Thu, 11 Sep 2025 21:02:00 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Thu, 11 Sep 2025 10:02:12 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Wed, 10 Sep 2025 21:05:52 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Wed, 10 Sep 2025 10:00:27 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Tue, 09 Sep 2025 21:04:48 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Tue, 09 Sep 2025 11:41:51 +0300
👾 Облегчаем жизнь больших экранов на Compose

В декларативных UI-фреймворках, таких как Jetpack Compose, принятым подходом является state hoisting. Это означает, что чаще всего мы стремимся управлять состоянием в родительском компоненте, а не хранить state прямо в UI-компоненте. Но всегда ли state hoisting так хорош?

На примере сложных экранов разобрались, как stateful-подход может существенно облегчить разработку больших экранов.

Но как же сделать stateful-компонент в большом проекте, если у нас:

🔘 API/Impl-архитектура;
🔘 dependency injection;
🔘 важна скорость сборки.

Автор рассказал про удобный способ создания stateful-компонентов в условиях большого проекта в рамках API/Impl-архитектуры. Это поможет разгрузить сложные экраны и делать переиспользуемые UI-компоненты в условиях API/Impl и DI.

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

🐸 Библиотека мобильного разработчика

#свежак
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Mon, 08 Sep 2025 22:00:27 +0300
Иногда реально ощущение, что нас держат в Матрице.

Большинство сидит, читает статьи про ML, смотрит ролики «как это работает» — и всё.

❗ Сегодня последний день промокода Lastcall (−5000 ₽).
Уже завтра стартует первый вебинар по Машинному обучению — полный набор для выхода из Матрицы.

Кто готов вырваться из симуляции и ворваться в сезон найма?

👾 — я уже в команде Нео
👍 — хочу красную таблетку
🤔 — пока думаю, но интересно

Забирай полный комплект для ML-разработки: Python + Математика + Машинное обучение.
🔥 Скидка 30% действует только до 9 сентября → забираем себе
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Mon, 08 Sep 2025 21:01:37 +0300
⌨️ Топ вакансий для мобильных разработчиков за неделю

Мобильный разработчик (React Native / другие) —‍ от 150 000 до 350 000 ₽, удалёнка

Старший iOS-разработчик —‍ от 300 000 до 540 000 ₽, гибрид (Москва)

Мобильный разработчик (Flutter) —‍ от 100 000 до 300 000 ₽, удалёнка

Разработчик мобильных приложений (React Native + Kotlin) —‍ от 250 000 ₽, удалёнка

Mobile Application Security Еngineer [Кибербезопасность] —‍
от 250 000 ₽, удалёнка

➡️ Еще больше топовых вакансий — в нашем канале Mobile jobs

🐸 Библиотека мобильного разработчика

#свежак
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Mon, 08 Sep 2025 14:55:10 +0300
Зовём на 2ХАКАТОН от 2ГИС

4–5 октября, офлайн, Москва
Два дня, чтобы общаться, кодить, вдохновляться и менять городские сервисы к лучшему!

Три трека: городские данные с ЦОДД, инклюзия с фондами «Антон тут рядом», «Продвижение», «ЛизаАлерт» и носимые устройства — часы, браслеты, AR и другие гаджеты.

Призовой фонд: 1 000 000 рублей
и шанс, что проект попадёт прямо в 2ГИС!

Регистрируйся с командой от 3 до 6 человек или соло — поможем найти команду в чате!

Реклама. ООО 'ДУБЛЬГИС', ИНН 5405276278, Erid: 2VSb5xSUckq
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Mon, 08 Sep 2025 10:03:59 +0300
Вопрос с собеседования по Swift

Какие потенциальные улучшения вы здесь видите?

Вы просматриваете пулл-реквест и столкнулись с этим методом:

func turnTo(direction: String){
if direction == "North" {
northAction()
} else if direction == "East" {
eastAction()
} else if direction == "South" {
southAction()
} else if direction == "West" {
westAction()
} else {
print("No valid direction specified")
}
}


Какие улучшения вы можете предложить автору кода?

Даже если этот код может работать, есть два момента, которые следует учитывать.

• Использование жестко закодированных строк типа (например, "West") - плохая идея. Что если кто-то неправильно напишет это слово? Чтобы решить эту проблему, следует отказаться от жестко закодированных строк и вместо них использовать перечисление.

• Кроме того, как насчет использования оператора switch вместо длинного оператора if-else?

Благодаря этим улучшениям код станет более безопасным и читабельным:

enum Direction {
case North
case East
case South
case West
}
func turnTo(direction: Direction){
switch direction {
case .North: northAction()
case .East: eastAction()
case .South: southAction()
case .West: westAction()
default:
print("No valid direction specified")
}
}

🐸 Библиотека мобильного разработчика

#междусобойчик
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Sun, 07 Sep 2025 20:59:24 +0300
🗓 Новости недели

Приготовили для вас дайджест по актуальному из мира iOS, Android и кроссплатформы.

🔵 «Стеклянный мир» iOS 26. Адаптируем приложение под новые гайдлайны

Уже скоро релиз iOS 26 и обновления SDK приложений. Apple снова вносит корректировки, а разработчики и дизайнеры снова подстраиваются. У текущих приложений будет переходный период, но вопрос с обновлением интерфейсов рано или поздно настанет и придется адаптировать под новый SDK и стиль Liquid Glass, чтобы продукт выглядел современно.

🔵Создание потрясающих загрузочных анимаций с помощью SF Symbols

SF Symbols позволяет легко создавать мощные и гибкие анимации и эффекты. По мнению автора, для разработчиков, ориентирующихся на последние версии ОС, этот инструмент становится предпочтительным выбором по сравнению с написанием большого объема кастомного кода.

🔵 Flow-контейнеры в Compose

Понимая и используя эти функции, вы сможете создавать более адаптивные и визуально привлекательные пользовательские интерфейсы в Jetpack Compose.

🔵 Упрощаем NFC: обзор нового SDK для Android разработки

Работа с NFC в Android всегда была непростой задачей. Нативный API требует от разработчика понимания низкоуровневых протоколов и механизмов обработки данных. Новый TAO NFC SDK (Android) призван решить эту проблему, предоставляя высокоуровневую абстракцию, которая значительно упрощает взаимодействие с NFC-метками.

🔵 Compose Multiplatform простое приложение c MVI

Статья об использовании мультиплатформенного решения на Compose с минимальным количеством сторонних beta библиотек.

🐸 Библиотека мобильного разработчика

#свежак
Подробнее
]]>
https://linkbaza.com/catalog/-1001194965543 Sun, 07 Sep 2025 13:00:49 +0300
⚡️ Будь как этот гений с картинки — предлагай свои условия работодателю, а не наоборот!

Кто нужен?
Senior ML-Engineer с опытом работы более 6 месяцев в FAANG компаниях. Требование: разработать кросс-платформенное приложение-трекер зарплат с AI-распознаванием вакансий по резюме.


Но если вы пока джун — я бы предложил:

- Full-time контракт: 180к/мес после курса + опцион на карьеру в топ-компаниях
- Либо фикс за проект: стань ML-инженером за 39к вместо 44к с промокодом LASTCALL

🔗 Старт 9 сентября
Подробнее
]]>