This media is not supported in your browser
VIEW IN TELEGRAM
Как обнаружить утечки памяти в Android-приложениях
Утечки памяти впустую тратят ресурсы приложения и рано или поздно приведут к исключению OutOfMemory. Для их обнаружения часто используется библиотека LeakCanary или Memory Profiler в Android Studio.
LeakCanary проводит анализ на наличие утечек памяти и отправляет уведомление. После нажатия на уведомление LeakCanary сбрасывает heap и предоставляет данные “Leak trace” уже в журнале или в самом приложение LeakCanary.
Разбираемся с причиной возникновения данной проблемы и LeakCanary в статье:
https://tprg.ru/yEWu
#android
Утечки памяти впустую тратят ресурсы приложения и рано или поздно приведут к исключению OutOfMemory. Для их обнаружения часто используется библиотека LeakCanary или Memory Profiler в Android Studio.
LeakCanary проводит анализ на наличие утечек памяти и отправляет уведомление. После нажатия на уведомление LeakCanary сбрасывает heap и предоставляет данные “Leak trace” уже в журнале или в самом приложение LeakCanary.
Разбираемся с причиной возникновения данной проблемы и LeakCanary в статье:
https://tprg.ru/yEWu
#android
🔥10🤔4👍3💩3
Flutter плагин для создания скрин-листов из видео
video_thumbnail — это плагин для видео файлов и видео ссылок, который позволяет создавать и сохранять превью.
С его помощь можно управлять форматом, разрешением и качеством изображения без дополнительных расчётов. Данный плагин легко установить, добавив video_thumbnail в качестве зависимости в pubspec.yaml.
Репозиторий: https://github.com/arjun-c-369/video_thumbnail?ref=flutterawesome.com
Источник: https://tprg.ru/dEDH
#flutter
video_thumbnail — это плагин для видео файлов и видео ссылок, который позволяет создавать и сохранять превью.
С его помощь можно управлять форматом, разрешением и качеством изображения без дополнительных расчётов. Данный плагин легко установить, добавив video_thumbnail в качестве зависимости в pubspec.yaml.
Репозиторий: https://github.com/arjun-c-369/video_thumbnail?ref=flutterawesome.com
Источник: https://tprg.ru/dEDH
#flutter
👍8
Создаём простой Chat App на SwiftUI
В этом практическом гайде автор показывает, как с нуля создать чат-приложение и подключить его к серверу с помощью MirrorFly Chat SDK: https://tprg.ru/85yb
Репозиторий: https://github.com/MirrorFly/MirrorFly-UIKit-iOS
#ios #swiftui
В этом практическом гайде автор показывает, как с нуля создать чат-приложение и подключить его к серверу с помощью MirrorFly Chat SDK: https://tprg.ru/85yb
Репозиторий: https://github.com/MirrorFly/MirrorFly-UIKit-iOS
#ios #swiftui
👍10
Как настроить разрешения уведомлений на Android
Вероятно, вы уже знакомы с новым Runtime Permission в Android 13 для запроса разрешения на показ уведомлений. Однако данное изменение затронуло ещё все предыдущие версии. Для targetSdkVersion 32 и ниже, пользователю будет предложено разрешить или запретить отправку уведомлений при первом открытии приложения.
В этой статье рассказывается, как реализовать уведомления и сохранить показатель отказов минимальным с учетом изменений:
https://tprg.ru/0chB
#android
Вероятно, вы уже знакомы с новым Runtime Permission в Android 13 для запроса разрешения на показ уведомлений. Однако данное изменение затронуло ещё все предыдущие версии. Для targetSdkVersion 32 и ниже, пользователю будет предложено разрешить или запретить отправку уведомлений при первом открытии приложения.
В этой статье рассказывается, как реализовать уведомления и сохранить показатель отказов минимальным с учетом изменений:
https://tprg.ru/0chB
#android
👍12
Dribbble — идеи UI дизайна
Для разработки нового дизайна приложения порой не хватает идей. На Dribbble можно найти примеры дизайна пользовательских интерфейсов для вдохновения. Тематика совершенно разная, поэтому, возможно, вы подчеркнёте что-то для себя:
— Android : https://dribbble.com/search/android
— iOS: https://dribbble.com/search/ios
#android #ios
Для разработки нового дизайна приложения порой не хватает идей. На Dribbble можно найти примеры дизайна пользовательских интерфейсов для вдохновения. Тематика совершенно разная, поэтому, возможно, вы подчеркнёте что-то для себя:
— Android : https://dribbble.com/search/android
— iOS: https://dribbble.com/search/ios
#android #ios
❤20👍6
This media is not supported in your browser
VIEW IN TELEGRAM
Реализация watchdog на iOS
В iOS используется сторожевой таймер, который отслеживает и завершает работу приложений, не отвечающих на запросы. Если приложение долго блокирует основной поток, система его убивает.
Код 0x8badf00d в Crash Log помогает определить, почему произошло завершение работы. Однако не всегда понятно, что вызвало в самом приложение эту ошибку. Чтобы решить эту проблему, можно написать собственный watchdog и с помощью логов найти причину блокировки основных потоков.
В этой статье рассматривается, как c помощью класса WatchdogRunLoopObserver и CFRunLoopObserver можно отслеживать сбои в приложении:
https://tprg.ru/Hb6k
#ios
В iOS используется сторожевой таймер, который отслеживает и завершает работу приложений, не отвечающих на запросы. Если приложение долго блокирует основной поток, система его убивает.
Код 0x8badf00d в Crash Log помогает определить, почему произошло завершение работы. Однако не всегда понятно, что вызвало в самом приложение эту ошибку. Чтобы решить эту проблему, можно написать собственный watchdog и с помощью логов найти причину блокировки основных потоков.
В этой статье рассматривается, как c помощью класса WatchdogRunLoopObserver и CFRunLoopObserver можно отслеживать сбои в приложении:
https://tprg.ru/Hb6k
#ios
👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Какие вопросы задать работодателю Android-разработчику?
Собеседование — это диалог. После технического интервью лучше обсудить условия работы, чтобы на самых ранних этапах понять, подходит ли вам компания или нет.
В этой статье были разобраны примеры вопросов от Android-разработчика на собеседовании, а также нюансы, на которые стоит обращать внимание в ответах работодателя:
https://habr.com/ru/company/hh/blog/663266/
#android
Собеседование — это диалог. После технического интервью лучше обсудить условия работы, чтобы на самых ранних этапах понять, подходит ли вам компания или нет.
В этой статье были разобраны примеры вопросов от Android-разработчика на собеседовании, а также нюансы, на которые стоит обращать внимание в ответах работодателя:
https://habr.com/ru/company/hh/blog/663266/
#android
❤9👍2
Flutter: реализация Redux с Elementary
Elementary — это архитектурный пакет для написания приложения по правилам Clean Architecture, основанный на паттерне MVVM. С помощью связки Elementary и Redux можно отделить бизнес-логику от логики отображения и легко расширять функциональность проекта.
Чтобы показать, как работает связка Redux+Elementary, разработчики из Surf реализовали простое приложение, которое выбирает случайные изображения животных. Через screen-WidgetModel-model активируется механизм взаимодействия с Redux. Т.к. чистый Redux не может работать с асинхронностью, то для обработки сетевых запросов автор использовал redux_epics в качестве middleware-составляющей.
Подробнее: https://tprg.ru/r2wT
#flutter
Elementary — это архитектурный пакет для написания приложения по правилам Clean Architecture, основанный на паттерне MVVM. С помощью связки Elementary и Redux можно отделить бизнес-логику от логики отображения и легко расширять функциональность проекта.
Чтобы показать, как работает связка Redux+Elementary, разработчики из Surf реализовали простое приложение, которое выбирает случайные изображения животных. Через screen-WidgetModel-model активируется механизм взаимодействия с Redux. Т.к. чистый Redux не может работать с асинхронностью, то для обработки сетевых запросов автор использовал redux_epics в качестве middleware-составляющей.
Подробнее: https://tprg.ru/r2wT
#flutter
👍4❤3
Облако Xcode теперь ещё и с подпиской
Владельцы учётной записи Apple Developer Program теперь могут покупать подписки на Xcode Cloud.
Один из четырех планов подписки (25 вычислительных часов в месяц) можно использовать бесплатно до декабря 2023 года.
Вычислительный час — это час времени, используемый для выполнения определенной задачи в облаке. Например, тестирование или сборка приложения.
Подробнее: https://developer.apple.com/xcode-cloud/get-started/
#ios
Владельцы учётной записи Apple Developer Program теперь могут покупать подписки на Xcode Cloud.
Один из четырех планов подписки (25 вычислительных часов в месяц) можно использовать бесплатно до декабря 2023 года.
Вычислительный час — это час времени, используемый для выполнения определенной задачи в облаке. Например, тестирование или сборка приложения.
Подробнее: https://developer.apple.com/xcode-cloud/get-started/
#ios
👍3
Jetpack Compose для начинающих
В августе вышло обновление по изучению JetPack Compose. Пакет состоит из 6 тем с уроками по архитектуре, Layout, анимации и т.д.
В конце каждой темы вас ожидает квиз на закрепление знаний.
Ссылка: https://developer.android.com/courses/jetpack-compose/course
Если вы уже проходили этот курс, поделитесь своим мнением.
#compose #android
В августе вышло обновление по изучению JetPack Compose. Пакет состоит из 6 тем с уроками по архитектуре, Layout, анимации и т.д.
В конце каждой темы вас ожидает квиз на закрепление знаний.
Ссылка: https://developer.android.com/courses/jetpack-compose/course
Если вы уже проходили этот курс, поделитесь своим мнением.
#compose #android
👍8
Разбираем паттерн Pluginable в iOS приложениях
Разрабатывая приложение для iOS, часто нужно добавлять базовую функциональность в такие классы, как UIViewController, AppDelegate или UIView.
Например, если в приложение каждый экран представлен одним из этих классов, то с помощью паттерна Pluginable и BaseViewController можно сделать конфигурацию контроллеров более гибкой и удобной.
Это избавит от дублирующего кода и разгрузит контроллер. В этой статье разбирается реализация BaseViewController на основе плагинов:
https://lazyload.academy/chapter/jonfir-pattern-pluginable/
#ios
Разрабатывая приложение для iOS, часто нужно добавлять базовую функциональность в такие классы, как UIViewController, AppDelegate или UIView.
Например, если в приложение каждый экран представлен одним из этих классов, то с помощью паттерна Pluginable и BaseViewController можно сделать конфигурацию контроллеров более гибкой и удобной.
Это избавит от дублирующего кода и разгрузит контроллер. В этой статье разбирается реализация BaseViewController на основе плагинов:
https://lazyload.academy/chapter/jonfir-pattern-pluginable/
#ios
💩6👍3👎1
Можно ли превратить старый телефон на Android в веб-сервер?
Можно, но для реализации нужно сначала установить Termux и настроить SSH на телефон. Автор этой статьи запустил веб-сервер Puma с простым веб-приложением с помощью Sinatra и поделился своим мнением:
https://habr.com/ru/company/sportmaster_lab/blog/683242/
У нас остались вопросы к аккумулятору, а вы что думаете?
#android
Можно, но для реализации нужно сначала установить Termux и настроить SSH на телефон. Автор этой статьи запустил веб-сервер Puma с простым веб-приложением с помощью Sinatra и поделился своим мнением:
https://habr.com/ru/company/sportmaster_lab/blog/683242/
У нас остались вопросы к аккумулятору, а вы что думаете?
#android
👍6👏4
Улучшаем производительность Android приложения
Для улучшения пользовательского опыта всегда следует учитывать ключевые показатели производительности, например:
— размер приложения,
— время запуска,
— расход памяти,
— потребление CPU и сетевых ресуровсов.
В этой статье разбираются основные метрики производительности и советы, как улучшить эти показатели:
https://tprg.ru/sBSd
#android
Для улучшения пользовательского опыта всегда следует учитывать ключевые показатели производительности, например:
— размер приложения,
— время запуска,
— расход памяти,
— потребление CPU и сетевых ресуровсов.
В этой статье разбираются основные метрики производительности и советы, как улучшить эти показатели:
https://tprg.ru/sBSd
#android
👍11
This media is not supported in your browser
VIEW IN TELEGRAM
Google выпустила Flutter 3.3
Обновления:
— новый виджет SelectableArea для выделения,
— появилась поддержка Scribble для iPadOS,
— новые компоненты в IconButton, Chips и AppBar.
— улучшили скорость загрузки изображений за счет снижения нагрузки на GC Dart,
— убрали поддержку 32-bit iOS.
Источник: https://tprg.ru/GORU
#flutter
Обновления:
— новый виджет SelectableArea для выделения,
— появилась поддержка Scribble для iPadOS,
— новые компоненты в IconButton, Chips и AppBar.
— улучшили скорость загрузки изображений за счет снижения нагрузки на GC Dart,
— убрали поддержку 32-bit iOS.
Источник: https://tprg.ru/GORU
#flutter
🔥20👍3👎2
Навигация в Swift UI на iOS 16
На WWDC 2022 Apple представила новинки в SwiftUI, уделив значительное внимание навигации. В этом видео разбирается работа с новыми навигационными API SwiftUI.
На простых примерах рассматриваются Navigation Stack, Navigation Path и navigationDestinationю:
https://www.youtube.com/watch?v=7dnTHrLyFLc
#ios
На WWDC 2022 Apple представила новинки в SwiftUI, уделив значительное внимание навигации. В этом видео разбирается работа с новыми навигационными API SwiftUI.
На простых примерах рассматриваются Navigation Stack, Navigation Path и navigationDestinationю:
https://www.youtube.com/watch?v=7dnTHrLyFLc
#ios
YouTube
Navigation in SwiftUI & iOS 16
Get started with SwiftUI’s new navigation APIs for navigation stacks. You will learn about NavigationStack, NavigationPath and navigationDestination based on several examples.
Timestamps:
00:00 Introduction
00:43 Review: What was navigation like before iOS…
Timestamps:
00:00 Introduction
00:43 Review: What was navigation like before iOS…
👍3
Распространённые oшибки при использовании корутин
Наиболее типичные ошибки, которые допускают начинающие Android разработчики — это неправильная обработка исключений в корутинах и неправильное применение suspend-функции.
В этом статье автор разбирает, как не допускать эти ошибки и приводит примеры их решения:
https://tprg.ru/7RgV
#kotlin #android
Наиболее типичные ошибки, которые допускают начинающие Android разработчики — это неправильная обработка исключений в корутинах и неправильное применение suspend-функции.
В этом статье автор разбирает, как не допускать эти ошибки и приводит примеры их решения:
https://tprg.ru/7RgV
#kotlin #android
👎11❤1👍1
Как настроить YouTube API для Android-приложений
С помощью этого API можно выбирать и загружать видео по категориям из YouTube, управлять каналами и многое другое. Для создания API KEY необходимо иметь Google аккаунт.
В этой статье подробно разбирается, как получить API KEY для YouTube и добавить YouTube Android Player API в проект:
https://tprg.ru/qGPO
#android
С помощью этого API можно выбирать и загружать видео по категориям из YouTube, управлять каналами и многое другое. Для создания API KEY необходимо иметь Google аккаунт.
В этой статье подробно разбирается, как получить API KEY для YouTube и добавить YouTube Android Player API в проект:
https://tprg.ru/qGPO
#android
👍11👏1💩1
Как компании справляются с удалением приложений из сторов
В связи с санкциями банки в настоящее время наиболее активно ищут альтернативы Apple App Store и Google Play.
Некоторые банки стали выкладывать установочный файл для Android на своём сайте. Однако узнать о наличии обновления в таком случае невозможно, если от разработчика нет пуш-уведомлений.
Другой вариант — Telegram-банк, т.к. Telegram бот вполне может справиться с обработкой типовых запросов клиентов, но более сложные операции обработать будет сложнее. Плюсы и минусы этих и других вариантов — в этой статье:
https://tprg.ru/Szfh
#android #ios
В связи с санкциями банки в настоящее время наиболее активно ищут альтернативы Apple App Store и Google Play.
Некоторые банки стали выкладывать установочный файл для Android на своём сайте. Однако узнать о наличии обновления в таком случае невозможно, если от разработчика нет пуш-уведомлений.
Другой вариант — Telegram-банк, т.к. Telegram бот вполне может справиться с обработкой типовых запросов клиентов, но более сложные операции обработать будет сложнее. Плюсы и минусы этих и других вариантов — в этой статье:
https://tprg.ru/Szfh
#android #ios
🤡9👍3
Wear OS: библиотека Tiles Material
В конце августа состоялся релиз библиотеки для Wear OS, в которой реализованы наиболее популярные элементы для доступа к важным функциям умных часов с циферблата.
Все компоненты и макеты можно использовать вместе с Tiles Design Kit.
Документация: https://tprg.ru/SY4r
#android
В конце августа состоялся релиз библиотеки для Wear OS, в которой реализованы наиболее популярные элементы для доступа к важным функциям умных часов с циферблата.
Все компоненты и макеты можно использовать вместе с Tiles Design Kit.
Документация: https://tprg.ru/SY4r
#android
👍10
This media is not supported in your browser
VIEW IN TELEGRAM
Шпаргалка для технического собеседования
В этой шпаргалке собраны основные вопросы по Android со ссылками на ответы. Некоторые темы без обновлений, но ресурс может быть полезен для проверки своих знаний:
https://github.com/MindorksOpenSource/android-interview-questions
#android
В этой шпаргалке собраны основные вопросы по Android со ссылками на ответы. Некоторые темы без обновлений, но ресурс может быть полезен для проверки своих знаний:
https://github.com/MindorksOpenSource/android-interview-questions
#android
👍21🔥2❤1😁1
Работа с JSON в Swift
Чтение данных JSON из локальных файлов и URL-адресов стало намного проще с помощью инструментов для кодирования/декодирования в Swift 5.
В этой статье показано, как загружать данные в формате JSON из локального файла, а также из API прогнозных сервисов:
https://tprg.ru/F7VJ
#ios #swiftui
Чтение данных JSON из локальных файлов и URL-адресов стало намного проще с помощью инструментов для кодирования/декодирования в Swift 5.
В этой статье показано, как загружать данные в формате JSON из локального файла, а также из API прогнозных сервисов:
https://tprg.ru/F7VJ
#ios #swiftui
👍7