en
Feedback
AppFiles - Mobile Development

AppFiles - Mobile Development

Open in Telegram

Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.

Show more
2 170
Subscribers
No data24 hours
+47 days
+630 days
Posts Archive
Как сделать тесты на Espresso более читабельными и стабильными Если вы писали тесты на Espresso — тестовом фреймворке от Goog
Как сделать тесты на Espresso более читабельными и стабильными Если вы писали тесты на Espresso — тестовом фреймворке от Google с открытым исходным кодом, — то вы знаете, что они не всегда стабильны и легко читаемы. Меня зовут Ксения Никитина, я являюсь Android-разработчиком в мобильной команде «Лаборатории Касперского». В этой статье я предложу вам способ, как сделать так, чтобы ваши автотесты отвечали всем ключевым качествам: были хорошо читаемы, стабильны, логируемы, давали возможность делать скриншоты, работали с AndroidOS и, наконец, имели продуманную и понятную архитектуру. Статья: https://habr.com/ru/companies/kaspersky/articles/770108/ Платформа: Android/тестирование

Разбор задачи A отборочного этапа Yandex Cup 2023 — iOS Недавно закончился отборочный этап Yandex Cup для разработчиков по ра
Разбор задачи A отборочного этапа Yandex Cup 2023 — iOS Недавно закончился отборочный этап Yandex Cup для разработчиков по различным направлениям, одним из которых была мобильная разработка под iOS. Как раз про нее и поговорим, а точнее про задания, которые были там представлены. Стоит отметить, что их сложность выше среднего, по этой причине, думаю, каждый подчеркнет для себя что-нибудь новое. Хотелось бы сразу сказать о том, что некоторые используемые конструкции/инструменты языка/фреймворков были для меня не новы, но в жизни встречался с ними редко, поэтому приходилось читать и на практике воспроизводить код из условия, экспериментируя с ним. Правильных ответов у меня не было, и решал я уже после окончания отборочного этапа. Если заметите какие-либо неточности в формулировках, в размышлениях, в ответах, буду рад обсудить это в комментариях. Статья: https://habr.com/ru/articles/771948/ Платформа: iOS

Tabman - мощный Page View Controller с интерактивными индикаторными полосами. Несколько вариантов представления, расширяемый,
Tabman - мощный Page View Controller с интерактивными индикаторными полосами. Несколько вариантов представления, расширяемый, легко настраиваемый. Tabman на GitHub: https://github.com/uias/Tabman Платформа: iOS ⭐️: 2.7K

Видео и подкасты за неделю: • (iOS Ru) Кнопки красить — это вам не деревья вертеть(iOS En) New SwiftUI Photo Picker - Single & Multiple Selection(iOS En) SwiftData CRUD Operations(iOS En) How to solve nested Observable Objects issue(iOS En) Swift Connection 2023 Videos(iOS En) Cleaner, Safer Code with Swift KeyPaths(iOS En) A Tour of Xcode Cloud(iOS En) An Easier Dev Life with Kaleidoscope(And Ru) Собеседование с Михаилом Левченко(And Ru) Управление сложностью состояния(And En) Now in Android: 94 - #TheAndroidShow, Jetpack Glance, Google Play policy updates, and more(And En) AndroidX, Gradle and Metalava - Android Developers Backstage(And En) When Should You Migrate to Jetpack Compose?(And En) 3 Clean Code Hacks I Bet You Didn't Know(And En) What's new in Kotlin 1.9.20(And En) Making Threads for Android(And En) Kotlin & Android Development Course: Build a Quiz Application(Crs En) A Complete Guide on “Login with WhatsApp” in Flutter Apps (w/ backend)(Dev Ru) Backend Driven… Аналитика!(Dev Ru) Podlodka #341: рендеринг текста проклят Поставьте 👍, если понравилась подборка. А если вы увидели/выпустили какое-то другое интересное видео - отправьте боту🧑🏻‍💻

Skip - это технология для создания двухплатформенных мобильных приложений на языке Swift. Сердцем Skip является интеллектуаль
Skip - это технология для создания двухплатформенных мобильных приложений на языке Swift. Сердцем Skip является интеллектуальный транспилятор языка Swift в Kotlin. Для анализа исходного текста Swift в Skip используется собственная библиотека Apple SwiftSyntax - та же самая, что используется в макросах Swift. Затем она преобразует код в понятный для восприятия Kotlin, сохраняя даже комментарии. Благодаря схожести языков, результат часто не отличается от Kotlin, который вы написали бы вручную (заметным исключением является перенос SwiftUI в Compose. Тот факт, что SwiftUI является объектно-ориентированным, а Compose - функциональным, требует некоторых неуклюжих преобразований исходного кода). Вместе с транспилятором Skip поставляет конвертер проектов Swift Package Manager (SPM) в Android Gradle. Skip объединяет эти инструменты в плагин для сборки Xcode. Этот набор инструментов Skip называется SkipStone. В этом репозитории как раз он и размещен. Здесь также размещены форумы Skip для общих обсуждений, а также для обсуждения конкретных проблем и сообщений об ошибках. Skip на GItHub: https://github.com/skiptools/skip Платформа: iOS/кроссплатформа ⭐️: 426

touchHLE - это высокоуровневый эмулятор приложений для iPhone OS. Он работает на современных настольных операционных системах и Android и написан на языке Rust. Подход touchHLE к высокоуровневой эмуляции (HLE) отличается от низкоуровневой эмуляции (LLE) тем, что он не имитирует непосредственно аппаратное обеспечение iPhone/iPod touch. Вместо того чтобы запускать iPhone OS внутри эмуляции, touchHLE сам занимает место iPhone OS и предоставляет собственные реализации системных фреймворков (Foundation, UIKit, OpenGL ES, OpenAL и др.). Единственный код, который выполняет эмулируемый процессор, - это бинарный файл приложения и несколько библиотек. Цель проекта - запуск игр, появившихся на заре iOS. В настоящее время работают приложения для iPhone и iPod touch для iPhone OS 2.x. Далее ожидается поддержка iPhone OS 3.0. В долгосрочной перспективе iPhone OS 3.1, приложения для iPad (iPhone OS 3.2), iOS 4.x. Поддержка приложений, которые не являются играми, не является приоритетной - это сложнее и менее интересно. touchHLE на GitHub: https://github.com/hikari-no-yume/touchHLE Платформа: iOS ⭐️: 2K

Байт-код — это просто! Как сделать DI по-настоящему быстрым Два года назад мы в Яндекс Маркетае начали разрабатывать свой лег
Байт-код — это просто! Как сделать DI по-настоящему быстрым Два года назад мы в Яндекс Маркетае начали разрабатывать свой легковесный DI-фреймворк Scout, который предоставляет выразительный Kotlin DSL. Он не генерирует код, а делает всю работу в рантайме. Недавний переход с compile-time-библиотеки Dagger 2 на нашу привёл к замедлению старта приложения. В этой статье мы будем подробно рассматривать то, как применение байт-кода помогло сохранить скорость на том же уровне и спасти проект по миграции на Scout. Статья: https://habr.com/ru/companies/yandex/articles/770800/ Платформа: Android

ComposeNumericRoller демонстрирует динамическую анимацию цифр в Android-приложении с помощью Jetpack Compose. Легко анимируйте меняющиеся цифры, прокручивая их вверх или вниз, чтобы обеспечить красивое взаимодействие с пользователем. ComposeNumericRoller на GitHub: https://github.com/HadiDortaj/ComposeNumericRoller Платформа: Android ⭐️: 7

Local AI Stack - этот репозиторий содержит стартовый набор для создания ИИ-приложений, работающих локально. С его помощью люб
Local AI Stack - этот репозиторий содержит стартовый набор для создания ИИ-приложений, работающих локально. С его помощью любой желающий может бесплатно создать простое ИИ-приложение для работы с вопросами и ответами на основе собственных документов. В наборе используются Ollama для создания модели, LangChain для оркестровки LLM и Next.js для логики приложения. Local AI Stack на GitHub: https://github.com/ykhli/local-ai-stack Платформа: разработка/ИИ ⭐️: 220

Backend Driven UI с точки зрения бэкенда: к чему готовиться, если вы решили на него перейти В этой статье я постараюсь расска
Backend Driven UI с точки зрения бэкенда: к чему готовиться, если вы решили на него перейти В этой статье я постараюсь рассказать, что такое BDUI с точки зрения бэкенд-разработчика, как мы прошли путь от стандартного API с данными для фронтенда до UI JSON-файлов, по которым строятся экраны приложения. Этот пост будет интересен тем, кто планирует перейти на этот подход, но пока не знает, как это сделать максимально плавно и сразу обойти проблемы, с которыми повстречались мы. Статья: https://habr.com/ru/companies/yandex/articles/768282/ Платформа: разработка

Moya - слой сетевых абстракций поверх Alamofire, который в достаточной степени инкапсулирует непосредственные вызовы сетевой
Moya - слой сетевых абстракций поверх Alamofire, который в достаточной степени инкапсулирует непосредственные вызовы сетевой библиотеки. Некоторые замечательные функции Moya: • Проверка корректности доступа к конечным точкам API во время компиляции. • Четкое определение использования различных конечных точек с соответствующими перечислениями. • Тестовые заглушки рассматриваются как рабочие, поэтому Unit-тестирование становится очень простым. Moya на GitHub: https://github.com/Moya/Moya Статья: Обработка сетевых вызовов в Swift с помощью Moya Платформа: iOS ⭐️: 14.8K

FlorisBoard - это бесплатная клавиатура с открытым исходным кодом для устройств на базе Android 7.0+. Она нацелена на то, что
FlorisBoard - это бесплатная клавиатура с открытым исходным кодом для устройств на базе Android 7.0+. Она нацелена на то, чтобы быть современной, удобной и настраиваемой, при этом полностью уважать конфиденциальность пользователей. В настоящее время находится в состоянии ранней бета-версии. Внутри AndroidX, Accompanist Compose UI, KotlinX, ICU4C. FlorisBoard на GitHub: https://github.com/florisboard/florisboard Платформа: Android ⭐️: 4.6K

Что будет если команда, не видавшая Compose, решила делать новую сложную фичу на нём? Меня зовут Дмитрий Максимов, я Android разработчик в Dodo Engineering. Больше 2-х лет я пробовал Jetpack Compose в пет-проектах, но хотелось прокачать свои знания по полной и попробовать фреймворк в настоящем проде. В этой статье расскажу, как мы сделали сложный Compose экран с нестандартным скроллом и снаппингом контента. Статья: https://habr.com/ru/companies/dododev/articles/764540/ Платформа: Android

Регулировка громкости наушников Bluetooth Недавно я приобрел наушники Tozo T6. Они замечательные, и я их люблю, но при сопряж
Регулировка громкости наушников Bluetooth Недавно я приобрел наушники Tozo T6. Они замечательные, и я их люблю, но при сопряжении, отключении или подключении они воспроизводят звук, который, на мой взгляд, слишком громкий. Я не смог исправить это, например, настроив эквалайзер на уменьшение нескольких децибел по всему диапазону. Я спросил производителя об этом по электронной почте, и они быстро ответили, что ничего не могут сделать, что вполне понятно - это, вероятно, не самая распространенная просьба. Но для меня это было слишком громко, чтобы продолжать пользоваться ими, поэтому я решил попытаться решить проблему самостоятельно. Статья: https://blog.ornx.net/post/bluetooth-volume-fix/

Как устроены собеседования в SberDevices — Максим Сидоров Второе интервью с Максимом Сидоровым из SberDevices, в котором он р
Как устроены собеседования в SberDevices — Максим Сидоров Второе интервью с Максимом Сидоровым из SberDevices, в котором он рассказывает про процесс собеседований в компании. Интервью: https://apptractor.ru/info/interview/kak-ustroeny-sobesedovaniya-v-sberdevices-maksim-sidorov.html Платформа: Android/собеседования

Aidoku - открытое бесплатное приложение для чтения манги для iOS и iPadOS. Aidoku на GitHub: https://github.com/Aidoku/Aidoku
Aidoku - открытое бесплатное приложение для чтения манги для iOS и iPadOS. Aidoku на GitHub: https://github.com/Aidoku/Aidoku Платформа: iOS ⭐️: 1.1K

Обновил подборку онлайн собеседований мобильных разработчиков Всего 60! записей - для Junior, Middle и Sénior собеседователей. Все видео: https://apptractor.ru/sobesedovaniya

Видео и подкасты за неделю: • (iOS Ru) Автоматизация ревью ресурсных картинок в iOS(iOS Ru) ChatGPT в мобильной разработке: как использовать, чтобы получить пользу(iOS Ru) Реальное iOS собеседование в Яндекс(iOS En) Mastering TipKit in iOS 17(iOS En) SwiftUI: Building Notes App + SwiftData + CRUD(iOS En) Build a Twitch-Like Live Streaming App With SwiftUI(iOS En) Resizable Custom Tab Bar for macOS(iOS En) Lock SwiftUI View With Biometric/Custom Number Lock - Local Authentication(And Ru) Собеседование в Яндекс: платформа Android(And Ru) Kodein в Android. Что за зверь и как его готовить(And Ru) Готовим конфигурацию Android-приложения с помощью Dynamic Proxy и рефлексии(And En) #TheAndroidShow: faster and easier to build excellent apps, across devices!(And En) Play PolicyBytes(And En) 95% Don't Understand THIS About Coroutines (Main-Safety)(And En) Which Compile Options Should You Choose? (Java & Kotlin Version)(Crs En) Building a Spotify Music Player with Real-Time Lyrics using Flutter(Dev Ru) Avito Platform engineering meetup #2(Dev Ru) Ozon Tech Community ML&DS Meetup(Tst Ru) Полный курс по QA. Как правильно писать тесты?(Tst Ru) Как изменились подходы к автоматизированному тестированию в Тинькофф(Tst En) Beginner Guide to Mutation Testing in Kotlin Поставьте 👍, если понравилась подборка. А если вы увидели/выпустили какое-то другое интересное видео - отправьте боту🧑🏻‍💻

Twine - это многоплатформенное приложение для чтения RSS-лент, созданное с использованием Kotlin и Compose Multiplatform. Оно
Twine - это многоплатформенное приложение для чтения RSS-лент, созданное с использованием Kotlin и Compose Multiplatform. Оно обладает приятным пользовательским интерфейсом и удобным просмотром потоков, а также поддерживает динамическое тематическое оформление контента на основе Material 3. Внутри Kotlin Multiplatform, корутины, Compose Multiplatform, Ktor, SQLDelight, Decompose и Kotlin-inject. Twine на GitHub: https://github.com/msasikanth/twine Платформа: Android/кроссплатформа ⭐️: 593

Готов ли Swift OpenAPI Generator для продуктивного кода? Мы хотим упростить работу с OpenAPI-спецификациями, внедрив кодогене
Готов ли Swift OpenAPI Generator для продуктивного кода? Мы хотим упростить работу с OpenAPI-спецификациями, внедрив кодогенерацию для автоматического создания кода на Swift из YAML- или JSON-файла спецификации. Это позволяет автоматизировать создание DTO, сделать их единообразными и повысить эффективность разработки. Кодогенератор также упрощает сетевой слой, генерируя методы API, наборы параметров, заголовки и т.д. На WWDC `23 Apple представила свой Open Source-генератор Swift OpenAPI Generator, который как раз и решает эту задачу. Давайте рассмотрим, готов ли в текущем виде Swift OpenAPI Generator для решения нашей проблемы. Статья: https://habr.com/ru/companies/ozontech/articles/769624/ Платформа: iOS