Как в Dropbox сделали загрузку с камеры в Android быстрее и надежнее
До недавнего времени загрузка с камеры была основана на библиотеке C++, совместно используемой приложениями для Android и iOS. В 2019 году мы решили, что переписать эту функцию — лучший способ обеспечить надежный и заслуживающий доверия пользовательский опыт на долгие годы. Реализации для Android и iOS стали отдельными, используют собственные языки платформы (Kotlin и Swift) и собственные библиотеки (такие как WorkManager и Room для Android).
В этой статье рассказывается о некоторых решениях по дизайну, проверке реализации и релизу, которые мы приняли при создании новой функции загрузки камеры для Android, которую мы выпустили для всех пользователей летом 2021 года. Проект был успешно запущен, без сбоев или серьезных проблем. Частота ошибок снизилась, а производительность загрузки значительно улучшилась.
Статья: https://apptractor.ru/drpbxphoto
Платформа: Android
До недавнего времени загрузка с камеры была основана на библиотеке C++, совместно используемой приложениями для Android и iOS. В 2019 году мы решили, что переписать эту функцию — лучший способ обеспечить надежный и заслуживающий доверия пользовательский опыт на долгие годы. Реализации для Android и iOS стали отдельными, используют собственные языки платформы (Kotlin и Swift) и собственные библиотеки (такие как WorkManager и Room для Android).
В этой статье рассказывается о некоторых решениях по дизайну, проверке реализации и релизу, которые мы приняли при создании новой функции загрузки камеры для Android, которую мы выпустили для всех пользователей летом 2021 года. Проект был успешно запущен, без сбоев или серьезных проблем. Частота ошибок снизилась, а производительность загрузки значительно улучшилась.
Статья: https://apptractor.ru/drpbxphoto
Платформа: Android
Tracker Go — приложение для Android, которое отслеживает бег. Оно учитываtn маршрут, среднюю скорость, затраченное время, сожженные калории, пройденное расстояние. Ведет историю состояния. Технический стек - Kotlin, MVVM, Navigation Component, Google SDK. Библиотеки - Dagger Hilt, Android KTX, Room, Timber, Glide, MPAndroidChart, Easy Permission, Coroutines, Material Design, Google Map location service, Kotlin extension.
Tracker Go на GitHub: https://github.com/kodeflap/Tracker_Go
Платформа: Android
⭐️: 2
Tracker Go на GitHub: https://github.com/kodeflap/Tracker_Go
Платформа: Android
⭐️: 2
Как ускорить Swift, упорядочив соответствия
Проверка соответствия протоколу - бесконечная для изучения (и оптимизации) тема. В Emerge объясняют, как можно ускорить работу с соответствиями - надо просто сложить все соответствия в одном месте, чтобы они быстрее читались и кэшировались в памяти. По тестам их подходи может ускорить первый запуск на 20%! Сделать это очень просто, в одной настройке Xcode.
Статья: https://apptractor.ru/ordrcnfrmnc
Платформа: iOS
Проверка соответствия протоколу - бесконечная для изучения (и оптимизации) тема. В Emerge объясняют, как можно ускорить работу с соответствиями - надо просто сложить все соответствия в одном месте, чтобы они быстрее читались и кэшировались в памяти. По тестам их подходи может ускорить первый запуск на 20%! Сделать это очень просто, в одной настройке Xcode.
Статья: https://apptractor.ru/ordrcnfrmnc
Платформа: iOS
Animated Tab Bar - анимированная панель вкладок для iOS-приложения на SwiftUI. Имеет массу настроек дизайна, можно использовать пресеты анимаций или создавать собственные.
Animated Tab Bar на GitHub: https://github.com/exyte/AnimatedTabBar
Платформа: iOS
⭐️: 24
Animated Tab Bar на GitHub: https://github.com/exyte/AnimatedTabBar
Платформа: iOS
⭐️: 24
Как защитить ваш Android APK и внедрить меры безопасности
Android Package Kit (APK) — это формат пакета, используемый для распространения и установки приложений на устройствах Android. Хотя APK обеспечивают удобный способ установки и обновления приложений, они также могут представлять угрозу безопасности, если они не защищены должным образом. В этой статье мы обсудим некоторые простые способы защиты APK и реализации мер для обеспечения безопасности вашего приложения и ваших пользователей.
1. Подпишите свой APK
2. Обфусцируйте свой код
3. Используйте шифрование
4. Используйте разрешения с умом
5. Используйте Proguard для удаления неиспользуемого кода
6. Используйте Network Security Configuration
7. Используйте правила безопасности Firebase
8. Используйте сторонние библиотеки безопасности
Статья: https://apptractor.ru/drdsecrt
Платформа: Android
Android Package Kit (APK) — это формат пакета, используемый для распространения и установки приложений на устройствах Android. Хотя APK обеспечивают удобный способ установки и обновления приложений, они также могут представлять угрозу безопасности, если они не защищены должным образом. В этой статье мы обсудим некоторые простые способы защиты APK и реализации мер для обеспечения безопасности вашего приложения и ваших пользователей.
1. Подпишите свой APK
2. Обфусцируйте свой код
3. Используйте шифрование
4. Используйте разрешения с умом
5. Используйте Proguard для удаления неиспользуемого кода
6. Используйте Network Security Configuration
7. Используйте правила безопасности Firebase
8. Используйте сторонние библиотеки безопасности
Статья: https://apptractor.ru/drdsecrt
Платформа: Android
Flashlight измеряет производительность любого приложения для Android, генерирует оценку, объединяя различные показатели. Из интересных особенностей - не нужно ничего устанавливать в приложение (все происходит на устройстве), можно измерять скорость работы production приложений, есть красивые веб-отчеты, CLI, Flipper или E2E тесты для полной автоматизации.
Flashlight на GitHub: https://github.com/bamlab/flashlight
Платформа: Android
⭐️: 369
Flashlight на GitHub: https://github.com/bamlab/flashlight
Платформа: Android
⭐️: 369
Видео за неделю
•
•
•
•
•
•
•
•
•
•
•
•
•
(iOS Ру)
Все о Combine за 45 мин с примерами кода•
(iOS En)
SwiftUI Dynamic Tab Indicators•
(iOS En)
watchOS: Complications•
(iOS En)
Swift 5.8: what will be the new features?•
(And Ru)
Автоматизации и инфраструктура вместо рутины и бойлерплейта•
(And Ru)
Как стать разработчиком в Южной Корее — инсайдерский взгляд•
(And En)
From data to UI: Compose phases - MAD Skills•
(And En)
The BEST Way to Implement a Search In Jetpack Compose•
(And En)
Kotlin Flow for Android Development Crash Course•
(Crs Ru)
Flutter Dev Podcast #39: Flutter и PWA•
(Dev Ru)
Podlodka #306: observability и логирование•
(Dev En)
When To Properly Leave Jobs So Your Career Doesn’t Get PunishedYouTube
Доклад все о Combine за 45 мин с примерами кода! (2022 г.)
Куда присоединиться:
Внимание более детальные ролики по SwiftUI и Combine я выпускаю теперь на этом ресурсе! - https://boosty.to/theswiftdevelopers
1.Наше сообщество в вк(более 6 + тыс) = https://vk.com/theswiftdevelopers
2.В телеграмме мы помогаем новичкам…
Внимание более детальные ролики по SwiftUI и Combine я выпускаю теперь на этом ресурсе! - https://boosty.to/theswiftdevelopers
1.Наше сообщество в вк(более 6 + тыс) = https://vk.com/theswiftdevelopers
2.В телеграмме мы помогаем новичкам…
SwiftGen — это инструмент для автоматической генерации кода Swift для ресурсов ваших проектов (таких как изображения, локализованные строки и т.д.), чтобы сделать их безопасными для использования. Есть несколько преимуществ в использовании этого - так вы будете избегать любых опечаток при использовании строк, будет автодополнение, не будет использования несуществующих имен. Все это будет обеспечено на уровне компилятора и, таким образом, не будет риска сбоя во время выполнения приложения. SwiftGen полностью настраивается благодаря шаблонам Stencil, но вы можете создать свои собственные для любого кода, соответствующего вашим потребностям.
SwiftGen на GitHub: https://github.com/SwiftGen/SwiftGen
Платформа: iOS
⭐️: 8.4K
SwiftGen на GitHub: https://github.com/SwiftGen/SwiftGen
Платформа: iOS
⭐️: 8.4K
Эволюция архитектуры приложения Facebook* для iOS
8 лет развития архитектуры приложения в одном обзоре. С 2014 года, когда были Core Data, MVC, Objective-C(++) и запуск до 30 секунд, до 2022, когда используются внутренние абстракции, динамические библиотеки, плагины и Swift. Пот, кровь и слезы пользователей и разработчиков в поиске лучшего опыта.
Статья: https://apptractor.ru/FBiOS8
Платформа: iOS
*Meta, в том числе ее продукты Facebook и Instagram, признана экстремистской организацией в России.
8 лет развития архитектуры приложения в одном обзоре. С 2014 года, когда были Core Data, MVC, Objective-C(++) и запуск до 30 секунд, до 2022, когда используются внутренние абстракции, динамические библиотеки, плагины и Swift. Пот, кровь и слезы пользователей и разработчиков в поиске лучшего опыта.
Статья: https://apptractor.ru/FBiOS8
Платформа: iOS
*Meta, в том числе ее продукты Facebook и Instagram, признана экстремистской организацией в России.
Ktor — это асинхронный фреймворк для создания микросервисов, веб-приложений и многого другого. Написан JetBrains на Kotlin с нуля. Приложения Ktor могут размещаться в любом контейнере сервлетов с поддержкой Servlet 3.0+ API, таком как Tomcat, или автономно с использованием Netty или Jetty. Поддержка других хостов может быть добавлена через унифицированный API хостинга.
Ktor на GitHub: https://github.com/ktorio/ktor
Платформа: backend
⭐️: 10.8K
Ktor на GitHub: https://github.com/ktorio/ktor
Платформа: backend
⭐️: 10.8K
👍4
PythonKit - фреймворк Swift для взаимодействия с Python (первоначально был основан на модуле Python из экспериментального проекта Swift for TensorFlow). Например, код может быть реализован так:
Платформа: iOS
⭐️: 1.3K
import PythonKitPythonKit на GitHub: https://github.com/pvieito/PythonKit
let sys = Python.import("sys")
print("Python \(sys.version_info.major).\(sys.version_info.minor)")
print("Python Version: \(sys.version)")
print("Python Encoding: \(sys.getdefaultencoding().upper())")
Платформа: iOS
⭐️: 1.3K
GitHub
GitHub - pvieito/PythonKit: Swift framework to interact with Python.
Swift framework to interact with Python. Contribute to pvieito/PythonKit development by creating an account on GitHub.
😁1
Как запуск приложения Dropbox для Android ускорили на 30%
Запуск приложения - это первое, с чем сталкиваются пользователи после установки приложения, а затем снова и снова, при каждом его запуске. Простое и быстрое приложение приносит пользователям намного больше радости, чем приложение с множеством функций, которое загружается целую вечность. Понимая это, Android-команда Dropbox вложила много сил и средств в измерение, выявление и устранение проблем, влияющих на время запуска приложения. В итоге они улучшили время запуска приложения на 30%, и вот история того, как они этого достигли.
Платформа: Android
Запуск приложения - это первое, с чем сталкиваются пользователи после установки приложения, а затем снова и снова, при каждом его запуске. Простое и быстрое приложение приносит пользователям намного больше радости, чем приложение с множеством функций, которое загружается целую вечность. Понимая это, Android-команда Dropbox вложила много сил и средств в измерение, выявление и устранение проблем, влияющих на время запуска приложения. В итоге они улучшили время запуска приложения на 30%, и вот история того, как они этого достигли.
1. Страшный подъемСтатья: https://apptractor.ru/drpbxst30
2. Больше цифр
3. Нарушители производительности
Библиотека Firebase Performance
Миграции
Загрузка пользователя
4. Что теперь?
5. Вывод
Платформа: Android
Read You - открытый RSS-ридер для Android на Jetpack Compose и с Material You.
Read You на GitHub: https://github.com/Ashinch/ReadYou
Платформа: Android
⭐️: 1.8K
Read You на GitHub: https://github.com/Ashinch/ReadYou
Платформа: Android
⭐️: 1.8K
SnapKit — это DSL (domain-specific programming language), упрощающий программное создание Auto Layout на iOS, так и на OS X. Фактически, добавляет синтаксический сахар поверх нативного кода автоматической разметки, что упрощает понимание и написание кода для размещения элементов на экране. Разработан и поддерживается Snap.
SnapKit на GitHub: https://github.com/SnapKit/SnapKit
Платформа: iOS
⭐️: 19.1K
SnapKit на GitHub: https://github.com/SnapKit/SnapKit
Платформа: iOS
⭐️: 19.1K
Видео за неделю
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
(iOS/And Ru)
Ozon Tech Community Mobile Meetup•
(iOS En)
How to Manage SwiftUI Updates with Swift If Available•
(iOS En)
SwiftUI Tutorial: How to work with ScrollView for Complex Layouts•
(iOS En)
SwiftUI Animated Sticky Header With Auto Scrollable Tabs•
(iOS En)
Don't Let AI to Steal iOS Dev Job, Use it to be 10X Programmer•
(And En)
Introduction to drawing in Compose•
(And En)
Constraints and modifier order•
(And En)
The ULTIMATE Permission Handling Guide (Showing rationale + Permanently Declined)•
(And En)
I Built a Note Android App With ChatGPT•
(And En)
Android app performance with Perfetto•
(And En)
Becoming an Android librarian with Jaewoong Eum•
(Crs Ru)
Что нового в Kotlin Multiplatform Mobile•
(Anl Ru)
Avito Analytics meetup #9•
(Dev Ru)
Как написать HashMap — пошаговая инструкция•
(Dev En)
Podlodka #307: Darklang•
(Grw En)
Уроки Duolingo: от стартапа до IPOAppTractor
Ozon Tech Community Mobile Meetup
На митапе поговорили об iOS и Android-разработке и кейсах, с которыми столкнулся Ozon.
👍1
На прошлой неделе у нас был Read You, открытый RSS-ридер, а сегодня RSS Parser - библиотека, которая упростит вам работу с любыми RSS-лентами. Поддерживает все атрибуты, кэширование, получение данных из строк. Написано полностью на Kotlin с корутинами.
RSS Parser на GitHub: https://github.com/prof18/RSS-Parser
Платформа: Android
⭐️: 344
RSS Parser на GitHub: https://github.com/prof18/RSS-Parser
Платформа: Android
⭐️: 344
Что такое событийная (Event Driven) архитектура
Шаблон управляемой событиями архитектуры (событийная архитектура, event-driven architecture, EDA) - это популярный шаблон распределенной асинхронной архитектуры, используемый для создания масштабируемых приложений. EDA состоит из разделенных одноцелевых компонентов, которые асинхронно получают и обрабатывают события.
Статья: https://apptractor.ru/edarc
Платформа: архитектура
Шаблон управляемой событиями архитектуры (событийная архитектура, event-driven architecture, EDA) - это популярный шаблон распределенной асинхронной архитектуры, используемый для создания масштабируемых приложений. EDA состоит из разделенных одноцелевых компонентов, которые асинхронно получают и обрабатывают события.
Статья: https://apptractor.ru/edarc
Платформа: архитектура
Anime Now! - открытый плеер (для аниме) на SwiftUI и TCA (The Composable Architecture). Поддерживает Airplay 2, картинку-в-картинке, субтитры, скачивание эпизодов. Работает с тремя разными серверами, с которых стримит аниме, предполагаю, что легко перенастраивается на любой другой контент.
Anime Now! на GitHub: https://github.com/AnimeNow-Team/AnimeNow
Платформа: iOS
⭐️: 318
Anime Now! на GitHub: https://github.com/AnimeNow-Team/AnimeNow
Платформа: iOS
⭐️: 318
👍1
Отслеживание времени сборки Android-проекта
Начало серии статей о сборке Android-проектов. В этой статье - как отслеживать время сборки и нужную для команды разработчиков системную информацию.
Статья: https://apptractor.ru/gradletime
Платформа: Android
Начало серии статей о сборке Android-проектов. В этой статье - как отслеживать время сборки и нужную для команды разработчиков системную информацию.
Статья: https://apptractor.ru/gradletime
Платформа: Android
Moshi — это одна из самых популярных современных библиотек для работы с JSON в Android на Java и Kotlin. Она упрощает парсинг JSON в классы Java и Kotlin (и наоборот), используется во многих проектах, где необходима работа с API. Разработана Square.
Moshi на GitHub: https://github.com/square/moshi
Платформа: Android
⭐️: 8.8K
Moshi на GitHub: https://github.com/square/moshi
Платформа: Android
⭐️: 8.8K
📱 Команда Тинькофф проведет mobile-митап в Нижнем Новгороде
Мобильные разработчики Тинькофф и RetailNext встретятся с местным комьюнити 1 марта в пространстве «Кинофактура».
На встрече расскажут:
— как отказались от 3rd party системы аналитики;
— как собирать iOS-фреймворк из исходных файлов на Kotlin;
— как использовать SRE-практики в мобильной разработке.
Зарегистрироваться на митап и узнать подробнее о докладах можно на странице IT’s Tinkoff Mobile Meetup
Мобильные разработчики Тинькофф и RetailNext встретятся с местным комьюнити 1 марта в пространстве «Кинофактура».
На встрече расскажут:
— как отказались от 3rd party системы аналитики;
— как собирать iOS-фреймворк из исходных файлов на Kotlin;
— как использовать SRE-практики в мобильной разработке.
Зарегистрироваться на митап и узнать подробнее о докладах можно на странице IT’s Tinkoff Mobile Meetup