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

Прекрасное обсуждение - становится ли iOS-разработка сложнее? Для автора - да, но не все с ним согласны.

Обзор: https://apptractor.ru/info/articles/ios-razrabokta-stanovitsya-slozhnee-obsuzhdenie-na-reddit.html
Платформа: iOS
👍3
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