Бойлерплейт для построения СI/CD pipeline для Android-приложений
Можно ли как-то автомизировать процессы проверки и доставки приложения в тестовую и производственную среду? Один из вариантов — это использовать бойлер для быстрой настройки CI/CD пайплайна.
Команда разработчиков из Mad Devs рассказала про преимуществах работы бойлера на Fastlane, а также о том, как настроить окружения под него:
https://tproger.ru/articles/bojlerplejt-na-fastlane-dlja-integracii-obnovlenij-ci-cd-android-prilozhenij/
#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 лет
#вакансии #работа
— Старший 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
В этом видеоуроке рассматривается, как реализовать приложение для 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
В общей сложности для рефакторинга приложения из 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
— Компилятор 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
В статье рассмотрены распространенные ошибки, которые можно допустить при обработке исключений, а также способы, как сделать это правильно.
Большинство багов связаны с потерей стека вызовов, из-за чего логи в журналах (например, в Crashlytics или Sentry) практически не дают полезной информации, и проблему отследить ещё сложнее:
https://plugfox.dev/error-handling-and-anti-patterns/
#flutter #dart
🔥7
Звёздным разрабам — звёздные продукты
МТС ищет опытных IT-специалистов по самым разным направлениям: от разработки и архитектуры до продуктовой аналитики и тестирования.
Сегодня МТС - это технологичная экосистема, в которой создают и развивают сервисы в финтехе, медиа,
стриминге, облаках, IoT, AI, Big Data и не только.
Узнайте подробнее о вакансиях, приходите возглавить процесс разработки цифровых продуктов и строить новый МТС.
#работа #вакансии
МТС ищет опытных 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
Идея проста: нужно создать 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
Аndroid-youtube-player — это библиотека, которая позволяет легко встроить YouTube плеер в приложение. Библиотека работает под IFrame Player API (официальный API от YouTube).
Таким образом, приложение YouTube не требуется на устройстве пользователя, и нет никаких нарушений со стороны разработчика в Terms of Service.
Репозиторий: https://github.com/PierfrancescoSoffritti/android-youtube-player
(GitHub 2.8 тыс. звёзд)
#android
👍20❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Создание игры Тетрис на SwiftUI
Тетрис базируется на сетке в 128 ячеек (8х16). Однако основная проблема при реализации игры была в выравнивание фигур при их движении. Автор упростил задачу, пронумеровав квадраты — цифры отображают их размещение в блоках массива.
Подробное руководство по реализации игры и анимаций — в статье:
https://tprg.ru/R8wg
#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
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
Чтобы настроить тему быстро и без лишнего кода, можно воспользоваться 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
Обычная обработка ошибок на чистом 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
Присоединяйтесь к открытому уроку 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
Весной 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
В статье рассматривается популярный архитектурный шаблон для проектирования 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 лет
#вакансии #работа
— iOS-разработчик
Где: удалённо
Опыт: можно без опыта
— iOS-разработчик
Где: Москва
Опыт: можно без опыта
— iOS-разработчик
Где: Москва, Санкт-Петербург, Казань, Пермь, можно удалённо
Опыт: от 2 лет
— Middle iOS-разработчик
Где: Москва
Опыт: от 3 лет
— Senior iOS-разработчик
Где: Москва
Опыт: от 3 лет
— Старший Android-разработчик
Где: Москва
Опыт: от 3 лет
— Senior Android-разработчик
Где: Москва, можно удалённо
Опыт: от 3 лет
#вакансии #работа
💩10👍5⚡1🤩1
Разработка оффлайн фоторедактора на Android
Android Broadcast провели интервью с разработчиком Lensa. Фоторедактор использует эффекты на основе AI и OpenGL. Ребята также обсудили:
— хранение моделей и их защита через backend,
— аппаратное ускорение AI,
— Vulkan API.
Подробнее: https://youtu.be/7U8jHg72VG0
#android
Android Broadcast провели интервью с разработчиком Lensa. Фоторедактор использует эффекты на основе AI и OpenGL. Ребята также обсудили:
— хранение моделей и их защита через backend,
— аппаратное ускорение AI,
— Vulkan API.
Подробнее: https://youtu.be/7U8jHg72VG0
#android
👍7❤3
Руководство от Apple по планированию приложений
Apple выпустила гайды, которые помогают спланировать процесс разработки для каждой Apple платформы: iOS, iPadOS, macOS, tvOS и watchOS. В них разбираются основные инструменты и технологии, которые нужны для создания приложения.
Все гайды рассчитаны больше для начинающих разработчиков и рекомендуют учебные материалы и ссылки на другие источники.
Источник: https://developer.apple.com/ios/planning/
#ios
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
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
Если решили погрузиться в разработку приложений на Flutter, то лучше сразу выбрать план обучения. На GitHub есть roadmap, где собраны по категориям различные темы и ссылки на источники для обучения. Карта поможет понять, что следует изучить в первую очередь:
https://github.com/olexale/flutter_roadmap
(GitHub 4.1 тыс. звёзд)
#flutter
👍14