AppFiles - Mobile Development
2.11K subscribers
2.66K photos
37 videos
9 files
3.58K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
EinkBro - маленький браузер, созданный для экранов на электронных чернилах. EinkBro разработан в соответствии с потребностями Eink-устройств : никаких лишних переходов и анимаций, четкие черно-белые иконки, полезные функции для чтения на устройствах. Он был создан на основе FOSS Browser, который является полностью свободным приложением для Android.

EinkBro на GitHub: https://github.com/plateaukao/einkbro
Платформа: Android
⭐️: 910
Как я написал клиент электронного дневника своей области

Сейчас я учусь в 8 классе. Где-то с октября (сейчас апрель) я изучаю разработку мобильных приложения для андроид. И как это бывает у каждого - я столкнулся с проблемой: а какое приложение мне сделать? И мне крайне повезло. Я не стал делать какой-нибудь фейковый магазин, калькулятор, блокнот, туду лист и всякую подобную заезженную тему.

Статья: https://habr.com/ru/articles/806737/
Платформа: Android
🔥4
Как заканчивать игры (и другие проекты)

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

Статья: https://apptractor.ru/info/articles/kak-zakanchivat-igry-i-drugie-proekty.html
PumpkinOS - это новая реализация PalmOS, работающая на современных архитектурах (x86, ARM и т.д.). Это не обычный эмулятор PalmOS (он НЕ требует PalmOS ROM), но он может запускать m68K PalmOS-приложения. Этот релиз содержит четыре PIM-приложения, присутствующие в PalmOS: AddressBook, MemoPad, ToDoList и DateBook. Исходный код этих приложений распространялся в одном или нескольких PalmOS SDK и был адаптирован для корректной компиляции под PumpkinOS.

PumpkinOS на GitHub: https://github.com/migueletto/PumpkinOS
Сайт: https://pmig96.wordpress.com/category/palmos/
Платформа: разработка
⭐️: 611
Может ли мобильный-разработчик стать CTO?

Да, может. На этом статью можно было бы закончить. Спасибо, что дочитали до конца, приходите поделиться своим опытом в комментариях.

Если серьёзно, карьера мобильного разработчика, который хочет вырасти в большого руководителя, может складываться по-разному. Например, мой путь начался в 2013 году, и за это время я успел поработать и в маленьких стартапах, и в больших корпорациях. Сейчас я Director of Engineering в Яндекс Go. Последние шесть лет я управляю разными командами разного размера: от 5 до 200+ человек.

Статья: https://habr.com/ru/companies/yandex/articles/806693/
Платформа: разработка
😎41
Pokedex Compose - приложение про покемонов, которое демонстрирует современную разработку для Android с использованием Jetpack Compose, Hilt, Coroutines, Flow, Jetpack (Room, ViewModel) и Material Design на основе MVVM-архитектуры.

Pokedex Compose на GitHub: https://github.com/skydoves/pokedex-compose
Платформа: Android
⭐️: 164
Реализация Критических оповещений на Android

Критические оповещения - это уведомления, которые обходят выключатель звука и настройки "Не беспокоить" на устройстве, гарантируя, что пользователь получит важные уведомления независимо от настроек на устройстве. В то время как Apple представила эту функцию около 2018 года, Android еще не полностью интегрировал ее. В этой статье мы рассмотрим, как реализовать подобные критические оповещения на Android-устройствах.

Статья: https://apptractor.ru/info/articles/realizatsiya-kriticheskih-opovescheniy-na-android.html
Платформа: Android
FontBlaster - библиотека для программной загрузки кастомных шрифтов в приложения для iOS, macOS и tvOS. FontBlaster автоматически импортирует и загружает все шрифты из бандла вашего приложения с помощью одной строки кода.

FontBlaster на GitHub: https://github.com/ArtSabintsev/FontBlaster
Платформа: iOS
⭐️: 1.2K
Введение в Trio: часть 3

Trio - это фреймворк Airbnb для экранной архитектуры Jetpack Compose в Android. Он построен на базе Mavericks, библиотеки управления состояниями Jetpack от Airbnb с открытым исходным кодом. В этой серии статей мы разбираем принцип работы Trio, чтобы объяснить наши дизайнерские решения, в надежде, что другие команды смогут воспользоваться аспектами нашего подхода.

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

Часть 1: https://apptractor.ru/info/articles/vvedenie-v-trio.html
Часть 2: https://apptractor.ru/info/articles/vvedenie-v-trio-chast-2.html
Часть 3
: https://apptractor.ru/info/articles/vvedenie-v-trio-chast-3.html
Платформа: Android
Kotlin Faker генерирует реалистично выглядящие фейковые данные, такие как имена, адреса, банковские реквизиты, адреса электронной почты и многое другое. Они могут быть использованы для тестирования и анонимизации данных.

Kotlin Faker на GitHub: https://github.com/serpro69/kotlin-faker
Платформа: Android
⭐️: 415
Как быстро сделать файл PrivacyInfo.xcprivacy для вашего iOS-приложения

В начале 2024 года Apple объявила, что все приложения вскоре должны будут включать файл Privacy Manifest, названный PrivacyInfo.xcprivacy. С 1 апреля 2024 года уже рассылаются предупреждающие письма, а приложения без файла PrivacyInfo.xcprivacy будут отклоняться с 1 мая 2024 года.

Статья: https://apptractor.ru/info/articles/kak-bystro-sdelat-fayl-privacyinfo-xcprivacy-dlya-vashego-ios-prilozheniya.html
Платформа: iOS
1
Reflection в iOS: как посмотреть содержимое любой сущности

В Swift, как и во многих других языках программирования, есть возможность получать информацию о структуре объекта в Runtime. Для этого в языке есть специальный механизм — Reflection. С его помощью можно просматривать содержимое любых сущностей, не зная о них абсолютно ничего.

Статья: https://habr.com/ru/companies/tinkoff/articles/808139/
Платформа: iOS
RxJava — всё?

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

При написании приложения с нуля RxJava выглядит не самым оптимальным решением ввиду официальной политики Google по поддержке корутин и интереса компании к Kotlin Multiplatform. Кроме того, наличие RxJava в стеке проекта может снизить привлекательность вакансии среди кандидатов, часть разработчиков могут принять использование Rx в проекте за легаси.

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

Статья: https://habr.com/ru/articles/807925/
Платформа: Android
Gradiente - это простая библиотека для iOS, позволяющая накладывать размытый, цветной и яркий фон на ваши представления. Она написана на SwiftUI и легко применима к любому View. Особенности - поддержка цветов и градиентов, может быть применена как модификатор SwiftUI к любому представлению, может быть расположена в верхней или нижней части представления, совместима с iOS 15.

Gradiente на GitHub: https://github.com/letvarhq/Gradiente
Платформа: iOS
⭐️: 11
Kodein DI для Android. Целостность графа и тесты на DI

DI фреймворки бывают двух видов: те, что строят свой граф зависимостей во время компиляции (compile time фреймворки), и те, которые делают это уже при выполнении кода (runtime фреймворки).

Kodein — типичный представитель runtime фреймворков. Это значит, что о пропущенной зависимости вы узнаете непосредственно в процессе работы приложения, что может стать неприятным сюрпризом. Только представьте себе: вы пропустили на регрессе какой-то кейс, и у вас краш в продакшене из-за DI! Это же настоящий кошмар!

Но неужели нам придётся отказываться от Kodein или других runtime фреймворков? Что можно сделать, чтобы сделать их более надёжными? Есть ответ! Мы переведём наш DI из разряда runtime проверок в разряд deploy time проверок.

Статья: https://habr.com/ru/companies/dododev/articles/807969/
Платформа: Android
Droid-ify - неофициальный клиент магазина F-Droid с чистым материальным дизайном, “гладким” пользовательским опытом. В нем нет неподходящей анимации, есть быстрая синхронизация репозитория, стандартные компоненты Android и минимальные зависимости.

Droid-ify на GitHub: https://github.com/Droid-ify/client
Платформа: Android
⭐️: 2.8K
О, вы из Англии? Локализация Ozon Seller на iOS

Наша команда поставляет фичи, красит кнопки, работает над перформансом и всячески улучшает пользовательский опыт работы продавцов на Ozon.

Нашим приложением активно пользуются юзеры из разных стран, и поэтому день Х, когда мы решим добавить поддержку разных языков, был неизбежен. В этой статье я расскажу про стандартный процесс локализации iOS-приложения, про то, с какими трудностями мы столкнулись и как их решили. Разберём системный алгоритм определения языка и объясню, почему он нам не подошёл. Сделаем перевод приложения «на лету», а также посмотрим, как изменился наш флоу работы со строками.

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

(iOS Ru) А так ли нужна Swift Modern Concurrency?
(iOS Ru) Мгновенный фидбэк: как оперативно получать отзывы о приложении в App Store
(iOS En) Your guide to Metal ray tracing
(iOS En) Integrate Screen-Sharing Into a SwiftUI App
(iOS En) SwiftUI Custom Transitions
(iOS En) Building Netflix UI Animations
(And Ru) Устройство Android Music SDK или как мы встроили музыку в суперапп-приложение
(And Ru) Интеграция MediaPipe в Android-приложение видеоконференцсвязи
(And En) Now in Android: 103 - Android 15 Beta, Gemini in Android Studio, Google Drive improvements, & more
(And En) MVVM vs. MVI - Understand the Difference Once and for All
(And En) The ONLY Thing to MASTER as an Android Developer (And Why 99% FAIL!)
(And En) Boosting Bazel adoption on Android with automation
(And En) Inline Functions: inline, crossinline, and noinline
(Dev Ru) Инженерная культура BigTech: работа мечты или испытание на прочность?
(Dev Ru) Как устроена мобильная разработка в Кинопоиске
(Dev Ru) Пробить стеклянный потолок и стать сеньором

Посоветуйте в комментариях интересные каналы по мобильной разработке? 🌐 @AppFiles
Zephyr синхронизирует определенные ключи и/или все ваши UserDefaults через iCloud с помощью NSUbiquitousKeyValueStore. В библиотеку встроен мониторинг, позволяющий синхронизировать определенные ключи в фоновом режиме по мере их изменения.

Zephyr на GitHub: https://github.com/ArtSabintsev/Zephyr
Платформа: iOS
⭐️: 913