AppFiles - Mobile Development
2.01K subscribers
2.58K photos
33 videos
8 files
3.47K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
Resaca - правильная область видимости для объектов и вью-моделей в Android Compose. Resaca предоставляет простой способ сохранить Jetpack ViewModel (или любой другой объект) в памяти в течение жизненного цикла функции @Composable и автоматически очистить ее, когда она больше не нужна. Это означает, что библиотека сохраняет ваш объект или ViewModel при перекомпоновке, при изменении конфигурации, а также когда контейнер Fragment или Compose Navigation уходит в backstack. С помощью Resaca вы можете создавать отдельные ViewModel для мелких Composable и, наконец, получить многократно используемые компоненты на всех экранах.

Resaca на GitHub: https://github.com/sebaslogen/resaca
Платформа: Android
⭐️: 223
Паттерн делегирования для написания многократно используемых компонентов Compose

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

Статья: https://apptractor.ru/info/articles/pattern-delegirovaniya-dlya-napisaniya-mnogokratno-ispolzuemyh-komponentov-compose.html
Платформа: Android
🥱1
Отслеживаем сбои приложения с MetricKit

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

Статья: https://apptractor.ru/measure/crash-analytics-bug-tracking/otslezhivaem-sboi-prilozheniya-s-metrickit.html
Платформа: iOS
Nimble определяет ожидаемые результаты выполнения выражений в Swift или Objective-C. В Xcode есть фреймворк XCTest, который предоставляет макросы утверждений для проверки правильности поведения кода. Однако утверждения XCTest имеют несколько недостатков - нет простого способа утверждать, что строка содержит определенную подстроку, или что число меньше или равно другому, кроме того сложно писать асинхронные тесты, наконец, XCTest заставляет писать много шаблонного кода. Nimble решает все эти проблемы.

Nimble на GitHub: https://github.com/Quick/Nimble
Платформа: iOS
⭐️: 4.7K
Архитектура Android. Понятно и подробно

Если вы хотите сделать хорошую архитектуру, то используйте эту схему и строго соблюдайте правила, без каких-либо исключений.

Статья: https://habr.com/ru/articles/766762/
Платформа: Android
Понимаем @discardableResult в Swift

Swift известен тем, что в нем большое внимание уделяется безопасности типов и читаемости кода. Одним из свойств, соответствующих этим принципам, является атрибут @discardableResult. Этот атрибут позволяет пометить возвращаемое значение функции как "отбрасываемое" (discardable), что означает возможность игнорировать возвращаемое значение, не выдавая предупреждения компилятора. В этой статье мы рассмотрим, что такое отбрасываемый результат, почему он полезен и как эффективно использовать его в Swift.

Статья: https://apptractor.ru/info/articles/ponimaem-discardableresult-v-swift.html
Платформа: iOS
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
👍1🔥1
Разработка мобильного приложения, безупречно работающего в реальном мире, требует тщательного тестирования в различных сетевых условиях. Flaker - это сетевой симулятор, призванный сделать процесс тестирования мобильных приложений более плавным и эффективным. С помощью Flaker можно легко эмулировать широкий спектр сетевых условий, что позволяет точно настроить производительность приложения и обеспечить исключительное качество работы при любых обстоятельствах. Flaker написан на Kotlin, Kotlin Multiplatform, Jetpack Compose и SwiftUI, с использованием SqlDelight, Jetpack DataStore, Okhttp, Ktor.

Flaker на GitHub: https://github.com/RotBolt/Flaker
Платформа: разработка
⭐️: 112
LLaMA 2, RWKV, Santacoder и другие LLM на iOS

Мысль портировать LLaMA.cpp на iOS у меня появилась после того, как вышло приложение Draw Things, про его разработку писали на Хабре. Мне понравилось то, что я могу без интернета (в поезде, например), заняться «генерацией всякого» с помощью нейросетей, без подписок, цензуры и неконтролируемых обновлений. Я подумал: если Stable Diffusion запустили на iOS, то что мешает запустить языковые модели? Так появилась идея создать приложение LLM Farm.

Статья: https://habr.com/ru/articles/764598/
Платформа: iOS
Как выступить на 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
🔥1
Все видео droidcon NYC 2023

Более 50 видео с конференции.

Сайт: https://www.droidcon.com/
Grape - библиотека Swift для моделирования сил и визуализации графов.

Grape на GitHub: https://github.com/li3zhen1/Grape
Платформа: iOS
⭐️: 47
1
Одна игра, один человек, шесть платформ: хорошие, плохие, злые

Недавно компания Valve объявила, что Counter-Strike 2 больше не будет поддерживать macOS. Как инди-разработчик, выпустивший игру с поддержкой macOS, я сначала удивился решению Valve. Но, вспомнив свой собственный путь поддержки шести платформ, я думаю, что могу понять точку зрения Valve.

Статья: https://apptractor.ru/info/articles/odna-igra-odin-chelovek-shest-platform-horoshie-plohie-zlye.html
Платформа: кроссплатформа
7 плагинов Android Studio, ускоряющих разработку приложений

Android Studio, созданная на основе программного обеспечения JetBrains IntelliJ IDEA и запущенная Google, представляет собой полнофункциональную интегрированную среду разработки для Android. Обладая таким количеством замечательных функций, а также будучи чрезвычайно продуктивной и эффективной, Android Studio вошла в тройку самых популярных IDE по версии GitHub.

Статья: https://apptractor.ru/info/articles/7-plaginov-android-studio-uskoryayuschih-razrabotku-prilozheniy.html
Платформа: Android
Готовимся к собеседованиям в западных компаниях — курсы и обучающие материалы

Тред от Евгения Мацюка, в котором он собрал различные ресурсы для подготовки к собеседованиям в западных компаниях.

Статья: https://apptractor.ru/info/articles/gotovimsya-k-sobesedovaniyam-v-zapadnyh-kompaniyah-kursy-i-obuchayuschie-materialy.html
Платформа: собеседования
Cookit Recipes App - приложение с рецептами, созданное на базе Compose Multiplatform. Снаружи iOS и Android, библиотека рецептов, пошаговые инструкции, добавление собственных. Внутри Jetpack Compose, Koin для инъекции зависимостей, Voyager для навигации, Moko Resources для управления ресурсами, ImageLoader для работы с изображениями.

Cookit Recipes App на GitHub: https://github.com/JunydDEV/kmp-recipes-mobile-app
Платформа: Android/кроссплатформа
⭐️: 25
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Построение экрана поиска с помощью Jetpack Compose

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

Статья: https://proandroiddev.com/jetpack-compose-search-screen-recommendations-7b5c8c119c0e
Платформа: Android
SwiftyJSON позволяет легко работать с данными JSON в Swift. С помощью библиотеки вы можете просто сделать так:

let json = JSON(data: dataFromNetworking)
if let userName = json[0]["user"]["name"].string {
//Now you got your value
}

И даже не беспокоиться по поводу Optional Wrapping. Это делается автоматически.

SwiftyJSON на GitHub: https://github.com/SwiftyJSON/SwiftyJSON
Платформа: iOS
⭐️: 22.2K
👎3👍1
Публикация в F-Droid с помощью Fastlane

Один из первых вопросов, который я получил, когда объявил о публикации нового приложения с открытым исходным кодом в Google Play Store, был: «Как узнать, что ваш код на GitHub — это тот же самый код, с помощью которого создано приложение в Google Play?».

Сначала этот вопрос показался мне несколько нелепым. Стал бы кто-то публиковать код, который отличается от кода в его репозитории? К сожалению, некоторые недобросовестные разработчики регулярно практикуют такое поведение. Именно здесь особенно полезен F-Droid.

Статья: https://apptractor.ru/info/articles/publikatsiya-v-f-droid-s-pomoschyu-fastlane.html
Платформа: Android
Скорее жив, чем мёртв: тенденция по развитию iOS технологий

Обзор технологий был сделан для того, чтобы показать, что iOS разработка жива, и не стоит бояться того что завтра же мы останемся без работы. Мы программисты, а программисты это сильные люди, которые смогут адаптироваться ко всему (знаю не понаслышке).

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