AppFiles - Mobile Development
Відкрити в Telegram
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Показати більше2 170
Підписники
Немає даних24 години
+47 днів
+630 день
Архів дописів
Видео и подкасты за неделю:
•
(iOS Ru) SwiftData: новый persistence framework от Apple
• (iOS En) Simple, Clean Empty States in SwiftUI - ContentUnavailableView
• (iOS En) SwiftUI Parallax Scroll Effect
• (iOS En) SwiftUI Pie & Donut Charts
• (iOS En) SwiftData Storing Images and Bug Fixes
• (iOS En) SwiftUI App Theme Switcher - Dark Mode Switch
• (And Ru) Android Auto: как Organic Maps переносили в машину
• (And Ru) Сколько памяти нужно для сборки: Android-разработчикам о JVM
• (And Ru) Добавь немного сахара в Espresso или как писать UI тесты под Android
• (And En) I've Built an Android App With Google's New AI Gemini
• (And En) Top 3 Hacks to Remove LazyColumn Lag in Jetpack Compose
• (Crs En) Best Practices for Developing Amazing Kotlin Multiplatform Apps with Pamela Hill
• (Dev Ru) Как работает видеостриминг в мобильных приложениях
• (Dev Ru) Sber ML Meetup: AutoML, трейдинг и мультимодальность
• (Dev Ru) Как мы ВКонтакте ускоряем получение результатов тестов
• (Dev Ru) Тестируем с широко закрытыми глазами
• (Dev En) Microsoft Azure Fundamentals Certification Course
В комментариях поделитесь интересным видео, который вы посмотрели!Compose Drag And Drop - это библиотека, которая позволяет легко добавить функциональность перетаскивания в ваши проекты Jetpack Compose или Compose Multiplatform.
Compose Drag And Drop на GitHub: https://github.com/MohamedRejeb/compose-dnd
Платформа: Android
⭐️: 63
ATHYLPS: пет-проект, приносящий радость от экспериментов с технологиями
Мое новое интервью с Сергеем Опиваловым, Senior Software инженером в Gradle. Обсуждаем его пет-проект — приложение ATHYLPS, тренажер для математических навыков в покере.
Интервью: https://apptractor.ru/info/interview/athylps.html
Платформа: кроссплатформа
CodeEdit - это редактор кода, созданный сообществом для сообщества, написанный для сециально macOS. Среди возможностей - подсветка синтаксиса, завершение кода, поиск и замена по всему проекту, сниппеты, терминал, запуск задач, отладка, интеграция с git, code review, расширения и многое другое.
Цель авторов - сохранить легковесный интерфейс, похожий на TextEdit, но при этом иметь возможность при необходимости масштабировать функциональность до редактора, сравнимого с Xcode.
CodeEdit на GitHub: https://github.com/CodeEditApp/CodeEdit
Платформа: macOS
⭐️: 19.5K
Прививка от созависимости. Зачем нужен DI и как он работает в iOS-приложениях hh.ru
В статье мы рассмотрим основы DI, поговорим о том, какую проблему решает этот принцип, окинем общим взглядом возможные варианты реализации: паттерны и популярные библиотеки. Подробно рассмотрим схему, по которой работает DI в многомодульном iOS проекте hh.ru. В конце статьи будет разобран пример простого приложения с аналогичным подходом к инъекции.
Статья: https://habr.com/ru/companies/hh/articles/783002/
Платформа: iOS
Bluetooth LE Spam - этот проект направлен на использование встроенной функциональности Bluetooth Low Energy (BLE) смартфонов на Android для создания фантомных объявлений для Bluetooth-устройств, аналогичных тем, что использует, например, в случае Flipper Zero. Хотя существуют и другие приложения, обеспечивающие подобную функциональность, целью данного приложения является повышение удобства пользователя в процессе работы. Приложение может спуфить Google Fast Pair, Microsoft Swift Pair, Easy Setup, Apple Device Popups, Apple Action Modals, в отдельных случаях вызывать перезагрузку Apple iOS 17, выключать Lovespouse.
Bluetooth LE Spam на GitHub: https://github.com/simondankelmann/Bluetooth-LE-Spam
Платформа: Android
⭐️: 2.4K
Мастерство работы в SwiftUI
SwiftUI постепенно набирает силу и становится предпочтительным выбором для создания приложений. В этом посте мы рассмотрим важные моменты, которые помогут вам повысить производительность и эффективность разработки приложений.
• Redux или MVVM?
• Используйте @StateObject и @ObservableObject
• Создавайте @Published переменные с осторожностью
• Разбивайте содержимое body на более мелкие части для минимизации времени компиляции
• Предпочтите @State для анимации вместо @Published
• Объявляйте объекты Observable в определенном месте, чтобы избежать ненужного обновления UI
• Найдите, какое изменение данных вызывает обновление представления SwiftUI
• Используйте LazyHStack и LazyVStack, если у вас длинный список
• Есть ли что-нибудь похожее на viewDidLoad()?
• Используйте UIKit компоненты непосредственно в SwiftUI
• Модификатор с условиями
• Избегайте совместного использования .padding и .frame
• Используйте GeometryReader с умом
• Эпизодическое использование AnyView
• Обязательное используйте ID в Foreach и List
• Предпочитайте использовать текст, а не метку
• Используйте Group для возврата нескольких экземпляров представления
• Используйте .fixedSize(), чтобы указать, что фрейм не изменяется
Статья: https://apptractor.ru/info/articles/masterstvo-raboty-v-swiftui.html
Платформа: iOS
Вопросы с собеседований: ключевое слово Object в Kotlin
В Kotlin ключевое слово Object используется для создания объекта-одиночки (singleton). Объект-одиночка представляет собой класс, у которого может быть только один экземпляр, и этот экземпляр предоставляет глобальную точку доступа к нему. Объект-одиночка полезен, когда требуется иметь единственный экземпляр класса, который обеспечивает доступ к каким-то ресурсам, например, базе данных, конфигурационным параметрам или службам.
Статья: https://apptractor.ru/info/techhype/kotlin-object.html
Платформа: Kotlin
Другие вопросы с собеседований: тут
Рефакторинг кода, и как его не бояться
Уже около четырех лет моя профессиональная деятельность тесно связана с энтерпрайз разработкой мобильных приложений на Flutter в компании TAGES. Сегодня мне бы хотелось поделиться некоторыми мыслями и практическими советами на тему, которая является актуальной и важной для всех разработчиков — рефакторинг кода.
Статья: https://habr.com/ru/articles/781538/
Платформа: разработка
🏗 Еще про рефакторинг:
• Руководство для инженеров по рефакторингу кода
• Podlodka #37: Рефакторинг
• Рефакторинг кодовой базы в Slack: Стабилизация, Модуляризация и Модернизация
• Осознанная архитектура: рефакторинг Headspace для масштабирования
Enchanted - это элегантное мобильное приложение для iOS/iPad с открытым исходным кодом для общения с приватными языковыми моделями Ollama, такими как Llama 2, Mistral, Vicuna, Starling и другими. По сути, это пользовательский интерфейс приложения ChatGPT, который подключается к вашим собственным моделям Ollama. Для использования приложения вам конечно потребуется запустить собственный сервер Ollama.
Enchanted на GitHub: https://github.com/AugustDev/enchanted
Платформа: iOS
⭐️: 87
Видео и подкасты за неделю:
•
(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?
С вас традиционный 👍 и поделиться подборкой с коллегами!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
Как я создаю 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
Платформа: разработка
BadgeIcon позволяет использовать в SwiftUI иконки, похожие на те, что вы найдете в системных настройках iOS и macOS. BadgeIcon поставляется с кучей предопределенных иконок, как на рисунке выше, или же вы можете создавать свои собственные.
BadgeIcon на GitHub: https://github.com/danielsaidi/BadgeIcon
Платформа: iOS
⭐️: 12
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
Платформа: собеседования
Что нового в 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
Ludwig - коллекция UI-компонентов для Jetpack Compose. Главный из них - морфинг для векторных изображений, кроме него есть пикер времени и даты, анимированные поля ввода с опциональными состояниями ошибок, анимированные кнопки, выпадающие списки.
Ludwig на GitHub: https://github.com/baec23/ludwig
Платформа: Android
⭐️: 52
Создаем пассивный UI в Jetpack Compose
Декларативный пользовательский интерфейс часто описывается как создание пользовательского интерфейса, который является «функциональным» по своей природе. То есть данные входят, а пользовательский интерфейс выходит. Это замечательно в абстрактном смысле, но в мире, где приложения без дополнительных побочных эффектов не особенно полезны для конечных пользователей, как этого можно добиться? В этом посте мы рассмотрим, как применять концепции и паттерны для создания «пассивного» или «тупого» пользовательского интерфейса — пользовательского интерфейса, который не делает ничего, кроме демонстрации визуальной картинки.
Статья: https://apptractor.ru/info/articles/sozdaem-passivnyy-ui-v-jetpack-compose.html
Платформа: Android
Google AI SDK для Swift позволяет разработчикам использовать современные генеративные модели искусственного интеллекта Google (например, Gemini) для создания функций и приложений на базе искусственного интеллекта. Этот SDK поддерживает такие сценарии использования, как:
• Генерация текста из текстового ввода
• Генерация текст из текста и изображений (мультимодальный ввод)
• Создание многоходовых бесед (чат)
Конечно, есть такой же для Android.Google AI SDK for Swift на GitHub: https://github.com/google/generative-ai-swift Платформа: iOS ⭐️: 504
Как структурировать свой Swift-код
Приходилось ли вам когда-нибудь возвращаться к проекту и находить его неряшливым? Все в нем беспорядочно и неорганизованно. Если вы уже давно занимаетесь программированием, вы, вероятно, прошли через это, и мы можем понять друг друга. Но даже если нет, эта статья поможет вам в дальнейшем писать хорошо организованный код. Позвольте представить вам метод, который я называю Код Бургера (Burger Code).
Статья: https://apptractor.ru/develop/coding/kak-strukturirovat-svoy-swift-kod.html
Платформа: iOS/программирование
Вже доступно! Дослідження Telegram за 2025 — головні інсайти року 
