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

Нам всем, даже когда мы любим нашу работу, любим компанию, на которую работаем, и никогда не сменили бы нашу текущую работу на другую, время от времени становится скучно. Это жизнь, всегда есть взлеты и падения, и мобильному разработчику очень просто свалиться в состояние «я понятия не имею, что делать теперь, когда продукт вышел».

Статья: https://apptractor.ru/info/articles/chto-delat-esli-v-proekte-nechego-delat-3-soveta-android-razrabotchikam.html
Платформа: разработка
Loopover - это сложная 2D головоломка в стиле кубика Рубика. Цель игры - поставить каждую ячейку на свое место. Любая ячейка, выходящая за пределы поля, "закручивается" обратно на другую сторону. В игру можно играть в 4 разных размерах: 3x3, 4x4, 5x5 и 6x6.

Loopover на GitHub: https://github.com/typicel/loopover-ios
Платформа: iOS
⭐️: 3
Optional в Swift: 5 вещей, которые вы должны знать

Optional лежат в основе Swift и существуют с первой версии языка. Опциональное значение позволяет нам писать чистый код и в то же время заботиться о возможных значениях nil.

Статья: https://apptractor.ru/info/articles/optional-v-swift-5-veschey-kotorye-vy-dolzhny-znat.html
Платформа: iOS
Как увеличить шрифт так, чтобы контейнер не поехал? Адаптация UI/UX для людей с проблемами зрения в XML и Compose

Я — Денис, Android-разработчик в «Лайв Тайпинге». В этой статье я продолжу рассказывать о современных подходах разработки адаптивного UI/UX для людей с ограниченными возможностями, разных национальностей и особенностями развития. В этой статьей я расскажу про разработку интерфейсов в XML и Compose для варьирующего размера шрифта. А также покажу почему атрибут contentDescription так важен.

Статья: https://habr.com/ru/articles/798473/
Платформа: Android
Видео и подкасты за неделю:

(iOS Ru) Minimal Widget Product: путь к эффективной и гибкой реализации виджетов
(iOS Ru) Уроки Swift: UITextField с анимированным плейсхолдером
(iOS En) Paging ScrollView in SwiftUI for iOS 17
(iOS En) Visual Effect API - Stacked Cards - ScrollView
(iOS En) Custom Calendar Tallies in SwiftUI
(iOS En) Minimal Login Setup With Firebase Email Authentication
(And Ru) Разработка новостного приложения. Часть 3
(And Ru) Hilt в многомодульный проект — пособие по внедрению зависимостей для новичков
(And En) THIS Is How You Create Custom Shapes in Jetpack Compose
(And En) New Android 15 Changes, App Update Prompts & AI Document Scanning
(And En) Lyricist & Voyager - Navigating the Compose Multiverse
(And En) Imperative, declarative, object oriented, functional: four of a Kotlin kind
(Crs Ru) Сериализация и десериализация — вошли и вышли
(Crs Ru) Адаптивная вёрстка во Flutter
(Dev Ru) Я.Субботник по мобильной разработке
(Dev En) Firebase’s Release Monitoring dashboard, Dart 3.3 release, and more dev news!
(Dev En) Learn C# – Full Course with Mini-Projects
(Anl Ru) Avito Analytics meetup

Что вы интересного посмотрели/послушали про разработку на этой неделе? 🌐 @AppFiles
Legado - читалка электронных книг для Android. Поддерживает TXT и EPUB, может сама скачивать контент из веба в соответствии с пользовательскими правилами, настраиваемые шрифты, фоны и прочее, может читать вслух через сторонние сервисы и множество прочих функций.

Legado на GitHub: https://github.com/gedoor/legado
Платформа: Android
⭐️: 22.5K
👍1
DetailsPro - это no-code инструмент проектирования на основе SwiftUI.

• Создавайте с помощью таких представлений SwiftUI, как VStack, Text, Image и др.
• Создавайте реальные дизайны без написания кода
• Экспорт в Xcode, Swift Playgrounds и др.

Сайт: https://detailspro.app/
Платформа: iOS
🤯4
Concurrency Recipes - практические решения проблем с использованием Swift Concurrency.

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

Concurrency Recipes на GitHub: https://github.com/mattmassicotte/ConcurrencyRecipes
Платформа: iOS
⭐️: 505
1
Чистка Android-проекта для уменьшения размера APK, ускорения сборки и улучшения опыта разработки

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

Статья: https://apptractor.ru/info/articles/chistka-android-proekta-dlya-umensheniya-razmera-apk-uskoreniya-sborki-i-uluchsheniya-opyta-razrabotki.html
Платформа: Android
У каждого кода запах особый: 8 причин, почему ваш код плохо пахнет

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

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

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

Статья: https://apptractor.ru/info/articles/your-code-smell.html
Платформа: программирование
Прекратите спорить в Code Review — начните внедрять с правилами линтера

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

Благодаря Konsist мы на Android наконец-то получили долгожданный инструмент, который делает написание правил линтинга простым и доступным, не требующим сложного обучения. Инструмент, который, безусловно, является важной вехой в написании пользовательских правил, благодаря своей гениальной идее переосмыслить их как юнит-тесты.

Статья: https://apptractor.ru/info/articles/prekratite-sporit-v-code-review-nachnite-vnedryat-s-pravilami-lintera.html
Платформа: Android
Kotest - это гибкий и элегантный мультиплатформенный фреймворк для тестирования Kotlin с широким спектром утверждений (assertion) и интегрированным тестированием свойств. Есть встроенная поддержка корутинов на каждом уровне, возможность использования функций в качестве обратных вызовов жизненного цикла теста, широкие возможности расширения, расширенная оценка условий, мощное тестирование на основе данных и многое другое. Библиотека утверждений Kotest - это первая мультиплатформенная библиотека утверждений для Kotlin с более чем 300 утверждениями. Она оснащена инспекторами коллекций, помощниками недетерминированных тестов, мягкими утверждениями, модулями для arrow, json, kotlinx-datetime. Ну а модуль тестирования свойств Kotest - это продвинутая мультиплатформенная библиотека тестов свойств с более чем 50 встроенными генераторами.

Kotest на GitHub: https://github.com/kotest/kotest
Платформа: Android/тестирование
⭐️: 4.2K
Кот в мешке: мастерство обработки ошибок внешних ключей SQLite

Сталкивались с загадочными ошибками Foreign Key в SQLite для Android? Сегодня мы раскроем завесу тайны и расскажем как извлекать подробную информацию об ошибках этого типа.

Статья: https://habr.com/ru/companies/kts/articles/798607/
Платформа: Android
Разработка, управляемая тестами (TDD), для исправления ошибок

Разработка, управляемая тестами — это отличная техника, позволяющая увеличить покрытие кода тестами и одновременно повысить качество кода. Поначалу писать неудачные тесты может быть утомительно, но в результате вы получите более полную реализацию функции, которая охватывает все ожидаемые результаты. Если использовать тесты в сочетании с исправлением ошибок, вы повысите свою уверенность и будете уверены, что ошибка не вернется в будущем.

Статья: https://apptractor.ru/info/articles/razrabotka-upravlyaemaya-testami-tdd-dlya-ispravleniya-oshibok.html
Платформа: потрындеть
This media is not supported in your browser
VIEW IN TELEGRAM
Swift Translate - это CLI-инструмент и плагин Swift Package, который упрощает локализацию вашего приложения. Он деконструирует ваши каталоги строк и отправляет их в модель GPT-3.5-Turbo от OpenAI для перевода. Переводит отдельные каталоги строк или все каталоги в папке, поддерживает два десятка языков, сложные каталоги строк с вариациями и заменами множественного числа и устройств, перевод совершенно новых каталогов или заполнение недостающих переводов для существующих каталогов.

Swift Translate на GItHub: https://github.com/hidden-spectrum/swift-translate
Платформа: iOS
⭐️: 13
Автоматизируем рутину в Android разработке: плагин для создания шаблонного кода на примере создания -api -impl модулей

Меня зовут Алексей, я ведущий разработчик платформенной команды и по совместительству лид архитектурной компетенции в проекте Альфа-Бизнес. Сегодня я расскажу, как можно автоматизировать повторяющуюся работу в андроид-разработке при помощи плагина для Android Studio.

Статья: https://habr.com/ru/companies/alfa/articles/799873/
Платформа: Android
Swift Playdate Examples - технические демки и руководства по разработке игр на Swift для приставки Playdate.

Playdate - это миниатюрная портативная игровая консоль с ручкой, разработанная компанией Panic, оснащенная процессором Cortex M7 и 1-битным дисплеем с разрешением 400х240. Panic предоставляет SDK для создания игр Playdate на языках C и Lua с соответствующим симулятором. Большинство игр Playdate традиционно пишутся на Lua для простоты разработки, но могут возникнуть проблемы с производительностью, которые требуют дополнительной сложности при использовании C.

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

Swift Playdate Examples на GitHub: https://github.com/apple/swift-playdate-examples
Платформа: разработка
⭐️: 192
Appteka - это альтернативный магазин приложений для Android от Игоря Солкина, Lead of Mobile Design Platform в Авито. Фичи магазина: может извлекать APK, установленные на вашем Android-устройстве, и переносить их на SD-карту, быстрый и простой в использовании, извлекает практически все приложения, включая системные, не требует ROOT-доступа, загружает Apk в специальный Appteka.Store, предусмотрена опция поиска приложений, поддержка функций Android 9.0, возможность резервного копирования и установки Apk с SD-карты, чат в реальном времени для обсуждения приложений.

Appteka на GitHub: https://github.com/solkin/appteka-android
Платформа: Android
⭐️: 230
👍3🤮1
Видео и подкасты за неделю:

(iOS Ru) Моменты неотзывчивости iOS-приложений: как найти и исправить
(iOS Ru) Swift-уроки: cоздание горизонтального меню с индикатором
(iOS En) From Slow to Fast: Profiling SwiftUI Applications for Peak Performance
(iOS En) SwiftUI Performance Optimisation: How to manage Data Flow and UI Updates in your iOS and macOS apps
(iOS En) MapKit with SwiftUI - Regions, Markers and Annotations and CameraPosition
(iOS En) MapKit with SwiftUI - Map Destination Persistence and MockData
(iOS En) How to get started with Swift Macros
(iOS En) Paginating SwiftData
(And Ru) Собеседование по Kotlin (все собеседования)
(And Ru) Ultron — фреймворк для тестирования Android UI и Compose
(And Ru) Собираем грабли при профилировании Android-приложений
(And En) Now in Android: 100 - Android 15 DP 1, Stable Studio Iguana, Cloud Photo Picker, and more
(And En) What’s new in Android Studio Iguana
(And En) Google for Games Developer Summit 2024
(And En) How to Create a Document Scanner App with MLKit
(And En) If You Think THIS Is a Best Practice, You're WRONG in 99% of the Cases
(And En) The Missing Library of the Compose Multiverse
(And En) Making Data Visualizations More Accessible
(And En) Imperative, declarative, object oriented, functional: four of a Kotlin kind
(Crs Ru) Коллекции во Flutter
(Dev Ru) Как принимать решения, строить команды и выбирать инструменты разработки — Павел Щедухин (Ozon Tech)
(Dev Ru) Публичное собеседование по System Design
(Dev Ru) Мобильная инфраструктура. Взгляд изнутри
(Dev Ru) BDUI – удовольствие или боль?
(Dev Ru) BDUI на 100%: управляем шиммерами с бэкенда
(Dev En) Back End Developer Roadmap 2024
(Anl Ru) Аналитика нового продукта «под ключ»

Что вы интересного посмотрели/послушали про разработку на этой неделе? 🌐 @AppFiles
Как и где практиковаться начинающему мобильному разработчику

Меня зовут Миша Вассер. Я руковожу мобильной разработкой в AGIMA, а ещё я наставник и автор на курсе «Android-разработчик» в Яндекс Практикуме. Помню то время, когда я начинал заниматься разработкой, — материалы были в основном на английском, а специализированных курсов было маловато, поэтому приходилось всё искать и практиковаться самостоятельно.

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

Статья: https://habr.com/ru/companies/yandex_praktikum/articles/799923/
Платформа: обучение