AppFiles - Mobile Development
1.99K subscribers
2.54K photos
33 videos
8 files
3.42K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
Лучший способ структурировать 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
Forwarded from inDrive.Tech
🔍 Предложите идеи по улучшению безопасности и инклюзивности ride-hailing-сервисов на хакатоне inCode

inDrive организует международное соревнование для инженеров, у которых есть идеи, как сделать поездки ещё безопаснее и доступнее для пользователей.

Приглашаем технических специалистов со всего мира поучаствовать в хакатоне inCode. Соберите команду от 1 до 6 человек, бросьте вызов несправедливости и разделите призовой фонд в размере €16,000.

Выберите одно из трёх направлений:

• Улучшение безопасности поездок для пассажиров и водителей;
• Повышение доступности для людей с ограниченными возможностями;
• Создание своего идеального ride-hailing-сервиса.

➡️ Зарегистрируйтесь на inCode 2023
Kamel - это библиотека асинхронной загрузки мультимедиа для Compose Multiplatform. Она предоставляет простой, настраиваемый и эффективный способ загрузки, кэширования, декодирования и отображения изображений в вашем приложении. По умолчанию для загрузки ресурсов используется клиент Ktor.

Kamel на GitHub: https://github.com/Kamel-Media/Kamel
Платформа: Android/кроссплатформа
⭐️: 220
Исследуем выделения кучи в Android в jemalloc 'new'

Jemalloc 'new' - это распределитель кучи libc, представленный в Android 10. Несмотря на общее название с jemalloc и некоторые функции, его бэкенд сильно отличается. Публичных исследований на эту тему не так много. Более того, несмотря на появление распределителя scudo в Android 11, многие устройства все еще используют "новый" jemalloc, в том числе и Samsung Galaxy S23. По всем этим причинам статья на эту тему кажется актуальной.

Статья: https://www.synacktiv.com/publications/exploring-android-heap-allocations-in-jemalloc-new
Платформа: Android
Почему Swift так медленно компилирует этот код?

Я написал простую функцию быстрой сортировки из 6 строк для бенчмарка Rust (1.65), Swift 5.7 и Python3.11.

• Длина массива составляет 999,999.
• Rust скомпилировался примерно за минуту, а время выполнения составило 2 секунды
• Время работы Python3.11 составило 5 секунд
• А Swift... он компилируется уже больше часа

Когда я пробовал для 99,999 чисел, компиляция заняла 4:30 минуты, а время выполнения составило 0,51 мс (по сравнению с 0,29 мс у Python и 0,12 мс у Rust с компиляцией за 2 секунды)

Обсуждение на форуме Swift: https://forums.swift.org/t/why-is-swift-so-slow-timeout-in-compiling-this-code/61382/11
Платформа: iOS/Swift
Food App SwiftUI - готовое приложение для доставки еды на SwiftUI, MVVM, Combine. Есть онбординг, категории, популярные блюда, рекомендации, просмотр конкретных карточек.

Food App на GitHub: https://github.com/YogeshPateliOS/FoodAppSwiftUI
Платформа: iOS
⭐️: 24
👍2
Как мы на 20% повысили скорость запуска приложения с помощью Baseline Profiles

В этой статье расскажу, как внедрить инструмент, оценить его работу на production приложении, немного погружу в историю компиляторов в целом и рассмотрю более продвинутые сценарии для генерации Profile.

Демонстрировать это я буду на нашем приложении Дринкит. Поехали!

Статья: https://habr.com/ru/companies/dododev/articles/739064/
Платформа: Android
Как найти причину любого сбоя в приложении для iOS

У вас когда-нибудь случались сбои, причину которых вы не могли определить и вообще не понимали, в чем дело? И никакое тестирование не позволяло воспроизвести проблему? Если да, то вы попали по адресу!

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

Статья: https://swiftrocks.com/how-to-solve-any-ios-crash-ever
Платформа: iOS
👍1
Material Files - открытый файловый менеджер с Material Design. Из особенностей - легковесность, чистота и безопасность, следование руководствам Material Design, поддержка архивов, темы, реализация на правильных вещах, включая Java NIO2 File API и LiveData.

Material Files на GitHub: https://github.com/zhanghai/MaterialFiles
Платформа: Android
⭐️: 3.4K
👍1
Как я стал Android-разработчиком в 40 лет

Теперь я руководитель отдела мобильной разработки и отвечаю за совместную работу мобильных команд и архитектуру. Наряду с технической должностью я должен участвовать в различных задачах руководства.

Я снова вернулся на этап, когда у меня не так много времени писать код и учиться во время работы. Но мне всё равно нравится моя работа и она всё ещё достаточно техническая по своей природе, просто на более высоком уровне технических деталей.

Статья: https://habr.com/ru/companies/beeline_tech/articles/739104/
Платформа: Android
👎2👍1
Нельзя просто взять и сделать нормальную адресную систему в приложении

Олды помнят, как ещё каких-то 10-15 лет назад заказывали пиццу по телефону, диктуя адрес операторам кол-центра. Мало кто тогда думал, что отсутствие подсказок адресов и карты на сайте с определением геолокации, а уж тем более в мобильном приложении, будет вызывать у нас реакцию «да сложно, что ли, нормальную карту сделать?».

Но вот мы здесь, рассказываем, как в Додо Пицце лишь недавно появилась уже привычная многим адресная система. Как так вышло — история долгая и не всем интересная. Скажу только, что переделывать и менять как-то работающее старое на новое в большой системе — тот ещё квест. В итоге нам пришлось зарыться достаточно глубоко во внутренности Dodo IS, чтобы можно было добавлять адреса с помощью карты. В этой статье расскажу, с чего мы начинали и как реализовали эту фичу в нашем iOS-приложении.

Статья: https://habr.com/ru/companies/dododev/articles/737800/
Платформа: iOS/разработка
LeetCode - сайт, содержащий множество практических задач по алгоритмам. Большинство из них - это реальные вопросы с собеседовании в Google, Facebook, LinkedIn, Apple и т.д. В этом репозитории LeetCode by Swift представлены решения задач на Swift (более 400 из примерно 1000), стиль кода строго соответствует RayWenderlich Swift Style Guide.

LeetCode by Swift на GitHub: https://github.com/soapyigu/LeetCode-Swift
Платформа: iOS
⭐️: 4.6K
Стала доступна бета Xcode 15

• Xcode 15 теперь на 50% меньше в Mac App Store, с возможностью загрузки симуляторов для всех платформ
• Проекты собираются быстрее благодаря улучшениям в компиляторе и совершенно новому компоновщику
• Ассеты локализации упорядочены в новом каталоге строк, что дает вам централизованный способ их просмотра и обновления
• Предварительные просмотры Xcode стали проще в использовании и теперь работают в SwiftUI, UIKit и AppKit
• Новая интерактивная временная шкала поможет вам в разработке и проектировании виджетов

Новость: https://apptractor.ru/info/news/stala-dostupna-beta-xcode-15.html
Платформа: iOS
Первый взгляд на разработку для visionOS

Рекламная Статья Apple с мнением разработчиков, уже попробовавших разработку для visionOS. Так как все, в основном, работает с уже достпуными фреймворками, проблем в создании новых приложений и игр, видимо, будет немного.

Перевод: https://apptractor.ru/info/articles/pervyy-vzglyad-na-razrabotku-dlya-visionos.html
Платформа: iOS
ADB Enhanced - это “швейцарский армейский нож” для тестирования и Android-разработки. Это обертка вокруг adb, а не замена. Предоставляет интерфейс командной строки для запуска различных сценариев, таких как поворот экрана, режим экономии батареи, режим экономии данных, doze режим, предоставление/отмена разрешений.

ADB Enhanced на GitHub: https://github.com/ashishb/adb-enhanced
Платформа: Android
⭐️: 1K
👍1