Мобильная разработка – Telegram
Мобильная разработка
13.9K subscribers
859 photos
238 videos
2.96K links
Актуальное по мобильной разработке — Android, iOS, кроссплатформа

Разместить рекламу: @tproger_sales_bot
Правила общения: https://tprg.ru/rules
Другие каналы: @tproger_channels
Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/oVBP
Download Telegram
Релиз Kotlin 1.7.20: что нового?

— Компилятор Kotlin K2 теперь поддерживает all-open, no-arg, Lombok и несколько других плагинов.
— Новый оператор «..<» для создания открытых диапазонов (open-ended ranges).
— Поддержка Gradle 7.1.
— Модель памяти Kotlin/Native теперь работаeт по умолчанию.
— Новая экспериментальная функция для JVM: Generic Inline Class.

Источник: https://blog.jetbrains.com/kotlin/2022/09/kotlin-1-7-20-released/

Документация: https://kotlinlang.org/docs/whatsnew1720.html

#kotlin
👍12💩3🤔1
Анти-паттерны: как правильно обрабатывать исключения в Dart

В статье рассмотрены распространенные ошибки, которые можно допустить при обработке исключений, а также способы, как сделать это правильно.

Большинство багов связаны с потерей стека вызовов, из-за чего логи в журналах (например, в Crashlytics или Sentry) практически не дают полезной информации, и проблему отследить ещё сложнее:

https://plugfox.dev/error-handling-and-anti-patterns/

#flutter #dart
🔥7
Звёздным разрабам — звёздные продукты

МТС ищет опытных IT-специалистов по самым разным направлениям: от разработки и архитектуры до продуктовой аналитики и тестирования.

Сегодня МТС - это технологичная экосистема, в которой создают и развивают сервисы в финтехе, медиа,
стриминге, облаках, IoT, AI, Big Data и не только.

Узнайте подробнее о вакансиях, приходите возглавить процесс разработки цифровых продуктов и строить новый МТС.

#работа #вакансии
💩18👎2❤‍🔥1👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Как заменить стандартное окно сбоя своим пользовательским экраном ошибки?

Идея проста: нужно создать Crash Activity и App Class. Crash Activity будет запускаться каждый раз, когда в приложении происходит сбой.

В этой статье рассматривается, как реализовать GlobalExceptionHandler со всеми методами для перехвата исключений и ошибок, Crash Activity, а также шаблон простого дизайна для окна:

https://tprg.ru/012a

#android
👍26🤔1
YouTube плеер для Android и Chromecast

Аndroid-youtube-player — это библиотека, которая позволяет легко встроить YouTube плеер в приложение. Библиотека работает под IFrame Player API (официальный API от YouTube).

Таким образом, приложение YouTube не требуется на устройстве пользователя, и нет никаких нарушений со стороны разработчика в Terms of Service.

Репозиторий: https://github.com/PierfrancescoSoffritti/android-youtube-player

(GitHub 2.8 тыс. звёзд)

#android
👍201
This media is not supported in your browser
VIEW IN TELEGRAM
Создание игры Тетрис на SwiftUI

Тетрис базируется на сетке в 128 ячеек (8х16). Однако основная проблема при реализации игры была в выравнивание фигур при их движении. Автор упростил задачу, пронумеровав квадраты — цифры отображают их размещение в блоках массива.

Подробное руководство по реализации игры и анимаций — в статье:

https://tprg.ru/R8wg

#swiftui
👍11👎1🔥1
Compose Camp: Google открывает собственный лагерь!

Google начала организовывать специальный лагерь для тех, кто хочет изучить Jetpack Compose.

Кроме обучения на курсе, у участников есть возможность познакомиться с другими разработчиками в сообществе. Некоторые могут даже стать вожатым отряда.

На данные момент компания только развивает проект, поэтому встреч не так много, но есть ещё онлайн-сессии.

Подробнее:

https://developer.android.com/compose-camp

#android
👍6😁4
Flutter: настройка тем приложения

Чтобы настроить тему быстро и без лишнего кода, можно воспользоваться Theme Extensions. В файле theme.dart собраны зависимости, которые помогают создавать дополнения к текстовой теме и цветам приложения. Если в приложении нужна тёмная тема, то её можно быстро создать с помощью dark_theme.dart.

В этой статье подробно рассматриваются Theme Extensions и примеры создания различных тем:

https://habr.com/ru/post/690572/

#flutter
👍9
Почему исключения в Kotlin Coroutines это сложно и как с этим жить?

Обычная обработка ошибок на чистом Kotlin, например с блоком try-catch, работает не так очевидно в корутинах. Именно с этой проблемой столкнулся автор при изучении корутин.

В этой статье рассматривается:
— обработка ошибок с помощью CoroutineExceptionHandlers и try-catch,
— особенности обработки исключений в coroutineScope{},
—разница в обработке исключений между корутинами запущенными через launch и async.

Подробнее: https://habr.com/ru/post/689256/

#kotlin
👍11
Как создавать визуальные эффекты на Flutter?

Присоединяйтесь к открытому уроку 6 октября в 20:00 по МСК с Дмитрием Золотовым, Flutter-разработчиком Яндекса.

На занятии вы рассмотрите возможности FragmentProgram и языка представления SPIR-V с дополнениями от Flutter 3.3, а также создадите виджеты с визуальными эффектами, например, горящего огня и бегущих волн.

Не упустите возможность предварительно попробовать онлайн-курс «Flutter Mobile Developer» от OTUS для тех, у кого есть опыт в программировании.

Для регистрации пройдите вступительный тест.

Информация о рекламодателе на сайте www.otus.ru
👍4
Оптимизация производительности приложения на Android

Весной 2020 года компания Lyft начала работу по улучшению производительности мобильных приложений. Изначально разработчики сосредоточились на одном показателе — Time To Interactive (TTI). Однако успех проекта стал стимулом для дальнейших исследований.

В статье разработчики Lyft делятся опытом, как им удалось оптимизировать скорость работы приложения и добиться стабильности благодаря отслеживанию и анализу сбоев в приложении:

https://eng.lyft.com/prioritizing-app-stability-cb7b4cf65d50

#android
👍8
This media is not supported in your browser
VIEW IN TELEGRAM
Архитектура MVVM — просто о сложном

В статье рассматривается популярный архитектурный шаблон для проектирования iOS-приложений.

Если вы не знакомы с MVVM, то всего за 6 шагов автор показывает, как применять простую версию паттерна MVVM: от создания ViewModel до реализации ViewController.

Подробнее в статье: https://tprg.ru/uFKA

Репозиторий проекта: https://gist.github.com/vincent-pradeilles/1ffbf87ae9da68ccc723f512f5f5c866

#ios
16
Подборка актуальных вакансий

iOS-разработчик
Где: удалённо
Опыт: можно без опыта

iOS-разработчик
Где: Москва
Опыт: можно без опыта

iOS-разработчик
Где: Москва, Санкт-Петербург, Казань, Пермь, можно удалённо
Опыт: от 2 лет

Middle iOS-разработчик
Где: Москва
Опыт: от 3 лет

Senior iOS-разработчик
Где: Москва
Опыт: от 3 лет

Старший Android-разработчик
Где: Москва
Опыт: от 3 лет

Senior Android-разработчик
Где: Москва, можно удалённо
Опыт: от 3 лет

#вакансии #работа
💩10👍51🤩1
Разработка оффлайн фоторедактора на Android

Android Broadcast провели интервью с разработчиком Lensa. Фоторедактор использует эффекты на основе AI и OpenGL. Ребята также обсудили:

— хранение моделей и их защита через backend,
— аппаратное ускорение AI,
— Vulkan API.

Подробнее: https://youtu.be/7U8jHg72VG0

#android
👍73
Руководство от Apple по планированию приложений

Apple выпустила гайды, которые помогают спланировать процесс разработки для каждой Apple платформы: iOS, iPadOS, macOS, tvOS и watchOS. В них разбираются основные инструменты и технологии, которые нужны для создания приложения.

Все гайды рассчитаны больше для начинающих разработчиков и рекомендуют учебные материалы и ссылки на другие источники.

Источник: https://developer.apple.com/ios/planning/

#ios
👍13
Редактируем видео с помощью FFmpeg на Kotlin

FFmpeg — это библиотека с открытым исходным кодом, которая позволяет редактировать видеофайлы. Однако для того, чтобы использовать FFmpeg в приложении на Android, нужно добавлять сторонние библиотеки и компилировать C/C++ с помощью Android NDK.

К счастью, сборку можно оптимизировать и использовать готовую скомпилированную библиотеку в проекте. В этой статье рассматриваются базовые функции по редактированию видео с помощью FFmpeg, а также как добавить саму библиотеку.

Для примера, автор статьи реализовал приложение, которое можно использовать для обрезки видео на Android:

https://tprg.ru/5Anv

Список альтернативных библиотек для FFmpeg: https://trac.ffmpeg.org/wiki/CompilationGuide/Android

#android
👍11
Дорожная карта для Flutter-разработчика

Если решили погрузиться в разработку приложений на Flutter, то лучше сразу выбрать план обучения. На GitHub есть roadmap, где собраны по категориям различные темы и ссылки на источники для обучения. Карта поможет понять, что следует изучить в первую очередь:

https://github.com/olexale/flutter_roadmap
(GitHub 4.1 тыс. звёзд)

#flutter
👍14
Как отслеживать местоположение пользователей в фоновом режиме на Android

Определение местоположения пользователя не так просто из-за ограничений и настройки разрешений. В этом видеоуроке разбирается, как настроить доступ к данным о местоположении в фоновом режиме для Android пользователей:

https://youtu.be/Jj14sw4Yxk0

#android
13👍4
Сравниваем Java и Kotlin: аргументы «за» и «против»

Java — язык программирования общего назначения, и вместе с JavaScript и Python входит в число самых популярных языков в мире.

Kotlin пока не борется за этот пьедестал почёта, но стал сильным конкурентом Java, когда компания Google объявила его приоритетным языком для разработки на Android.

Сможет ли Kotlin полностью заменить Java? Ответ не так прост. Обо всем по порядку и на фактах этот вопрос разобрал специалист из «Иннотех». Если вы давно хотели узнать о плюсах и минусах каждого языка, то статья поможет в этом:

https://tprg.ru/MnJ3

#java #kotlin
🤨14👍7💩71
Обновления в Android Jetpack: что нового?

— Component Activity: новый FullyDrawnReporter API для получения информации о компонентах, которые готовы к взаимодействию. Вероятно изменения частично связаны с небольшим багом из прошлых версий.
— Compose Foundation Version 1.3.0: новый API Hyphens, который позволяет автоматически расставлять переносы в тексте.
— Core Google Shortcuts Version 1.1.0: пакет firebase-appindexing заменили на play-services-appindex. Этот пакет не совместим с Firebase App Indexing, поэтому разработчикам следует избегать использования обеих библиотек.
— Sqlite Version 2.3.0: переписали c Java на Kotlin.

Подробнее об обновлениях по ссылке:

https://developer.android.com/jetpack/androidx/versions/all-channel#october_5_2022

#android
👍6
Как оптимизировать время сборки при помощи модульной архитектуры

Модульная архитектура используется для создания структуры приложения, при котором его функциональность разделяется на независимые, взаимозаменяемые модули. Например, ссылаясь лишь на один модуль, можно увеличить скорость сборки в Xcode.

По сути, это декомпозиция проекта на подсистемы и организация их взаимодействия. В этой статье рассматривается, как оптимизировать время выполнения сборки, используя API/Impl модули, а также почему большое количество переходных зависимостей замедляют приложение:

https://www.runway.team/blog/how-to-improve-ios-build-times-with-modularization

#ios
👍2