AppFiles - Mobile Development – Telegram
AppFiles - Mobile Development
2.12K subscribers
2.76K photos
38 videos
11 files
3.69K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
Динамические модули в приложениях на Android: опыт использования Dynamic Feature Delivery

Для внедрения одной из SDK, основанной на Flutter, мы прибегли к механизму Dynamic Feature Delivery (DFD). Но оказалось, что в русскоязычном сегменте информации о DFD крайне мало, поэтому я решил поделиться нашим опытом работы с этим механизмом на Android с Google Play Feature Delivery Library. Также мы нашли способ интегрировать динамические фичи на устройства без Google Play, но это тема для отдельной статьи, поэтому в рамках данного материала я на этом останавливаться не буду.

Сегодня мы подробно разберём, как интегрировать механизм DFD в современную архитектуру Android‑приложения с использованием корутин, а также протестируем загрузку и установку динамического модуля, использующего Flutter.

Статья: https://habr.com/ru/companies/yandex/articles/845344/
Платформа: Android/Flutter
This media is not supported in your browser
VIEW IN TELEGRAM
PIPKit - библиотека для реализации картинки-в-картинке на iOS (iPhone, iPad).

PIPKit на GitHub: https://github.com/Kofktu/PIPKit
Платформа: iOS
⭐️: 281
Макросы в Swift: Практическое руководство по использованию

Недавно я столкнулся с задачей, которая требовала написания большого объема шаблонного кода. Вспомнив, что в Swift 5.9 появились макросы, созданные специально для генерации шаблонного кода, я решил попробовать их в действии. Ранее я работал с макросами в Objective-C и C++, поэтому ожидал увидеть нечто похожее. Однако, поискав информацию, я понял, что макросы в Swift — это совсем другое, не похожее на то, что я встречал в других языках.

Статья: https://habr.com/ru/articles/852118/
Платформа: iOS
Забудьте про терминал! Как я избавлялся от рутинных ADB команды с помощью Shortcuts

До этого года я спокойно пользовался терминалом для установки приложений на тестовые устройства android: каждый раз вручную копировал название файла, выбирал нужную команду из истории терминала, стирал старое название и вставлял новое. Это меня очень раздражало, но я не искал решений. А ведь кроме установки, есть множество других команд ADB, которые приходится использовать время от времени. Например, выгрузка последних логов из logcat на компьютер, для чего тоже нужно было прописывать путь для сохранения файла — очень неудобно и отнимает драгоценное время.

Так продолжалось, пока коллега не принесла автоматизированный сценарий в Automator на Mac. Классная вещь, которая позволяет создавать автоматизированные процессы без глубоких знаний программирования. Однако, с пачкой минусов, из-за которых, я в итоге оставил только идею и переписал всё на Shortcuts.

Так что сегодня будем делать такую штуку с помощью быстрых команд, которую можно будет легко масштабировать под разные часто используемые команды adb.

Статья: https://habr.com/ru/articles/852114/
Платформа: Android
🤔1
Модульная навигация в SwiftUI: Исчерпывающее руководство

Недавно я начал создавать проект SwiftUI. Цель, которую я хочу достичь, - создать проект, который можно будет использовать в качестве эталона для создания больших production приложений.

С этой целью я решил применить в проекте Модульную и Чистую архитектуры.

В процессе реализации проекта я столкнулся с некоторыми проблемами с навигацией. Также я не нашел онлайн-решений, которые могли бы удовлетворить все мои запросы. В этой статье я расскажу о проблемах с навигацией, с которыми я столкнулся в проекте, и о том, как я их решил.

Статья: https://ericsspace.com/articles/modular-navigation-in-swiftui-a-comprehensive-guide/
Платформа: iOS

Поставьте 10 лайков, если хотите эту статью на русском
👍9
Анализ сведений о запуске и завершении приложений в Android 15

В Android 11 появилась ApplicationExitInfo, из которой можно узнать исторические причины, по которым приложение было выключено/завершено.

В Android 15 реализована новая ApplicationStartInfo, которую можно использовать для анализа причин того, почему и как приложение было запущено.

С помощью этих данных можно проследить, как пользователи используют приложение. С помощью данных о выходе можно было проверить, не осталось ли в приложении проблем с выходом, а теперь и то, нет ли проблем с входом.

Статья: https://apptractor.ru/info/articles/analiz-svedeniy-o-zapuske-i-zavershenii-prilozheniy-v-android-15.html
Платформа: Android
GroupTrack - приложение для Android с открытым исходным кодом от Canopas, предназначенное для повышения безопасности семьи благодаря функциям обмена местоположением и общения в режиме реального времени. GroupTrack призван обеспечить душевное спокойствие, гарантируя безопасность ваших близких и облегчая бесперебойную связь с ними независимо от их местоположения. Технический стек: MVVM, Jetpack Compose, Koltin, Coroutines + Flow, Jetpack Navigation, Retrofit, DataStore и Room, Firebase, Google Maps SDK,
Hilt.

GroupTrack на GitHub: https://github.com/canopas/group-track-android
Платформа: Android
⭐️: 53
Как в eXpress достигали мгновенного рендера отправки сообщения: оптимизация локальной базы данных

Меня зовут Воронская Дарья, я работаю в Android Core команде eXpress и занимаюсь оптимизацией работы приложения. Я расскажу про подходы, которые мы использовали, чтобы довести скорость отправки и рендера сообщения до того самого идеального результата.

В этой статье речь пойдет только о работе с локальной базой данных. Оптимизация БД — лишь часть большой работы, мы расскажем про наши решения по оптимизации presentation слоя в других статьях.

Наш стек: Kotlin, Room, Coroutines, WebSocket, OkHttp.

Статья: https://habr.com/ru/companies/express/articles/852268/
Платформа: Android
Objective-C не кусается: как перестать бояться Legacy и стать настоящим iOS-ниндзя

Хочу поговорить о теме, которая волнует многих разработчиков: использование старых технологий в iOS-разработке, таких как Objective-C. Тут возникает очень насущный вопрос, являются ли он легаси?

Статья: https://habr.com/ru/articles/848788/
Платформа: iOS
😁1
This media is not supported in your browser
VIEW IN TELEGRAM
KeyboardKit - это SwiftUI SDK, позволяющий создавать полностью настраиваемые расширения клавиатуры с помощью нескольких строк кода.

KeyboardKit Pro расширяет KeyboardKit такими функциями, как автодополнение и автокоррекция, поддержка искусственного интеллекта, мощная клавиатура эмодзи, диктовка, темы, шаблоны приложений и многое другое.

Расширения клавиатуры можно использовать во всех других приложениях на iOS, где поддерживается ввод текста. Это единственный способ для вашего продукта или бренда напрямую взаимодействовать с другими приложениями на iOS.

KeyboardKit Pro на GitHub: https://github.com/KeyboardKit/KeyboardKitPro
Платформа: iOS
⭐️: 112
👍2
Взлом покупок в Android-приложении и защита от этого

Встроенные покупки (In-app purchases, IAP) являются основой современных приложений, позволяя пользователям разблокировать премиум-функции или подписываться на услуги. Однако, когда разработчики не обеспечивают должной безопасности процесса выставления счетов, могут возникнуть уязвимости, позволяющие обойти проверку платежей. В этой статье мы расскажем о том, как Frida, динамический инструментарий, может обойти механизмы биллинга в приложениях для Android. Мы покажем, как можно взломать небезопасные процессы покупок и что могут сделать разработчики.

Статья: https://apptractor.ru/info/articles/primer-vzlom-pokupok-v-android-prilozhenii-i-zaschita-ot-etogo.html
Платформа: Android
Советы Junior-разработчикам

В этой статье упоминаются и даются ссылки на множество ценных концепций, которые вы можете исследовать дальше по своему усмотрению.
Общие советы для Junior-разработчиков
1. Код не главное
2. Дизайн программного обеспечения имеет значение
3. Используйте ЛУЧШИЕ практики
Технические советы для Junior-разработчиков
4. Пишите тесты
5. Не используйте наследование для повторного использования кода
6. Пишите объектно-ориентированный код
7. Пишите функциональный код
8. Используйте информированное дублирование
9. Типы, имена и комментарии
Рекомендуемое чтение для Junior-разработчиков
Книги
Блоги
Бонусные ссылки

Статья: https://apptractor.ru/info/articles/sovety-junior-razrabotchikam.html
Платформа: разработка
🤡3
Задачи с собеседований: Leetcode — Сложите два числа

Вам даны два непустых связанных списка, представляющих два неотрицательных целых числа. Цифры хранятся в обратном порядке, и каждый из их узлов содержит одну цифру. Сложите эти два числа и верните сумму в виде связанного списка.

Статья: https://apptractor.ru/develop/coding/add-two-numbers.html
Платформа: программирование
Android Compose Accessibility Techniques - демонстрация различных передовых методов обеспечения доступности для пользовательских интерфейсов на базе Android Jetpack Compose, а также проблем, которые они могут решить. Исходный код проекта приложения поможет вам научиться применять эти методы в рабочем коде.

Android Compose Accessibility Techniques на GitHub: https://github.com/cvs-health/android-compose-accessibility-techniques
Платформа: Android
⭐️: 56
Области тьмы: разбираем неочевидные моменты при использовании памяти в Swift

В статье хочу рассмотреть, казалось бы, набившую оскомину тему — управление памятью в Swift и системой подсчёта ссылок. Да, на Хабре уже есть пара довольно исчерпывающих статей. Но предлагаю копнуть с другой стороны и попытаться собрать недостающие детали пазла.

Статья: https://habr.com/ru/companies/clevertec/articles/852718/
Платформа: iOS
Самые весёлые TODO из Android-фреймворка

Иногда на проекте (особенно если он большой) некоторые TODO обречены на то, чтобы остаться в нем навеки и Android Open Source Project не исключение. Сегодня я расскажу про самые забавные тудухи из AOSP (Android Open Source Project) на которые мне приходилось натыкаться во время изучения исходников.

Статья: https://habr.com/ru/companies/alfa/articles/837880/
Платформа: Android
CoreDataEvolution - эта библиотека призвана упростить и улучшить работу Core Data с многопоточностью, черпая вдохновение из функции @ModelActor в SwiftData, обеспечивая эффективные, безопасные и масштабируемые операции.

В SwiftData появились современные функции параллелизма, такие как @ModelActor, что упростило обработку параллельного доступа к данным с гарантированной компилятором безопасностью. Однако требования SwiftData к платформе и ограниченная зрелость в некоторых областях удерживали многих разработчиков от его внедрения. CoreDataEvolution устраняет этот пробел, перенося передовой дизайн SwiftData в мир Core Data для разработчиков, которые все еще полагаются на Core Data.

CoreDataEvolution на GitHub: https://github.com/fatbobman/CoreDataEvolution
Платформа: iOS
⭐️: 26
iOS 18 для разработчиков: Ключевые изменения в UIKit

Меня зовут Лена, я работаю iOS-разработчиком в KTS. Недавно вышла новая версия iOS 18, и я решила подробно изучить все нововведения, чтобы понять, какие новые возможности она предлагает разработчикам. В этой статье расскажу и покажу самые интересные обновления в UIKit — новый TabBar, анимации, совместимость UIKit/SwiftUI и многое другое.

Статья: https://habr.com/ru/companies/kts/articles/852764/
Платформа: iOS
Восстанавливаем удалённые сообщения в Telegram

Очевидно, данная статья не раскрывает каких-то фундаментальных тем и является лишь описанием личного опыта по довольно специфическому вопросу. Однако мне не удалось найти публикаций, которые раскрывали бы эту тему так же подробно и конкретно. Возможно, статья может оказаться полезной в некоторых жизненных ситуациях для самого широкого круга лиц. А также будет занятной и поучительной для тех, кто слишком полагается в вопросах безопасности на инструменты мессенджеров.

Статья: https://habr.com/ru/articles/852902/
Платформа: Android
Правда ли, что приложения для Android намного меньше, чем для iOS?

На первый взгляд это правда! Размер, который мы видим в магазине приложений для iOS, почти всегда в разы больше размера Android-аналога в Google Play Store.

Но что, если я скажу вам, что размеры приложений для Android больше, чем может показаться на первый взгляд?

В этой статье мы расскажем, почему приложения для Android больше, чем кажется, откуда берутся размеры на обеих платформах и действительно ли приложения для iOS намного больше, чем для Android.

Статья: https://apptractor.ru/develop/pravda-li-chto-prilozheniya-dlya-android-namnogo-menshe-chem-dlya-ios.html
Платформа: iOS/Android
👍1