Способы отладки на Jetpack Compose
В этом коротком видеоуроке рассматривается, как отлаживать проблемы с производительностью в JetSnack и способы их исправления на Jetpack Compose:
https://youtu.be/SWBN0y0lFNY
#android
В этом коротком видеоуроке рассматривается, как отлаживать проблемы с производительностью в JetSnack и способы их исправления на Jetpack Compose:
https://youtu.be/SWBN0y0lFNY
#android
YouTube
Jetpack Compose: Debugging recomposition
A look into how debugging a performance issue in Jetsnack and how we fixed it in Jetpack Compose. Why does deferring state reads into a lambda mean composition can be skipped?
Chapters:
0:00 - Introduction
0:37 - Three Phases Of Compose
1:40 - Deferring…
Chapters:
0:00 - Introduction
0:37 - Three Phases Of Compose
1:40 - Deferring…
👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Как работать с Flutter Animate?
Flutter Animate — это библиотека, которая позволяет легко добавлять практически любые анимационные эффекты в Flutter. У Flutter есть хороший фреймворк для анимаций, но не всегла Flutter справляется с анимациями и просто их тормозит.
В статье разбираются возможности данной библиотеки с простыми примерами: https://tprg.ru/YUdH
#flutter
Flutter Animate — это библиотека, которая позволяет легко добавлять практически любые анимационные эффекты в Flutter. У Flutter есть хороший фреймворк для анимаций, но не всегла Flutter справляется с анимациями и просто их тормозит.
В статье разбираются возможности данной библиотеки с простыми примерами: https://tprg.ru/YUdH
#flutter
👍11💩4❤1
Главные ошибки в монетизации приложений
Наталия Гришкина, эксперт по in-app паблишерам в Яндексе, поделилась своим мнением о четырёх наиболее важных аспектах по монетизации приложения, на которые стоит обратить внимание.
Основные ошибки:
— использование неактуальных версий SDK,
— избыточное кеширование рекламы,
— интеграция SDK с ошибками,
— использование только одного SDK для показа рекламы.
Подробнее о каждой из них в статье:
https://tprg.ru/IQeU
#android #ios
Наталия Гришкина, эксперт по in-app паблишерам в Яндексе, поделилась своим мнением о четырёх наиболее важных аспектах по монетизации приложения, на которые стоит обратить внимание.
Основные ошибки:
— использование неактуальных версий SDK,
— избыточное кеширование рекламы,
— интеграция SDK с ошибками,
— использование только одного SDK для показа рекламы.
Подробнее о каждой из них в статье:
https://tprg.ru/IQeU
#android #ios
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Полное руководство по корутинам
Этот гайд по основным функциям корутин, в котором рассматриваются следующие темы:
— Что такое Kotlin корутины?
— Когда и зачем их использовать?
— Suspend функции.
Автор разбирает на примерах: Coroutine Builder, Scope,
контекст корутины, диспетчеры и многое другое: https://tprg.ru/7Ifw
#kotlin
Этот гайд по основным функциям корутин, в котором рассматриваются следующие темы:
— Что такое Kotlin корутины?
— Когда и зачем их использовать?
— Suspend функции.
Автор разбирает на примерах: Coroutine Builder, Scope,
контекст корутины, диспетчеры и многое другое: https://tprg.ru/7Ifw
#kotlin
👍25
This media is not supported in your browser
VIEW IN TELEGRAM
Новая версия Android Studio Dolphin: что нового?
Обновления коснулись в основном Jetpack Compose, Wear OS и Logcat:
— Появился Multipreview в Compose для лёгкого просмотра нескольких экранов и анимации.
— Layout Inspector теперь позволяет отслеживать количество рекомпозиций.
— В Logcat появился поиск по "ключ-значение", улучшили отслеживание логов и появилась возможность создавать несколько окон.
— Обновили эмулятор Wear OS.
— Внедрили Gradle Managed Devices для тестирования.
Детальнее: https://developer.android.com/studio/releases
#android
Обновления коснулись в основном Jetpack Compose, Wear OS и Logcat:
— Появился Multipreview в Compose для лёгкого просмотра нескольких экранов и анимации.
— Layout Inspector теперь позволяет отслеживать количество рекомпозиций.
— В Logcat появился поиск по "ключ-значение", улучшили отслеживание логов и появилась возможность создавать несколько окон.
— Обновили эмулятор Wear OS.
— Внедрили Gradle Managed Devices для тестирования.
Детальнее: https://developer.android.com/studio/releases
#android
👍25
Безопасное хранение данных на Android
Иногда нужно иметь дело с конфиденциальными пользовательскими данными, которые нельзя просто так сохранить в файловой системе. Как же гарантировать сохранность этой информации?
В видео уроке вы узнаете о шифрование и дешифрование данных и познакомитесь с хранилищем ключей Android Keystore:
https://youtu.be/aaSck7jBDbw
#android
Иногда нужно иметь дело с конфиденциальными пользовательскими данными, которые нельзя просто так сохранить в файловой системе. Как же гарантировать сохранность этой информации?
В видео уроке вы узнаете о шифрование и дешифрование данных и познакомитесь с хранилищем ключей Android Keystore:
https://youtu.be/aaSck7jBDbw
#android
YouTube
FULL Guide to Encryption & Decryption in Android (Keystore, Ciphers and more)
Sometimes, you need to deal with sensitive user data you can't just save like that on the file system. Instead, you should encrypt it to make it safe from attackers. In this video you'll learn the ins and outs about the keystore system and how we can use…
👍11❤1
Размеры экрана iPhone 14
iPhone 14 показали 7 сентября, а вместе с этим вышли новые размеры экранов на новую линейку. Основные изменения в iPhone 14 Pro — Dynamic Island, который расширяется для отображения уведомлений и действий.
Подробнее: https://useyourloaf.com/blog/iphone-14-screen-sizes/
#ios
iPhone 14 показали 7 сентября, а вместе с этим вышли новые размеры экранов на новую линейку. Основные изменения в iPhone 14 Pro — Dynamic Island, который расширяется для отображения уведомлений и действий.
Подробнее: https://useyourloaf.com/blog/iphone-14-screen-sizes/
#ios
👍7
This media is not supported in your browser
VIEW IN TELEGRAM
Что такое edge-to-edge и как работать с WindowInsets
Режим edge-to-edge используется, чтобы отобразить приложение на всей видимой поверхности дисплея. Для реализации нужно изменить цвет системного UI, сделать запрос на отрисовку приложения под заданный UI и устранить визуальные конфликты.
В этой статье рассматривается, как реализовать edge-to-edge с примерами на View и Jectpack Compose:
https://habr.com/ru/company/kts/blog/687310/
#android
Режим edge-to-edge используется, чтобы отобразить приложение на всей видимой поверхности дисплея. Для реализации нужно изменить цвет системного UI, сделать запрос на отрисовку приложения под заданный UI и устранить визуальные конфликты.
В этой статье рассматривается, как реализовать edge-to-edge с примерами на View и Jectpack Compose:
https://habr.com/ru/company/kts/blog/687310/
#android
👍10
Интеграция Flutter в нативный Android-проект
Если вы хотите делать проект под Android и использовать Flutter, то вам не обойтись без интеграции. Для это нужно создать Flutter-модуль, добавить его в зависимости Gradle и реализовать FlutterActivity, чтобы запустить проект.
Подробные шаги по импорту и реализации — https://tprg.ru/f8z0
#flutter #android
Если вы хотите делать проект под Android и использовать Flutter, то вам не обойтись без интеграции. Для это нужно создать Flutter-модуль, добавить его в зависимости Gradle и реализовать FlutterActivity, чтобы запустить проект.
Подробные шаги по импорту и реализации — https://tprg.ru/f8z0
#flutter #android
👍12💩2
Шпаргалка по техническому интервью для iOS разработчика
Недавно мы рассказывали о ресурсах для подготовки к собеседованию для Android-разработчика. Если вы готовитесь к интервью на iOS, то этот репозиторий поможет проверить ваши знания по алгоритмам, БД, Objective-C, Swift и другим темам: https://tprg.ru/kTZu
Некоторые темы без обновлений, но в проекте также доступны карточки на Quizlet по всем вопросам для быстрого запоминания:
https://quizlet.com/serg_tsogtbaatar/folders/ios-interviews/sets
#ios
Недавно мы рассказывали о ресурсах для подготовки к собеседованию для Android-разработчика. Если вы готовитесь к интервью на iOS, то этот репозиторий поможет проверить ваши знания по алгоритмам, БД, Objective-C, Swift и другим темам: https://tprg.ru/kTZu
Некоторые темы без обновлений, но в проекте также доступны карточки на Quizlet по всем вопросам для быстрого запоминания:
https://quizlet.com/serg_tsogtbaatar/folders/ios-interviews/sets
#ios
👍7
This media is not supported in your browser
VIEW IN TELEGRAM
Изучаем Jetpack Compose на примере приложения по поиску собак из приюта
Adopty — это приложение для усыновления собак, созданное на Kotlin для демонстрации пользовательского интерфейса с помощью Jetpack Compose. В нём используются популярные инструменты и лучшие практики Android-разработки. Также начинающие разработчики могут на практике изучить, как работать с Hilt, Retrofit, Accompanist и Coil.
Репозиторий: https://github.com/2307vivek/Adopty
#android
Adopty — это приложение для усыновления собак, созданное на Kotlin для демонстрации пользовательского интерфейса с помощью Jetpack Compose. В нём используются популярные инструменты и лучшие практики Android-разработки. Также начинающие разработчики могут на практике изучить, как работать с Hilt, Retrofit, Accompanist и Coil.
Репозиторий: https://github.com/2307vivek/Adopty
#android
🐳14👍10🔥1😢1
Инструменты для снятия логов в Android и iOS
В этом пошаговом руководстве рассматривается, как:
— перевести устройство в режим отладки и читать логи с помощью Logcat и SDK Platform Tools,
— выгрузить логи с самого устройства, используя Android Debug Bridge,
— установить xCode и использовать инструмент Simulator,
— снимать логи с устройства с помощью раздела Devices and Simulators,
— работать с утилитой iMazing на Windows.
Подробнее: https://tprg.ru/zsZ5
#android #ios
В этом пошаговом руководстве рассматривается, как:
— перевести устройство в режим отладки и читать логи с помощью Logcat и SDK Platform Tools,
— выгрузить логи с самого устройства, используя Android Debug Bridge,
— установить xCode и использовать инструмент Simulator,
— снимать логи с устройства с помощью раздела Devices and Simulators,
— работать с утилитой iMazing на Windows.
Подробнее: https://tprg.ru/zsZ5
#android #ios
👍6
Серия статей о диплинках на Android
Наверняка вы знакомы с концепцией deeplink — гиперссылка, которая позволяет перенаправить пользователя с одного веб-сайта на конкретную страницу. В мобильных приложениях диплинки работают немного иначе — это URL, который ещё и открывает приложение, если оно установлено на устройстве.
В этой серии статей разбираются типы deeplink, особенности работы с такими ссылками на Android и популярные проблемы, с которыми может столкнуться разработчик, например: URL перестал работать или не открывается в браузерах.
Часть 1: https://tprg.ru/aIJt
Часть 2: https://tprg.ru/OmSz
Часть 3: https://tprg.ru/HRgW
#android
Наверняка вы знакомы с концепцией deeplink — гиперссылка, которая позволяет перенаправить пользователя с одного веб-сайта на конкретную страницу. В мобильных приложениях диплинки работают немного иначе — это URL, который ещё и открывает приложение, если оно установлено на устройстве.
В этой серии статей разбираются типы deeplink, особенности работы с такими ссылками на Android и популярные проблемы, с которыми может столкнуться разработчик, например: URL перестал работать или не открывается в браузерах.
Часть 1: https://tprg.ru/aIJt
Часть 2: https://tprg.ru/OmSz
Часть 3: https://tprg.ru/HRgW
#android
👍7
Реализация гистограммы с помощью SwiftUI Charts в iOS 16
На WWDC 2022 Apple представила SwiftUI Charts — фреймворк для преобразования данных в графики.
В этом пошаговом руководстве показано, как добавить простой шаблон диаграммы и настроить его в приложение на iOS 16:
https://tprg.ru/LjtI
#ios
На WWDC 2022 Apple представила SwiftUI Charts — фреймворк для преобразования данных в графики.
В этом пошаговом руководстве показано, как добавить простой шаблон диаграммы и настроить его в приложение на iOS 16:
https://tprg.ru/LjtI
#ios
👍4
Oracle, остановись! Вышла версия Java 19
Java 18 вышла только в марте, а Oracle уже подготовил новый релиз. Какие нового?
— Изменения в Pattern Matching для switch (это уже третье preview) и паттерн записей.
— Ввели новую абстракцию потоков — Virtual Threads. Это легковесные потоки, которые схожи с корутинами.
— Поддержка Linux/RISC-V Port.
— Новый API для Structured Concurrency.
— Векторные API всё ещё в инкубационном статусе.
Больших изменений, которые так обещали, не наблюдается.
#java
Java 18 вышла только в марте, а Oracle уже подготовил новый релиз. Какие нового?
— Изменения в Pattern Matching для switch (это уже третье preview) и паттерн записей.
— Ввели новую абстракцию потоков — Virtual Threads. Это легковесные потоки, которые схожи с корутинами.
— Поддержка Linux/RISC-V Port.
— Новый API для Structured Concurrency.
— Векторные API всё ещё в инкубационном статусе.
Больших изменений, которые так обещали, не наблюдается.
#java
👍13💩8🔥2
Дорожная карта для Android-разработчиков на 2022 год
Кроме roadmap, команда Stream выпустила статьи, в которых объясняются концепции, указанные в дорожной карте: компоненты, навигация в приложение, паттерны и т.д.
Почитать гайды и скачать полный roadmap можно здесь:
https://github.com/skydoves/android-developer-roadmap
#android
Кроме roadmap, команда Stream выпустила статьи, в которых объясняются концепции, указанные в дорожной карте: компоненты, навигация в приложение, паттерны и т.д.
Почитать гайды и скачать полный roadmap можно здесь:
https://github.com/skydoves/android-developer-roadmap
#android
👎16👍2🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
Сколько стоит дизайн мобильного приложения?
Белорусская компания провела неофициальное исследование по местному IT-рынку. Задача была получить цену за полный цикл разработки: от веб-дизайна и макетов до приложений на iOS и Android.
Полученные офферы раздели на 3 категории и указали среднюю стоимость проекта:
https://tprg.ru/Hc3K
Если вам интересно узнать о данных в других регионах (Австралия, США, Великобритания и т.д.), то подробнее — в статье: https://tprg.ru/ZERv
#ios #android
Белорусская компания провела неофициальное исследование по местному IT-рынку. Задача была получить цену за полный цикл разработки: от веб-дизайна и макетов до приложений на iOS и Android.
Полученные офферы раздели на 3 категории и указали среднюю стоимость проекта:
https://tprg.ru/Hc3K
Если вам интересно узнать о данных в других регионах (Австралия, США, Великобритания и т.д.), то подробнее — в статье: https://tprg.ru/ZERv
#ios #android
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Работа со списками во Flutter-приложениях
Создать простой статический список в приложение несложно, но задача усложняется, если нужно реализовать список из самостоятельно обновляемых записей или с ссылками на другие записи.
В этой статье рассматривается, как осуществлять в списках функции асинхронной загрузки, фильтрации и актуализации данных. Также автор показывает на примере собственной библиотеки, как можно упростить создание контроллеров для управления списками:
Часть 1: https://habr.com/ru/post/656297/
Часть 2: https://habr.com/ru/post/688864/
#flutter
Создать простой статический список в приложение несложно, но задача усложняется, если нужно реализовать список из самостоятельно обновляемых записей или с ссылками на другие записи.
В этой статье рассматривается, как осуществлять в списках функции асинхронной загрузки, фильтрации и актуализации данных. Также автор показывает на примере собственной библиотеки, как можно упростить создание контроллеров для управления списками:
Часть 1: https://habr.com/ru/post/656297/
Часть 2: https://habr.com/ru/post/688864/
#flutter
💩7👍5🤔1
Пример реализации Dynamic Island и ActivityKit
Dynamic Island используется для отображения обновлений в текущей задаче. Некоторым крупным компаниям Apple предоставила инструменты для реализации динамического острова до выпуска официальных API: WhatsApp, Pandora, Amazon Music и другим.
Например, в Spotify с помощью Dynamic Island отображаются элементы управления музыкой, Uber отображает профиль водителя и время прибытия.
Если вам интересно, как реализовать Dynamic Island, то в этом руководстве подробно разбираются ActivityAttributes, Live Activity и сам виджет:
https://tprg.ru/JxwG
Спойлер: Dynamic Island несложно настроить т.к. большую часть работы за нас делает iOS.
#ios
Dynamic Island используется для отображения обновлений в текущей задаче. Некоторым крупным компаниям Apple предоставила инструменты для реализации динамического острова до выпуска официальных API: WhatsApp, Pandora, Amazon Music и другим.
Например, в Spotify с помощью Dynamic Island отображаются элементы управления музыкой, Uber отображает профиль водителя и время прибытия.
Если вам интересно, как реализовать Dynamic Island, то в этом руководстве подробно разбираются ActivityAttributes, Live Activity и сам виджет:
https://tprg.ru/JxwG
Спойлер: Dynamic Island несложно настроить т.к. большую часть работы за нас делает iOS.
#ios
👍3