tgoop.com »
United States »
Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck » Telegram Web
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5
Там всё, что вы любите: полезные материалы, код без цензуры, ну и конечно мемы.
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4❤2
Пишите свои ответы в комментариях
#междусобойчик #JuniorKit
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
🚀 Всё о курсе «ИИ-агенты для DS-специалистов»
❓ Зачем нужны ИИ-агенты?
Это системы, которые берут на себя задачи аналитики и автоматизации. Именно они становятся основой для работы с корпоративными данными и для поддержки принятия решений.
❓ Зачем мне курс?
Курс отвечает на три ключевых вопроса:
— Как построить собственную систему агентов с нуля?
— Каким образом использовать RAG-подход для работы с корпоративными данными?
— Как адаптировать LLM под реальные задачи бизнеса?
❓ Подходит ли это мне?
Курс рассчитан на специалистов уровня middle+ и senior: ML/AI инженеров, Data Scientists, backend и platform-разработчиков. Подойдёт и студентам CS/DS, если вы готовы к продвинутым практикам.
Запись вводной встречи «ИИ-агенты: новая фаза развития искусственного интеллекта» доступна по ссылке.
❓ Когда старт?
Обучение начинается 3 октября.
❓ Сколько стоит?
До 28 сентября действует скидка → 57 000 ₽ вместо 69 000 ₽ (промокод datarascals).
🔗 Описание программы и регистрация
❓ Зачем нужны ИИ-агенты?
Это системы, которые берут на себя задачи аналитики и автоматизации. Именно они становятся основой для работы с корпоративными данными и для поддержки принятия решений.
❓ Зачем мне курс?
Курс отвечает на три ключевых вопроса:
— Как построить собственную систему агентов с нуля?
— Каким образом использовать RAG-подход для работы с корпоративными данными?
— Как адаптировать LLM под реальные задачи бизнеса?
❓ Подходит ли это мне?
Курс рассчитан на специалистов уровня middle+ и senior: ML/AI инженеров, Data Scientists, backend и platform-разработчиков. Подойдёт и студентам CS/DS, если вы готовы к продвинутым практикам.
Запись вводной встречи «ИИ-агенты: новая фаза развития искусственного интеллекта» доступна по ссылке.
❓ Когда старт?
Обучение начинается 3 октября.
❓ Сколько стоит?
До 28 сентября действует скидка → 57 000 ₽ вместо
🔗 Описание программы и регистрация
Please open Telegram to view this post
VIEW IN TELEGRAM
😁7
Помнишь свою первую программу "Hello World"? А сейчас студенты начинают с фразы «Привет, ChatGPT, создай мне приложение для учета расходов». И знаешь что? Получают рабочий результат быстрее, чем мы когда-то выводили эту чертову строчку на экран. Это меняет всю философию обучения программированию.
#MadeInProglib
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2😁1
Как и большинство языков программирования, 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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
⏳ Последние часы со скидкой!
Мы уже закрыли вебинар «ИИ-агенты: новая фаза развития AI», но запись всё ещё доступна.
А дальше остаётся только практика. На курсе «ИИ-агенты для DS-специалистов» ты научишься разрабатывать агентов, собирать RAG-системы и адаптировать LLM под бизнес.
⏰ Сегодня цена ещё 57.000 ₽ с промокодом datarascals.
Завтра — 69.000 ₽.
👉 Успеть оплатить до полуночи
Мы уже закрыли вебинар «ИИ-агенты: новая фаза развития AI», но запись всё ещё доступна.
А дальше остаётся только практика. На курсе «ИИ-агенты для DS-специалистов» ты научишься разрабатывать агентов, собирать RAG-системы и адаптировать LLM под бизнес.
⏰ Сегодня цена ещё 57.000 ₽ с промокодом datarascals.
Завтра — 69.000 ₽.
👉 Успеть оплатить до полуночи
❤1
Приготовили для вас дайджест по актуальному из мира iOS, Android и кроссплатформы.
С большими кодовыми базами Swift трудно работать — медленная сборка, нестабильное тестирование, сложные графы. Автор подробно разберёт, почему инструментарий Apple испытывает трудности при масштабировании и как команды могут преодолеть эти трудности без React Native или Bazel.
Тестирование на Swift долгие годы держалось на трех китах: XCTest, сторонние библиотеки и собственная смекалка. Но на WWDC 24 Apple представила новый, современный фреймворк — Swift Testing, который предлагает концептуально новый подход к тестированию.
Многие команды QA инженеров сталкиваются с выбором: остаться на привычном Java‑стеке или перейти на Kotlin. В этой статье мы рассмотрим некоторые ключевые различия, преимущества и практические аспекты перехода на Kotlin в контексте автоматизации тестирования.
Google сообщил, что вносит ряд изменений во внешний вид и функциональность Play Store, чтобы лучше персонализировать магазин для своих пользователей и повысить его вовлеченность.
Исправил ли React Native все свои проблемы? Кто его использует? А главное стал ли RN лучше, чем Flutter и Kotlin Multiplatform?
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1🔥1
Большинство iOS-разработчиков используют Xcode Debugger только для банальных
breakpoint
и просмотра переменных. Но в нём есть куда больше фишек, которые реально экономят время.🔹 Conditional breakpoints
Можно остановить выполнение не всегда, а только при выполнении условия.
Например, поставить брейкпоинт на метод и задать условие
userId == 42
. Тогда дебаггер не будет дёргать вас на каждом вызове.🔹 Exception Breakpoint
Очень полезно для поиска падений — Xcode сразу остановит выполнение в момент выброса исключения, до того как приложение упадёт. Настраивается через вкладку Breakpoints Navigator → + Exception Breakpoint.
🔹 Symbolic breakpoints
Позволяют ловить вызовы по имени метода или функции, даже если кода у вас нет (например, методы UIKit). Можно отследить момент, когда система вызывает
viewDidAppear:
или layoutSubviews
.🔹 Debug view hierarchy
Через кнопку "Debug View Hierarchy" можно визуально исследовать всю иерархию вьюх, включая невидимые и перекрытые элементы. Отличный способ поймать «невидимую кнопку», которая блокирует тап.
🔹 LLDB команды прямо в консоли
po object
— печатает объект с вызовом description
.expr
— позволяет выполнять произвольный Swift/ObjC код прямо во время остановки.watchpoint set variable foo
— можно следить за изменением конкретной переменной.🔹 Runtime Issues
Xcode сам подсказывает баги вроде «UI update вне main thread» или «дважды добавили constraint». Не игнорируйте эти подсказки — они часто спасают кучу времени.
Что из этого вы используете?
#буст #MiddlePath #iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
👾 Шаблон архитектуры MVP
MVP (Model - View - Presenter) появился как альтернатива традиционному архитектурному паттерну MVC (Model - View - Controller). Используя MVC в качестве архитектуры приложения, разработчики сталкиваются со следующими трудностями:
🔘 Большая часть основной бизнес-логики находится в Controller. В течение жизненного цикла приложения этот файл становится всё больше и его становится сложно поддерживать.
🔘 Из-за тесной связки пользовательского интерфейса и механизмов доступа к данным, и Controller, и View оказываются в одной Activity или Fragment. Это создаёт проблемы при внесении изменений в функциональность приложения.
🔘 Становится трудно проводить модульное тестирование разных слоёв, так как большинство тестируемых частей зависят от компонентов Android SDK.
Паттерн MVP решает эти проблемы MVC и предоставляет простой способ структурировать код проекта. Причина, по которой MVP широко применяется, заключается в том, что он обеспечивает модульность, тестируемость и более чистую и удобную в сопровождении кодовую базу. Он состоит из следующих трёх компонентов:
🔹 Model: слой для хранения данных. Отвечает за обработку предметной логики (реальных бизнес-правил) и взаимодействие с базой данных и сетевым уровнем.
🔹 View: слой пользовательского интерфейса (UI). Он отвечает за визуализацию данных и отслеживает действия пользователя, чтобы уведомлять Presenter.
🔹 Presenter: получает данные из модели и применяет UI-логику, чтобы решить, что отображать. Он управляет состоянием View и выполняет действия в соответствии с уведомлениями о действиях пользователя.
🐸 Библиотека мобильного разработчика
#буст #SeniorView #Android
MVP (Model - View - Presenter) появился как альтернатива традиционному архитектурному паттерну MVC (Model - View - Controller). Используя MVC в качестве архитектуры приложения, разработчики сталкиваются со следующими трудностями:
Паттерн MVP решает эти проблемы MVC и предоставляет простой способ структурировать код проекта. Причина, по которой MVP широко применяется, заключается в том, что он обеспечивает модульность, тестируемость и более чистую и удобную в сопровождении кодовую базу. Он состоит из следующих трёх компонентов:
🔹 Model: слой для хранения данных. Отвечает за обработку предметной логики (реальных бизнес-правил) и взаимодействие с базой данных и сетевым уровнем.
🔹 View: слой пользовательского интерфейса (UI). Он отвечает за визуализацию данных и отслеживает действия пользователя, чтобы уведомлять Presenter.
🔹 Presenter: получает данные из модели и применяет UI-логику, чтобы решить, что отображать. Он управляет состоянием View и выполняет действия в соответствии с уведомлениями о действиях пользователя.
#буст #SeniorView #Android
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🥱2😁1
On-premise, private cloud, и public cloud — это три основные модели развертывания IT-инфраструктуры, каждая из которых предлагает различные уровни контроля, управления и масштабируемости.
Выбор между этими моделями часто ставит в тупик. Как выбрать подходящую платформу?
Что предпочитаете вы? Голосуйте и пишите своё мнение в комментариях
❤️ — оn-premise
👍 — private cloud
🤝 — public cloud
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2🤝1
iOS-разработчик — офис/удаленно (Москва, Зеленоград, Солнечногорск)
Android-разработчик — офис/удаленно/гибрид
Flutter-разработчик — до 200 000 ₽, офис/удаленно/гибрид
iOS-разработчик — от 200 000 ₽, офис/удаленно/гибрид
Flutter-разработчик — гибрид (4 дня офис/1 день удаленно) Москва
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Обрезка — это удаление частей контента за пределами заданной формы. Представьте, что вы используете формочки для печенья: всё, что находится внутри формочки, остаётся, а всё, что снаружи, удаляется.
В Compose это делается с помощью
Modifier.clip
функции:Image(
painter = painterResource(R.drawable.avatar),
contentDescription = null,
modifier = Modifier
.size(72.dp)
.clip(CircleShape)
)
Здесь изображение обрезается по кругу, независимо от фактических границ растрового изображения.
Если встроенных фигур (
CircleShape
, RoundedCornerShape
и т. д.) недостаточно, вы можете создать собственную Shape
и нарисовать свой собственный контур. Например:class SquishedOvalShape : Shape {
override fun createOutline(
size: Size,
layoutDirection: LayoutDirection,
density: Density
): Outline {
return Outline.Generic(
Path().apply {
addOval(Rect(0f, size.height / 4f, size.width, size.height))
}
)
}
}
Примените его, как и любую другую форму:
Modifier.clip(SquishedOvalShape())
#PixelPerfect #MiddlePath #Android
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
🤖 Курс «ИИ-агенты для DS-специалистов»
Последняя возможность в этом году освоить ИИ-агентов с Proglib— старт живых вебинаров на курсе уже 3 октября!
Уже 24 студента изучают 5 лонгридов подготовительного модуля, чтобы сформировать базу к старту живых вебинаров с Никитой Зелинским.
📚 Бонус: при оплате до 30 сентября вы получите дополнительный лонгрид для подготовки к курсу. Это отличный способ подойти к занятиям уже с базой.
🔥 А ещё после прохождения курса у вас будет достаточно знаний, чтобы участвовать в хакатоне с призовым фондом 1 125 000 ₽.
🔗 Записаться на курс и узнать подробности
Последняя возможность в этом году освоить ИИ-агентов с Proglib— старт живых вебинаров на курсе уже 3 октября!
Уже 24 студента изучают 5 лонгридов подготовительного модуля, чтобы сформировать базу к старту живых вебинаров с Никитой Зелинским.
📚 Бонус: при оплате до 30 сентября вы получите дополнительный лонгрид для подготовки к курсу. Это отличный способ подойти к занятиям уже с базой.
🔥 А ещё после прохождения курса у вас будет достаточно знаний, чтобы участвовать в хакатоне с призовым фондом 1 125 000 ₽.
🔗 Записаться на курс и узнать подробности
Please open Telegram to view this post
VIEW IN TELEGRAM
😁12
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
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Из-за чего возможна некорректная работа в рантайме?
Anonymous Quiz
15%
Неправильная проверка типов в equals()
32%
Поле name не учитывается в equals()
33%
Отсутствует переопределение hashCode()
7%
Класс должен быть помечен как open
13%
Посмотреть ответ
👍4
При создании интерфейса важно проверить, как он реально выглядит. Часто это проверяют все участники процесса — от разработчиков до менеджеров. И для автоматизации и упрощения процесса визуального тестирования приложения есть специальный инструмент — golden‑тесты.
Это методология тестирования, в которой текущий UI сравнивается с предварительно сгенерированным «золотым» эталоном. Если вы уже слышали про скриншот‑тесты — это примерно то же самое, но есть нюансы.
flutter_test
.flutter_test
.#свежак #Flutter
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2