Мобильная разработка – Telegram
Мобильная разработка
13.9K subscribers
861 photos
237 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
Бойлерплейт для построения СI/CD pipeline для Android-приложений

Можно ли как-то автомизировать процессы проверки и доставки приложения в тестовую и производственную среду? Один из вариантов — это использовать бойлер для быстрой настройки CI/CD пайплайна.

Команда разработчиков из Mad Devs рассказала про преимуществах работы бойлера на Fastlane, а также о том, как настроить окружения под него:

https://tproger.ru/articles/bojlerplejt-na-fastlane-dlja-integracii-obnovlenij-ci-cd-android-prilozhenij/

#android
👍4
Подборка актуальных вакансий

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

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

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

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

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

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

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

#вакансии #работа
🤮7
Создаём приложение для брони в кинотеатрах на SwiftUI

В этом видеоуроке рассматривается, как реализовать приложение для iOS на основе дизайна в Figma. В приложение можно выбирать не только фильмы и время сеанса, но и места в кинотеатре. Автор показывает примеры, как создать drag-жест, карточки в стиле Tinder со swipe.

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

#ios
👍4
История миграции AOSP QuickSearchBox приложения на Kotlin

В общей сложности для рефакторинга приложения из AOSP с Java на Kotlin у стажёра заняло 6 недель. В статье разбираются баги, с которыми пришлось столкнуться при автоматической конвертации.

Также, чтобы проанализировать изменения, разработчики провели несколько контрольных тестов и сравнили показатели производительности, подробнее:

https://tprg.ru/rE1t

#android #kotlin
👍3❤‍🔥1
Релиз 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