AppFiles - Mobile Development
2.01K subscribers
2.6K photos
33 videos
8 files
3.5K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
Aespa - это надежная и интуитивно понятная библиотека Swift для захвата видео и фотографий, созданная с упором на простоту настройки и использования. Она разработана так, чтобы ею было легко пользоваться как начинающим, так и среднего опыта разработчикам. Если вы только начинаете записывать видео на iOS или хотите упростить существующую настройку камеры, Aespa может стать идеальным вариантом для вашего проекта.

Фичи:

• Суперпростота в использовании
• Отказ от скучных настроек для сессии и альбома
• Предлагайте необходимые предустановки и настройки
• Комплексная обработка ошибок
• Больше не нужны делегаты
• Поддержка Combine
• Автоматизированное управление системными разрешениями
• Бесшовный захват изображений и видео в рамках одного сеанса предварительного просмотра.
• Потокобезопасный.
•Поддержка SPM

Aespa на GitHub
: https://github.com/enebin/Aespa
Платформа: iOS
⭐️: 26
Интегрируем Rust в Android-приложение

Есть некоторая информация, предоставленная Google, но она сложна для понимания новичком. Цель этого пошагового руководства — предоставить простое, но эффективное руководство по интеграции кода Rust в разработку для Android. Никаких предварительных знаний C или C++ или JNI не требуется.

Статья: https://apptractor.ru/info/articles/integriruem-rust-v-android-prilozhenie.html
Платформа: Android
👍3
Google Generative AI Sample - пример приложения для Android, который демонстрирует, как использовать современные генеративные модели ИИ (например, Gemini) для создания функций и приложений на базе ИИ.

Чтобы опробовать этот пример приложения, вам необходимо использовать последнюю стабильную версию Android Studio. Однако если вы хотите получить последние проверки линтера и функции производительности для ИИ, используйте последнюю предварительную версию Android Studio.

Google Generative AI Sample на GitHub: https://github.com/google/generative-ai-android/tree/main/generativeai-android-sample
Платформа: Android
⭐️: 34
Символизация логов сбоев с помощью Xcode

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

Статья: https://apptractor.ru/info/articles/simvolizatsiya-logov-sboev-s-pomoschyu-xcode.html
Платформа: iOS
1
This media is not supported in your browser
VIEW IN TELEGRAM
Мой опыт прохождения собеседования в Google

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

Статья: https://apptractor.ru/info/articles/moy-opyt-prohozhdeniya-sobesedovaniya-v-google.html
Платформа: собеседования
This media is not supported in your browser
VIEW IN TELEGRAM
ChatGPT 4 Xcode - этот проект создает расширение для редактора Xcode, позволяющее разработчику использовать СhatGPT от OpenAI или локальную LLM для своего кода. С использованием ИИ появляется возможность автоматически рефакторить код, преобразовывать json-файл в swift-код, добавлять комментарии, создавать юнит-тесты, объяснять код.

ChatGPT 4 Xcode на GitHub: https://github.com/JackieQi/XcodeGPT
Платформа: iOS
⭐️: 4
🔥2
Видео и подкасты за неделю:

(iOS Ru) xcconfig: интеграция в проект, валидация и подключение к Tuist
(iOS Ru) Объединяем Combine и Swift Concurrency
(iOS Ru) SwiftData как замена CoreData: глубокое погружение
(iOS Ru) Маслины и грабли: все, что вам нужно знать о разработке продукта полностью на SwiftUI
(iOS En) Implementing Drag Gestures In Xcode 15
(iOS En) How to Answer iOS Interview Questions Like a Pro
(iOS En) App Localizations
(And Ru) Android SDK Extensions — новые фичи на старых Android
(And Ru) Разработка для нестандартных устройств
(And Ru) Мок-собеседование по Android System Design
(And En) Now in Android: 97 - Gemini, AICore, ML Kit, Android Studio Hedgehog, and more!
(And En) Detecting faces and landmarks - ML on Android with MediaPipe
(And En) Should You Use a Navigation Library in Jetpack Compose?
(And En) Full Guide to Multiple Back Stacks in Jetpack Compose - Android Studio Tutorial
(Crs Ru) Многомодульность на Flutter или как не выстрелить себе в ногу
(Dev Ru) Как формировать топовые команды
(Dev Ru) Ozon Tech Community Techdoc Meetup

Как обычно - поставьте 👍 и поделитесь подборкой!
1
This media is not supported in your browser
VIEW IN TELEGRAM
Android-PiP - библиотека для Android, которая помогает использовать режим "картинка в картинке". В репозитории также есть пример приложения, показывающий, как использовать библиотеку.

Android-PiP на GItHub: https://github.com/mohsenoid/Android-PiP
Платформа: Android
⭐️: 11
👍1
Как управлять сложностью состояния — Сергей Опивалов

Сергей Опивалов, Senior Software Engineer в Gradle, на весеннем Мобиусе сделал доклад об управлении сложностью состояния. Я поговорил с Сергеем и обсудил возможности предлагаемого им решения.

Интервью: https://apptractor.ru/info/interview/kak-upravlyat-slozhnostyu-sostoyaniya-sergey-opivalov.html
Платформа: Android/архитектура
SwiftUI: Разбираемся с identity на примере переходов

Концепция идентификации (identity) в SwiftUI не так проста, как могло бы показаться на первый взгляд. Один из лучших способов разобраться в ней — понять роль идентичности в переходах (transitions).

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

Перевод: https://habr.com/ru/companies/otus/articles/780142/
Платформа: iOS
Как структурировать свой Swift-код

Приходилось ли вам когда-нибудь возвращаться к проекту и находить его неряшливым? Все в нем беспорядочно и неорганизованно. Если вы уже давно занимаетесь программированием, вы, вероятно, прошли через это, и мы можем понять друг друга. Но даже если нет, эта статья поможет вам в дальнейшем писать хорошо организованный код. Позвольте представить вам метод, который я называю Код Бургера (Burger Code).

Статья: https://apptractor.ru/develop/coding/kak-strukturirovat-svoy-swift-kod.html
Платформа: iOS/программирование
Google AI SDK для Swift позволяет разработчикам использовать современные генеративные модели искусственного интеллекта Google (например, Gemini) для создания функций и приложений на базе искусственного интеллекта. Этот SDK поддерживает такие сценарии использования, как:

• Генерация текста из текстового ввода
• Генерация текст из текста и изображений (мультимодальный ввод)
• Создание многоходовых бесед (чат)

Google AI SDK for Swift на GitHub: https://github.com/google/generative-ai-swift
Платформа: iOS
⭐️: 504

Конечно, есть такой же для Android.
Создаем пассивный UI в Jetpack Compose

Декларативный пользовательский интерфейс часто описывается как создание пользовательского интерфейса, который является «функциональным» по своей природе. То есть данные входят, а пользовательский интерфейс выходит. Это замечательно в абстрактном смысле, но в мире, где приложения без дополнительных побочных эффектов не особенно полезны для конечных пользователей, как этого можно добиться? В этом посте мы рассмотрим, как применять концепции и паттерны для создания «пассивного» или «тупого» пользовательского интерфейса — пользовательского интерфейса, который не делает ничего, кроме демонстрации визуальной картинки.

Статья: https://apptractor.ru/info/articles/sozdaem-passivnyy-ui-v-jetpack-compose.html
Платформа: Android
This media is not supported in your browser
VIEW IN TELEGRAM
Ludwig - коллекция UI-компонентов для Jetpack Compose. Главный из них - морфинг для векторных изображений, кроме него есть пикер времени и даты, анимированные поля ввода с опциональными состояниями ошибок, анимированные кнопки, выпадающие списки.

Ludwig на GitHub: https://github.com/baec23/ludwig
Платформа: Android
⭐️: 52
👍1
Что нового в AOSP 14

Разработчики Серджио Прадо и Крис Симмондс недавно рассказали о том, что нового в AOSP 14, и в дополнение к этому Серджио поделился интересной статистикой о размере исходного кода, времени сборки и многом другом.

Удивительно видеть, как сильно выросла AOSP с момента выхода Android 8 Oreo в 2017 году. Размер исходного кода AOSP 14 составляет 165 ГБ по сравнению с 87 ГБ в AOSP 8. Размер выходной сборки увеличился до 150 ГБ в AOSP 14 по сравнению с 87 ГБ в AOSP 8.

Видео + данные: https://apptractor.ru/info/media/chto-novogo-v-aosp-14.html
Платформа: Android
👍1
11 вещей, которые я узнал после того, как стал проводить технические интервью

Когда вы сидите по другую сторону стола, доски или Zoom, вы видите вещи с совершенно другой точки зрения. Я хочу, чтобы у кандидатов был лучший опыт собеседований и хорошее впечатление о компании. Я хотел бы поделиться 11 вещами, которые я узнал во время проведения интервью, чтобы вы могли лучше подготовиться к своему следующему собеседованию.

1. Мы не читаем ваше резюме
2. Мы тоже нервничаем
3. Больше разговоров поможет вам
4. Общение — ключ к успеху
5. Просить о помощи не стыдно
6. Идеального решения не существует
7. Отсутствие практики очевидно
8. Google разрешен, если вы спросите
9. Когда мы печатаем и отводим взгляд, это означает, что мы делаем заметки
10. Когда мы не разговариваем, это не значит, что мы осуждаем вас
11. Мы хотим, чтобы кандидаты прошли собеседование

Статья: https://apptractor.ru/info/articles/11-veschey-kotorye-ya-uznal-posle-togo-kak-stal-provodit-tehnicheskie-intervyu.html
Платформа: собеседования
8🤡1
BadgeIcon позволяет использовать в SwiftUI иконки, похожие на те, что вы найдете в системных настройках iOS и macOS. BadgeIcon поставляется с кучей предопределенных иконок, как на рисунке выше, или же вы можете создавать свои собственные.

BadgeIcon на GitHub: https://github.com/danielsaidi/BadgeIcon
Платформа: iOS
⭐️: 12
Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly и много ручного труда

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

Статья: https://vc.ru/tribuna/957493-kak-ya-sozdayu-ios-igru-na-unity-c-ispolzovaniem-midjourney-chatgpt-adobe-firefly-i-mnogo-ruchnogo-truda
Платформа: разработка
NanoKt - элегантное и легкое решение для разработки под Android, обширная коллекция современных функций расширения, охватывающих многие области фреймворка Android и стандартных библиотек Java и Kotlin. NanoKt сделает ваш код более элегантным, эффективным и сэкономит ваше время. Более того, это достигается без ущерба для производительности, поскольку почти все предоставляемые функции и свойства встраиваются во время компиляции.

Зачем нужна еще одна библиотека расширений?

NanoKt выделяется тем, что предоставляет хорошо документированные функции с рекомендуемыми аннотациями, что позволяет работать с ними в стиле AndroidX. Продуманная структура и именование методов, вдохновленные фреймворком Android, направлены на устранение избыточного кода без навязывания универсального фреймворка. Он предназначен для легкой интеграции в различные проекты Android.

Библиотека разделена на модули для чистого Kotlin, Kotlin-JVM и Kotlin-Android, что делает ее совместимой с широким спектром проектов. Позже автор планирует выпустить совместимую версию для Kotlin Multiplatform.

NanoKt на GitHub: https://github.com/conena/nanokt
Платформа: Android
⭐️: 54
👍1🤡1
Видео и подкасты за неделю:

(iOS Ru) Custom Segmented Control
(iOS En) Building Complex Scroll Animations With New iOS 17 APIs
(iOS En) SwiftUI Widgets | App Groups | Charts | Expense Tracker App
(iOS En) How To Create A Submission Form In Xcode 15
(iOS En) This is the CRAZIEST Swift code you'll ever see
(iOS En) SwiftData CloudKit
(iOS En) SwiftUI Animated Toasts
(And Ru) Как устроен Gradle Config Cache. Лучшие Практики. Интервью с инженером команды Gradle
(And Ru) Android System Design: делаем библиотеку Firebase
(And En) (W)rap - Android Developers Backstage
(And En) Introducing Gemini, Google at NeurIPS 2023, and more dev news!
(And En) Performance Optimization with @Stable and @Immutable in Jetpack Compose
(And En) Demystifying Pixel Shaders (AGSL)
(Crs Ru) Мультиплатформенная разработка на чистой Java
(Crs En) A novel architecture for Multiplatform applications with Pavel Lahoda
(Dev Ru) Что такое observability мобильного приложения
(Dev Ru) Разработка Авто.ру и роль руководителя в команде
(Dev Ru) Мобильные релизы в Авито
(Dev Ru) Силиконовая Долина глазами российского разработчика
(Dev Ru) Релокация на Кипр
(Dev En) Do You Have to Learn Clean Architecture as a Beginner?

С вас традиционный 👍 и поделиться подборкой с коллегами!