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

Вам никогда не казалось, что вашей работе над кодом не помешали бы улучшения? IDE предлагают целый ряд инструментов, которые облегчают разработку программного обеспечения: от компиляции до отладки и не только. Однако можно легко упустить некоторые важные функции. В этой статье я познакомлю вас с четырьмя ценными инструментами Android Studio/IntelliJ IDEA, которые, возможно, не так широко известны среди разработчиков. Давайте вместе изучим эти инструменты и посмотрим, как они могут улучшить ваш опыт разработки.

1. Живые шаблоны (Live Templates)
2. Анализ потока данных (Analyze Data Flow)
3. Инструменты рефакторинга
4. Постфикс дополнение (Postfix Completion)

Статья: https://apptractor.ru/info/articles/programmiruem-luchshe-4-neizvestnyh-instrumenta-v-android-studio.html
Платформа: Android
Вопросы с собеседований: В чем разница между LinkedList и ArrayList

LinkedList и ArrayList - это две различные реализации списка в языке программирования Java (и не только). Они предоставляют разные подходы к хранению и управлению коллекциями элементов.

ArrayList:

• ArrayList представляет собой динамический массив, который автоматически расширяется или уменьшается по мере добавления или удаления элементов.
• Элементы ArrayList хранятся в последовательных ячейках памяти, и к ним можно получить доступ по индексу. Это обеспечивает быстрый доступ к элементам по индексу, но может быть медленным при вставке или удалении элементов в середине списка.
• ArrayList требует меньше памяти в сравнении с LinkedList, так как он хранит только значения элементов и минимальную дополнительную информацию.

LinkedList:

• LinkedList реализован как двусвязный список, где каждый элемент содержит ссылки на предыдущий и следующий элементы. Это обеспечивает эффективные операции вставки и удаления в середине списка.
• В отличие от ArrayList, LinkedList не обеспечивает прямой доступ к элементам по индексу, и для доступа к элементам требуется проход по списку с начала или конца.
• LinkedList требует дополнительной памяти для хранения указателей между элементами.

Подробнее: https://apptractor.ru/info/techhype/voprosy-s-sobesedovaniy-v-chem-raznitsa-mezhdu-linkedlist-i-arraylist.html
Платформа: Android
Другие: вопросы
Открытая книга по машинному обучению

The Machine Learning Engineering Open Book - это открытая коллекция методик, помогающих успешно обучать большие языковые и мультимодальные модели. Материал подходит для инженеров, занимающихся обучением LLM/VLM. Книга содержит множество скриптов и copy-paste команд, позволяющих читателям быстро решать свои задачи. В книге рассматриваются основные аппаратные компоненты, производительность, оперирование, разработка и многое другое.

GitHub: https://github.com/stas00/ml-engineering?tab=readme-ov-file
Платформа: разработка
⭐️: 5.6K
Тема Win9x для Jetpack Compose

Это захватывающий момент для Material Design и Jetpack Compose!

GitHub: https://github.com/nassendelft/compose-win9x-theme
Платформа: Android
⭐️: 83
👍2
Winlator - это приложение для Android, позволяющее запускать приложения Windows (x86_64) с помощью Wine и Box86/Box64.

Winlator на GitHub: https://github.com/brunodev85/winlator
Платформа: Android
⭐️: 3K
👍1🔥1
Проект Sensenmann: удаление кода в масштабе Google

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

Статья: https://apptractor.ru/info/articles/proekt-sensenmann-udalenie-koda-v-masshtabe.html
Платформа: разработка
OutRun - это приложение для iOS, позволяющее записывать и просматривать ваши тренировки. Несмотря на название, оно поддерживает не только бег, но и ходьбу, походы, езду на велосипеде и катание на коньках. Проект полностью с открытым исходным кодом и не содержит рекламы.

OutRun на GitHub: https://github.com/timfraedrich/OutRun
Платформа: iOS
⭐️: 622
Заводим Яндекс Карты в Compose Multiplatform

В одном проекте, который мы решили делать полностью с использованием Compose Multiplatform, была поставлена задача реализовать работу Яндекс Карт. Приложение для сети сервисных центров, поэтому на карте должны отображаться метки СТО, а также собственная метка пользователя для вызова мастера на место.

Статья: https://habr.com/ru/articles/788554/
Платформа: кроссплатформа
👍1
Моя малышка все еще любит самолеты — и я улучшил для нее радар

Продолжение статьи про создание приложения-радара для собственного ребенка.

"Моя малышка любит самолеты — и я сделал для нее радар” — это, безусловно, лучшая вещь, которую я написал. Мне удалось попасть в ту самую «золотую середину» между полезным и техническим, и мое искреннее удовольствие от проекта просвечивало в рассказе. Казалось бы, как предприимчивый инди-разработчик, я должен был сразу же вскочить на волну хайпа, выпустить очередной релиз и начать мечтать о монетизации...


Статья: https://apptractor.ru/info/articles/moya-malyshka-vse-esche-lyubit-samolety-i-ya-uluchshil-dlya-nee-radar.html
Платформа: инди-разработка/iOS
Упрощаем локализацию iOS-приложения со String Catalogs

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

Сегодня я расскажу о том, как можно в значительной мере облегчить и усовершенствовать процесс перевода iOS-приложения на другие языки. Языки, разумеется, человеческие: от Swift мы отказываться не будем.

Статья: https://habr.com/ru/articles/788614/
Платформа: iOS
🔥1
Bottom Dialog Android Picker - панель для выбора файлов, как в Telegram, для всех версий Android. В нем есть поиск, разворачиваемый и прокручиваемый диалог, полная настройка (цвет, текст, минимальный и максимальный размер выбранного файла), не требует runtime разрешения.

Bottom Dialog Android Picker на GitHub: https://github.com/mahdiasd/ComposeBottomDialogFilePicker
Платформа: Android
⭐️: 4
Новая пятничная подборка - видео и подкасты за неделю:

(iOS En) Bring 3D to your App: Developing Native iOS Apps with Spline
(iOS En) SwiftUI Dock Progress Bar for macOS
(iOS En) SwiftData Background Tasks: Massively Improve Your Apps Performance
(iOS En) Source Control with Xcode: Branching and Merging
(iOS En) Unit Testing a SwiftUI Application using Xcode
(iOS En) From Challenge to Joy: My Journey Developing Tuist for Scalable Xcode Projects
(And En) Now in Android: 98 - Gemini Pro, Google AI SDK, Google AI Studio, Cast, Rust, and more!
(And En) How to Implement Firebase Push Notifications on Android (FCM + Backend)
(And En) How to Create an App Shortcut on Android
(And En) How to automatically test a Google Play Subscription
(Crs Ru) Позиция — KMP разработчик: Кирилла Розова собеседует Алексей Гладков
(Crs Ru) Flutter Dev Podcast #42: как стать Flutter-разработчиком? Часть 1
(Dev Ru) Разработка под Аврору
(Dev Ru) Безопасность приложений
(Dev Ru) Cracking the Mobile Interview
(Dev Ru) Как тимлиду оценить успешность в своей роли
(Dev Ru) Почему так мало женщин в IT?
(Dev Ru) Podlodka: Про дипфейки, этику и цену прогресса
(Dev En) LangChain GEN AI Tutorial – 6 End-to-End Projects using OpenAI, Google Gemini Pro, LLAMA2
(Dev En) Python Data Analysis and Visualization Course

Что вы посмотрели/послушали интересного про разработку? Киньте ссылку в комментарии.

🌐 AppFiles
👍1
Просто об архитектуре в Android

Меня зовут Артем, я Android developer BSL. В данной статье я рассмотрю один из возможных путей - простота и гармоничность на основе Clean Architecture. Важно понимать, что это всего лишь один из вариантов, который основан на моем личном видении. В мире разнообразных подходов не существует идеала, и, возможно, именно в этом заключается привлекательность процесса разработки - в бесконечных спорах и поиске оптимального решения.

Статья: https://habr.com/ru/companies/bsl/articles/788940/
Платформа: Android
Как через Push-уведомления на iPhone утекают данные пользователей

Исследователь безопасности Томми Мыск продемонстрировал, как push-уведомления на iPhone могут использоваться популярными приложениями для скрытой отправки данных о пользователе.

Новость и видео: https://apptractor.ru/info/news/kak-cherez-push-uvedomleniya-na-iphone-utekayut-dannye-polzovateley.html
Платформа: iOS
Проект Gemini Android демонстрирует использование генеративного ИИ Google на Android с помощью Stream Chat SDK для Compose (напомню, что есть и официальный пример использования Gemin от Google). Цель этого репозитория - демонстрация Gemini API для Android, реализация всего UI с помощью Jetpack Compose, реализация компонентов архитектуры Android с помощью библиотек Jetpack, таких как Hilt и AppStartup, выполнение фоновых задач с помощью Kotlin Coroutines, интеграция чат-системы с Stream Chat Compose SDK для обработки событий в реальном времени.

Gemini Android на GitHub: https://github.com/skydoves/gemini-android
Платформа: Android
⭐️: 145
👍2
Как я приложение на Compose писал

Было решено сделать какой-то небольшой проект на котором полноценно смогу обкатать подход. Делать что-то бесполезное не хотелось, поэтому нужно было определиться с темактикой. Долго думать не пришлось, был у меня в жизни очень неприятный прецедент с утечкой моих данных, который привел к печальным последствиям. Некоторая компания N профукала мои пароли, которыми позже воспользовались неблагочестивые граждане нашего с вами общества. Поэтому решение было очевидным: делать приложение, которому я смогу доверять в плане хранения информации и уже на нем полноценно обкатать Compose (выжать из него всевозможные соки, на сколько сил и мозгов хватит).

Статья: https://habr.com/ru/articles/789428/
Платформа: Android
Что такое шейдер

Шейдер в компьютерной графике — это программный модуль, который используется для определения внешнего вида объектов и их поведения в трехмерной графике. Основная задача шейдеров — создание эффектов освещения, цвета, текстурирования и других визуальных аспектов, которые формируют конечное изображение на экране. На платформе Android с использованием языка программирования Kotlin, шейдеры обычно используются в контексте OpenGL ES (в версии 2.0 или выше) или Vulkan API для реализации графики на уровне GPU.

В iOS 17 стало возможным добавить шейдер к любой View. На платформе шейдеры применяются в контексте OpenGL ES или Metal API. Оба эти API предоставляют инструменты для создания высокопроизводительной графики на устройствах Apple.

На платформе Android шейдеры обычно используются в контексте OpenGL ES (в версии 2.0 или выше) или Vulkan API для реализации графики на уровне GPU.

Статья: https://apptractor.ru/info/articles/chto-takoe-sheyder.html
Платформа: разработка
Курс по большим языковым моделям

Курс по изучению (основы/исследователь/инженер) LLM с роадмапами, списками материалов и блокнотами Colab.

Курс на GitHub: https://github.com/mlabonne/llm-course
Платформа: обучение
This media is not supported in your browser
VIEW IN TELEGRAM
Hand Shadows - эта библиотека позволяет быстро и легко интегрировать в приложение тени рук, которые следуют за жестами в реальном времени. По идее, это позволяет записывать более описательные и интуитивно понятные демонстрационные видео.

Hand Shadows на GItHub: https://github.com/adamwulf/HandShadows
Платформа: iOS
⭐️: 184
10 нестандартных уроков, полученных за 10 лет работы инженером-программистом

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

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

1. Выбирайте обучение, а не деньги
2. Инвестируйте в принципы и практики
3. Станьте инженером, с которым все хотят работать
4. Разнообразьте свою жизнь
5. Относитесь к отзывам как к золоту
6. Сначала широкий уровень
7. Лидерство без титула
8. Думайте о сферах влияния
9. Наточите инструменты
10. Показывайте свою работу

Статья: https://apptractor.ru/info/articles/10-nestandartnyh-urokov-poluchennyh-za-10-let-raboty-inzhenerom-programmistom.html
Платформа: разработка/карьера