AppFiles - Mobile Development
1.99K subscribers
2.54K photos
33 videos
8 files
3.42K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
Coffee Drop - UI кофейного приложения, созданный с помощью Kotlin и Jetpack Compose. Дизайн вдохновлен концептом на Dribbble. Сам же код основан на Чистой архитектуре (или, по крайней мере, на ее понимании автором). Это не полнофункциональное приложение, скорее пример отработки пользовательского интерфейса.

Coffee Drop на GitHub: https://github.com/dev-xero/coffee-drop-ui
Платформа: Android
⭐️:26
Измерение задержки старта iOS-приложений в масштабе Uber

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

• Задержка при запуске
• Измерение времени запуска до iOS 15
• Измерение времени запуска с предварительным прогревом
• Объединение метрик на основе пользователя и сеанса
• Обработка данных MetricKit
• Заключение

Статья: https://apptractor.ru/info/articles/izmerenie-zaderzhki-starta-ios-prilozheniy-v-masshtabe-uber.html
Платформа: iOS/Отслеживание сбоев
Подготовка к собеседованиям для Android-разработчиков в 2023 году

Цель этой заметки - объяснить некоторые этапы типичного процесса собеседования для Android-разработчиков. Мы обсудим шаги, стратегии, цели и решения. Это поможет вам лучше подготовиться к получению следующей роли.

Этот блог основан на личном опыте, предупреждаю заранее, что ваш опыт может быть совершенно другим, но я прошел через множество процессов собеседования и могу с уверенностью сказать, что все они в конечном итоге следуют одной и той же структуре. Просто некоторые компании опускают одни части и добавляют другие. Как пряный соус для собеседования.

Статья: https://blog.blundellapps.co.uk/proven-prepping-for-easy-android-interviews-in-2023/
Платформа: Android
👍2
AWS Amplify предоставляет декларативный и простой в использовании интерфейс для различных облачных операций. Реализация по умолчанию работает с Amazon Web Services (AWS), но AWS Amplify разработан как открытый и подключаемый к любому кастомному бэкенду или сервису.

Библиотека Amplify для Swift опирается на AWS SDK для Swift, который был выпущен в качестве Developer Preview в прошлом году. Это позволяет получить доступ к широкому спектру API: аналитика, GraphQL и REST, аутентификация, онлайн база данных, геолокация, хранение объектов в облаке.

AWS Amplify на GitHub: https://github.com/aws-amplify/amplify-swift
Платформа: iOS
⭐️: 347
Лучший способ структурировать iOS-проект

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

Статья: https://levelup.gitconnected.com/the-best-way-to-struct-your-ios-project-a2daee7dcb45
Платформа: iOS
👍2
От идеи к реализации: разработка анимированной карусели с помощью Jetpack Compose

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

Статья: https://levelup.gitconnected.com/animated-carousel-with-jetpack-compose-7406a5a2b246
Платформа: Android
👍2
Reader - мультиплатформенный (iOS и Android) RSS-ридер, сделанный на Kotlin Mutliplatform и Compose Multiplatform. Кроме них из большого есть Ktor, SQLDelight, Decompose и Kotlin-inject.

Reader на GitHub: https://github.com/msasikanth/reader
Платформа: кроссплатформа
⭐️: 85
OpenAI API client for Kotlin - клиент для API OpenAI с возможностями мультиплатформенной работы и корутинами. Может работать со множеством режимов - дополнение, чатом, редактирование, генерацией изображений и т.п. В исходниках есть пример готового приложения.

OpenAI API client for Kotlin на GitHub: https://github.com/aallam/openai-kotlin
Платформа: Android (напомню, что есть такое и для Swift - вот, например)
⭐️: 714
👍3
Самоучитель программирования Dart для абсолютных новичков

В этом 8-часовом курсе мы погрузимся в язык программирования Dart. Этот курс разработан таким образом, чтобы его могли пройти начинающие программисты, программисты с опытом кодирования на каком-либо другом языке и вообще не программисты. Flutter использует Dart и позволяет создавать приложения для iOS, Android, Web и Desktop с единой кодовой базой. Таким образом, важно освоить Dart, прежде чем переходить к Flutter.

Видео: https://www.youtube.com/watch?v=Fqcsow_7go4
Платформа: программирование
1
Как протестировать компонент навигации в Jetpack Compose?

Тестирование важно для гарантии того, что ваш код ведет себя так, как ожидается, и для повышения качества вашего проекта путем выявления ошибок на ранних стадиях процесса разработки. В этой статье мы узнаем, как протестировать компонент Navigation в Jetpack Compose.

Статья: https://medium.com/huawei-developers/how-to-test-the-navigation-component-in-jetpack-compose-1ab4ccaba761
Платформа: Android
This media is not supported in your browser
VIEW IN TELEGRAM
Highlightr - это библиотека подсветка синтаксиса для iOS и macOS, созданная на Swift. Она использует highlight.js в качестве ядра, поддерживает 185 языков и поставляется с 89 стилями. Принимает вашу строку с кодом и возвращает NSAttributtedString с правильной подсветкой синтаксиса.

Highlightr на GitHub: https://github.com/raspu/Highlightr
Платформа: iOS
⭐️: 1.5K
Async/await против GCD

Всем привет, меня зовут Маринин Алексей и я работаю в компании Озон на позиции ведущего разработчика мобильных приложений. Сегодня я хотел бы немного поговорить о том, как async/await могут улучшить нашу жизнь, заменив привычные инструменты.

Статья: https://apptractor.ru/info/articles/async-await-protiv-gcd.html
Платформа: iOS
Как не писать сетевой слой в Android-приложениях с помощью автоматической генерации OpenAPI

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

Статья: https://habr.com/ru/articles/737010/
Платформа: Android
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Mina Box - библиотека “ленивой загрузки” для Jetpack Compose. Mina box позволяет отображать постепенно загружаемые элементы на 2D-плоскости. Она построена на основе LazyLayout и предоставляет методы для регистрации элементов и обработки прокрутки на плоскости. Поверх нее уже сделано несколько проектов, например, для ленивой загрузки таблиц.

Mina Box на GitHub: https://github.com/oleksandrbalan/minabox
Платформа: Android
⭐️: 54
Начинаем работу с Detekt, статическим анализатором кода для Android

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

С помощью инструмента под названием Detekt вы можете выполнить любые проверки классов, написанных на Kotlin, запустить процесс ревью кода в любое время (например, перед коммитом) и сэкономить время.

Статья: https://apptractor.ru/info/articles/nachinaem-rabotu-s-detekt-staticheskim-analizatorom-koda-dlya-android.html
Платформа: Android
👍2
Лучший способ структурировать iOS-проект

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

Статья: https://apptractor.ru/info/articles/luchshiy-sposob-strukturirovat-ios-proekt.html
Платформа: iOS
This media is not supported in your browser
VIEW IN TELEGRAM
Офер в Яндекс за два дня

Приходите на Weekend Offer Mobile 17–18 июня. Всего за 2 дня можно пройти все технические секции, пообщаться с нанимающими командами и получить офер.

Ищем мобильных разработчиков на iOS, Android и Flutter с опытом от 3 лет. Приглашаем в один из наших офисов в России и Беларуси, также нанимаем в международные хабы в Армении, Казахстане и Сербии.

Регистрация заканчивается 12 июня.

Подробности ищите здесь
💩5👍2
Dot Globe - глобус из точек на SceneKit и Metal. Применим в UIKit и SwiftUI, можно менять цвета, мерцание, размеры, включать и выключать частицы.

Dot Globe на GitHub: https://github.com/inventhq/dot-globe
Платформа: iOS
⭐️: 54
«Этот маленький остров меняет все» — опыт проектирования Live Activity в Lyft

Для нас Live Activities — это не просто новый виджет, мы рассматриваем его как совершенно новый способ получить удовольствие от поездки с Lyft на iOS.

Статья: https://apptractor.ru/info/articles/etot-malenkiy-ostrov-menyaet-vse-opyt-proektirovaniya-live-activity-v-lyft.html
Платформа: iOS/дизайн
This media is not supported in your browser
VIEW IN TELEGRAM
Jetpack Compose: HorizontalPager с PagerIndicator и бесконечной прокруткой

Пример реализации бесконечной листалки с индикатором на Jetpack Compose.

Статья: https://medium.com/@k.ibrushi/jetpack-compose-horizontalpager-with-pagerindicator-infinity-scroll-32f6e9357974
Платформа: Android