Актуальное по мобильной разработке — Android, iOS, кроссплатформа Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Другие наши проекты: https://tprg.ru/media
Будьте бдительны! Разыскиваются авторы и ревьюеры на курсы Яндекс Практикума
Узнать их просто: они любят помогать людям, умеют грамотно объяснять непростые темы и хотят делиться своими знаниями с другими.
Если это вы или вы знаете такого человека — обязательно переходите по ссылке и узнавайте подробности о вакансии:
— Автор на курс «Дизайн мобильных приложений»;
— Ревьюер на курс «Дизайнер интерфейсов».
Реклама АНО ДПО «Образовательные технологии Яндекса»
Ищем человека в команду SMM
Если вы разбираетесь в IT, умеете подавать информацию и хотите попробовать себя в качестве автора Telegram-каналов, то приходите к нам!
Подробности о вакансии, зарплате и тестовое можно посмотреть тут:
http://tprg.ru/bqed
#вакансии #работа
Что будет, если вы захотите, скажем, пристроить кота на Авито?
Система изучит объявление, проверит дубли среди 150 000 000 других объявлений. Затем кот пройдёт модерацию. Попадёт в базу данных, а потом в систему рекомендаций…
Впрочем, лучше один раз увидеть. А показывают Авито изнутри здесь: https://tprg.ru/LF8K
Реклама ООО «Авито Тех» LjN8Jutzi
Как локализовать все ваши iOS приложения на 20 языков за 5 минут
В современном мире спрос на мобильные приложения, которыми пользуются люди из разных стран и регионов, значительно увеличился. Для разработчиков важно сделать свои приложения доступными на нескольких языках.
Но локализация может занять много времени и ресурсов, особенно, для приложений с большим количеством контента и длинным списком поддерживаемых языков. К счастью, сегодня можно автоматизировать и этот процесс.
В этой статье вы узнаете, как перевести iOS-приложение на множество языков с помощью XCodeLocalize:
https://habr.com/ru/articles/722172/
#ios
Советы по производительности SwiftUI
SwiftUI существует уже несколько лет и за этот период работы с ним автор этой статьи заметил несколько типов ошибок разработчиков (как своих, так и других), которые могут повлиять на его производительность.
Здесь он подробно рассмотрел эти подводные камни и их возможные решения:
https://martinmitrevski.com/2022/04/14/swiftui-performance-tips/
#ios #swiftui
Использование Dynamic Type с кастомными шрифтами в iOS
Apple представила функцию Dynamic Type в iOS. Эта функция позволяет разработчикам изменять размер текста в соответствии с настройками пользователя.
Самый простой способ для разработчика поддерживать динамический шрифт — использовать предопределённые системой стили текста, такие как крупный заголовок, headline, основная часть и другие.
Но если речь идёт о пользовательских шрифтах, то всё становится несколько сложнее. В этой статье вы увидите, как мы можем добавить динамику нашим шрифтам шаг за шагом:
hdmdhr/use-dynamic-type-with-custom-fonts-in-ios-480d9c902689" rel="nofollow">https://medium.com/@hdmdhr/use-dynamic-type-with-custom-fonts-in-ios-480d9c902689
#ios
Сам себе игровая консоль: превращаем планшет с нерабочим тачскрином в игровой девайс из 8 кнопок и микроконтроллера
Ну не только же нам приложения делать, правда? Давайте реанимируем ваш старый гаджет на Android и превратим его в игровую приставку.
Для этого нам понадобятся:
— старый планшет или смартфон на android;
— Raspberry Pi Pico;
— 8 кнопок;
— прямые руки;
— и, наконец, немного кода.
Подробная инструкция в статье:
https://habr.com/ru/companies/timeweb/articles/736438/
#android #diy
Интеграция рекламы в Android-приложение: Yandex Mobile Ads Vs. Google AdMob
Сегодня использовать зарубежные решения не столько сложно, сколько бессмысленно, если пользователи находятся в России. Многие провайдеры уходят из страны и с получением дохода от рекламы могут возникнуть проблемы.
Эта статья будет полезна Android-разработчикам, которые столкнулись с выбором SDK:
https://habr.com/ru/companies/simbirsoft/articles/737158/
#android
Как создать анимированные шейдеры в Jetpack Compose
Jetpack Compose — бурно развивающийся фреймворк для разработки под Android, который обладает множеством не всегда очевидных фичей. Сегодня речь пойдёт об одной из таких встроенных возможностей: речь идет об использовании OpenGL-шейдеров. Они позволяют делать красивые анимированные интерфейсы, как на видео выше.
В этой статье вы научитесь использовать эту фичу в своих проектах и делать аналогичные шейдеры:
https://habr.com/ru/companies/timeweb/articles/736192
#jetpackcompose
Как самостоятельно изучить Swift и стать iOS-разработчиком
Максим — iOS-разработчик из Казани, он самостоятельно освоил Objective-C и Swift и пишет мобильные приложения с 2017 года. Он успел поработать в стартапе и международной ИТ-компании, делал приложения для клиента из Арабских Эмиратов и Музея русского импрессионизма.
В этой статье он рассказал, почему решил стать iOS-разработчиком и что из этого вышло:
https://tproger.ru/articles/moja-istorija-v-it-kak-samostojatelno-izuchit-swift-i-stat-ios-razrabotchikom/
#ios
Самый популярный вопрос во вселенной изучения мобильной разработки – это куда же всё-таки идти, в iOS или Android
На вебинаре Яндекс Практикума «Батл: отличия iOS и Android» спикеры развернут интересную дискуссию о том, в чём схожи и чем отличаются виды разработки под iOS и Android.
Вести встречу будут наставники одноименных направлений:
— Никита Куликов – руководитель Android-разработки в Flipper Devices;
— Денис Сурков – iOS-разработчик в «Мой спорт».
А ещё вы узнаете:
— что такое мобильная разработка;
— чем занимаются мобильные разработчики;
— в чём особенности профессии;
— как понять, что больше подходит вам.
И многое другое, что вы хотели узнать о профессии, чтобы сделать выбор или окончательно утвердиться в его правильности.
Начало 25 мая в 19:00. Ссылка для регистрации на ивент: https://practicum.yandex.ru/promo/events/ios-android/
Реклама АНО ДПО «Образовательные технологии Яндекса»
Параллакс в Jetpack Compose
Эффект параллакса является популярным способом улучшить внешний вид приложения. При этом создать эффект параллакса в compose довольно просто: мы отслеживаем состояние прокрутки нашего скроллера и изменяем скорость трансляции видов, для которых мы хотим использовать параллакс.
В этой статье вы найдёте пошаговую инструкцию для создания этого такого эффекта:
https://proandroiddev.com/parallax-in-jetpack-compose-bf521244f49
#jetpackcompose
Ping в iOS
Иногда бывает нужно проверить доступность удалённого сервера и время ответа из приложения.
Простой способ такой проверки с использованием новой асинхронной функциональности Swift описывается в статье:
onlyapps/measuring-ping-in-ios-apps-a-simple-solution-13be82a15bf3" rel="nofollow">https://medium.com/@onlyapps/measuring-ping-in-ios-apps-a-simple-solution-13be82a15bf3
#ios #network
Виды мобильных приложений
Мобильные приложения могут работать непосредственно на платформе, поверх мобильного браузера или представлять собой комбинацию обоих вариантов. Выбор правильного типа приложения зависит от конкретных потребностей проекта.
В статье описаны характеристики и различия каждого вида мобильных приложений:
https://iamankurjain.medium.com/mobile-application-taxonomy-65b4b9e9e5a7
#советы
Сокращение времени запуска Android-приложения
Время запуска — это первое впечатление пользователей о приложении, и медленная загрузка может негативно сказаться на удержании и привлечении пользователей.
Статья рассказывает о том, как разработчики Turo (каршеринг-приложение) сократили время запуска программы на 77%:
https://medium.com/androiddevelopers/turo-reduced-its-app-startup-time-by-77-using-android-developer-tools-and-best-practices-bcf82f596bcf
#android
Как создать простой видеоплеер с помощью Jetpack Compose и ExoPlayer
ExoPlayer — библиотека для воспроизведения аудио и видео с открытым исходным кодом, которая является альтернативой API MediaPlayer на Android.
С помощью этого видео, Jetpack Compose и этой библиотеки, вы сможете создать свой собственный видеоплеер:
https://youtu.be/JX1fwti2LI4
#android #compose
Jetpack Compose и классы windowSize
Узнайте, как использовать Jetpack Compose и классы windowSize для создания адаптивных макетов в Android-приложениях. Статья будет полезна всем, кто занимается разработкой мобильных приложений под Android, особенно тем, кто хочет сделать свои приложения более адаптивными и гибкими для пользователей.
Автор статьи подробно рассматривает различные аспекты работы с классами Jetpack Compose и windowSize, и приводит много полезных советов и примеров.
https://dev.to/erdo/jetpack-compose-and-windowsize-classes-gb4
#android #jetpackcompose
Kotlin Flow: лучшие практики
В этой статье вы познакомитесь с лучшими практиками использования Kotlin Flow, включая создание операторов и обработку ошибок.
Не упустите возможность узнать больше о преимуществах этого инструмента и улучшить свои навыки в разработке мобильных приложений:
https://florentblot.medium.com/kotlin-flow-best-practices-ab05e249ec1c
#kotlin
Причины конфликтов в IT и способы их решения
Сложно найти такую сферу деятельности, в которой не происходили бы конфликты между людьми, связанными друг с другом деловыми обязательствами, и IT-сфера-не исключение. Поэтому важно не только понимать, как решить эти конфликты, но и знать причины их возникновения, чтобы избежать хотя бы часть из них.
Подробнее об этом в статье:
https://tproger.ru/articles/prichiny-vozniknoveniya-konfliktov-v-it-kollektivah-i-sposoby-ih-reweniya/
Лайв-ревью Android-библиотеки для упрощения работы с разрешениями
В этом видео вы не только разберёте код ревью библиотеки MintPermissions, но и услышите комментарии от автора это библиотеки.
Подробнее:
https://youtu.be/zmpvQwcujk0
#видео #android
Поиск retain cycle с помощью инструментов Xcode
При разработке под iOS многие разработчики часто сталкиваются c retain cycle, когда как минимум 2 объекта удерживают строгие ссылки друг на друга.
В реальном большом проекте очень тяжело отыскать, кто держит сильную ссылку друг на друга, причем это могут быть не 2 объекта, а больше.
В этой статье вы узнаете, как найти проблемное место и исправить его:
https://tproger.ru/articles/poisk-retain-cycle-s-pomoshhju-instrumentov-xcode/
#ios #xcode #swift
Упрощение внедрения зависимостей с помощью паттерна «фасад» в iOS
Если мы работаем в приложении со слишком большим количеством модулей и, следовательно, слишком большим количеством зависимостей в каждом из них, может потребоваться много времени, чтобы сосчитать их все, внедрить в каждый класс, на который они полагаются.
К счастью, существует полезное решение, позволяющее упростить передачу слишком большого количества зависимостей в класс, и даже лучше: его можно разделить на более мелкие, если не все из них необходимы.
Подробнее:
https://pedroalvarez-29395.medium.com/ios-simplifying-dependency-injection-with-the-facade-design-pattern-bd863630da32
#ios
Как использовать Deep Links и Universal Link iOS-разработчику?
Приходите 26 мая в 20:00 мск на бесплатный вебинар в OTUS на котором вы узнаете, как правильно организовать навигацию с помощью Deep Links и Universal Links в SwiftUI.
На вебинаре:
— расскажут о технологии Deep links на iOS;
— произведут настройку сервера и клиентского приложения для работы с этой технологией;
— на примере приложения на SwiftUI покажут, как можно открыть определенный экран с помощью Deep links.
Регистрация на вебинар: https://otus.pw/Yvud/
Не упустите шанс узнать больше о технологии, которая может значительно улучшить пользовательский опыт в вашем приложении.
Вебинар пройдет в рамках онлайн-курса «iOS Developer. Professional» в OTUS.
Реклама ООО «Отус Онлайн-Образование» LjN8JvuSW
SOLID-принципы — основа качественного и гибкого кода
Чтобы при передаче данных между слоями одна правка не влекла за собой лавину других, стоит придерживаться принципа инверсии зависимости.
Юра Афанасьев, бэкендер из Авито, уместил все 5 принципов в 4 коротких обучающих ролика. Смотрите последний выпуск о SOLID-принципах и подписывайтесь, чтобы не пропустить новые лекции на канале AvitoTech: https://tprg.ru/4EmC
Реклама ООО «Авито Тех» LjN8JyQwf
Диспетчеризация методов iOS
Диспетчеризацией методов называют процесс поиска адреса инструкций, которые нужно выполнить CPU при вызове определенного метода. Знания принципов работы диспетчеризации методов необходимы при написании кода, поскольку они позволяют повысить производительность приложения, а также не допустить ошибок, связанных с неочевидным поведением в Swift.
В этой статье будут рассмотрены понятие диспетчеризации, его виды, преимущества и недостатки, а также приведены небольшие задачи для укрепления знаний:
https://habr.com/ru/articles/677616/
#ios #swift
Опыт после использования Kotlin Multiplatform в производственных приложениях в течение года
Автор этой статьи поделился своими наблюдениями и выводами об использовании Kotlin Multiplatform. Рекомендуем к прочтению:
https://betterprogramming.pub/experience-using-kmp-in-production-apps-for-a-year-2474406d99d4
#kotlin #kmp
Сборка с Bazel — бесплатный курс
Bazel — это система сборки с открытым исходным кодом, созданная Google для компиляции больших сложных баз кода.
На этом курсе вы сможете изучить основы использования этого инструмента начиная от написания очень простого Java-приложения, заканчивая компиляцией приложения для Android с большим количеством зависимостей.
Курс доступен бесплатно:
https://www.kodeco.com/31558158-building-with-bazel
#bazel #курс
Различия Compose и SwiftUI
На первый взгляд SwiftUI и Jetpack Compose очень похожи. Оба являются декларативными UI-фреймворками с похожими примитивами, предназначенными для выполнения одной и той же задачи.
Но есть некоторые фундаментальные различия, которые определяют способ их использования. Подробности в статье:
https://medium.com/mateedevs/fundamental-differences-of-compose-and-swiftui-2dc0cdd0b37
#swiftui #compose
Использование принципа инверсии зависимостей на практике
В статье предлагается эффективный подход к обновлению приложений без необходимости полного переписывания кода. Автор обсуждает применение принципа инверсии зависимостей (Dependency Inversion), который позволяет снизить зависимость между компонентами приложения, сделать его более гибким и устойчивым к изменениям:
https://itnext.io/avoid-rewriting-your-app-with-dependency-inversion-dfe525075f28
#android
Passkeys в вопросах и ответах
Passkeys — это замена паролей, обеспечивающая более быстрый, простой и безопасный вход в приложения и веб-сайты. Этот способ авторизации надежен, устойчив к фишингу и рассчитан на работу не только на устройствах Apple. Самое главное, что людям не нужно ничего создавать, охранять или запоминать.
Чтобы объяснить, как применять Passkeys, команда Apple по конфиденциальности и безопасности провела встречу в формате «вопрос-ответ», в ходе которой ответила на распространённые вопросы о поддержке устройств, вариантах использования, восстановлении аккаунта и многом другом. В статье — основные моменты из этой беседы:
https://developer.apple.com/news/?id=21mnmxow
#ios