AppFiles - Mobile Development
1.99K subscribers
2.54K photos
33 videos
8 files
3.42K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
Анонс Dart 3

Dart 3 содержит три мажорных улучшения. Во-первых, мы завершили путь к 100-процентной нулевой безопасности. Во-вторых, мы добавили новые языковые возможности: записи (records), паттерны (patterns) и модификаторы классов (class modifiers). В-третьих, мы даем предварительный прогноз на будущее, в котором расширим поддержку наших платформ, добавив нативный код для web с помощью Wasm-компиляции. Давайте углубимся в детали.

Статья: https://habr.com/ru/articles/734396/
Платформа: кроссплатформа/Flutter
Shady - это галерея AGSL-шейдеров, демонстрирующая эффекты шейдеров в Jetpack Compose, текстурирование изображений с помощью шейдеров и возможности настраиваемых/анимированных шейдеров. Эти шейдеры варьируются от развлекательных до практичных, подходящих для создания самостоятельных эффектов или в качестве основы для генеративного искусства и визуализации.

Shady на GitHub: https://github.com/drinkthestars/shady
Платформа: Android
⭐️: 19
Google I/O 2023. Что нового в Kotlin для Android?

Сегодня мы посмотрим на новинки Kotlin для Android, представленные Google в видео «What's new in Kotlin for Android» с Google I/O 2023 (с некоторыми комментариями и дополнениями).

Статья: https://habr.com/ru/companies/usetech/articles/734338/
Платформа: Android
Поток данных SwiftUI с примерами

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

@Binding
@StateObject
@Environment
@Published
@State
@EnvironmentObject
@ObservedObject

Статья: https://apptractor.ru/info/articles/potok-dannyh-swiftui-s-primerami.html
Платформа: iOS
Обзор всех изменений в Android 13 для разработчиков

В видео:

• Улучшенная поддержка планшетов и больших экранов
• Разрешение на показ уведомлений
• Photo Picker
• Выбор языка для приложений
• Predictive Back Gesture
• Task Manager
• Улучшение расхода заряда батарейки
• Изменения буфера обмена
• Nearby
• Новая иконка для приложений
• Java 11
• Alarm Manager
• JobScheduler
• Программируемые шейдеры
• Улучшения ART
• Разграничение доступа к медиа
• Еще больше разрешений
• Новое поведение Intent Filter
• Ограничение скорости интернета
• Ограничение доступа в Accessibility Services
• Прочие изменения

Видео: https://apptractor.ru/info/media/razbor-android-13-dlya-razrabotchikov.html
Платформа: Android
Проект нашего читателя - Six-Sided Puzzle. Это паззлы на Flutter, в которых надо собирать картинки городов.

Если у вас есть какой-то открытый интересный проект - присылайте, тоже опубликуем.

Six-Sided Puzzle на GitHub: https://github.com/AlShevelev/HexagonalPuzzle
Платформа: Flutter/кроссплатформа
⭐️: 1
👍1
Акторы в Swift

На конференции WWDC21 компания Apple представила новую фичу под названием Actors, которая решает фундаментальную проблему при написании асинхронного кода — состояний гонки.

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

Но что такое актор как сущность? Это не класс и не структура.

Статья: https://medium.com/@uladzislau.komar/%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D1%8B-%D0%B2-swift-actors-in-swift-35d6618b6d02
Платформа: iOS
This media is not supported in your browser
VIEW IN TELEGRAM
10 открытых проектов, которые заставят вас полюбить Jetpack Compose

Эти 10 проектов и библиотек дадут вам толчок для изучения или глубокого погружения в Jetpack Compose. Наслаждайтесь!

Статья: https://apptractor.ru/develop/10-otkrytyh-proektov-kotorye-zastavyat-vas-polyubit-jetpack-compose.html
Платформа: Android
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Библиотека Telephoto предлагает некоторые “строительные блоки” для пользовательского интерфейса Compose. Во-первых, это замена для Image() с поддержкой жестов панорамирования и масштабирования и автоматической субдискретизации больших изображений, которые иначе не поместились бы в память. Во-вторых, это детектор жестов, упакованный как отдельный модификатор, который можно использовать с composable, не относящимися к изображению.

Telephoto на GitHub: https://github.com/saket/telephoto
Платформа: Android
⭐️: 264
Перформанс 2ГИС для Android

Каждое большое приложение однажды сталкивается с задачей — увеличить скорость запуска. Не обошла она и приложение 2ГИС на Android. Расскажу, как команда тестирования искала причины медленного запуска.

Статья: https://habr.com/ru/companies/2gis/articles/734688/
Платформа: Android
👍1👎1
Гибкая непрерывная интеграция для iOS

Многие из наших заданий CI для iOS выполняются на компьютерах Mac, что позволяет использовать инструменты для разработчиков, предоставляемые Apple. Задания CI для всех остальных платформ в Airbnb выполняются в контейнерах на Amazon EC2 Linux. Для выполнения заданий CI на macOS мы исторически поддерживали альтернативную инфраструктуру CI вне AWS специально для iOS-разработки. Появление компьютеров Mac в AWS дало нам возможность переосмыслить наш подход к iOS CI.

Статья: https://medium.com/airbnb-engineering/flexible-continuous-integration-for-ios-4ab33ea4072f
Платформа: iOS
30 советов для эффективного проектирования пользовательского интерфейса

Хорошо продуманный пользовательский интерфейс может существенно повлиять на успех продукта. Я составил список из 30 советов, которые помогут вам улучшить свои навыки проектирования пользовательского интерфейса.

Статья: https://apptractor.ru/info/articles/30-sovetov-dlya-effektivnogo-proektirovaniya-polzovatelskogo-interfeysa.html
Платформа: дизайн и прототипирование
Control Room - это приложение для macOS, позволяющее управлять симуляторами iOS, tvOS и watchOS, их внешним видом, информацией в статус баре и многим другим. Оно использует собственный инструмент командной строки simctl от Apple, поэтому вам понадобится установленный Xcode. Из фич - получение скриншотов и видео с симуляторов, в том числе с рамками устройства, настройка системного времени и даты, управление статусами Wi-Fi, сотовой сети и батареи, редактирование UserDefaults, включение темного/светлого режима, смена языка, опций доступности, указание произвольной локации для пользователя, управление приложениями, отправка тестовых пуш-уведомлений или глубоких ссылок, получение цветов прямо из симулятора.

Control Room на GitHub: https://github.com/twostraws/ControlRoom
Платформа: iOS
⭐️: 5.2K
Построения графиков в Jetpack Compose

Использование кривых Безье для улучшения построения графиков из разрозненных точек в Jetpack Compose.

Статья: https://medium.com/mobile-app-development-publication/making-graph-plotting-function-in-jetpack-compose-95c80ee6fc7f
Платформа: Android
Объяснение диапазонов в Swift с примерами кода

Диапазоны (Range) в Swift позволяют нам выбирать части строк, коллекций и других типов данных. Они являются Swift-вариантом NSRange, который мы знаем из Objective-C, хотя они и отличаются в использовании. Диапазоны позволяют нам писать элегантный Swift-код, используя всего один оператор. Ваш первый опыт работы с ними может быть связан с тем, что вам нужно выбрать диапазон символов из строки, но вы можете сделать с ними гораздо больше!

Статья: https://www.avanderlee.com/swift/ranges-explained/
Платформа: iOS/Swift
Purr - это инструмент командной строки zsh для просмотра и поиска в логах Android. Он использует fzf для обеспечения простого, но мощного пользовательского интерфейса, возможностей нечеткого поиска и многого другого.

Хотя logcat в Android Studio достаточен для большинства приложений, он ломается в таких ситуациях, как доступ только через терминал или когда требуется быстрый доступ к нескольким устройствам. При выполнении разработки на самой операционной системе Android разработчики возвращаются к использованию сырого adb logcat в shell.

Это неоптимально и тратит много времени на написание grep-запросов и копание в сплошном нефильтрованном сером тексте с плохим пользовательским опытом. Purr предназначен для решения этой проблемы - это мощная программа просмотра логов, работающая полностью в shell, способная быстро просматривать миллионы логов.

Purr на GitHub: https://github.com/google/purr
Платформа: Android
⭐️: 81
👍1
Видео и подкасты за неделю - обратите внимание, вышли все видео осеннего Mobius, аж под 40 роликов:

• (iOS En) Learn how to add SwiftLint to your iOS Apps
• (iOS En) Learn when SwiftUI re-renders views
• (iOS En) SwiftUI Gooey Effect With Shape Morphing Animation
• (iOS En) How to refactor Swift code like a pro, using Associated Values
• (iOS En) Formatted Date strings in Swift and SwiftUI
• (And Ru) ViewModels in CustomViews: как за пару секунд поменять функционал приложения
• (And Ru) @Stable vs @Immutable и анимации на Compose
• (And Ru) Gradle Review Show
• (And En) Android game graphics - OpenGL ES vs. Vulkan case study
• (And En) Squeezing out the last 5% of performance: AGDE, profile-guided optimization, and automation
• (And En) Improving game performance with Android Dynamic Performance Framework
• (And En) Now in Android: 83 - Android at Google I/O, second Beta of Android 14, and more!
• (And En) The ULTIMATE Guide to Sharing Data Between Screens in Jetpack Compose
• (And En) I've Tried the NEW Android Studio AI (Studio Bot 😱) - A True Competitor of ChatGPT?
• (Dev Ru) IT’s Tinkoff product meetup: лайфстайл
• (Dev Ru) Все видео Mobius 2022 Autumn
• (Dev Ru) Podlodka #319: как оптимизировать сложность алгоритмов
• (Mrk En) Paywall Design Examples

Посмотрели какое-то другое интересное видео? Отправьте боту -> 🧑🏻‍💻
This media is not supported in your browser
VIEW IN TELEGRAM
Squirrel (произносится как Scroll-Wheel) - приложение для macOS, которое добавляет нормальный скрол в симулятор Xcode. Теперь в нем можно скролить стандартным колесиком мыши!

Squirrel на GitHub: https://github.com/aheze/Squirrel
Платформа: iOS
⭐️: 562
👍3
Бесплатный курс "Промпт-инжиниринг ChatGPT для разработчиков"

DeepLearning.AI и OpenAI выпустили бесплатный курс, обучающий новому ключевому навыку, который нужен разработчикам для создания приложений с помощью ChatGTP. Курс представляет Эндрю Нг, основатель DeepLearningAI, соучредитель Coursera и известный многим по своему курсу машинного обучения. Основной материал предоставлен Исой Фулфорд, работницей OpenAI.

Курс: https://www.deeplearning.ai/short-courses/chatgpt-prompt-engineering-for-developers/
Платформа: обучение
Безопасная локализация строк в iOS: Localinter

Меня зовут Сергей Балалаев, я руковожу отделом разработки мобильного приложения «Пункт Ozon». Я хочу рассказать, как мы побороли типичные проблемы локализации для наших iOS-проектов, зачем собрали свой линтер для локализации и как это всё помогло упростить и автоматизировать процесс.

Статья: https://habr.com/ru/companies/ozontech/articles/734214/
Платформа: iOS