AppFiles - Mobile Development
1.99K subscribers
2.53K photos
33 videos
8 files
3.41K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
Macige - это готовые шаблоны рабочих процессов Continuous Integration, которые можно настраивать с помощью различных параметров. Поддерживаются воркфлоу GitHub Actions (в планах GitLab CI, Bitrise, Codemagic) для нативных приложений Android (iOS в планах), Flutter и React Native, создание отладочных и релизных сборок, кэширование для уменьшения времени сборки.

Macige на GitHub: https://github.com/tramlinehq/macige
Платформа: разработка
⭐️: 30
👍3
Retro Music Player - полноценный музыкальный плеер для Android в Material You дизайне. С поддержкой Chromecast, Android auto и кучей фич.

Retro Music Player на GitHub: https://github.com/RetroMusicPlayer/RetroMusicPlayer
Retro Music Player в Telegram: @retromusicapp
Платформа: Android
⭐️: 2.8K
Автоматизация обновлений зависимостей в проекте Compose

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

Статья: https://apptractor.ru/cmpzupdt
Платформа: Android
1
Factory - новый подход к внедрению зависимостей на основе контейнеров для Swift и SwiftUI. На Factory сильно повлиял SwiftUI, и он отлично подходит для использования в этой среде. Автор также говорит, что Factory адаптивный, мощный, быстрый, безопасный, лаконичный, гибкий, с хорошей документацией, легкий, протестированный и бесплатный.

Factory 2.0 на GitHub: https://github.com/hmlongco/Factory
Платформа: iOS
⭐️: 813
Используем keyboardLayoutGuide, чтобы защитить View от перекрытия клавиатурой

Сегодня я очень счастлив. Эта статья принесла мне радость, и вы поймете почему после небольшого рассказа. Мы рассмотрим новый способ решения очень старой проблемы, появившийся в iOS 15. Заключается она в положении UITextField при появлении клавиатуры.

Статья: https://apptractor.ru/keyboardlayoutguide
Платформа: iOS
👍2👏1
Scrcpy (читается как “screen copy”) - клиент-серверное приложение дублирует Android-устройства (видео и аудио), подключенные через USB или TCP/IP, на экране компьютера и позволяет управлять им с помощью клавиатуры и мыши. Оно не требует никакого root-доступа. Работает на Linux, Windows и macOS.

Scrcpy на GitHub: https://github.com/Genymobile/scrcpy
Платформа: Android
⭐️: 78.9K
4
ChatGPT для [Android] разработчиков — как использовать ИИ на практике

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

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

Статья: https://apptractor.ru/chatgptandroid
Платформа: разработка
👍2
Ktor — это асинхронный фреймворк для создания микросервисов, веб-приложений и многого другого. Написан на Kotlin с нуля. Awesome Ktor - список книг, учебных пособий, статей, курсов и ресурсов, посвященных экосистеме фреймворка Ktor.

Awesome Ktor на GitHub: https://github.com/mjovanc/awesome-ktor
Платформа: бэкенд
⭐️: 64
🔥2
Медиа за неделю

(iOS Ru) Умная камера: как встроить в iOS приложение распознавание текста для незрячих
(iOS Ru) Страх и ненависть в SwiftUI
(iOS Ru) Гайдлайны подписок
(iOS Ru) Как iOS анализирует наше здоровье: HealthKit, ResearchKit, CareKit, Activity
(iOS En) SwiftUI Shimmer Animation Effect
(iOS En) Explore Spatial Audio
(And Ru) Как написать свой DI-контейнер на Kotlin
(And En) Compose Layouts and Modifiers: Live Q&A - MAD Skills
(And En) Privacy Sandbox for Android
(And En) What's new in Android Vitals and ANR: A deep dive into Play's technical quality bar
(And En) Android at Google for Games Developer Summit '23
(And En) The FULL Beginner Guide for Room in Android
(And En) Full Guide to the Google Play Review API In Android
(And En) Android A/B testing
(Crs Ru) Flutter Dev Podcast #40: Flutter 3.7
(Anl Ru) Аналитика как продукт: измеряем метриками аналитику
(Anl Ru) Неубиваемая мобильная аналитика
(Dev Ru) Заказчики, платформы и технологии
(Dev Ru) Ключевые отличия между Junior, Middle и Senior разработчиками

Посмотрели какое-то другое интересное видео? Отправьте боту -> 🧑🏻‍💻
5 вещей, которые я узнал после решения более 500 задач на Leetcode

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

Статья: https://apptractor.ru/500leetcode
Платформа: программирование
👍1
Я много лет работаю в сфере технологий, но почти никогда не работал

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

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

Я знаю, что мое утверждение может показаться немного преувеличенным — как можно постоянно платить много денег людям, которые почти ничего не делают? Конечно, это не может быть правильно! Что ж, позвольте мне поделиться некоторыми примерами из моего собственного опыта.

Статья: https://emaggiori.com/employed-in-tech-for-years-but-almost-never-worked/
Перевод: https://apptractor.ru/info/articles/ya-mnogo-let-rabotayu-v-sfere-tehnologiy-no-pochti-nikogda-ne-rabotal.html
🔥1
Писать софт под 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