Повышения производительности разработки в крупномасштабном iOS-приложении: опыт Airbnb
Хотя Xcode — это инструмент, с которым инженеры iOS чувствуют себя наиболее комфортно, мы обнаружили, что Xcode невозможно изящно масштабировать для кодовой базы нашего размера и сложности. Мало того, что файлы проекта Xcode сложно проверять в пул реквестах, но и частота конфликтов слияния и состояний гонки в этих файлах проекта увеличивалась по мере того, как большая группа инженеров двигалась в разработке с высокой скоростью. Даже открытие Xcode может превратиться в проблему с большой кодовой базой. Более года назад мы замерили, что Xcode требуется от одной до двух минут, чтобы стать интерактивным при загрузке рабочего пространства со всем нашим исходным кодом.
Перевод статьи: https://apptractor.ru/bnbios
Платформа: iOS
👋: 516
Хотя Xcode — это инструмент, с которым инженеры iOS чувствуют себя наиболее комфортно, мы обнаружили, что Xcode невозможно изящно масштабировать для кодовой базы нашего размера и сложности. Мало того, что файлы проекта Xcode сложно проверять в пул реквестах, но и частота конфликтов слияния и состояний гонки в этих файлах проекта увеличивалась по мере того, как большая группа инженеров двигалась в разработке с высокой скоростью. Даже открытие Xcode может превратиться в проблему с большой кодовой базой. Более года назад мы замерили, что Xcode требуется от одной до двух минут, чтобы стать интерактивным при загрузке рабочего пространства со всем нашим исходным кодом.
Перевод статьи: https://apptractor.ru/bnbios
Платформа: iOS
👋: 516
RealFlags - библиотека для работы с фиче флагами, упрощает настройку флагов в вашей кодовой базе. Она разработана для Swift и обеспечивает простой и элегантный уровень абстракции для множества провайдеров (например, FirebaseRemoteConfig), которых вы можете опрашивать с вашим собственным приоритетом. RealFlags также поставляется с удобным инструментом для просмотра и изменения значений непосредственно во время работы приложения.
Проект на GitHub: https://github.com/immobiliare/RealFlags
Платформа: iOS
⭐️: 47
Проект на GitHub: https://github.com/immobiliare/RealFlags
Платформа: iOS
⭐️: 47
Kotlin Flow во ViewModel-ях: все сложно
Загрузка UI данных в приложениях Android может быть сложной задачей. Необходимо учитывать жизненные циклы различных экранов, а также изменения конфигурации, ведущие к разрушению и воссозданию Activity.
Отдельные экраны приложения постоянно переключаются между интерактивным и скрытым состоянием, когда пользователь перемещается по приложению туда и обратно, переключается с одного приложения на другое или экран устройства блокируется или разблокируется. Каждый компонент должен играть честно и активно работать только тогда, когда ему отдают мяч.
Изменения конфигурации происходят в различных случаях: при изменении ориентации устройства, переключении приложения в многооконный режим или изменении размера его окна, переключении в темный или светлый режим, изменении языкового стандарта или размеров шрифта по умолчанию и т.д.
Статья: https://apptractor.ru/ktlnfl
Платформа: Android
👋: 1.4K
Загрузка UI данных в приложениях Android может быть сложной задачей. Необходимо учитывать жизненные циклы различных экранов, а также изменения конфигурации, ведущие к разрушению и воссозданию Activity.
Отдельные экраны приложения постоянно переключаются между интерактивным и скрытым состоянием, когда пользователь перемещается по приложению туда и обратно, переключается с одного приложения на другое или экран устройства блокируется или разблокируется. Каждый компонент должен играть честно и активно работать только тогда, когда ему отдают мяч.
Изменения конфигурации происходят в различных случаях: при изменении ориентации устройства, переключении приложения в многооконный режим или изменении размера его окна, переключении в темный или светлый режим, изменении языкового стандарта или размеров шрифта по умолчанию и т.д.
Статья: https://apptractor.ru/ktlnfl
Платформа: Android
👋: 1.4K
Square Logcat - небольшой Kotlin API для логирования поверх нормального класса Log в Android. Сделан в Square для нужд своего PoS-приложения и пришел на замену Timber.
Библиотека на GitHub: https://github.com/square/logcat
Платформа: Android
⭐️: 560
Библиотека на GitHub: https://github.com/square/logcat
Платформа: Android
⭐️: 560
Xcodes.app - простой способ переключаться между некоторыми версиями Xcode. Выводит список всех доступных версий, устанавливает любую, запускает любую выбранную по клику. Есть версия для командной строки.
Проект на GitHub: https://github.com/RobotsAndPencils/XcodesApp
Платформа: iOS
⭐️: 1.5K
Проект на GitHub: https://github.com/RobotsAndPencils/XcodesApp
Платформа: iOS
⭐️: 1.5K
В пятницу - pet-проект на выходные 😀 Doom Checkboxes - настоящая игра Doom, которая рендерится в браузере с помощью чекбоксов.
Проект на GitHub: https://github.com/healeycodes/doom-checkboxes
Статья: https://healeycodes.com/doom-rendered-via-checkboxes
Платформа: веб
⭐️: 33
Проект на GitHub: https://github.com/healeycodes/doom-checkboxes
Статья: https://healeycodes.com/doom-rendered-via-checkboxes
Платформа: веб
⭐️: 33
Курс “Основы Android на Kotlin” завершен
Google всегда ищет способы сделать обучение разработке под Android доступным для всех. В 2020 году компания запустила бесплатный курс для самостоятельного изучения “Android Basics на Kotlin”. Сегодня выпущен последний модуль и теперь курс доступен от начала и до конца.
Курс: https://developer.android.com/courses/android-basics-kotlin/
Платформа: Android
Google всегда ищет способы сделать обучение разработке под Android доступным для всех. В 2020 году компания запустила бесплатный курс для самостоятельного изучения “Android Basics на Kotlin”. Сегодня выпущен последний модуль и теперь курс доступен от начала и до конца.
Курс: https://developer.android.com/courses/android-basics-kotlin/
Платформа: Android
OnboardKit - листаемые экраны для онбординга на Swift. С помощью библиотеки можно просто создать несколько экранов (текст, изображение, кнопка) и показать их пользователю с листанием.
Библиотека на GitHub: https://github.com/NikolaKirev/OnboardKit
Платформа: iOS
⭐️: 407
Библиотека на GitHub: https://github.com/NikolaKirev/OnboardKit
Платформа: iOS
⭐️: 407
Facebook открыл статический анализатор кода для Android — Mariana Trench
Facebook открыл исходный код Mariana Trench (“Марианская впадина”), инструмента, который используется в компании для выявления и предотвращения ошибок безопасности и конфиденциальности в приложениях Android и Java. Помимо создания системы статического анализа, Facebook также создал инструмент с открытым исходным кодом для просмотра и анализа полученных результатов. Это Static Analysis Post Processor (Постпроцессор статического анализа, SAPP). SAPP берет исходные данные из Mariana Trench и наглядно демонстрирует, как данные могут потенциально перетекать из источника в приемники, чтобы эксперты могли понять оценку инструмента.
Новость: https://apptractor.ru/info/news/mariana-trench.html
GitHub: https://github.com/facebook/mariana-trench
Платформа: Android
⭐️: 581
Facebook открыл исходный код Mariana Trench (“Марианская впадина”), инструмента, который используется в компании для выявления и предотвращения ошибок безопасности и конфиденциальности в приложениях Android и Java. Помимо создания системы статического анализа, Facebook также создал инструмент с открытым исходным кодом для просмотра и анализа полученных результатов. Это Static Analysis Post Processor (Постпроцессор статического анализа, SAPP). SAPP берет исходные данные из Mariana Trench и наглядно демонстрирует, как данные могут потенциально перетекать из источника в приемники, чтобы эксперты могли понять оценку инструмента.
Новость: https://apptractor.ru/info/news/mariana-trench.html
GitHub: https://github.com/facebook/mariana-trench
Платформа: Android
⭐️: 581
Einsen - это приложение для определения приоритетов, которое использует технику матрицы Эйзенхауэра в качестве рабочего процесса для определения приоритетов в списке задач. Создано оно для демонстрации использования Jetpack Compose с современными компонентами архитектуры Android и архитектурой MVVM.
Проект на GitHub: https://github.com/Spikeysanju/Einsen
Платформа: Android
⭐️: 158
Проект на GitHub: https://github.com/Spikeysanju/Einsen
Платформа: Android
⭐️: 158
Как мы автоматизируем iOS: настройка Gitlab CI + Fastlane + Firebase + ItunesConnect
В этой статье я хочу подробно рассказать о пути настройки Gitlab CI + Fastlane + Firebase + Testflight. Примеры приводятся на основе одного проекта, в котором участвовали 10 разработчиков. В конце будут описаны проблемы, с которыми мы сталкивались, и их решения.
Для кого будет полезен этот опыт? Для всех, кому нужен CI/CD и кто сидит на Gitlab. Для Github будет другая связка, например с Travis, — остальные компоненты неизменны. В нашей команде все используют Gitlab CI, Fastlane вместо голого xcodebuild для быстроты и удобства разработки, Firebase и Testflight.
Статья: https://apptractor.ru/cicdios
Платформа: iOS
⬆️: +12
В этой статье я хочу подробно рассказать о пути настройки Gitlab CI + Fastlane + Firebase + Testflight. Примеры приводятся на основе одного проекта, в котором участвовали 10 разработчиков. В конце будут описаны проблемы, с которыми мы сталкивались, и их решения.
Для кого будет полезен этот опыт? Для всех, кому нужен CI/CD и кто сидит на Gitlab. Для Github будет другая связка, например с Travis, — остальные компоненты неизменны. В нашей команде все используют Gitlab CI, Fastlane вместо голого xcodebuild для быстроты и удобства разработки, Firebase и Testflight.
Статья: https://apptractor.ru/cicdios
Платформа: iOS
⬆️: +12
SwiftyWalkthrough - это библиотека для создания отличных пошаговых инструкций в ваших приложениях, написанная на Swift. Вы можете использовать библиотеку, чтобы пользователи могли перемещаться и исследовать ваше приложение, шаг за шагом, предопределенным способом, контролируемым вами. SwiftyWalkthrough работает, добавляя оверлей поверх экрана, блокируя доступ к вашим View, и вы можете контролировать, какие части экрана должны быть доступны и когда.
Проект на GitHub: https://github.com/ruipfcosta/SwiftyWalkthrough
Платформа: iOS
⭐️: 343
Проект на GitHub: https://github.com/ruipfcosta/SwiftyWalkthrough
Платформа: iOS
⭐️: 343
Kotlin Multiplatform Mobile (KMM) - это SDK, предназначенный для упрощения создания кроссплатформенных мобильных приложений. С помощью KMM вы можете использовать общий код для приложений iOS и Android и писать код для конкретной платформы только там, где это необходимо. Например, для реализации собственного пользовательского интерфейса или при работе с API, зависящими от платформы. Awesome KMM - список лучших библиотек, инструментов и обучающих материалов, касающихся Kotlin Multiplatform Mobile.
Проект на GitHub: https://github.com/terrakok/kmm-awesome
Платформа: iOS/Android
⭐️: 317
Проект на GitHub: https://github.com/terrakok/kmm-awesome
Платформа: iOS/Android
⭐️: 317
Forwarded from Mobile Development by AppTractor
#ДатаДня: Tech Talks от Apple пройдут с 25 октября по 17 декабря и будут включать как доклады в прямом эфире, так и индивидуальные встречи с экспертами. На этой виртуальной конференции вы сможете узнать больше о последних технологиях, задать вопросы и получить рекомендации от разработчиков компании. Начнутся Tech Talks уже 25 октября, расписание ближайших сессий (до 5 ноября) уже доступно на сайте. Новые доклады и индивидуальные сессии будут открываться каждые две недели. Все доклады Tech Talks будут включать живую презентацию по какой-либо теме, с последующими вопросами и ответами или круглым столом, а в рабочее время эксперты Apple также будут общаться с разработчиками один на один.
Всем привет!
Нам нужен говорливый Android разработчик на круглый стол в предверии хакатона от БКС https://bcscd.sk.ru
Тема круглого стола: «Подходы к документированию кода»
Сегодня в течение дня ждем ваших откликов, формируем шорт-лист - @Lizaveta_shilina.
Нам нужен говорливый Android разработчик на круглый стол в предверии хакатона от БКС https://bcscd.sk.ru
Тема круглого стола: «Подходы к документированию кода»
Сегодня в течение дня ждем ваших откликов, формируем шорт-лист - @Lizaveta_shilina.
Validator - всеобъемлющая проверка пользовательского ввода на Swift. Предлагает множество правил для проверки (диапазон, равенство, паттерн, содержит и т.п.), работает с UIKit, покрывается тестами.
Библиотека на GitHub: https://github.com/adamwaite/Validator
Платформа: iOS
⭐️: 1.4К
Библиотека на GitHub: https://github.com/adamwaite/Validator
Платформа: iOS
⭐️: 1.4К
Simple Stack - фреймворк навигации (backstack) для более простого управления состоянием приложения (для фрагментов, view или чего угодно). Девиз - “Предсказуемая и настраиваемая навигация в одном месте”.
Библиотека на GitHub: https://github.com/Zhuinden/simple-stack/
Платформа: Android
⭐️: 1.1К
Библиотека на GitHub: https://github.com/Zhuinden/simple-stack/
Платформа: Android
⭐️: 1.1К
GitHub
GitHub - Zhuinden/simple-stack: [ACTIVE] Simple Stack, a backstack library / navigation framework for simpler navigation and state…
[ACTIVE] Simple Stack, a backstack library / navigation framework for simpler navigation and state management (for fragments, views, or whatevers). - Zhuinden/simple-stack
Как я взломал приложение для Android, чтобы получить премиум-функцию
Иногда приложения пытаются использовать более простые пути и не следуют инструкциям и рекомендациям Google. Это означает, что иногда они отказываются от проверки ранее приобретенных элементов при запуске приложения, тем самым оставляя для любого злоумышленника дверь открытой. Делать что-то на устройстве — всегда плохая идея.
Приведенный ниже рассказ применим к широкому кругу приложений и такого рода внедрения могут выполняться на разных уровнях. В этой статье делается попытка подчеркнуть очевидные болевые точки и рекомендовать решения.
Перевод статьи: https://apptractor.ru/drdhck
Платформа: Android
👋: 540
Иногда приложения пытаются использовать более простые пути и не следуют инструкциям и рекомендациям Google. Это означает, что иногда они отказываются от проверки ранее приобретенных элементов при запуске приложения, тем самым оставляя для любого злоумышленника дверь открытой. Делать что-то на устройстве — всегда плохая идея.
Приведенный ниже рассказ применим к широкому кругу приложений и такого рода внедрения могут выполняться на разных уровнях. В этой статье делается попытка подчеркнуть очевидные болевые точки и рекомендовать решения.
Перевод статьи: https://apptractor.ru/drdhck
Платформа: Android
👋: 540
Instant - разрабатываемая социальная сеть. Стек: Kotlin, Jetpack Compose, MVVM, Room, Koin, Firebase.
Проект на GitHub: https://github.com/EBfVince/Instant
Платформа: Android
⭐️: 3
Проект на GitHub: https://github.com/EBfVince/Instant
Платформа: Android
⭐️: 3
Зачастую при локализации проектов в Xcode на создание и управление файлами Localizable.strings уходит много времени и сил. Localizable Generator - скрипт, который скачивает готовую электронную таблицу с переводами с Google Drive и парсит ее в Localizable.strings. Можно привязать запуск скрипта с созданию билда и так строки будут получаться автоматически.
Проект на GitHub: https://github.com/jrescabias/Localizable-Generator
Платформа: iOS
⭐️: 5
Проект на GitHub: https://github.com/jrescabias/Localizable-Generator
Платформа: iOS
⭐️: 5