Оптимизация производительности приложения на 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
Как отслеживать местоположение пользователей в фоновом режиме на Android
Определение местоположения пользователя не так просто из-за ограничений и настройки разрешений. В этом видеоуроке разбирается, как настроить доступ к данным о местоположении в фоновом режиме для Android пользователей:
https://youtu.be/Jj14sw4Yxk0
#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
Java — язык программирования общего назначения, и вместе с JavaScript и Python входит в число самых популярных языков в мире.
Kotlin пока не борется за этот пьедестал почёта, но стал сильным конкурентом Java, когда компания Google объявила его приоритетным языком для разработки на Android.
Сможет ли Kotlin полностью заменить Java? Ответ не так прост. Обо всем по порядку и на фактах этот вопрос разобрал специалист из «Иннотех». Если вы давно хотели узнать о плюсах и минусах каждого языка, то статья поможет в этом:
https://tprg.ru/MnJ3
#java #kotlin
🤨14👍7💩7⚡1
Обновления в 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
— 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
Модульная архитектура используется для создания структуры приложения, при котором его функциональность разделяется на независимые, взаимозаменяемые модули. Например, ссылаясь лишь на один модуль, можно увеличить скорость сборки в Xcode.
По сути, это декомпозиция проекта на подсистемы и организация их взаимодействия. В этой статье рассматривается, как оптимизировать время выполнения сборки, используя API/Impl модули, а также почему большое количество переходных зависимостей замедляют приложение:
https://www.runway.team/blog/how-to-improve-ios-build-times-with-modularization
#ios
👍2
Рекомендации Гарварда по составлению резюме и сопроводительных писем
В международные компании часто нужно писать сопроводительные письма. Также существуют требования для составления хорошего резюме.
В этом гайде собраны общие советы, которые показывают мотивацию кандидатов для работы, а также примеры писем и резюме:
https://hwpi.harvard.edu/files/ocs/files/hes-resume-cover-letter-guide.pdf
#советы
В международные компании часто нужно писать сопроводительные письма. Также существуют требования для составления хорошего резюме.
В этом гайде собраны общие советы, которые показывают мотивацию кандидатов для работы, а также примеры писем и резюме:
https://hwpi.harvard.edu/files/ocs/files/hes-resume-cover-letter-guide.pdf
#советы
👍10
А смогут ли PWA победить нативные приложения?
Существует мнение, что PWA являются идеальной альтернативой нативным приложениям: один код для управления, мгновенные обновления без App Reviews. Что тут может не понравиться?
Вот только PWA до сих пор не стали форматом по умолчанию для приложений. Одна из причин — безопасность. Нативные приложения проходят проверки в Google или Apple и тем самым подтверждают, что загрузка приложения безопасна, но не PWA.
В этой статье автор рассуждает: стоит ли давать PWA-приложениям доступ к каким-либо функциям телефона пользователя: контактам, календарю, Push-уведомлениям или нет:
https://tprg.ru/F2Cq
#pwa
Существует мнение, что PWA являются идеальной альтернативой нативным приложениям: один код для управления, мгновенные обновления без App Reviews. Что тут может не понравиться?
Вот только PWA до сих пор не стали форматом по умолчанию для приложений. Одна из причин — безопасность. Нативные приложения проходят проверки в Google или Apple и тем самым подтверждают, что загрузка приложения безопасна, но не PWA.
В этой статье автор рассуждает: стоит ли давать PWA-приложениям доступ к каким-либо функциям телефона пользователя: контактам, календарю, Push-уведомлениям или нет:
https://tprg.ru/F2Cq
#pwa
👍10
Заработная плата: исследование для разработчиков мобильных приложений
RayWenderlich провели опрос, в котором приняли участие 1257 разработчиков. Результаты показывают:
— опыт работы в отрасли IT,
— среднюю зарплату в различных странах, а также зарплату по языкам программирования (Kotlin, C++, Swift и т.д.),
— задачи, которые входят в обязанности разработчика (56% ответили, что также разрабатывают приложения в свободное время),
— заработок от дополнительных проектов.
Подробнее:
https://www.raywenderlich.com/state-of-mobile-jobs-2022
#ios #android
RayWenderlich провели опрос, в котором приняли участие 1257 разработчиков. Результаты показывают:
— опыт работы в отрасли IT,
— среднюю зарплату в различных странах, а также зарплату по языкам программирования (Kotlin, C++, Swift и т.д.),
— задачи, которые входят в обязанности разработчика (56% ответили, что также разрабатывают приложения в свободное время),
— заработок от дополнительных проектов.
Подробнее:
https://www.raywenderlich.com/state-of-mobile-jobs-2022
#ios #android
👍6👎3
Мероприятия для разработчиков: Android Dev Summit 2022
Спустя 3 года, Google объявила о проведении мероприятий в разных странах. Из-за пандемии ADS проводились лишь в онлайн формате.
Google также проведёт технические сессии в виде онлайн трансляций на YouTube, которые пройдут в течение трёх недель:
— Modern Android Development: 24 октября,
— Form Factors: 9 ноября,
— Platform: 14 ноября.
Сохраняйте в календарь, чтобы не пропустить!
Источник: https://android-developers.googleblog.com/2022/10/android-dev-summit.html?m=1
#android
Спустя 3 года, Google объявила о проведении мероприятий в разных странах. Из-за пандемии ADS проводились лишь в онлайн формате.
Google также проведёт технические сессии в виде онлайн трансляций на YouTube, которые пройдут в течение трёх недель:
— Modern Android Development: 24 октября,
— Form Factors: 9 ноября,
— Platform: 14 ноября.
Сохраняйте в календарь, чтобы не пропустить!
Источник: https://android-developers.googleblog.com/2022/10/android-dev-summit.html?m=1
#android
👍15
This media is not supported in your browser
VIEW IN TELEGRAM
Обзор анимации «TreeView» на Flutter
animated_tree_view — это пакет, предоставляющий древовидную структуру данных, которую можно визуализировать в виде линейного списка. В библиотеке есть много полезных методов для добавления, вставки и удаления узлов.
Виджет базируется на AnimatedList и может даже использоваться в качестве его замены. Существует два варианта реализации пакета:
— TreeView: структура Map,
— TreeView.indexed: основывается на структуре List.
Источник: https://pub.dev/packages/animated_tree_view
#flutter
animated_tree_view — это пакет, предоставляющий древовидную структуру данных, которую можно визуализировать в виде линейного списка. В библиотеке есть много полезных методов для добавления, вставки и удаления узлов.
Виджет базируется на AnimatedList и может даже использоваться в качестве его замены. Существует два варианта реализации пакета:
— TreeView: структура Map,
— TreeView.indexed: основывается на структуре List.
Источник: https://pub.dev/packages/animated_tree_view
#flutter
👍10
Шпаргалка по Mobile System Design: материалы для подготовки к собеседованию
В этом репозитории приведена простая структура для интервью по Mobile System Design. В качестве примера в проекте рассмотрена реализация Twitter ленты.
Также в гайде собраны вопросы, которые может задать интервьюер, советы по подготовке и дополнительные материалы для изучения.
GitHub (2.1 тыс. звёзд):
https://github.com/weeeBox/mobile-system-design
#собеседование
В этом репозитории приведена простая структура для интервью по Mobile System Design. В качестве примера в проекте рассмотрена реализация Twitter ленты.
Также в гайде собраны вопросы, которые может задать интервьюер, советы по подготовке и дополнительные материалы для изучения.
GitHub (2.1 тыс. звёзд):
https://github.com/weeeBox/mobile-system-design
#собеседование
👍12
This media is not supported in your browser
VIEW IN TELEGRAM
iOS 2022: Telegram объявляет о проведении первого тура конкурса
Разработчикам предлагается создать приложение для редактирования мультимедиа на Swift, похожее на встроенный инструмент рисования в iOS. Призовой фонд составляет $50,000.
Демонстрационное приложение должно быть совместимо с iOS 13+. Также использование сторонних реализаций или UI-фреймворков строго запрещено.
Срок подачи: до 31 октября. Полный список требований по ссылке:
https://contest.com/docs/iOS-Oct22-Round1
#ios
Разработчикам предлагается создать приложение для редактирования мультимедиа на Swift, похожее на встроенный инструмент рисования в iOS. Призовой фонд составляет $50,000.
Демонстрационное приложение должно быть совместимо с iOS 13+. Также использование сторонних реализаций или UI-фреймворков строго запрещено.
Срок подачи: до 31 октября. Полный список требований по ссылке:
https://contest.com/docs/iOS-Oct22-Round1
#ios
👍6
Совместное использование Flutter и WebSocket
Для обмена сообщениями в режиме реального времени, GPS-отслеживания или видеозвонков часто используется WebSocket.
В этой статье рассматривается, что такое модель Pub/Sub, а также как подключиться к WebSocket на Flutter и настроить работу соединений. В конце статьи автор делится советами, которые помогут улучшить работу приложения с веб-сокетами:
https://blog.devgenius.io/web-socket-in-flutter-615d21ddf1c5
#flutter
Для обмена сообщениями в режиме реального времени, GPS-отслеживания или видеозвонков часто используется WebSocket.
В этой статье рассматривается, что такое модель Pub/Sub, а также как подключиться к WebSocket на Flutter и настроить работу соединений. В конце статьи автор делится советами, которые помогут улучшить работу приложения с веб-сокетами:
https://blog.devgenius.io/web-socket-in-flutter-615d21ddf1c5
#flutter
👍6
Новое руководство по архитектуре приложений от Google
На официальном сайте добавили документацию по UI State production. В этой части рассматривается, как правильно реализовать и управлять состоянием, а именно:
— какие API использовать,
— работа с One-shot и Stream API для изменения UI-состояния,
— пайплайн.
https://developer.android.com/topic/architecture/ui-layer/state-production
#android
На официальном сайте добавили документацию по UI State production. В этой части рассматривается, как правильно реализовать и управлять состоянием, а именно:
— какие API использовать,
— работа с One-shot и Stream API для изменения UI-состояния,
— пайплайн.
https://developer.android.com/topic/architecture/ui-layer/state-production
#android
👍13