AppFiles - Mobile Development – Telegram
AppFiles - Mobile Development
2.12K subscribers
2.76K photos
38 videos
11 files
3.69K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
Compose Unstyled - нестандартные компоненты для Jetpack Compose и Compose Multiplatform, которые вы можете настроить по своему усмотрению. Есть Bottom Sheet, диалоги, выпадающие меню, иконки, облапсть со скроллингом, меню с кнопками. Реализована полная доступность, работают на декстопах, Web (Js/WASM), Android, iOS и любой другой платформы, на которой может работать Compose.

Compose Unstyled на GitHub: https://github.com/composablehorizons/compose-unstyled
Платформа: Android/кроссплатформа
⭐️: 362
Делаем в SwiftUI размытие экрана при переключении задачи

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

Статья: https://apptractor.ru/info/articles/delaem-v-swiftui-razmytie-ekrana-pri-pereklyuchenii-zadachi.html
Платформа: iOS
Главный метод Android-приложения

Я Саша, старший Android-разработчик в Авито, ранее работал в Яндексе и Kaspersky. Пишу о разработке и всём, что с ней связано, в своем телеграм-канале. Сейчас поговорим немного про главный метод и про процесс Android-приложения.

Если вы когда-нибудь писали «Hello World» на Java (или любом другом C-подобном языке), то наверняка делали это в статическом методе main. Этот метод вызывается в JVM и является точкой входа любой Java программы.
public static void main(String[] args)

Но при разработке приложений для Android вы возможно, как и я до недавнего времени, ни разу метод main не встречали. Создается ощущение, что его вообще не существует, а при нажатии на иконку в лаунчере наши Application и Activity создаются какими-то волшебными гномами, спрятанными в устройстве.

Статья: https://habr.com/ru/articles/854726/
Платформа: Android
Geometrize - библиотека Swift для воссоздания изображений в виде геометрических примитивов.

Geometrize на GitHub: https://github.com/valeriyvan/swift-geometrize
Платформа: iOS
⭐️: 17
Лучшие клавиатуры 2024

Здесь есть компактные беспроводные клавиатуры, предназначенные для использования дома, механические клавиатуры, которые подходят для продуктивной работы и игр, и полностью игровые клавиатуры с RGB-подсветкой и высокопроизводительными переключателями, которые дадут вам преимущество перед конкурентами.

Статья: https://devnotebooks.ru/best-keyboard-2024/
Платформа: устройства
Задачи с собеседований: Leetcode — Наибольший общий префикс

Напишите функцию для поиска самой длинной строки с общим префиксом среди массива строк.

Если общего префикса нет, верните пустую строку.

Пример:

Ввод: strs = [«flower»,»flow»,»flight»]
Вывод: «fl»

Пример:

Вход: strs = [«dog»,»racecar»,»car»]
Выходные данные: «»
Пояснения: среди входных строк нет общего префикса.

Статья: https://apptractor.ru/develop/coding/zadachi-s-sobesedovaniy-leetcode-naibolshiy-obschiy-prefiks.html
Платформа: программирование
👍3
FilmSimulator - это кроссплатформенное мобильное приложение, разработанное с использованием Kotlin Multiplatform и Compose UI Multiplatform. Оно работает на Android и iOS и позволяет пользователям применять различные LUT (Look-Up Tables) к своим изображениям, создавая уникальную эстетику, напоминающую классические стили кино. Технологический стек: MVVM, Compose UI, Material3, Compose Resources, FFMPEG-Kit, SQLDelight, Ktor, Voyager Navigation, Koin DI, Peekaboo Image Picker, Okio и т.д.

FilmSimulator на GitHub: https://github.com/YahiaAngelo/Film-Simulator
Платформа: Android/кроссплатформа
⭐️: 28
1
Красота системы типов Kotlin

С Any в качестве верхнего типа, Nothing в качестве нижнего типа и Optional в стороне, я надеюсь, что вы так же найдете систему типов Kotlin приятной и красивой.

Статья: https://apptractor.ru/info/articles/krasota-sistemy-tipov-kotlin.html
Платформа: Android
👍3🥴2
Малоизвестные фичи SwiftUI

Я уже 2 месяца прохожу обучение в онлайн‑школе и у нас на этой неделе был открытый урок, нужно было подготовить доклад на тему «Малоизвестные фичи или особенности языка Swift»

Так вот — я решила погуглить этот вопрос, подготовилась, написала код. Но когда дело дошло до самого выступления, оказалось, что говорить ртом — это не так‑то и просто. Да и в целом выступать, даже в Zoom.

Тем не менее, поделюсь с вами маленькими фишечками, которые я нашла. Уровень легкий, в отличие от меня там ребята подготовили нормальные доклады про SPM и пр. Я же решила начать с простых вещей, которые, тем не менее, мне были неизвестны. Надеюсь кому‑то тоже окажется полезным.

Статья: https://habr.com/ru/articles/855484/
Платформа: iOS
👍1
Внедрение электронной цифровой подписи в мобильное приложение на Android

Сегодня мы хотим поделиться решением интересной и новой для нас задачи: нужно встроить поддержу ЭЦП в мобильное приложение заказчика.

Статья: https://habr.com/ru/companies/ppr/articles/855314/
Платформа: Android
👍21
Как я писал суперкастомизированное Android-приложение в 2024 году

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

Статья: https://habr.com/ru/companies/ruvds/articles/851256/
Платформа: Android
👍5
Ultraviolence - декларативный фреймворк для рендеринга Metal в Swift.

Metal - невероятно мощный API, но имеет репутацию сложного в работе. В основном потому, что это низкоуровневый API, требующий кучи шаблонного кода для того, чтобы запустить что-то базовое. С другой стороны, такие фреймворки, как SceneKit и RealityKit, предлагают высокоуровневые абстракции, которые упрощают 3D-рендеринг, но могут быть ограничены, когда вам нужно больше контроля.

Ultraviolence (пока это только рабочее название) будет стремиться найти баланс между этими крайностями. Он предоставит декларативный API, вдохновленный SwiftUI, который будет прост в использовании, но при этом даст вам низкоуровневый контроль, когда это необходимо.

Ultraviolence на GitHub: https://github.com/schwa/Ultraviolence
Платформа: iOS
⭐️: 22
1
Диалог — часть навигации или нет?

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

Одной из обсуждаемых тем стало: «Следует ли диалог отображаться через навигацию и сохраняться как часть истории пользовательской навигации?» Мой ответ: «Это зависит от того, что именно мы подразумеваем под диалогом».

Меня зовут Кирилл Розов, и в этой статье я расскажу, что я понимаю под диалогом в Material Design и как, на мой взгляд, стоит работать с ними в системе навигации.

Статья: https://habr.com/ru/articles/854988/
Платформа: Android
👍1
Как использовать URLSession с Async/Await для сетевых запросов в Swift

URLSession позволяет выполнять сетевые запросы и становится еще более мощным благодаря API async/await. Вы можете запросить данные с целевого URL и спарсить их в декодированную структуру перед отображением в представлении.

Популярные фреймворки, такие как Alamofire, стремятся упростить выполнение запросов, но для многих приложений можно обойтись и без сторонних решений. В этой статье мы расскажем об основах выполнения API-запросов и декодирования JSON-данных с помощью Swift Concurrency.

Статья: https://apptractor.ru/info/articles/kak-ispolzovat-urlsession-s-async-await-dlya-setevyh-zaprosov-v-swift.html
Платформа: iOS
Talaiot - это расширяемая библиотека, предназначенная для команд, использующих систему сборки Gradle. Она записывает продолжительность сборок/задач, помогая понять проблемы и обнаружить узкие места. Для каждой записи она добавляет дополнительную информацию, определяемую стандартными или пользовательскими метриками.

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

Talaiot на GitHub: https://github.com/cdsap/Talaiot
Платформа: Android
⭐️: 588
👍2
Поющий молится дважды или пишем приложение в помощь хористу

Как обычно со мной бывает, работа скорее представляет собой что-то вроде proof of concept. Несмотря на достаточное количество автоматизации, здесь по-прежнему требуется много ручного вмешательства (краудсорсинг?), а также в источнике представлены далеко не все страницы оригинальной книги, например, фрагменты литургии на латинском языке. Так или иначе, теперь это хотя бы можно скачать и пощупать, а также покопаться в исходниках при желании. Конструктивная критика горячо приветствуется.

Статья: https://habr.com/ru/articles/856330/
Платформа: Android
👍2
Лучшая работа с Android Studio: 5 советов

В этой статье вы узнаете о некоторых из самых полезных и продуктивных фич в Android Studio.

Статья: https://apptractor.ru/develop/ide/luchshaya-rabota-s-android-studio-5-sovetov.html
Платформа: Android
👍2
17.webm
227.3 KB
Искрящаяся переливающаяся кнопка с помощью Metal и SwiftUI

Для эффектов свечения и пульсации мы изучим и применим шейдерные эффекты SwiftUI. Когда облако частиц будет реализовано, мы копнем немного глубже и создадим вычислительный конвейер с помощью Metal.

Статья: https://apptractor.ru/info/articles/iskryaschayasya-perelivayuschayasya-knopka-s-pomoschyu-metal-i-swiftui.html
Платформа: iOS
open_floating_popup.gif
21.9 MB
LNPopupUI - это библиотека SwiftUI для показа представлений в виде попапов, как в приложениях Apple Music и Podcasts.

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

LNPopupUI на GitHub: https://github.com/LeoNatan/LNPopupUI
Платформа: iOS
⭐️: 359
Управление памятью в ассемблере для Apple Silicon

В статье мы познакомимся с языком ассемблера для Apple Silicon (ARM64). Рассмотрим основные регистры, запись данных из регистров в память и обратно. Затронем также и базовые навыки работы с LLDB.

Статья: https://habr.com/ru/articles/852874/
Платформа: iOS
👍2🤯1