Актуальное по мобильной разработке — Android, iOS, кроссплатформа Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Другие наши проекты: https://tprg.ru/media
Хватит вручную выискивать ошибки в коде
Разработчики уже давно смогли автоматизировать процесс отладки, например, статическим анализатором кода.
Один из таких — PVS-Studio. Этот анализатор повышает качество, защищенность (SAST) и безопасность вашего кода. Работает на C, C++, C# и Java.
С промокодом tproger вы сможете получить целых 30 дней лицензии, вместо 7:
https://tprg.ru/bH9G
Реклама ООО «ПВС» LjN8Jtf5b
Подкаст: заказчики, платформы и технологии
Команда Mobius выпустила новое видео с Алексеем Гладковым, в котором обсуждают заказчиков и вечный вопрос: Flutter, KMM или нативная разработка?
Самые странные хотелки заказчика, стоит ли соглашаться? Когда стоит отказаться от привычных технологий в пользу чего-то нового — в этом видео:
https://youtu.be/UGow5drkUvA
#android #kmm
KMM: переход из Dagger & Hilt в kotlin-inject
Kotlin-inject — это библиотека для внедрения зависимостей похожая на Koin. Koin, действительно, более популярен, но, по мнению автора статьи, есть 2 главных недостатка:
— Compile-time safety,
— Различия с Dagger-API. Kotlin-inject написан полностью на Kotlin, поэтому проще в использовании, чем Koin.
В этой статье рассматривается пример перехода от Dagger и Hilt к kotlin-inject. Также автор подробно объясняет все плюсы использования kotlin-inject в их приложении:
https://proandroiddev.com/from-dagger-hilt-into-the-multiplatform-world-with-kotlin-inject-647d8e3bddd5
#android
Как программисту сохранить зрение?
В 1999 году появилось понятие компьютерного зрительного синдрома. Основные формы: синдром сухого глаза и хронического утомления. Если вы длительно работаете за компьютером, то вы тоже можете быть в зоне риска.
Действительно, сейчас есть 4K мониторы, крутые очки, но усталость глаз рано или поздно может появиться у каждого. Собрали 7 крутых советов для программистов, которые помогут сберечь зрение:
https://tproger.ru/articles/7-prostyh-sovetov-dlja-programmista-kotorye-sberegut-ego-zrenie/
#it #здоровье
Как реализовать пользовательский ввод для Android Wear OS
Если вы запрашиваете ввод от пользователя на устройстве Wear OS, вы можете предложить ему сопутствующее приложение для телефона, но если это невозможно, можно запросить ввод текста или смайликов непосредственно с часов, используя встроенные инструменты IME.
В этой статье рассматривается пример того, как стандартные методы ввода могут быть реализованы с помощью RemoteInput API:
https://proandroiddev.com/typing-on-a-tiny-screen-e7601e846118
#wearos
Самые частые ошибки начинающих iOS-разработчиков
Александра Башкирова, старший код-ревьюер на курсе «iOS-разработчик» в Яндекс Практикуме, разбирает несколько популярных ошибок, которые допускают новички.
Например, ошибки в вёрстке, избыточные force unwrapping, неправильное использование switch и guard. Также автор рассказывает к чему приводят эти ошибки и как их избежать:
https://habr.com/ru/company/yandex_praktikum/blog/722812/
#ios
TaskGroup: обработка ошибок в Swift
Механизм TaskGroup используется для запуска n-го числа дочерних задач и позволяет обрабатывать некоторые действия, например, распространение отмены. Группы бывают двух типов:
— withThrowingTaskGroup (пробрасывающие ошибки),
— withTaskGroup (предназначен для случаев, когда ошибки не выдаются).
В этой статье автор рассматривает 2 примера использования TaskGroup. В первом случае нужно остановить группу, как только произошла ошибка, и отменить всю оставшуюся работу. В другом случае рассматривается игнорирование любых ошибок в дочерних задачах и получение информации о задачах, которые были успешными:
https://augmentedcode.io/2023/03/06/taskgroup-error-handling-in-swift/
#ios
«Неделя конфиденциальности для Android-разработчиков»
С 13 марта Android Developers публикуют специальные посты и руководства посвященные безопасности приложений и конфиденциальности. Начиная просто с кода и заканчивая хранением данных и управлением ими.
Основная цель этой недели — рассмотреть основные элементы конфиденциальности Android-приложений о которых должен знать каждый разработчик. Также были обновлены некоторые гайды по разработке.
Первую подборку можно посмотреть по ссылке: https://android-developers.googleblog.com/2023/03/privacy-week-for-android-developers.html
#android
Что внутри APK?
Новый выпуск от Android Broadcast про APK: что содержится в APK, какие есть способы доставки в Google Play, а также немного про Dynamic Feature:
https://youtu.be/FZeq2WmF9KY
#android
7 Jetpack Compose проектов для практики
Подборка проектов с открытым исходным кодом, на которых можно попрактиковаться:
— приложение для отслеживания ТВ-шоу,
— лента Stack Overflow,
— приложение для любителей кофе,
— новости,
— аналог Spotify,
— приложение для доставки еды,
— Рик и Морти на GraphQL:
https://medium.com/geekculture/7-jetpack-compose-projects-to-become-a-better-android-developer-282879cb197f
#compose
Анимация для iOS-приложения — UIView
В этой статье автор показывает, как реализовать анимацию, которая зависит от направления скролла UICollectionView. Основная задача — изменить размер UIView при скролле какого-нибудь контента.
Для этого использовался NSLayoutConstraint, реализован метод scrollViewDidScroll для отслеживания скролла, а также автору пришлось добавить логику для обхода bounce эффекта:
https://habr.com/ru/post/721894/
#ios
Обновление цен в App Store распространилось на все типы покупок
В декабре компания объявила об изменениях и новых инструментах для управления ценами. С 9 марта новая политика цен доступна для всех типов приложений и покупок в приложении (включая одноразовые покупки в приложениях).
Основные обновления, которые были анонсированы в декабре:
— Apple вводит 900 видов цен,
— расширенные региональные цены,
— новые инструменты для установки цен в регионах,
— дополнительные правила ценообразования в некоторых странах.
Источник: https://developer.apple.com/news/?id=dbrszv62
#ios
Боковое меню на SwiftUI
Несложный урок для начинающих, как создать современное и настраиваемое выдвигающееся меню в iOS-приложении. Автор подробно объясняет все шаги для реализации, например: дизайн бокового меню, добавление пунктов в меню навигации, переходы:
https://medium.com/geekculture/side-menu-in-ios-swiftui-9fe1b69fc487
#ios
Создание Bluetooth Chat приложения под Android
Серия видеоуроков по созданию чат-приложения между двумя устройствами.
Часть 1: Сканирование ближайших устройств и отображение их в списке.
Часть 2: Подключение.
Часть 3: Отправка сообщений.
#android
Google I/O 2023 пройдёт 10 мая!
Компания объявила дату во вторник после того, как интернет-пользователи быстро разгадали головоломку, которую опубликовали организаторы утром того же дня.
Традиционно будут онлайн-трансляции и записи на YouTube. На данный момент планируется провести около 100 технических сессий. А еще все желающие уже могут зарегистрироваться на сайте:
https://io.google/2023/
#google_io #android
Релиз Jetpack Compose: что нового?
1. Page: улучшили свайп между страницами контента (пример поведения на видео). Теперь дополнительные библиотеки, например, Accompanist, можно не использовать в проекте.
2. Новые Flow Layouts: Flow Row и Flow Column обеспечивают эффективный и компактный способ размещения элементов в контейнере, когда размер элементов или контейнера неизвестен или динамичен.
3. Повышение производительности в Modifier.
4. Text и TextField стали более функциональными: новые анимации, поддержка бегущей строки, более плавные переходы.
Источник: https://android-developers.googleblog.com/2023/03/whats-new-in-jetpack-compose-march-23-release.html
#android
Новость для профессионалов, которые хотят проверить себя в деле
В апреле у мобильных разработчиков уровня middle+ из России будет возможность проверить свои навыки в решении как привычных им, так и нестандартных задач — на чемпионате IT_ONE Cup. Mobile.
Организаторы чемпионата — Фонд «Сколково» и IT_ONE.
Чемпионат пройдёт в два этапа. Основной раунд — соревновательный, где приложения участников будут конкурировать между собой в условиях игрового мира. Финалистов ждёт проверка теоретических знаний в виде вопросов по технологиям разработки. Победители разделят общий призовой фонд чемпионата — 520 000 рублей. Лучшие участники получат шанс присоединиться к команде IT_ONE — компании профессионалов, работающих над крупными коммерческими и государственными проектами.
Регистрация открыта до 16 апреля 2023 года.
Подробности на странице чемпионата: https://vk.cc/cmj1oA
Реклама ООО "ВК", ИНН 7743001840
«Обновляю ссылку один месяц, или лёгких задач не бывает»
На Хабре вышла статья, где разработчики iOS-приложения Додо Пиццы рассказывают про скриншот-тесты. С помощью этих тестов можно быстро проверить, что вёрстка на экранах случайно никуда не поплыла.
Одна проблема: точность сравнения отличается на Intel и на Apple Silicon. Грустная история в мемах, как команда решила полностью использовать официальную версию библиотеки swift-snapshot-testing для скриншот-тестов — в статье:
https://habr.com/ru/company/dododev/blog/722354/
#ios
Анимация приветствия от Apple
Наверняка вы видели популярную Macintosh анимацию «hello». К сожалению, в SwiftUI нет встроенной функции для достижения такого эффекта, поэтому герою статьи пришлось создавать всё с нуля:
https://tprg.ru/sgBH
А ещё делится интересным инструментом, который преобразует SVG в SwiftUI. Есть некоторые недостатки, но их можно доработать.
#ios
Руководство по Google Play Review API
Review API позволяет создать диалог с отзывом и оценкой пользователя, что может быть полезно для повышения рейтинга приложения. В этом видеоуроке, автор подробно рассматривает все шаги по реализации данного функционала для любого приложения:
https://youtu.be/NgQ5_QnoJb8
#android
Kotlin: Null-безопасность и 3 подводных камня
Система типов в Kotlin направлена на искоренение опасности нулевых(null) значений. Но на все ли 100%?
В этой статье автор рассматривает 3 случая, которые могут вызвать ошибку, а компилятор даже не попытается вас защитить:
https://betterprogramming.pub/kotlin-isnt-null-safe-yet-here-are-3-gotchas-23258fada62
#kotlin #android
Графика с использованием Jetpack Compose
В играх, приложениях для рисования или диаграмм порой требуется графика. Если вам нужен простой элемент, то его можно создать с помощью Jetpack Compose. В этом руководстве рассматривается, как использовать Graphics API с Сanvas:
— создание простых и более сложных фигур,
— отображение текста с помощью Paint,
— работа с объектами:
Подробнее: https://www.kodeco.com/34506480-graphics-using-jetpack-compose
#compose
«Как мы сделали аудиозвонки в приложении для сотрудников»
Предположим, в компании нельзя пользоваться сторонними приложениями, как WhatsApp или Telegram, а только собственным приложением. Перед разработчиками стояла задача реализовать в мессенджере ещё и звонки.
В этой статье команда рассказывает, как они искали варианты решения под Flutter, выбирали сервер и о самой реализации в Matrix и WebRTC:
https://habr.com/ru/company/rshb/blog/722084/
#flutter
Локализация iOS приложений на 20 языков за 5 минут
Никакой магии — просто инструмент для автоматического поиска и локализации файлов .strings, а вот другой вопрос: может ли машинный перевод работать достаточно хорошо в приложении.
Подробнее о том, как установить XCodeLocalize в проекте: https://habr.com/ru/post/722172/
#ios
Нативная реклама на Flutter
Руководство по интеграции нативной рекламы в приложении. Автор подробно показывает, как настроить рекламу для Android и iOS:
https://medium.com/itnext/flutter-native-ads-92d802fbd927
#flutter
Основы Kotlin — руководство
Подборка статей по Kotlin, которая будет полезна не только новичкам, но и тем, кто уже освоил основы языка. Основные категории:
— Основы для начинающих, статьи для разработчиков с опытом и профессионалов,
— Библиотеки для Android.
— Инструменты.
— Советы и фишки:
https://androidgeek.co/mastering-kotlin-a-comprehensive-guide-c70220318962
#kotlin
Как использовать ARCore в приложении?
ARCore — это платформа от Google для создания приложений дополненной реальности. ARCore SDK доступен для Android-приложений с минимальной версией SDK 24. Но некоторые API доступны и под iOS.
Есть и другие нюансы при разработке AR-приложений. В этой статье рассматриваются основные из них, вопросы использования, а также пример настройки в проекте:
https://habr.com/ru/company/otus/blog/720962/
#android
Основные методы функционального программирования в Swift
В этом видео разбирается, как работают:
— filter,
— map,
— reduce,
— compactMap,
— flatMap.
Также автор показывает на более сложных примерах, как можно использовать некоторые из них вместе:
https://youtu.be/-mx_Kf3qKJY
#ios
«Как мы попробовали Yatagan»
В прошлом году Яндекс выложила в свободный доступ Yatagan — фреймворк для внедрения зависимостей похожий на Dagger по API. Разработчики компании Циан протестировали Yatagan и поделилась своим небольшим исследованием:
https://habr.com/ru/company/cian/blog/721248/
#android
Готовы пройти самый необычный тест про IT? У нас есть такой для вас!
8-е марта прошло, но принцессы у нас живут всегда. Если вы хотите узнать, какая вы IT-принцесса, то больше у вас нет преград:
https://tproger.ru/quiz/kakaja-ty-it-princessa/
#тест