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

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

Регистрация в перечне РКН: https://tprg.ru/oVBP
Download Telegram
Вышли новые беты для разработчиков iOS

— iOS 16 beta 7 — больших изменений нет, но Apple исправила некоторые баги в: Airplay, SwiftUI, Accessibility. Некоторые методы в UIViewController объявили устаревшими и заменили, как и MKMapLandscape в Maps. Детальнее: https://tprg.ru/yOCX

Также вчера выпустили:
— iPadOS 16 beta 7,
— watchOS 9 beta 7,
— Xcode 14 beta 6.

#ios
👍5💩3👎1
Анимация Lottie на Kotlin

Библиотека LottieFiles использует анимации, экспортированные в виде файлов JSON из Adobe After Effect. С помощью этой библиотеки вы можете добавить любую анимацию в ваш проект.

В этом видео разбирается, как использовать Lottie:

https://youtu.be/1pEyWkTVwBY

#kotlin
👍29💩3❤‍🔥2🤡2
This media is not supported in your browser
VIEW IN TELEGRAM
Как создать Slack-приложение на Android

С помощью Jetpack Compose и Stream Chat SDK можно реализовать своё приложение, похожее на Slack. Внутри проекта также используются корутины и библиотека Hilt.

Исходники: https://github.com/GetStream/stream-slack-clone-android

#android
👍11
Обход средств защиты в iOS-приложениях

На Хабре вышла интересная статья об инструментах, которые помогают обходить средства защиты Jailbreak Detection и SSL-pinning.

Для обхода проверок на Jailbreak автор использовал специальное приложение SecureStorev2, где установил твики A-Bypass и Liberty. Также в статье был протестирован скрипт из Frida CodeShare для байпаса и приведены примеры обхода вручную:

https://habr.com/ru/company/dsec/blog/676094/

#ios
👍10
Подборка актуальных вакансий

iOS-разработчик
Где: удалённо
Опыт: можно без опыта

Android-разработчик
Где: Удалённо
Опыт: от 2 лет

iOS-разработчик
Где: Москва, Санкт-Петербург, Казань, Пермь, можно удалённо
Опыт: от 2 лет

Senior Android-разработчик
Где: Москва
Опыт: от 3 лет

Senior iOS-разработчик
Где: Москва
Опыт: от 3 лет

Senior Android-разработчик
Где: Москва, можно удалённо
Опыт: от 3 лет

Middle iOS-разработчик
Где: Москва
Опыт: от 3 лет

#вакансии #работа
👎12💩7👍2🔥1
Как исправить устаревшие Android API

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

— устаревшего конструктора без параметров Handler,
— метода setHasOptionsMenu() на интерфейс MenuProvider,
— метода startActivityForResult() на другие Activity Result API и launcher.

Реализация и примеры здесь:

https://tprg.ru/Sw2V

#android
👍9
This media is not supported in your browser
VIEW IN TELEGRAM
Меню Apple Watch на Jetpack Compose

Используя Jetpack Compose можно реализовать практически любой UI-дизайн, даже если это меню Apple Watch. Как создать двумерную сетку из элементов, Scale-анимацию, drag-жест для правильного смещения контента и многое другое — в этой статье:

https://tprg.ru/8X3Y

#android
👍3🎉1🤮1
This media is not supported in your browser
VIEW IN TELEGRAM
Практический пример создания View-компонента на SwiftUI

В этой статье пошаговое руководство как создать собственный Custom View для городов, используя Sruct, Computed Property и несколько функций, чтобы рассчитать количество лайков и поездок: https://tprg.ru/L71J

#swiftUI
👍5
Ускоренная сборка с помощью Kotlin Symbol Processing

Kotlin Symbol Processing (KSP) — это упрощённый API для разработки легковесных плагинов компиляции и процессоров аннотаций. KSP похож на Kotlin Annotation Processing Tool, но работает быстрее.

В статье рассматривается реализация KSP с использованием аннотаций, SymbolProcessor, Resolver и KotlinPoet:

https://tprg.ru/OgZQ

#kotlin #android
👍4💩21
This media is not supported in your browser
VIEW IN TELEGRAM
Объясняем Kotlin Multiplatform на крестиках-ноликах

KMM позволяет разработчикам объединить всю бизнес-логику в единые модули и запускать один и тот же код на разных платформах. За последние несколько лет эту модель обсуждают всё чаще.

Разработчик Тихон Устинов рассказал о плюсах и минусах работы с KMM в проекте, а также на примере создания игры «крестики-нолики» для Android, iOS и JS продемонстрировал, как применять KMM:

https://habr.com/ru/company/rostelecom/blog/682160/

#kmm #android #ios
🔥14👍3💩1
Повышаем производительность приложения с Baseline Profile

Baseline profile — это классы и методы, которые заранее скомпилированы и установлены вместе с приложением.
Частичная компиляция позволяет ускорить время запуска и производительность.

В отличие от ART Cloud Profile, Baseline profile создаётся во время сборки, поэтому его легче протестировать. Для генерации данного профиля можно использовать библиотеку Macrobenchmark.

Подробнее в статье: https://tprg.ru/6DHA

#android
Oбновлениe в библиотеках Jetpack

WebKit 1.5: заменили setForceDark и setForceDarkStrategy API на setAlgorithmicDarkeningAllowed из WebSettingsCompat,
Compose Runtime 1.3: в CompositionData был добавлен метод find,
Room 2.5: добавлена ​​новая аннотация Upsert для обновления существующей записи или создания новой,
Sqlite Version 2.3: androidx.sqlite переписали с Java на Kotlin.

Подробнее: https://tprg.ru/ltBR

#android
👍18
Danger: автоматизируем ревью на CI

Плагин Danger запускается во время процесса CI и показывает все ошибки сборки, предупреждения или результаты UI тестов, помогая разработчику не писать однотипные комментарии о кодстайле и ошибках.

Команда из Lamoda уже используют Danger в своих проектах, чтобы упростить ревью пул-реквестов. Разработчик Татьяна Родионова поделилась опытом настройки Danger и рассказала с какими сложностями она столкнулась:

https://habr.com/ru/company/lamoda/blog/681564/

#android
👍3
Подборка актуальных вакансий

Android-разработчик
Где: Удалённо
Опыт: от 2 лет

Старший Android-разработчик
Где: Москва
Опыт: от 3 лет

Senior Android-разработчик
Где: Москва, можно удалённо
Опыт: от 3 лет

iOS-разработчик
Где: удалённо
Опыт: можно без опыта

iOS-разработчик
Где: Москва, Санкт-Петербург, Казань, Пермь, можно удалённо
Опыт: от 2 лет

Middle iOS-разработчик
Где: Москва
Опыт: от 3 лет

Senior iOS-разработчик
Где: Москва
Опыт: от 3 лет

#вакансии #работа
👎6👍3
Повторяем алгоритмы сортировки на практике в диаграммах Swift

В этом видеоуроке показано, как использовать Swift Charts, на примере реализации и визуализации различных алгоритмов сортировки:

https://youtu.be/UCSXF741iHI

#swiftui
👍6👎1
Вышла предварительная версия Cross device SDK для разработчиков

Cross device SDK анонсировали ещё на Google I/О. Основная функциональность данной версии: обнаружение устройств, безопасное соединение между устройствами, поддержка сессии на нескольких устройствах.

По сути, этот пакет SDK берёт на себя всю работу с протоколами обнаружения устройств, аутентификации и подключения.

Детальнее: https://tprg.ru/UKB5

#android
👍13🔥1
Как загрузить файл с помощью Retrofit

Библиотека Retrofit используется для работы с REST API и отправки запросов на удалённый сервер в Android.

Этот видеоурок поможет разобраться начинающим, как загружать файл на сервер:

https://youtu.be/fEYhQOUe0g0

#android
👍173
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