AppFiles - Mobile Development – Telegram
AppFiles - Mobile Development
2.12K subscribers
2.76K photos
38 videos
11 files
3.69K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
Модульная навигация в 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
Lawnchair - это бесплатный открытый лаунчер для Android. Взяв за отправную точку Launcher3 - домашнее приложение Android по умолчанию, он переносит функции Pixel Launcher и предоставляет богатые возможности для настройки.

Главные фичи:
• Pixel Launcher-подобный пользовательский интерфейс с дизайном Material You
• Виджет At a Glance с поддержкой Smartspacer
• Поддержка QuickSwitch
• Поддержка глобального поиска
• Настройка иконок, шрифтов и цветов

Lawnchair на GitHub: https://github.com/LawnchairLauncher/lawnchair
Платформа: Android
⭐️: 9.4K
Осваиваем ViewModel в Android: «можно» и «нельзя» — Часть 5 (4, 3 ,2, 1)

В этой статье мы рассмотрим:

8. Избегайте жесткого прописывания диспетчеров корутинов
9. Проводите модульное тестирование своих ViewModel
10. Избегайте раскрытия suspended функций

Статья: https://apptractor.ru/info/articles/osvaivaem-viewmodel-v-android-mozhno-i-nelzya-chast-5.html
Платформа: Android
Реализуем Face ID аутентификацию в iOS-приложении

В этой статье мы рассмотрим процесс интеграции Face ID в приложения для iOS, чтобы повысить безопасность и удобство использования.

Статья: https://apptractor.ru/info/articles/realizuem-face-id-autentifikatsiyu-v-ios-prilozhenii.html
Платформа: iOS
Paralayout - это набор простых, полезных и понятных утилит, которые обеспечивают пиксельно идеальную верстку в iOS. С их помощью вы просто и быстро сможете определять размеры, взаимное отношение и распределение представлений на экране.

Paralayout на GitHub: https://github.com/square/Paralayout
Платформа: iOS
⭐️: 786