tgoop.com »
United States »
Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck » Telegram Web
Senior Android-разработчик в Маркетплейс — удалёнка
Flutter-разработчик — от 250 000 ₽, гибрид (Москва)
Senior IOS-разработчик — от 350 000 ₽, удалёнка
Team Lead Backend Developer — от 350 000 ₽, удалёнка
Team Lead Mobile Developer (Flutter) — от 5 500 до 7 000 $, удалёнка
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
NavigationPath
NavigationStack
и NavigationPath
в SwiftUI предоставляют мощный и гибкий способ выполнять программную навигацию в приложении. Когда вы управляете навигацией, часто возникает необходимость программно открывать (push) и закрывать (pop) экраны. NavigationPath
позволяет делать это, сохраняя типобезопасность и гибкость.🔹
NavigationStack(root:)
Инициализатор по умолчанию задаёт корень навигационной иерархии и управляет путём навигации “за кулисами”. Если вы хотите получить больший контроль и управлять навигацией программно, можно хранить путь в переменной
@State
и передавать его в инициализатор NavigationStack(path:root:)
.Параметр path должен быть
Binding<Data>
, и есть два способа его использования.Первый способ — использовать массив определённого типа, который реализует протокол
Hashable
. Это удобно, если весь стек навигации основан на одном типе данных.@State private var path: [Color] = []
NavigationStack(path: $path) {
List {
ForEach(colors, id: \.self) { color in
Button {
path.append(color)
} label: {
...
}
}
}
.navigationDestination(for: Color.self) { color in
VStack {
color
...
Button("Pop to root") {
path.removeAll()
}
}
...
}
}
В примере выше навигационный стек поддерживается массивом объектов
Color
, который выступает в роли NavigationPath
. Каждый раз, когда элемент добавляется в path, модификатор navigationDestination(for:)
показывает соответствующий экран. Вызов path.removeAll()
очищает стек и возвращает пользователя к корневому экрану.Этот подход идеально подходит для чистой, типобезопасной навигации с минимальной настройкой, особенно если вы работаете с одним типом данных.
Когда вы находитесь в корневом экране, массив пуст.
При переходе вперёд — он заполняется элементами, где последний элемент массива соответствует текущему экрану.
Чтобы открыть новый экран — добавляем элемент, чтобы вернуться назад — удаляем последний.
NavigationPath
для нескольких типовЕсли навигационный стек может содержать разные типы данных (например,
Color
, String
или пользовательские типы), лучше использовать NavigationPath
. Он работает как type-erased список данных, но при этом сохраняет достаточно информации, чтобы SwiftUI знал, какой экран показать для каждого типа.@State private var path = NavigationPath()
NavigationStack(path: $path) {
List {
Section("Colors") {
ForEach(colors, id: \.self) { color in
Button {
path.append(color)
} label: {
...
}
}
}
Section("Genres") {
ForEach(genres, id: \.self) { genre in
Button {
path.append(genre)
} label: {
...
}
}
}
}
.navigationDestination(for: Color.self) { color in
VStack {
...
Button("Pop to root") {
path.removeLast(path.count)
}
}
...
}
.navigationDestination(for: String.self) { genre in
VStack {
...
Button("Pop to root") {
path.removeLast(path.count)
}
}
...
}
}
С
NavigationPath
вы можете добавлять разные типы данных в стек. Для каждого типа нужно задать отдельный navigationDestination(for:destination:)
, чтобы описать, как отображать соответствующий экран.Если вы добавите значение в
NavigationPath
, но не определите navigationDestination
для его типа,ошибки компиляции не будет — однако пользователь увидит пустой экран с предупреждением.
Такой подход более гибкий, особенно для приложений, навигация в которых зависит от различных моделей данных.
#PixelPerfect #MiddlePath #SwiftUI
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
😁9💯2
🤓 Пока Python стал π-thon, ты можешь стать Data Scientist'ом
В Proglib.academy стартует экспресс-курс «Математика для Data Science»: 10 живых вебинаров, практика на Python и спикеры из ВШЭ, Яндекс Практикума и Wildberries, которые всё разложат по полочкам.
В программе:
🔹 матан, линал, теория вероятностей;
🔹 3 практических проекта + викторина с розыгрышем TG Premium;
🔹 поддержка преподавателей и чат с единомышленниками;
🎁 Оплати курс до 19 октября — получи курс по базовой математике в подарок.
🗓️ Старт — 6 ноября
👉 Записаться на курс
В Proglib.academy стартует экспресс-курс «Математика для Data Science»: 10 живых вебинаров, практика на Python и спикеры из ВШЭ, Яндекс Практикума и Wildberries, которые всё разложат по полочкам.
В программе:
🔹 матан, линал, теория вероятностей;
🔹 3 практических проекта + викторина с розыгрышем TG Premium;
🔹 поддержка преподавателей и чат с единомышленниками;
🎁 Оплати курс до 19 октября — получи курс по базовой математике в подарок.
🗓️ Старт — 6 ноября
👉 Записаться на курс
Аналогично
Object
в Java, к чему можно привести любой тип в Kotlin?Правильным ответом будет
Any?
.Сам по себе класс Any это почти аналог
Object
, однако, благодаря поддержке nullable и не-nullable типов в Kotlin мы получили Any?
. Фактически, Any?
соответствует любому типу и null
, а Any
только любому типу.Если по порядку:
1.
Any
является корнем иерархии не-nullable типов.2.
Any?
является корнем иерархии nullable типов.3. Так как
Any?
является супертипом Any
, то Any?
находится в самом верху иерархии типов в Kotlin.#буст #JuniorKit #Android
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍3🔥2
📄 Неочевидные ошибки в резюме айтишника, которые убивают отклики
В карточках разобрали неочевидные ошибки айтишников при составлении резюме.
👉 Читать статью
🐸 Библиотека мобильного разработчика
#MadeInProglib
В карточках разобрали неочевидные ошибки айтишников при составлении резюме.
#MadeInProglib
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🧐 Хочешь в Data Science, но не знаешь, с чего начать?
Пройди короткий тест по математике — бот покажет, насколько ты готов к переходу и что стоит подтянуть.
👉 Пройти тест
Пройди короткий тест по математике — бот покажет, насколько ты готов к переходу и что стоит подтянуть.
Всего пару минут — и ты поймёшь, куда двигаться дальше.
👉 Пройти тест
❤1
👾 Миграция больших приложений на KMP: проблемы, подводные камни, решения
KMP как технология выглядит заманчиво. Некоторые части проектов, например, аналитика должны иметь одинаковую логику на Android и iOS, чтобы данные были консистентными. И на первый взгляд, идея переписать подобные части на KMP кажется привлекательной.
Чем крупнее приложение, тем больше в нем подобных частей, которые хочется объединить. Но при этом большие приложения привносят свою специфику и свои ограничения.
Павел рассказал о том, с какими проблемами команда столкнулась при миграции своего SDK аналитики в Т-Банке на KMP. Рассмотрел различные подходы, перспективы и тупики, и решения.
👀 Смотреть видео
🐸 Библиотека мобильного разработчика
#свежак
KMP как технология выглядит заманчиво. Некоторые части проектов, например, аналитика должны иметь одинаковую логику на Android и iOS, чтобы данные были консистентными. И на первый взгляд, идея переписать подобные части на KMP кажется привлекательной.
Чем крупнее приложение, тем больше в нем подобных частей, которые хочется объединить. Но при этом большие приложения привносят свою специфику и свои ограничения.
Павел рассказал о том, с какими проблемами команда столкнулась при миграции своего SDK аналитики в Т-Банке на KMP. Рассмотрел различные подходы, перспективы и тупики, и решения.
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
JetCo — это готовая к использованию библиотека Compose с готовыми компонентами пользовательского интерфейса как для Android, так и для KMP. Разработанная специально для энтузиастов Jetpack Compose, библиотека JetCo сделает вашу жизнь проще, ваши приложения — красивее, а ваших пользователей — счастливее.
#буст #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
7%
Неправильное использование flowOn()
26%
Race condition в кэше при параллельных запросах
17%
Лишние emissions в StateFlow
25%
Поток не кэшируется, создается заново при каждом вызове
25%
Посмотреть ответ
👍4
🎲 Мы не только учим, но и играем!
На экспресс-курсе «Математика для Data Science» — викторина с призом TG-Premium 🎁
Проверь знания, прокачай математику и забери приз.
‼️ Оплатишь до 19 октября — получишь базовый курс в подарок.
👉 Записаться на курс
На экспресс-курсе «Математика для Data Science» — викторина с призом TG-Premium 🎁
Проверь знания, прокачай математику и забери приз.
‼️ Оплатишь до 19 октября — получишь базовый курс в подарок.
👉 Записаться на курс
Как превратить UI Kit из дизайнерского артефакта в живую систему, где обновление стиля в Figma автоматически обновляет код на Android.
В статье — путь от ручного копирования палитр до генерации типобезопасных токенов через KotlinPoet, Gradle-плагины и Figma JSON.
Автор расскажет, как бизнес получает скорость и консистентность, как темная тема перестаёт быть болью, и почему iOS может безболезненно присоединиться к этой архитектуре.
#свежак #Android
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
AppCode — мощная IDE от JetBrains для iOS-разработки, и если ты хочешь писать код быстрее и чище — эти хоткеи must have.
Shift + F6
Переименовывает переменные, классы, методы — и IDE сама обновит все упоминания.
Ctrl + Alt + V
(Cmd + Option + V
на Mac)Выделяешь выражение → IDE создаёт переменную автоматически.
Ctrl + Alt + M
(Cmd + Option + M
)Отлично помогает разгрести длинные функции и вынести повторяющийся код.
Ctrl + Alt + N
(Cmd + Option + N
)Обратно «встраивает» метод или переменную прямо в место вызова.
Alt + Delete
(Cmd + Delete
)Проверит, где элемент используется, и безопасно удалит его без сюрпризов.
#буст #MiddlePath #Swift
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
Недавно мы анонсировали старт нового курса «Математика для Data Science».
В ближайшие дни выйдет серия постов о том, что ждёт вас на курсе, а пока познакомим вас с его экспертами.
Спикеры курса:
👤 Ксения Кондаурова
Преподаватель и автор курсов для бакалавриата Центрального Университета (Т-Банк), спикер и методист для Edutoria (Сбербанк). Ксения расскажет, как линейная алгебра применяется для построения предсказательных моделей, и научит проверять гипотезы для бизнеса с помощью статистики.
👤 Диана Миронидис
Преподаватель НИУ ВШЭ, автор и методист Яндекс Практикума. Самый экстравагантный преподаватель из всех, с кем вы учились, — убедитесь, что математика может быть нескучной. Диана погрузит в математический анализ, научит исследовать функции и находить параметры, при которых ошибка модели минимальна.
👤 Маргарита Бурова
Академический руководитель образовательных программ по аналитике и анализу данных, Wildberries & Russ. Проведёт квиз с розыгрышем годовой подписки TG Premium. Маргарита — эксперт в дата-сайенс, ИИ и математических методах анализа данных, фанат развития ИТ-образования.
Вместе с экспертами за 8 недель вы не просто получите знания, а познакомитесь с математикой заново.
🎁 Только при оплате до 19 октября курс «Базовая математика» в подарок!
👉 Записаться на курс
В ближайшие дни выйдет серия постов о том, что ждёт вас на курсе, а пока познакомим вас с его экспертами.
Спикеры курса:
👤 Ксения Кондаурова
Преподаватель и автор курсов для бакалавриата Центрального Университета (Т-Банк), спикер и методист для Edutoria (Сбербанк). Ксения расскажет, как линейная алгебра применяется для построения предсказательных моделей, и научит проверять гипотезы для бизнеса с помощью статистики.
👤 Диана Миронидис
Преподаватель НИУ ВШЭ, автор и методист Яндекс Практикума. Самый экстравагантный преподаватель из всех, с кем вы учились, — убедитесь, что математика может быть нескучной. Диана погрузит в математический анализ, научит исследовать функции и находить параметры, при которых ошибка модели минимальна.
👤 Маргарита Бурова
Академический руководитель образовательных программ по аналитике и анализу данных, Wildberries & Russ. Проведёт квиз с розыгрышем годовой подписки TG Premium. Маргарита — эксперт в дата-сайенс, ИИ и математических методах анализа данных, фанат развития ИТ-образования.
Вместе с экспертами за 8 недель вы не просто получите знания, а познакомитесь с математикой заново.
🎁 Только при оплате до 19 октября курс «Базовая математика» в подарок!
👉 Записаться на курс
❤1