Что надо учитывать, создавая тёмную тему приложения?
Во многих приложениях используются тёмные темы и это уже давно не тренд, а инструмент для повышения вовлеченности пользователей.
На Хабре вышла интересная статья, как создать тёмную тему с учётом человеческой физиологии. В ней разбирается цветовой спектр и как он меняется в зависимости от времени суток, контраст, а также что такое сумеречное зрение:
https://habr.com/ru/company/ispmanager/blog/694412/
#исследование
Во многих приложениях используются тёмные темы и это уже давно не тренд, а инструмент для повышения вовлеченности пользователей.
На Хабре вышла интересная статья, как создать тёмную тему с учётом человеческой физиологии. В ней разбирается цветовой спектр и как он меняется в зависимости от времени суток, контраст, а также что такое сумеречное зрение:
https://habr.com/ru/company/ispmanager/blog/694412/
#исследование
👍12
Рефакторинг — практический подход на Swift
Автор статьи делится советами, которые помогут провести рефакторинг кода, отслеживая все изменения. В процессе разработки он выделил несколько основных этапов:
— определить цели рефакторинга,
— тестирование,
— вносить изменения постепенно, чтобы избежать багов и часто использовать GIT для отслеживания этих изменения,
— не забывать использовать инструменты, например, Xcode.
Подробнее в статье:
https://www.avanderlee.com/optimization/refactoring-swift-best-practices/
#swift
Автор статьи делится советами, которые помогут провести рефакторинг кода, отслеживая все изменения. В процессе разработки он выделил несколько основных этапов:
— определить цели рефакторинга,
— тестирование,
— вносить изменения постепенно, чтобы избежать багов и часто использовать GIT для отслеживания этих изменения,
— не забывать использовать инструменты, например, Xcode.
Подробнее в статье:
https://www.avanderlee.com/optimization/refactoring-swift-best-practices/
#swift
👍3💩3
Гайд по Dart CLI
Если вы хотите стать Flutter-разработчиком, то наверняка интересуетесь углубленным изучением языка Dart. В этой статье небольшое руководство, как создать CLI-приложение на Dart и обрабатывать пользовательский ввод в этом приложении:
https://tomicriedel.medium.com/89bbcef0318
#flutter
Если вы хотите стать Flutter-разработчиком, то наверняка интересуетесь углубленным изучением языка Dart. В этой статье небольшое руководство, как создать CLI-приложение на Dart и обрабатывать пользовательский ввод в этом приложении:
https://tomicriedel.medium.com/89bbcef0318
#flutter
👍6💩6
Вышла стабильная версия Composite Material 3
Библиотека разработана на Jetpack Compose и Material 3. В статье рассматриваются:
— цветовые схемы и динамические цвета,
— компоненты и плагины в Material 3,
— шрифты и размер экрана.
Источник: https://android-developers.googleblog.com/2022/10/material-design-3-compose-stable.html?m=1
#android
Библиотека разработана на Jetpack Compose и Material 3. В статье рассматриваются:
— цветовые схемы и динамические цвета,
— компоненты и плагины в Material 3,
— шрифты и размер экрана.
Источник: https://android-developers.googleblog.com/2022/10/material-design-3-compose-stable.html?m=1
#android
👍9
This media is not supported in your browser
VIEW IN TELEGRAM
Советы и рекомендации по улучшению работы Android Studio
В статье собраны команды, горячие клавиши и просто рекомендации для быстрой навигации и поиска по коду. Вероятно, вы уже знакомы с некоторыми из них, но есть и редко используемые комбинации:
https://blog.appcircle.io/article/12-android-studio-tips-and-shortcuts-to-navigate-your-codebase-faster
Какой способ вы чаще всего используйте?
#android
В статье собраны команды, горячие клавиши и просто рекомендации для быстрой навигации и поиска по коду. Вероятно, вы уже знакомы с некоторыми из них, но есть и редко используемые комбинации:
https://blog.appcircle.io/article/12-android-studio-tips-and-shortcuts-to-navigate-your-codebase-faster
Какой способ вы чаще всего используйте?
#android
👍10
Использование LiveData на Android
В статье реализовано простое приложение для демонстрации работы и поведения компонентов lifecycle-aware в Live Data, используя методы setValue(), postValue(), observate() и observeAsState().
Также автор сделал сравнительный анализ этих функций, например, когда лучше использовать setValue() или postValue(), чем отличаются друг от друга observate() и observeAsState():
https://vtsen.hashnode.dev/exploring-android-livedata-usages-and-behaviors#heading-add-logging-in-observeasstate
#android
В статье реализовано простое приложение для демонстрации работы и поведения компонентов lifecycle-aware в Live Data, используя методы setValue(), postValue(), observate() и observeAsState().
Также автор сделал сравнительный анализ этих функций, например, когда лучше использовать setValue() или postValue(), чем отличаются друг от друга observate() и observeAsState():
https://vtsen.hashnode.dev/exploring-android-livedata-usages-and-behaviors#heading-add-logging-in-observeasstate
#android
👍8
Как создать простой видеоплеер с помощью Jetpack Compose и ExoPlayer
ExoPlayer — библиотека для воспроизведения аудио и видео с открытым исходным кодом, которая является альтернативой API MediaPlayer на Android.
В этом видеоуроке показано, как используя Media 3, можно просто реализовать видеоплеер:
https://youtu.be/JX1fwti2LI4
#android #compose
ExoPlayer — библиотека для воспроизведения аудио и видео с открытым исходным кодом, которая является альтернативой API MediaPlayer на Android.
В этом видеоуроке показано, как используя Media 3, можно просто реализовать видеоплеер:
https://youtu.be/JX1fwti2LI4
#android #compose
👍15
This media is not supported in your browser
VIEW IN TELEGRAM
Создание Bounce эффекта, используя Compose Backdrop Layer
Небольшой урок, как создать анимацию и не запутаться в слоях в BackdropScaffold, используя также Animatable API. В конце статьи можно найти шпаргалку по Animation в Compose:
https://proandroiddev.com/bounce-effect-with-compose-backdrop-layer-bd9f21f797a6
#compose
Небольшой урок, как создать анимацию и не запутаться в слоях в BackdropScaffold, используя также Animatable API. В конце статьи можно найти шпаргалку по Animation в Compose:
https://proandroiddev.com/bounce-effect-with-compose-backdrop-layer-bd9f21f797a6
#compose
👍5❤1
Как уменьшить размер приложения с помощью Dynamic delivery
Размер приложения — важная метрика, которая влияет на количество установок. Однако, когда в проект добавляются новые библиотеки или функционал — поддерживать эту метрику становится всё сложнее.
Почему бы не предоставить пользователю возможность подгружать модули по мере необходимости? Решить эту задачу можно с помощью Dynamic delivery.
О нюансах миграции фич в динамические модули и влиянии Dynamic delivery на архитектуру рассказал Азамат Черчесов, Senior Mobile Developer из «Лаборатории Касперского»:
https://tprg.ru/j36a
#android
Размер приложения — важная метрика, которая влияет на количество установок. Однако, когда в проект добавляются новые библиотеки или функционал — поддерживать эту метрику становится всё сложнее.
Почему бы не предоставить пользователю возможность подгружать модули по мере необходимости? Решить эту задачу можно с помощью Dynamic delivery.
О нюансах миграции фич в динамические модули и влиянии Dynamic delivery на архитектуру рассказал Азамат Черчесов, Senior Mobile Developer из «Лаборатории Касперского»:
https://tprg.ru/j36a
#android
👍6🤡2😁1
5 обновлений в Play Console для отслеживания статистики приложения
1. При выпуске приложения теперь можно увидеть размер приложения (предыдущего релиза) и размер обновления.
2. Если вы используйте Play Asset Delivery или Play Feature Delivery, то подробная о доставке всех ассетов доступна на странице статистики.
3. В информации о последней версии, можно посмотреть, как быстро пользователи переходят на новую версию приложения.
4. В App bundle explorer можно проверить, сколько весит приложение для каждой модели устройства.
5. Многие метрики теперь доступны в App Dashboard, где вы можете отслеживать эти измерения с течением времени наряду с другими показателями приложения.
Источник: https://android-developers.googleblog.com/2022/10/5-play-console-updates-to-help-you-understand-app-delivery-performance.html?m=1
#android
1. При выпуске приложения теперь можно увидеть размер приложения (предыдущего релиза) и размер обновления.
2. Если вы используйте Play Asset Delivery или Play Feature Delivery, то подробная о доставке всех ассетов доступна на странице статистики.
3. В информации о последней версии, можно посмотреть, как быстро пользователи переходят на новую версию приложения.
4. В App bundle explorer можно проверить, сколько весит приложение для каждой модели устройства.
5. Многие метрики теперь доступны в App Dashboard, где вы можете отслеживать эти измерения с течением времени наряду с другими показателями приложения.
Источник: https://android-developers.googleblog.com/2022/10/5-play-console-updates-to-help-you-understand-app-delivery-performance.html?m=1
#android
👍10
Как избежать merge-конфликтов в Xcode
Xcode — мощная среда разработки с долгой историей и множеством функций, но даже после нескольких лет жалоб разработчиков, Apple до сих пор не исправила некоторые из своих основных проблем.
Одним из них является файловая структура проекта. Возможно, вы сталкивались с конфликтами в project.pbxproj файле. К счастью, есть готовые решения, которые помогают решать эту проблему: XcodeGen, SwiftGen, Xcake.
В этой статье рассматривается, как создать проект, используя XcodeGen и добавить все необходимые конфигурации:
https://betterprogramming.pub/how-to-avoid-merge-conflicts-in-xcode-projects-a0202be2ac73
#ios
Xcode — мощная среда разработки с долгой историей и множеством функций, но даже после нескольких лет жалоб разработчиков, Apple до сих пор не исправила некоторые из своих основных проблем.
Одним из них является файловая структура проекта. Возможно, вы сталкивались с конфликтами в project.pbxproj файле. К счастью, есть готовые решения, которые помогают решать эту проблему: XcodeGen, SwiftGen, Xcake.
В этой статье рассматривается, как создать проект, используя XcodeGen и добавить все необходимые конфигурации:
https://betterprogramming.pub/how-to-avoid-merge-conflicts-in-xcode-projects-a0202be2ac73
#ios
👍5👏2
Интеграция JS в Android приложение
Перед разработчиками онлайн-кинотеатра Premier стояла непростая задача — из-за ограничений в библиотеке, с которой они работали для Android TV, требовалось подключить web-версию к проекту.
Подходящего фреймворка для этой задачи найти было сложно, поэтому команда решила переписать простой WebView в JS-интерпретатор. Что из этого получилось, рассказывается в статье:
https://habr.com/ru/company/gazprommedia/blog/694998/
#android
Перед разработчиками онлайн-кинотеатра Premier стояла непростая задача — из-за ограничений в библиотеке, с которой они работали для Android TV, требовалось подключить web-версию к проекту.
Подходящего фреймворка для этой задачи найти было сложно, поэтому команда решила переписать простой WebView в JS-интерпретатор. Что из этого получилось, рассказывается в статье:
https://habr.com/ru/company/gazprommedia/blog/694998/
#android
👍6😁4🤮1
Подборка актуальных вакансий
— iOS-разработчик
Где: Москва
Опыт: можно без опыта
— iOS-разработчик
Где: удалённо
Опыт: можно без опыта
— iOS-разработчик
Где: Москва, Санкт-Петербург, Казань, Пермь, можно удалённо
Опыт: от 2 лет
— Middle iOS-разработчик
Где: Москва
Опыт: от 3 лет
— Senior Android-разработчик
Где: Москва, можно удалённо
Опыт: от 3 лет
#вакансии #работа
— iOS-разработчик
Где: Москва
Опыт: можно без опыта
— iOS-разработчик
Где: удалённо
Опыт: можно без опыта
— iOS-разработчик
Где: Москва, Санкт-Петербург, Казань, Пермь, можно удалённо
Опыт: от 2 лет
— Middle iOS-разработчик
Где: Москва
Опыт: от 3 лет
— Senior Android-разработчик
Где: Москва, можно удалённо
Опыт: от 3 лет
#вакансии #работа
👎9
Apple обновила гайдлайны к App Store
— Если некоторые функции зависят от учётной записи пользователей в приложении, то разработчики должны предоставить полный доступ к приложению с активной демо-учётной записью или полнофункциональным демо режимом для Review.
— Приложения могут использовать NFT, но с некоторыми ограничениями. Например, приложения могут позволять пользователям просматривать NFT при условии, что там нет кнопок, внешних ссылок или других призывов к действию для покупки.
— Стандарт «умного дома» Matter: приложения должны использовать фреймворк Apple для поддержки Matter. Если используются другие Matter SDK, то они должны быть сертифицированы.
Подробнее о всех изменениях по ссылке:
https://developer.apple.com/news/?id=xk8d7p8c
#ios
— Если некоторые функции зависят от учётной записи пользователей в приложении, то разработчики должны предоставить полный доступ к приложению с активной демо-учётной записью или полнофункциональным демо режимом для Review.
— Приложения могут использовать NFT, но с некоторыми ограничениями. Например, приложения могут позволять пользователям просматривать NFT при условии, что там нет кнопок, внешних ссылок или других призывов к действию для покупки.
— Стандарт «умного дома» Matter: приложения должны использовать фреймворк Apple для поддержки Matter. Если используются другие Matter SDK, то они должны быть сертифицированы.
Подробнее о всех изменениях по ссылке:
https://developer.apple.com/news/?id=xk8d7p8c
#ios
👍7🤮1
JetBrains объявила конкурс на приложения, написанные на KMP
Требования к проекту:
— Приложение должно работать как минимум на двух разных платформах.
— Проект на свободную тему, но JB будем оценивать работу, основываясь на креативности идеи и на том, как она подкрепляется мультиплатформенностью Kotlin.
— Проект должен быть индивидуальным. Можно использовать и другие проекты с открытым исходным кодом, но у каждого проекта должен быть один автор.
3 победителя поедут на KotlinConf’23.
Источник:
https://blog.jetbrains.com/kotlin/2022/10/join-the-kotlin-multiplatform-contest/
#kotlin
Требования к проекту:
— Приложение должно работать как минимум на двух разных платформах.
— Проект на свободную тему, но JB будем оценивать работу, основываясь на креативности идеи и на том, как она подкрепляется мультиплатформенностью Kotlin.
— Проект должен быть индивидуальным. Можно использовать и другие проекты с открытым исходным кодом, но у каждого проекта должен быть один автор.
3 победителя поедут на KotlinConf’23.
Источник:
https://blog.jetbrains.com/kotlin/2022/10/join-the-kotlin-multiplatform-contest/
#kotlin
The JetBrains Blog
Join the Kotlin Multiplatform Contest and Win a Trip to KotlinConf’23! | The Kotlin Blog
Showcase your creativity by building a Kotlin Multiplatform project using the technology that will help shape the future. If your entry makes it into the top 3, you’ll win a trip to KotlinConf’23!
👍9👎5🤮2🖕2
Модульность и SwiftUI в современном iOS-приложении
Как эффективно реализовать модульную архитектуру с помощью SwiftUI? В этом статье разбираются некоторые подходы:
— как работать с обратными вызовами и потоками данных,
— основы использования Combine и SwiftUI,
— реализация ObservableObject,
— почему следует избегать использования EnvironmentObject.
Подробнее:
https://levelup.gitconnected.com/ios-app-as-a-microservice-using-swiftui-in-modular-app-f40182f5e52a
#swiftui #ios
Как эффективно реализовать модульную архитектуру с помощью SwiftUI? В этом статье разбираются некоторые подходы:
— как работать с обратными вызовами и потоками данных,
— основы использования Combine и SwiftUI,
— реализация ObservableObject,
— почему следует избегать использования EnvironmentObject.
Подробнее:
https://levelup.gitconnected.com/ios-app-as-a-microservice-using-swiftui-in-modular-app-f40182f5e52a
#swiftui #ios
🔥5❤🔥1👍1
Как улучшить код в проекте на Flutter
В этой статье автор реализовал несколько примеров расширений с объяснением, как они используются: для форм, операций со списками, изображений и т.д.
Эти простые советы помогут улучшить код начинающим и сделают его более читаемым на Dart:
https://tprg.ru/5Ztu
#flutter #dart
В этой статье автор реализовал несколько примеров расширений с объяснением, как они используются: для форм, операций со списками, изображений и т.д.
Эти простые советы помогут улучшить код начинающим и сделают его более читаемым на Dart:
https://tprg.ru/5Ztu
#flutter #dart
👍7💩7
Исследование: автоматизация тестирования в проектах
Команда Kaspresso провела опрос среди разработчиков из 30 разных компаний (Spotify, Revolut, HH и другие) по автотестам в их приложениях. Результаты из исследования:
1. У 1/3 команд написано больше 1000 UI тестов, рекорд — 11000.
2. Более половины запускают тесты на PR, около 25% — на ночных сборках.
3. Компании в среднем ограничиваются только 5 эмуляторами.
4. 90% опрошенных используют нативные тесты.
Также в исследовании были вопросы про используемые технологии и как компании организовывает инфраструктуру, подробнее в статье:
https://habr.com/ru/post/695244/
#исследование
Команда Kaspresso провела опрос среди разработчиков из 30 разных компаний (Spotify, Revolut, HH и другие) по автотестам в их приложениях. Результаты из исследования:
1. У 1/3 команд написано больше 1000 UI тестов, рекорд — 11000.
2. Более половины запускают тесты на PR, около 25% — на ночных сборках.
3. Компании в среднем ограничиваются только 5 эмуляторами.
4. 90% опрошенных используют нативные тесты.
Также в исследовании были вопросы про используемые технологии и как компании организовывает инфраструктуру, подробнее в статье:
https://habr.com/ru/post/695244/
#исследование
👍9❤1
Оптимизация приложений (Go edition): уроки из Google apps
Серия статей, в которой разбираются инструменты для анализа производительности, причины низкой производительности приложения, а также советы для его улучшения.
Часть 1: Требования к оперативной памяти, разбор onTrimMemory(), оптимизация использования памяти в Android приложениях.
Часть 2: Задержка при запуске приложений, причины и оптимизация.
Часть 3: Разбор инструментов: meminfo, App Startup, CPU Profiler Baseline Profiles, Perfetto и других.
#android
Серия статей, в которой разбираются инструменты для анализа производительности, причины низкой производительности приложения, а также советы для его улучшения.
Часть 1: Требования к оперативной памяти, разбор onTrimMemory(), оптимизация использования памяти в Android приложениях.
Часть 2: Задержка при запуске приложений, причины и оптимизация.
Часть 3: Разбор инструментов: meminfo, App Startup, CPU Profiler Baseline Profiles, Perfetto и других.
#android
👍7
Делегаты в Android приложениях
Одна из полезных фич в Kotlin — делегированные свойства или просто делегаты. По сути, делегат — это всего лишь класс с двумя методами: для получения и присвоения свойству.
Пример из этой статьи основан на паттерне MVVM. Логика приложения достаточно упрощена, RecyclerView заменён на ScrollView + Linearlayout, чтобы проще организовать код и объяснить применение делегатов в Android-приложении:
https://habr.com/ru/company/constanta/blog/696162/
#kotlin #android
Одна из полезных фич в Kotlin — делегированные свойства или просто делегаты. По сути, делегат — это всего лишь класс с двумя методами: для получения и присвоения свойству.
Пример из этой статьи основан на паттерне MVVM. Логика приложения достаточно упрощена, RecyclerView заменён на ScrollView + Linearlayout, чтобы проще организовать код и объяснить применение делегатов в Android-приложении:
https://habr.com/ru/company/constanta/blog/696162/
#kotlin #android
👍9🥴3