AppFiles - Mobile Development
1.99K subscribers
2.54K photos
33 videos
8 files
3.42K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
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
This media is not supported in your browser
VIEW IN TELEGRAM
Как создать анимированные шейдеры в Jetpack Compose

Jetpack Compose — молодой, но бурно развивающийся фреймворк для разработки под Android, который обладает множеством не всегда очевидных фичей. Сегодня я хотел бы описать одну из таких встроенных возможностей: речь идет об использовании OpenGL-шейдеров. Они позволяют делать красивые анимированные интерфейсы, как на картинке.

Статья: https://habr.com/ru/companies/timeweb/articles/736192/
Платформа: Android
👍2
Coffee Drop - UI кофейного приложения, созданный с помощью Kotlin и Jetpack Compose. Дизайн вдохновлен концептом на Dribbble. Сам же код основан на Чистой архитектуре (или, по крайней мере, на ее понимании автором). Это не полнофункциональное приложение, скорее пример отработки пользовательского интерфейса.

Coffee Drop на GitHub: https://github.com/dev-xero/coffee-drop-ui
Платформа: Android
⭐️:26
Измерение задержки старта iOS-приложений в масштабе Uber

С введением функции предварительного прогрева в iOS 15, сама ОС может принимать решение о запуске процесса приложения в памяти на основе внешних условий, которые предвидят запуск приложения пользователем. Это сокращает время, которое пользователь должен ждать, пока приложение станет доступным при следующем его тапе на иконку. Но это нововведение усложнило процесс измерения задержки холодного старта для iOS, так как теперь уже не представлялось возможным указывать время от создания процесса до первого просмотра. Это привело к пересмотру процесса измерения задержки холодного запуска в Uber.

• Задержка при запуске
• Измерение времени запуска до iOS 15
• Измерение времени запуска с предварительным прогревом
• Объединение метрик на основе пользователя и сеанса
• Обработка данных MetricKit
• Заключение

Статья: https://apptractor.ru/info/articles/izmerenie-zaderzhki-starta-ios-prilozheniy-v-masshtabe-uber.html
Платформа: iOS/Отслеживание сбоев
Подготовка к собеседованиям для Android-разработчиков в 2023 году

Цель этой заметки - объяснить некоторые этапы типичного процесса собеседования для Android-разработчиков. Мы обсудим шаги, стратегии, цели и решения. Это поможет вам лучше подготовиться к получению следующей роли.

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

Статья: https://blog.blundellapps.co.uk/proven-prepping-for-easy-android-interviews-in-2023/
Платформа: Android
👍2
AWS Amplify предоставляет декларативный и простой в использовании интерфейс для различных облачных операций. Реализация по умолчанию работает с Amazon Web Services (AWS), но AWS Amplify разработан как открытый и подключаемый к любому кастомному бэкенду или сервису.

Библиотека Amplify для Swift опирается на AWS SDK для Swift, который был выпущен в качестве Developer Preview в прошлом году. Это позволяет получить доступ к широкому спектру API: аналитика, GraphQL и REST, аутентификация, онлайн база данных, геолокация, хранение объектов в облаке.

AWS Amplify на GitHub: https://github.com/aws-amplify/amplify-swift
Платформа: iOS
⭐️: 347
Лучший способ структурировать iOS-проект

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

Статья: https://levelup.gitconnected.com/the-best-way-to-struct-your-ios-project-a2daee7dcb45
Платформа: iOS
👍2
От идеи к реализации: разработка анимированной карусели с помощью Jetpack Compose

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

Статья: https://levelup.gitconnected.com/animated-carousel-with-jetpack-compose-7406a5a2b246
Платформа: Android
👍2
Reader - мультиплатформенный (iOS и Android) RSS-ридер, сделанный на Kotlin Mutliplatform и Compose Multiplatform. Кроме них из большого есть Ktor, SQLDelight, Decompose и Kotlin-inject.

Reader на GitHub: https://github.com/msasikanth/reader
Платформа: кроссплатформа
⭐️: 85
OpenAI API client for Kotlin - клиент для API OpenAI с возможностями мультиплатформенной работы и корутинами. Может работать со множеством режимов - дополнение, чатом, редактирование, генерацией изображений и т.п. В исходниках есть пример готового приложения.

OpenAI API client for Kotlin на GitHub: https://github.com/aallam/openai-kotlin
Платформа: Android (напомню, что есть такое и для Swift - вот, например)
⭐️: 714
👍3
Самоучитель программирования Dart для абсолютных новичков

В этом 8-часовом курсе мы погрузимся в язык программирования Dart. Этот курс разработан таким образом, чтобы его могли пройти начинающие программисты, программисты с опытом кодирования на каком-либо другом языке и вообще не программисты. Flutter использует Dart и позволяет создавать приложения для iOS, Android, Web и Desktop с единой кодовой базой. Таким образом, важно освоить Dart, прежде чем переходить к Flutter.

Видео: https://www.youtube.com/watch?v=Fqcsow_7go4
Платформа: программирование
1
Как протестировать компонент навигации в Jetpack Compose?

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

Статья: https://medium.com/huawei-developers/how-to-test-the-navigation-component-in-jetpack-compose-1ab4ccaba761
Платформа: Android