AppFiles - Mobile Development
Kanalga Telegram’da o‘tish
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Ko'proq ko'rsatish2 180
Obunachilar
-124 soatlar
+47 kunlar
+1130 kunlar
Postlar arxiv
Как выступить на Mobius и внести свой вклад в Kotlin — Максим Сидоров (SberDevices)
Легендарное интервью с Максимом Сидоровым, Android-разработчиком из SberDevices, который на весеннем Мобиусе представил свой первый доклад “Измеряем sequence”, по результатам которого JetBrains внесли изменения в язык. Поговорили про карьеру, Kotlin, разработку, Сбер, имеет ли смысл “обычному разработчику” ковыряться в функциях языка и многое другое.
Интервью: https://apptractor.ru/info/interview/kak-vystupit-na-mobius-i-vnesti-svoy-vklad-v-kotlin-maksim-sidorov-sberdevices.html
Платформа: Android
LLaMA 2, RWKV, Santacoder и другие LLM на iOS
Мысль портировать LLaMA.cpp на iOS у меня появилась после того, как вышло приложение Draw Things, про его разработку писали на Хабре. Мне понравилось то, что я могу без интернета (в поезде, например), заняться «генерацией всякого» с помощью нейросетей, без подписок, цензуры и неконтролируемых обновлений. Я подумал: если Stable Diffusion запустили на iOS, то что мешает запустить языковые модели? Так появилась идея создать приложение LLM Farm.
Статья: https://habr.com/ru/articles/764598/
Платформа: iOS
Разработка мобильного приложения, безупречно работающего в реальном мире, требует тщательного тестирования в различных сетевых условиях. Flaker - это сетевой симулятор, призванный сделать процесс тестирования мобильных приложений более плавным и эффективным. С помощью Flaker можно легко эмулировать широкий спектр сетевых условий, что позволяет точно настроить производительность приложения и обеспечить исключительное качество работы при любых обстоятельствах. Flaker написан на Kotlin, Kotlin Multiplatform, Jetpack Compose и SwiftUI, с использованием SqlDelight, Jetpack DataStore, Okhttp, Ktor.
Flaker на GitHub: https://github.com/RotBolt/Flaker
Платформа: разработка
⭐️: 112
Видео и подкасты за неделю:
•
(iOS Ru) Avito iOS meetup #10
• (iOS En) A Day in the Life of a SwiftUI View
• (iOS En) SwiftUI to destroy the Publishing Industry
• (iOS En) Create custom Bindings in SwiftUI
• (iOS En) How to use TimelineView in SwiftUI
• (iOS En) Updating Code to iOS 17
• (And Ru) Unit-тесты для галочки — как не надо делать и как исправить
• (And Ru) Compose Pathway #1: знакомство с фреймворком
• (And Ru) Оно само: используем плагины компиляции
• (And Ru) Compose, еще раз Compose и развитие сообщества
• (And En) Navigation Stack Interactive Pop Gesture - Full Swipe Pop
• (And En) Gestures in Jetpack Compose
• (And En) AI Landmark Recognition With Tensorflow Lite and CameraX on Android
• (And En) How to Build a Video Recorder With CameraX in Android
• (And En) New Component Activity’s Edge to Edge is Amazing
• (And En) Kotlin Extensions - Many developers forget THIS!
• (Crs En) Minimal Social App • Flutter x Firebase Tutorial
• (Dev Ru) Podlodka #340: зачем нужны ИТ-рекрутеры
• (Dev Ru) Podlodka #339: все про кодировки текста
Поставьте 👍, если понравилась подборка. А если вы увидели/выпустили какое-то другое интересное видео - отправьте боту🧑🏻💻FocusBloom - это приложение Kotlin Multiplatform, которое помогает пользователям повысить продуктивность и улучшить навыки управления временем с помощью интервалов сосредоточенной работы и коротких перерывов. Поддерживает iOS, Android и десктопы, внутри Kotlin Multiplatform, Compose Multiplatform, SQLDelight, Koin, Voyager, Detekt, Ktlint, Github Actions и прочее.
FocusBloom на GitHub: https://github.com/JoelKanyi/FocusBloom
Платформа: Android/кроссплатформа
⭐️: 179
Понимаем @discardableResult в Swift
Swift известен тем, что в нем большое внимание уделяется безопасности типов и читаемости кода. Одним из свойств, соответствующих этим принципам, является атрибут
@discardableResult. Этот атрибут позволяет пометить возвращаемое значение функции как "отбрасываемое" (discardable), что означает возможность игнорировать возвращаемое значение, не выдавая предупреждения компилятора. В этой статье мы рассмотрим, что такое отбрасываемый результат, почему он полезен и как эффективно использовать его в Swift.
Статья: https://apptractor.ru/info/articles/ponimaem-discardableresult-v-swift.html
Платформа: iOSАрхитектура Android. Понятно и подробно
Если вы хотите сделать хорошую архитектуру, то используйте эту схему и строго соблюдайте правила, без каких-либо исключений.
Статья: https://habr.com/ru/articles/766762/
Платформа: Android
Nimble определяет ожидаемые результаты выполнения выражений в Swift или Objective-C. В Xcode есть фреймворк XCTest, который предоставляет макросы утверждений для проверки правильности поведения кода. Однако утверждения XCTest имеют несколько недостатков - нет простого способа утверждать, что строка содержит определенную подстроку, или что число меньше или равно другому, кроме того сложно писать асинхронные тесты, наконец, XCTest заставляет писать много шаблонного кода. Nimble решает все эти проблемы.
Nimble на GitHub: https://github.com/Quick/Nimble
Платформа: iOS
⭐️: 4.7K
Отслеживаем сбои приложения с MetricKit
MetricKit содержит много данных, которые помогут вам отслеживать работоспособность вашего приложения и делать ваших пользователей счастливее.
Статья: https://apptractor.ru/measure/crash-analytics-bug-tracking/otslezhivaem-sboi-prilozheniya-s-metrickit.html
Платформа: iOS
Паттерн делегирования для написания многократно используемых компонентов Compose
В этой статье я расскажу о решении, позволяющем писать составные функции, которые в большей степени пригодны для повторного использования.
Статья: https://apptractor.ru/info/articles/pattern-delegirovaniya-dlya-napisaniya-mnogokratno-ispolzuemyh-komponentov-compose.html
Платформа: Android
Resaca - правильная область видимости для объектов и вью-моделей в Android Compose. Resaca предоставляет простой способ сохранить Jetpack ViewModel (или любой другой объект) в памяти в течение жизненного цикла функции @Composable и автоматически очистить ее, когда она больше не нужна. Это означает, что библиотека сохраняет ваш объект или ViewModel при перекомпоновке, при изменении конфигурации, а также когда контейнер Fragment или Compose Navigation уходит в backstack. С помощью Resaca вы можете создавать отдельные ViewModel для мелких Composable и, наконец, получить многократно используемые компоненты на всех экранах.
Resaca на GitHub: https://github.com/sebaslogen/resaca
Платформа: Android
⭐️: 223
Всеобъемлющий Rust
Это бесплатный курс по языку Rust, разработанный командой разработчиков Android в Google. Курс охватывает весь спектр Rust, от базового синтаксиса до таких продвинутых тем, как генерики и обработка ошибок.
Курс: https://google.github.io/comprehensive-rust/
Платформа: разработка
Поваренная книга SwiftUI: NavigationStack
При создании приложения с несколькими представлениями важно иметь способ навигации между ними. В SwiftUI NavigationStack обеспечивает простой и интуитивно понятный способ навигации между представлениями.
Статья: https://apptractor.ru/info/articles/povarennaya-kniga-swiftui-navigationstack-v-swiftui.html
Платформа: iOS
Kodein DI для Android. KMP и Compose
Быть в авангарде в разработке — жизненная необходимость. Поэтому многие проекты уже переходят на Jetpack Compose, а самые смелые и продвинутые даже выпускают приложения на KMP. Мы в проекте Дринкит тоже активно переходим на Jetpack Compose (с KMP пока не сделали подход).
Ну и как же жить со всем этим без DI? Правильно, никак. Поэтому в этой статье я расскажу, как применять DI Kodein в Kotlin Multiplatform и Jetpack Compose.
Статья: https://habr.com/ru/companies/dododev/articles/766058/
Платформа: Android
BigUIPaging - коллекция элементов SwiftUI для управления страницами контента.
BigUIPaging на GitHub: https://github.com/notsobigcompany/BigUIPaging
Платформа: iOS
⭐️: 118
Самые быстрые парусные лодки
Команды SP80 и Syroco вывели на воду свои замечательные лодки. Выглядящие как космические корабли пришельцев и управляемые не парусами на мачтах, а сверхбыстрыми воздушными змеями, обе эти яхты созданы для достижения небывалых скоростей.
Текущий мировой рекорд скорости парусного спорта продержался чуть более десяти лет и составляет 121.06 км/ч. Но рекорды ставятся для того, чтобы их побивать. Обе команды установили целевую скорость в 150 км/ч, обе используют огромные воздушные змеи, прикрепленные к лодкам на прочных тросах, чтобы избежать опрокидывания, и обе прошли долгий путь с тех пор, как мы впервые рассмотрели эти конструкции в 2021 году.
Лодки: https://newatlas.com/marine/syroco-sp80-testing/
Open Interpreter позволяет LLM выполнять код (Python, Javascript, Shell и др.) локально. Вы можете общаться с Open Interpreter через ChatGPT-подобный интерфейс в терминале, запустив после установки $ interpreter.
Он обеспечивает естественно-языковой интерфейс к задачам общего назначения - таким, как:
• Создание и редактирование фотографий, видео, PDF-файлов и т.д.
• Управление браузером Chrome для проведения исследований
• Создание, очистка и анализ больших массивов данных
...и т.д.
Open Interpreter на GitHub: https://github.com/KillianLucas/open-interpreter
Платформа: разработка
Как эффективно провести модульное тестирование большого MVVM-приложения? The Unit Testing Diet Sample App - пример чат-приложения для Android, который демонстрирует, как следовать Behavior-Driven Development (BDD) путем написания модульных тестов, проверяющих поведение пользователя и результат, который он воспринимает, без проверки деталей реализации. Тесты написаны в стиле Given-When-Then и охватывают уровни ViewModel, UseCase и Repository, без использования моков.
The Unit Testing Diet Sample App на GitHub: https://github.com/steliosfran/unit-testing-diet
Платформа: Android
⭐️: 7
Подборка видео про новый фреймворк Observation
Новый фреймворк Observation в сочетании с функциями Swift Concurrency позволяет заменить Combine, который выглядит устаревшим по мнению Apple.
• Фреймворк Observation (SwiftUI + iOS 17)
• iOS 17 Data Flow with Observation Framework
• SwiftUI Data Flow in iOS 17 - Observation & @Observable
• SwiftUI Data Flow with the new Observation - simpler SwiftUI code and improved performance in iOS 17
• Swift Observation from Scratch
Платформа: iOS
Видео и подкасты за неделю:
•
(iOS Ru) Как ускорить сборку проекта и не остановить разработку
• (iOS Ru) Забудь про UITableView
• (iOS Ru) Новые подходы к работе с регулярными выражениями в Swift. Просто о сложном
• (iOS Ru) О дивный новый мир со Swift Concurrency
• (iOS En) Custom In-App Notification’s – Xcode 15 – SwiftUI Tutorials
• (iOS En) How to get started with Swift Concurrency (Beginner Tutorial)
• (iOS En) Changing Status Bar Style in 5 Min's - SwiftUI
• (iOS En) Build an Air Quality Index App with SwiftUI Map & Google AQI API
• (iOS En) How to Build a Custom Sheet in SwiftUI
• (iOS En) New and Deprecated APIs in iOS 17
• (And Ru) Как устроена логика навигации флоу в приложении Тинькофф
• (And Ru) Введение в безопасность Android-приложений
• (And Ru) Удалил один класс, а сломался весь проект: Decoupling
• (And Ru) Корутинные загадки
• (And Ru) Измеряем sequence
• (And En) Now in Android: 92 - Studio Bot expansion, Firebase integration, Android Studio, and much more!
• (And En) How to Build a Camera App With CameraX - Taking Photos
• (And En) How to Build a Custom Gradle Plugin to Share Project Config - Multi-Module Architecture
• (And En) Add Custom Google Fonts in your App
• (And En) How to make and use BOM (Bill of Materials) dependencies in Android projects
• (Crs Ru) Генератор межъязыковых мостов для мобильных приложений PyDjinni
• (Crs En) KMP Hopes & Dreamcatchers with Ritesh Gupta
Поставьте 👍, если понравилась подборка. А если вы увидели/выпустили какое-то другое интересное видео - отправьте боту🧑🏻💻