AppFiles - Mobile Development
1.99K subscribers
2.53K photos
33 videos
8 files
3.41K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
Писать софт под iOS? Или лучше под Android?

В Тинькофф есть вакансии для разработчиков обеих мобильных платформ.

Вы можете получить оффер за неделю, если ваш опыт от трех лет. Ближайший Mobile Weekend Offer пройдет 25—26 марта.

Все собеседования — онлайн за субботу или воскресенье, а офферы раздадим уже в понедельник. Оставьте заявку до 22 марта.
Introspect for SwiftUI позволяет получить базовые элементы UIKit или AppKit для представления SwiftUI. Например, с помощью Introspect вы можете получить доступ к UITableView для изменения разделителей или к UINavigationController для настройки панели вкладок. Работает это путем добавления кастомного IntrospectionView в иерархию представлений, а затем просмотра иерархии UIKit в его поиске. Пишут, что все применимо и в продакшене, Introspect не использует какой-либо частный API и только проверяет иерархию представлений, используя общедоступные методы.

Introspect for SwiftUI на GitHub: https://github.com/siteline/SwiftUI-Introspect
Платформа: iOS
⭐️: 3.9K
Элемент выбора эмодзи (aka EmojiPicker) для iOS как в MacOS

У меня получилась библиотека, которая позволяет буквально в 3 строчки кода добавить элемент выбора эмодзи в ваше приложение. Плюсом к этому она:

• Поддерживает Swift Package Manager и CocoaPods.
• Весит всего 795 килобайт.
• И единственная из аналогов поддерживает все стандартные локализации(на момент публикации статьи, конечно 🙃).

Статья: https://habr.com/ru/post/716194/
Платформа: iOS
MusicApp KMP - музыкальный плеер, созданный с использованием Compose Multiplatform UI и работающий на Android, iOS, десктопах и в вебе. Внутри: Kotlin, Compose Multiplatform UI, AVKit Media Player (iOS), VLCJ media player (десктопы), HTML media player (Web), Compose Image Loader.

MusicApp KMP на GitHub: https://github.com/SEAbdulbasit/MusicApp-KMP
Платформа: Android/кроссплатформа
⭐️: 272
Я разлюбил Flutter

У меня было подозрение, что этим все и кончится, что я напишу именно то, что пишу сейчас. Но я сделан из того же теста, что и любой другой инженер-программист, поэтому я вскочил на подножку уходящего поезда, обрадовался, потом обрадовался еще больше и даже стал евангелистом. Евангелистом Flutter. Те, кто следит за мной на Medium и LinkedIn, знают, о чем я говорю. Я рекламировал Flutter как второе пришествие, я был в восторге от него и использовал его примерно 3 года. Но сомнения потихоньку закрадывались, и сегодня, спустя годы, я должен стать столь же честным, сколь был восторженным, и признаться — у меня есть сомнения в жизнеспособности Flutter.

Позвольте мне начать с того, что концептуально Flutter по-прежнему — на мой взгляд — лучший кроссплатформенный фреймворк всех времен, и прямо сейчас я не вижу никакой реальной альтернативы. Хотя, никогда не говори никогда. Мы также не видели альтернативы до тех пор, пока не появился Flutter. Скептики также утверждали, что он никогда не приживется, пока это не произошло. И я был бы слишком самонадеянным, чтобы утверждать, что Flutter станет последней кроссплатформенной средой разработки.

Мои растущие сомнения относительно Flutter не имеют ничего общего с самим Flutter. Они все вокруг него.

• Владелец Flutter, Google
• Kotlin Multiplatform
• Фрагментация
• Dart
• Исполнение
• Является ли Flutter хорошим выбором?

Статья: https://apptractor.ru/develop/cross-platform-development/ya-razlyubil-flutter.html
Платформа: кроссплатформа/Flutter
👏4👍2🔥1😁1
Yattee - видеоплеер, ориентированный на конфиденциальность, для iOS, tvOS и macOS. Сделан на SwiftUI, из фич - очередь просмотра и история, кастомные контролы для плеера, жесты, поддержка 4К, картинка в картинке, фоновое воспроизведение аудио.

Yattee на GitHub: https://github.com/yattee/yattee
Платформа: iOS
⭐️: 1.2K
Circuit - это простая, легкая и расширяемая архитектура от Slack для создания приложений Kotlin, основанных на Compose. Основными компонентами Circuit являются интерфейсы Presenter и UI. Правила их работы:

1. Presenter и UI не могут напрямую обращаться друг к другу. Они могут обмениваться данными только посредством передачи состояний и событий.
2. UI являются Compose-firstю
3. Презентеры тоже Compose-first. Они не генерируют Compose UI, но используют среду выполнения Compose для управления и генерирования состояний.
4. И Presenter, и UI имеют по одной компонуемой функции.
5. В большинстве случаев Circuit автоматически подключает презентеров и UI.
6. Presenter и UI являются дженериками, причем дженерики определяют типы UiState, с которыми они взаимодействуют.
7. Они управляются Screen-ами. Один запускает новую пару Presenter/Ui, запрашивая их с заданным Screen, который они понимают.

Circuit на GitHub: https://github.com/slackhq/circuit
Сайт: https://slackhq.github.io/circuit/
Платформа: Android
⭐️: 562
Теория «разбитых окон» в разработке ПО

Если не принимать никаких мер, технический долг начинает расти, и окна все больше разбиваются. Проблемы распространяются в коде через имитацию («Я только что скопировал этот подход»), повторение (неверные предположения) или просто копирование + вставку.

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

Статья: https://apptractor.ru/okn-brk
Платформа: разработка
This media is not supported in your browser
VIEW IN TELEGRAM
SpoilerViewExample - пример реализации затемнения и открытия спойлеров в Telegram на SwiftUI.

SpoilerViewExample на GitHub: https://github.com/artemnovichkov/SpoilerViewExample
Платформа: iOS
⭐️: 4
MilitaryJet - репозиторий включает в себя готовые примеры простого написания тестов UI для Jetpack Compose с защитой от ошибок. Каждый компонент пользовательского интерфейса, их возможное поведение и состояние можно подвергнуть тестированию. С помощью этого репозитория вы можете выполнять любое автоматизированное тестирование пJetpack Compose UI — т. е. вы можете тестировать ВСЕ (как видимое, так и невидимое, т. е. вещи, которые не видны в пользовательском интерфейсе, но существуют в узле — например, описание контента) в пользовательском интерфейсе.

MilitaryJet на GitHub: https://github.com/emperorfin/MilitaryJet
Платформа: Android
⭐️: 8
1 апреля пройдёт Yet Another Mobile Party — онлайн-стрим про мобильную разработку от Яндекса с гостями из разных компаний.

Yet Another Mobile Party — онлайн видеоподкаст без докладов и презентаций Спикеры Яндекса и наши гости из других компаний соберутся за круглым столом, поделятся новостями, обсудят карьерный путь и актуальные технологии.

Ищите на карточках темы и спикеров прямого эфира:)

А чтобы присоединиться и задать свои вопросы спикерам, нужно — зарегистрироваться и подключиться к трансляции 1 апреля

Программа и регистрация
🤡2
OpenAISwift - обертка для ChatGPT и OpenAI HTTP API. Упрощает использование чат-бота и позволяет получать дополнения для текста, вести диалог, генерировать изображения, редактировать тексты, проводить классификацию текстов.

OpenAISwift на GitHub: https://github.com/adamrushy/OpenAISwift
Платформа: iOS
⭐️: 922
Современная Android-разработка в 2023 году

Всем привет, я хотел бы поделиться с вами тем, как создавать приложения для Android с учетом последних тенденций 2023 года:

• Kotlin
• Jetpack Compose
• Android Jetpack
• Material Design
• Чистая архитектура
• Архитектурные паттерны для уровня представления
• Внедрение зависимостей
• Модульность
• Сеть
• Сериализация
• Загрузка изображения
• Реактивность/управление потоками
• Локальное хранение данных
• Тестирование
• Оптимизация R8
• Play Feature Delivery
• Адаптивная верстка
• Производительность
• Обновления в приложении
• Отзывы в приложении
• Доступность
• Безопасность
• Каталоги версий
• Логирование
• Линтер

Статья: https://apptractor.ru/drddev2023
Платформа: Android
Smart AutoClicker - это приложение для Android, позволяющее автоматизировать повторяющиеся задачи, автоматически кликая на экран. В отличие от обычного приложения автокликер не основан на таймерах для выполнения кликов. Вместо этого приложение позволяет захватить изображение с части экрана и выполнить тап, как только это изображение будет обнаружено снова. Клики можно организовывать в сценарии, выполнять нажатия, свайпы, модифицировать состояния, ставить условия и пр.

Smart AutoClicker на GitHub: https://github.com/Nain57/Smart-AutoClicker
Платформа: Android
⭐️: 581
👍2