Актуальное по мобильной разработке — Android, iOS, кроссплатформа Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Другие наши проекты: https://tprg.ru/media
Календарь в iPhone: полный разбор
Интересно, как используются элементы UIKit в приложениях от Apple? В этой статье разбирается приложение Календарь, а именно его интерактивные элементы, навигация, UI:
— экран дня, месяца и года,
— список календарей,
— новое событие,
— Accessibility.
https://habr.com/ru/post/701332/
#ios
Проверьте себя — пройдите тест по Android!
Вырвитесь из однотипных задач на Android. Освойте продвинутые подходы. Пройдите тест из 20 вопросов и проверьте свои знания. Сможете сдать — пройдёте на продвинутый курс «Android Developer. Professional» от OTUS по специальной цене.
Время прохождения теста ограничено! Пройти тест можно по ссылке: https://otus.pw/V1sx/
Хотите протестировать учебный процесс заранее? Тогда приходите на открытые уроки курса!
— 1 декабря в 20:00 открытый урок «Android Lint».
— 15 декабря в 20:00 открытый урок «Профайлинг UI».
Реклама ООО «Отус Онлайн-Образование» LjN8JxLA8
Gradle 7.6: что нового?
— добавлена поддержка Java 19,
— добавлена поддержка загрузки Java Toolchain из произвольных репозиториев,
— инкрементальная компиляция: в предыдущих версиях сбой компиляции приводил к тому, что при следующей компиляции выполнялась полная перекомпиляция. Начиная с Gradle 7.6, инкрементальная компиляция Java и Groovy может работать даже после сбоя,
— введён флаг «rerun» для повторного запуска отдельных тасков,
— добавлена поддержка кэша конфигурации для плагина публикации Maven и в целом достаточно много небольших изменений было сделано по улучшению в разделе Configuration cache.
Источник: https://docs.gradle.org/7.6/release-notes.html
#gradle
Анализ текста в реальном времени с помощью Word Tagger
Часть 1: требования к данным для создания модели Word Tagger, работа с CreateML и анализ текста.
Часть 2: реализация iOS-приложения с нуля, обзор инструментов GoogleMLKit/TextRecognition (iOS 13.0) и Live Text (iOS 15.0), которые позволяют распознавать текст из видеопотока или изображения с помощью камеры iPhone. А также пример работы модели Word Tagger для конвертации текста рецепта.
#ios
Альфа-Банк приглашает на Alfa Квартирник #2
Квартирник — это дружественные встречи Alfa Digital и сообщества мобильных разработчиков для нетворкинга, обмена опытом и веселья!
Когда: 9 декабря, 19:00
Где: просп. Андропова 18, корпус 3, Москва
Что вас ждёт:
— Aльфа.ch: делитесь на команды и пытайтесь с помощью подсказок отгадать как можно больше слов.
— Игровая комната с кикером и теннисным столом: тут вы уже понимаете, что делать.
— Болталки:
1. Алексей Кирсанов, Android TechLead в Альфа-Банке, расскажет про интересные места для активного отдыха.
2. Абакар Магомедов, тоже Android TechLead, на ваших глазах проведёт расследование необычного краша.
— Спортивное программирование: придется решать алгоритмы и отжиматься одновременно.
— «Своя игра»: вот тут будут сложные тех. вопросы. Вы можете предложить свой вопрос или стать участником игры, для этого надо заполнить форму на лендинге.
Места ограничены, потому что ну как в квартире поместится больше 100 человек? Успейте зарегистрироваться!
Реклама АО «Альфа-Банк»
Как герой статьи уменьшил размер приложения на 73%
В одном из главных изображений только три png-файла (@1x, @2x, @3x) вместе весили 1.2 Мб. Поэтому автор стал искать идеи, как оптимизировать изображения в своём приложении. В результате вместо JPG формата, ассеты хранятся в PDF-файлах.
Также герой советует использовать Single Size в Xcode для значков в приложение. Подробнее — здесь:
https://sowenjub.me/writes/how-i-made-my-app-73-percent-ligther/
#ios
Собираем проект на сервере прямо из Android Studio
Долгая сборка проекта — боль почти любого разработчика, особенно, если нужно собрать проект только для теста какого-либо небольшого исправления.
Герой статьи ни раз сталкивался именно с этой проблемой и поэтому решил перенести сборку со своего ноутбука на удалённый ПК. Что из этого получилось — в статье:
https://habr.com/ru/post/700744/
#android
Эмоциональное выгорание у разработчиков: причины и что с этим делать
От выгорания сегодня не застрахован никто, а особенно программисты часто с этим сталкиваются. Исследования показывают, что ему подвержена в среднем половина айтишников. Выгорание проявляется в постоянном ощущении усталости или стрессе, а также ощутимой просадке продуктивности.
Узнали себя? Тогда пора выходить из этого состояния. В этой стать разработчики делятся советами, как бороться с выгоранием и успешно справляться со стрессом на рабочем месте:
https://habr.com/ru/company/rdp/blog/700882/
#советы
МТС создали канал с вакансиями!
МТС хотят создавать и развивать ещё больше крутых продуктов и сервисов для людей и бизнеса. Поэтому ищут разработчиков, архитекторов, DevOps, продуктовых дизайнеров и спецов разного уровня от джунов до сеньоров.
Ребята верят в силу Telegram — шесть рукопожатий, матрицу судьбы и иногда в гороскоп. Подписывайтесь на канал.
Реклама ПАО «МТС»
Проблемы Kotlin и планы на 2023
В этом году JetBrains впервые провела опрос среди разработчиков о Kotlin для того, чтобы определить и расставить приоритеты в болевых точках, которые наиболее существенно влияют на удовлетворенность пользователей. Некоторые выводы:
— Текущий показатель удовлетворенности клиентов Kotlin составляет 86%.
— Основными болевыми точками для пользователей Kotlin в настоящее время являются IDE и производительность при сборке.
— Существуют жалобы на сложность настройки билда.
— Низкая скорость индексации проекта.
Жалобы на Gradle JB уже постарались решить в последних версиях, но возможно в 2023 нас ждет ещё больше крутых новостей.
Источник:
https://blog.jetbrains.com/kotlin/2022/11/how-kotlin-is-going-to-fix-your-pains-in-2023/
#kotlin
Как пройти все круги ада или общение с Google Play
На Хабре вышла статья, а скорее «крик души» разработчика, который две недели общался с Google Play Team по поводу приложения в Google Play Store. Кстати, это уже не первая жалоба на работу команды в Google. Сталкивались ли вы с такими проблемами?
Полная история событий здесь:
https://habr.com/ru/post/700076/
#android
Хотите роста в Android-разработке?
За новыми знаниями приходите 1 декабря в 20:00 на открытый урок «Android Lint».
На занятии вы:
- Изучите Android Lint API
- Научитесь писать кастомные Lint детекторы и тесты на них
- Напишете несколько проверок на частые ошибки
Урок ориентирован на Android-разработчиков с опытом работы от 1 года.
Еще больше навыков будет ждать все на онлайн-курсе «Android Developer. Professional» в OTUS.
Пройдите тест, чтобы оценить свой уровень подготовки и записаться на вебинар: https://otus.pw/G728/
Реклама «Отус онлайн-образование» LjN8KDVwy
10 вопросов и ответов с Ask Apple
Недавно мы рассказывали про Ask Apple — онлайн-чат с экспертами из Apple. После завершения первой части мероприятия, разработчики собрали все часто задаваемые вопросы и опубликовали на сайте.
В основном вопросы в Slack касались дизайна, панели вкладок, кнопок быстрого доступа и цвета в приложении:
https://developer.apple.com/news/?id=s8sl4tpa
#ios
Пользовательские истории в разработке
По методологии Agile User story используются, чтобы создать упрощённое описание требований, выявить тип пользователей, чего они хотят и почему.
По сути, этот инструмент планирования помогает оценить каждую предложенную идею для новой функциональности с точки зрения пользователей, которые будут использовать эту функциональность в приложении.
О том, как выглядит пользовательская история и примеры — в статье:
https://habr.com/ru/post/700682/
#agile
Примерьте на себя роль Android-разработчика — 21 ноября в 20:00 по МСК на бесплатном уроке от OTUS!
На занятии вы создадите упрощённый аналог приложения Notion для платформы Android с использованием языка программирования Kotlin. Приложение будет позволять создавать заметки произвольного размера из следующих блоков: текст, заголовки, изображение, списки.
Этот урок подойдет для тех, кто хочет попробовать себя в качестве Android-разработчика, уже знаком с программированием и знает принципы ООП. Спикер: Даниил Попов, разработчик в компании Bolt Technology OÜ, Эстония.
Как принять участие?
Установить Android Studio, чтобы повторять за преподавателем. Скачать можно на официальном источнике по ссылке.
Регистрируйтесь на вебинар и успейте на прямой эфир: https://otus.pw/QIgR/
Реклама ООО «Отус онлайн-образование» LjN8KUW9g
Создание игры «Крестики-нолики» на Android
Видеоурок, в котором разбирается, как создать популярную игру с помощью Ktor и Web Sockets. Автор также показывает, как настроить серверную часть, чтобы играть с друзьями:
https://youtu.be/sKCCwl5lNBk
#android
Рекомендации по дизайну iOS 16: иллюстрированное руководство
Данная статья — неплохая шпаргалка, в которой рассмотрено в основном всё, что нужно знать для разработки приложения под iOS 16: UI-элементы, значки приложения, основные разрешения экранов и многое другое:
https://www.learnui.design/blog/ios-design-guidelines-templates.html
#ios
Хотите освоить Kotlin для разработки серверных приложений?
OTUS приглашает 30 ноября в 19:00 по МСК на бесплатный вебинар «Интероперабельность Kotlin Native и C на примере видеоплеера».
На вебинаре вы:
— Рассмотрите, как происходит написание и компиляция нативного кода в Kotlin.
— Узнаете, как к нему подключаются нативные библиотеки.
— Напишите небольшое приложение для воспроизведения видео с использованием нативной библиотеки GStreamer.
Вебинаря является частью онлайн-курса «Kotlin Backend Developer. Professional» от OTUS.
Регистрируйтесь на вебинар по ссылке: https://otus.pw/m8Vr/
Реклама ООО «Отус Онлайн-Образование» LjN8KMqLQ
Jetpack Compose: как улучшить производительность
Вероятно, вам встречались видеообзоры по Baseline Profiles и их генерации для улучшения старта приложения. Автор этой статьи предлагает использовать Baseline Profiles вместе с библиотекой App Startup и составил таблицы, где наглядно показано, как эта комбинация может помочь повысить производительность приложения.
В статье также приводится сравнительный анализ App Startup и кастомного BP со всеми плюсами и минусами данного подхода:
https://medium.com/androiddevelopers/faster-jetpack-compose-view-interop-with-app-startup-and-baseline-profile-8a615e061d14
#android #compose
Создание плавного перехода между цветами на SwiftUI
В этом руководстве разработчик Скотт Эндрю показывает технику создания красивых эффектов перехода между изображениями: путем определения среднего цвета изображения и отслеживания смещения ScrollView:
https://tprg.ru/Kqb9
#ios
Миграция приложений на Android 13
После обновления документации наконец-то вышло видео по миграции на новую версию (targetSDk=33). Также в видео разбирается Photo Picker, Accessibility и дизайн приложения для Android 13:
https://youtu.be/wBx3-ZObxY8
#android
Подборка актуальных вакансий
— Android-разработчик
Где: удалённо
Опыт: от 3 лет
— Senior Android-разработчик
Где: Москва, можно удалённо
Опыт: от 3 лет
— iOS-разработчик
Где: Москва, Санкт-Петербург, Казань, Пермь, можно удалённо
Опыт: от 2 лет
— Middle iOS-разработчик
Где: Москва
Опыт: от 3 лет
— iOS-разработчик
Где: удалённо
Опыт: не указан
#вакансии #работа
Оператор «by» в Kotlin и причины его использования
В статье разбираются распространённые случаи использования оператора:
— by lazy,
— by viewModels,
— by mutableStateOf.
Статья будет полезна начинающим, кто только начал изучать делегированные свойства и хочет лучше разобраться в операторе «by»:
https://tprg.ru/9t8G
#kotlin
Загрузка dSYM в Firebase Crashlytics
Большинство iOS-разработчиков рано или поздно сталкиваются с потерянными dSYM файлами. В этой статье команда разработчиков делится опытом загрузки dSYM в Firebase Crashlytics через Xcode Cloud, а также сложностями, с которыми они столкнулись.
Автор рассказывает, где и как скачать dSYM, а также написать скрипт, который упрощает процесс загрузки dSYM:
https://habr.com/ru/post/700742/
#ios
Курсы английского от Яндекс Практикума для работы в IT
Учите язык на примере стендапов, митапов и собеседований с личным преподавателем и иностранцами из IT.
Скидка 10% всем, кто хочет понимать коллег и быть понятым на английском! Записаться со скидкой можно до 15 декабря здесь.
Реклама АНО ДПО «Образовательные технологии Яндекса»
Создаём цветовые палитры в Xcode
Наверняка вы знаете, что с помощью Xcode можно создавать и повторно использовать наборы цветов. Использование полноценной цветовой палитры в различных Xcode-проектах упрощает поиск нужных цветов и позволяет реализовывать цветовые схемы в приложениях намного быстрее.
По сути, с помощью color picker разработчики могут создавать нужные палитры непосредственно сразу в Xcode, не тратя времени на работу в Figma или Adobe Illustrator. Подробнее о том — в статье:
https://habr.com/ru/company/otus/blog/700572/
#ios #xcode
Как реализовать паттерн State Machine на Jetpack Compose
На примере небольшого приложения, которое позволяет ввести имя пользователя на GitHub и получить список связанных репозиториев, в статье разбирается, как реализовать State Machine с помощью библиотеки FlowRedux и интегрировать его с Jetpack Compose:
https://tprg.ru/T6zL
#compose
«Бит за бит» и мифы об аудиостримингах
Что же такое HiFi, где и как его услышать? Что лучше — алгоритмы или редакционные подборки? Какое будущее ждет стриминг и правда ли, что офлайн — все?
Звук выпустил подкаст «Бит за бит», где продакты и разработчики обсуждают, что такое хороший звук и где его найти. Первый выпуск уже можно послушать в приложениях Звук, Яндекс Музыка, Apple Podcasts и Castbox, а самые любопытные мифы про музыку, подкасты и другие звуки разбираем в наших карточках: https://tprg.ru/KF3B
Реклама ООО «Звук»
Использование Lint в Android Studio для проверки кода
Lint, или линтер — это инструмент статического анализа кода, используемый для выявления ошибок программирования, багов или стилистических ошибок.
В статье — небольшое руководство, как добавить Lint в Android Studio и поддерживать качество кода существующих Android-проектов:
https://proandroiddev.com/effectively-using-android-lint-in-existing-projects-eacff100a919
#android
Отзыв о конкурсе Telegram на создание медиаредактора
Автор статьи принял участие в недавнем конкурсе Telegram, в котором нужно было создать автономное приложения для редактирования медиафайлов на Swift. К сожалению, во второй тур проект не прошёл, но автор поделился собственным опытом и рассказал, как реализовал идею на Хабре:
https://habr.com/ru/post/698790/
#swift