AppFiles - Mobile Development
2.11K subscribers
2.7K photos
38 videos
10 files
3.63K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
FPC/Lazarus и Android

В данной статье ознакомлю вас с возможностями разработки Android-приложений средствами FPC/Lazarus, в том числе и игр. И так же немного добавлю информации по Delphi, чтоб проще было искать нужную вам информацию, если вы используете данную среду разработки, но по самой разработке в Delphi для Android я не смогу вам дать достаточно необходимой информации на данный момент.

Статья: https://habr.com/ru/articles/835244/
Платформа: Android
Используем библиотеку Android Security Lints для Android

Если вы хотите внедрить проверки в линтере в свою кодовую базу как неотъемлемую часть разработки, или если вам нужны самые последние рекомендации и проверки для дальнейшей защиты вашего приложения, вам стоит воспользоваться открытой библиотекой Google Android Security Lints. Эта библиотека предлагает более продвинутые и актуальные проверки, она гарантирует, что ваше приложение защищено от новейших угроз безопасности. Давайте рассмотрим, как интегрировать этот мощный инструмент в рабочий процесс разработки.

Статья: https://apptractor.ru/info/articles/ispolzuem-biblioteku-android-security-lints-dlya-android.html
Платформа: Android
Cat Activity - плагин для IDE JetBrains, показывающий вашу активность в профиле Discord. Поддерживает IntelliJ IDEA, Android Studio, PyCharm и прочие среды разработки.

Cat Activity на GitHub: https://github.com/wavy-cat/Cat-Activity
Платформа: Android
⭐️: 6
1
Реверс-инжиниринг iOS-приложения

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

Статья: https://apptractor.ru/info/articles/revers-inzhiniring-ios-prilozheniya.html
Платформа: iOS
Внедрять Kotlin Multiplatform легко. Масштабировать сложно.

Когда команды разработчиков нативных мобильных устройств изучают KMP, начать работу довольно просто. Сложности возникают при попытке масштабирования. Чтобы получить максимальную отдачу от KMP для вашей команды, а также для успеха KMP как платформы, нам нужно сделать масштабирование простым.

Статья: https://apptractor.ru/info/articles/vnedryat-kotlin-multiplatform-legko-masshtabirovat-slozhno.html
Платформа: кроссплатформенная разработка
Swift Fluent Icon - библиотека Swift для упаковки fluent icon от Microsoft в ваше приложение без каких-либо особых затрат. Не нужно удалять неиспользуемые ресурсы, просто используйте как SF Symbol, но безопасно для типов, почти без увеличения времени сборки по сравнению с оригинальным методом.

Swift Fluent Icon на GitHub: https://github.com/vvisionnn/swift-fluent-icon
Платформа: iOS
⭐️: 2
Использование Чистой Архитектуры в Android излишество?

Один из разработчиков спрашивает на Reddit:

Лично я предпочитаю использовать MVVM или вообще не использовать архитектуру в Android. Является ли использование чистой архитектуры излишеством для Android или я просто неопытен и неинформирован?

В ответах ему говорят о том, что для любого более или менее крупного проекта чистая архитектура это необходимость:

• Если этого не сделать, то любое изменение, внесенное в одну область, может повлиять на другие взаимосвязанные части, превращая обслуживание приложения в кошмар. Для простых приложений с несколькими экранами использование чистой архитектуры или MVVM может оказаться излишним. Однако для долгосрочного проекта, такого как банковское приложение, которое необходимо поддерживать в будущем, написание чистого кода с правильной архитектурой не просто необходимо — оно обязательно.
• Я бы сказал, что это неопытность в работе с большими кодовыми базами. Для больших приложений каждый раз, когда требования меняются или добавляются, если у вас нет слоя абстракции, вас ждут большие неприятности.
• Чистая архитектура — это не про добавление как можно большего количества слоев, а про то, чтобы основной/доменный код не зависел от фреймворков, IO, UI и т.д.
• Если цель — создать приложение и на этом закончить, то да, чистый код, хорошая архитектура и куча юнит-тестов будут излишеством. Но когда вам нужно иметь возможность быстро добавлять функции и исправлять ошибки в приложении, которое будет продолжать расти и должно жить 10+ лет, уравнение полностью меняется.

В конечном счете, наша цель — писать понятный, лаконичный, расширяемый и сопровождаемый (и тестируемый) код, причем не только для себя, но и для своих коллег. Таким образом, следуя «общим» принципам чистой архитектуры, вы достигаете чего-то достойного, знакомого всем.

Статья: https://apptractor.ru/info/articles/ispolzovanie-chistoy-arhitektury-v-android-izlishestvo-obsuzhdenie-na-reddit.html
Платформа: Android
👍31🤡1
This media is not supported in your browser
VIEW IN TELEGRAM
Jetpack Compose Endless Horizontal Pager Animation - приложение демонстрирует работу горизонтального пейджера Jetpack Compose. Оно показывает, как просто мы можем создать горизонтальный пейджер, добавить в него любой контент и применить анимацию. Больше никаких кастомных представлений, адаптеров, фрагментов и сложной обработки жизненного цикла! Представьте, сколько дополнительной работы нужно проделать, чтобы создать это с помощью XML Views?

Horizontal Pager Animation на GitHub: https://github.com/ryanw-mobile/compose-pager-demo
Платформа: Android
⭐️: 52
Знакомимся с Flutter GPU

Короче говоря, просто невозможно предоставить универсальный 3D-рендер, который можно эффективно использовать для различных задач. Но, продумав низкоуровневые API, необходимые для создания собственных решений (Flutter GPU), и реализовав универсальный 3D-рендер поверх него, который Flutter-сообщество может легко проверить и модифицировать (Flutter Scene), мы создаем для Flutter-разработчиков технологию с низким риском устаревания и большим профитом от использования.

Статья: https://habr.com/ru/articles/836010/
Платформа: Flutter/кроссплатформа
Сортировка кучей — вопросы с собеседований

Сортировка кучей (пирамидальная сортировка, Heap Sort) — это эффективный алгоритм сортировки, который использует структуру данных под названием куча (heap). Куча — это двоичное дерево, удовлетворяющее свойству кучи: каждый узел дерева больше (для max-кучи) или меньше (для min-кучи) своих потомков.

Статья: https://apptractor.ru/info/techhype/sortirovka-kuchey-voprosy-s-sobesedovaniy.html
Платформа: алгоритмы
PhraseKit - это пакет Swift, предназначенный для генерации случайных, но читаемых фраз, состоящих из различных частей речи, таких как прилагательные, существительные, глаголы и наречия. Он предоставляет гибкие возможности для генерации фраз с различными комбинациями типов слов, гарантируя, что каждая фраза будет уникальной и грамматически осмысленной. PhraseKit идеально подходит для различных приложений, где требуется генерировать случайные, но осмысленные фразы. Вот несколько сценариев, в которых PhraseKit может быть особенно полезен - случайные имена файлов, имена пользователей или имена отображения, идентификаторы сеансов или токены, написание текстов, соглашения об именовании и т.п.

PhraseKit на GitHub: https://github.com/markbattistella/PhraseKit
Платформа
: iOS
⭐️: 1
Видео и подкасты за неделю @AppFiles

(iOS Ru) Поиск работы iOS разработчиком в текущих условиях 2024
(iOS En) Expandable Search Bar + Progressive Blur Effect
(iOS En) iOS 18 SwiftUI ScrollView DeepDive
(iOS En) SwiftUI: Test Push Notifications With iOS Simulators
(And Ru) ByteWeaver. Инструментирование байт-кода во имя великого блага
(And En) How to Get Access to ALL External Media Files (Works on Android 15!)
(And En) How to Pass Custom NavTypes in Compose Type-Safe Navigation
(And En) Kotlin's Elegant Deceptions Simple APIs, Unusual Tactics
(And En) Harmonizing Kotlin codebases with Konsist
(And En) Android, Compose, Multiplatform & Server - Inject them all with Koin
(And En) Elevating Android App Resilience: Incident Management Strategies
(Crs Ru) Почему вам не нужен Kotlin Multiplatform
(Crs Ru) Создание indoor-карты здания во Flutter
(Crs En) Diving into Advanced Compose Multiplatform Modifiers and Their Impact on Multiplatform Development
(Dev Ru) Кто реально может стать программистом?
(Dev Ru) 30 вопросов команде и себе — техника и практика формулировка хороших вопросов
(Dev Ru) VK Звонки: поднимаем планку качества WebRTC-звонков
(Dev Ru) Как пользоваться DivKit
(Dev En) Kotlin for Data Analysis: Exploring Dataframes and Visualizations in Notebooks
(Dev En) AWS Certified Developer Associate Certification Course
(Dsg En) Design a Car mobile app for iOS 18 in Figma

Что вы посмотрели за неделю?
#ios #android #mobile #video
1
Анализ производительности для ускорения сборок в Xcode

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

Статья: https://apptractor.ru/info/articles/analiz-proizvoditelnosti-dlya-uskoreniya-sborok-v-xcode.html
Платформа: iOS
👍1
BookMatch - это приложение с рекомендациями книг, использующее генеративный искусственный интеллект для предоставления персонализированных рекомендаций. Оно позволяет пользователям уточнять свои предпочтения с помощью выбора жанра, симпатий/антипатий и оценок и постоянно улучшает рекомендации на основе этой обратной связи. Приложение также позволяет фильтровать и получать доступ к ранее созданным рекомендациям. Технический стек - Kotlin Multiplatform, для интерфейсов Jetpack Compose и SwiftUI, Supabase для бэкенда, OpenAI для информации о книгах.

BookMatch на GitHub: https://github.com/novumlogic/BookMatch
Платформа: кроссплатформа
⭐️: 12
Деструктуризация в Kotlin с примерами

Деструктуризация в Kotlin — это функция, позволяющая легко распаковывать объекты в несколько переменных. Это делает ваш код чище и легче для чтения. Вот простое руководство по пониманию и использованию деструктуризации в Kotlin.

Статья: https://apptractor.ru/info/articles/destrukturizatsiya-v-kotlin-s-primerami.html
Платформа: Android
Создание XCFramework из SPM пакета

Как-то нам в голову пришла мысль подключать зависимости в виде собранных библиотек и тем самым не тратить время на пересборку редко изменяемых зависимостей. В данной статье рассмотрим, как создавать XCFramework из SPM пакета.

Статья: https://habr.com/ru/companies/psb/articles/836566/
Платформа: iOS
STTextView - замена TextView для macOS и iOS с номерами строк, показом невидимых символов, настраиваемыми цветами и шрифтами, поиском и заменой, проверкой правописания и грамматики, плагинами и многим другим. Целью этого проекта является создание переиспользуемого компонента, заменяющего NSTextView/UITextView и использующего фреймворк TextKit 2. Компонент в основном разрабатывается для нужд Swift Studio в качестве редактора исходного кода.

STTextView на GitHub: https://github.com/krzyzanowskim/STTextView
Платформа: iOS
⭐️: 980
Мечтают ли Андроиды о нейропроцессорных модулях? Перенос модели TensorFlow Lite в мобильное приложение

Современные ARM-процессоры в мобильных телефонах содержат NPU для работы с нейросетями. Возможно, до сих пор это наименее используемая часть аппаратного обеспечения в вашем мобильнике. Поэтому никакая клиент-серверная архитектура в данном случае не нужна, в финале нашей разработки машинное обучение будет идти на конечном устройстве (бонус - никто с серверной стороны не сможет посмеяться над ошибками пользователя). Но на промежуточном этапе придется использовать модель, созданную на десктопе. Сегодня этим и займемся.

Статья: https://habr.com/ru/articles/837102/
Платформа: Android
1
Отслеживание утечек памяти в iOS-приложении со SwiftUI в Runtime

Рано или поздно каждый проект сталкивается с проблемой утечек памяти: растёт её использование, в отдельных сценариях приложение ведёт себя странно или вовсе аварийно завершается. Начинается долгий и мучительный поиск причин утечки и отладка кода.

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

Статья: https://habr.com/ru/companies/banki/articles/836924/
Платформа: iOS
Flutter против React Native — тест производительности

Когда речь заходит о разработке мобильных приложений, выбор между Flutter и React Native часто упирается в соображения производительности. Хотя у обоих фреймворков есть свои сторонники, для многих из нас важны реальные результаты бенчмарков.

Однако существует очень мало сравнительных бенчмарков для Flutter и React Native, да и те довольно старые. Поэтому вот тщательное сравнение текущих версий Flutter и React Native с точки зрения размера приложений, использования памяти и процессора в текущих версиях. Результаты получились, мягко говоря, интересными и удивительными.

Статья: https://apptractor.ru/info/analytics/flutter-protiv-react-native-test-proizvoditelnosti.html
Платформа: кроссплатформа
🔥31