Мобильная разработка – Telegram
Мобильная разработка
13.9K subscribers
850 photos
238 videos
2.95K links
Актуальное по мобильной разработке — Android, iOS, кроссплатформа

Разместить рекламу: @tproger_sales_bot
Правила общения: https://tprg.ru/rules
Другие каналы: @tproger_channels
Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/oVBP
Download Telegram
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
🔥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
👍8
Создаём простой Chat App на 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
👍12
Dribbble идеи UI дизайна

Для разработки нового дизайна приложения порой не хватает идей. На 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
👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Какие вопросы задать работодателю 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
👍43
Облако Xcode теперь ещё и с подпиской

Владельцы учётной записи 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
👍8
Разбираем паттерн 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
👍6👏4
Улучшаем производительность 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
🔥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
👍3
Распространённые oшибки при использовании корутин

Наиболее типичные ошибки, которые допускают начинающие Android разработчики — это неправильная обработка исключений в корутинах и неправильное применение suspend-фун­кции.

В этом статье автор разбирает, как не допускать эти ошибки и приводит примеры их решения:

https://tprg.ru/7RgV

#kotlin #android
👎111👍1
Как настроить YouTube API для 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
🤡9👍3
Wear OS: библиотека Tiles Material

В конце августа состоялся релиз библиотеки для 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
👍21🔥21😁1
Работа с JSON в Swift

Чтение данных JSON из локальных файлов и URL-адресов стало намного проще с помощью инструментов для кодирования/декодирования в Swift 5.

В этой статье показано, как загружать данные в формате JSON из локального файла, а также из API прогнозных сервисов:

https://tprg.ru/F7VJ

#ios #swiftui
👍7