CustomView Android. Кольцевая диаграмма для отображения статистики
В этой статье мы пройдем все этапы реализации своей CustomView, с подробным описанием шагов, чтобы каждый смог повторить такое в своих проектах. Мы будем реализовывать кольцевую диаграмму для отображения какой-либо статистики, добавим много возможностей кастомизации диаграммы под любые виды задач, а также приправим это дело красивой анимацией отрисовки и сохранением состояния. Все будет написано на языке программирования Kotlin.
Статья: https://habr.com/ru/articles/730924/
Платформа: Android
В этой статье мы пройдем все этапы реализации своей CustomView, с подробным описанием шагов, чтобы каждый смог повторить такое в своих проектах. Мы будем реализовывать кольцевую диаграмму для отображения какой-либо статистики, добавим много возможностей кастомизации диаграммы под любые виды задач, а также приправим это дело красивой анимацией отрисовки и сохранением состояния. Все будет написано на языке программирования Kotlin.
Статья: https://habr.com/ru/articles/730924/
Платформа: Android
👍3
В тему недавнего HealthGPT, CardinalKit - фреймворк с открытым исходным кодом для быстрой разработки современных, совместимых приложений для цифрового здравоохранения. CardinalKit представляет основанный на стандартах модульный подход к созданию приложений для цифрового здравоохранения.
CardinalKit на GitHub: https://github.com/StanfordBDHG/CardinalKit
Платформа: iOS
⭐️: 39
CardinalKit на GitHub: https://github.com/StanfordBDHG/CardinalKit
Платформа: iOS
⭐️: 39
Ряд Фибоначчи и Мемоизация с примерами на Swift языке
Это удобно не только для рядов Фибоначчи, но и для всего, что связано с дорогостоящими вычислениями, которые можно сохранить, кэшировать и использовать в будущих результатах.
В этом и заключается сила мемоизации.
Она используется для самых разных вещей.
Ряд Фибоначчи - отличный пример. Когда дело доходит до реального интервью.
Я слышал, как людей просили воспроизвести ряд Фибоначчи.
Это не огромный алгоритм, он сводится к одной строчке и двум случаям: конец равен нулю и единице. Но мой совет - просто запомните эту строчку, потому что она демонстрирует такую вещь как рекурсия.
Статья: https://habr.com/ru/articles/731048/
Платформа: iOS
Это удобно не только для рядов Фибоначчи, но и для всего, что связано с дорогостоящими вычислениями, которые можно сохранить, кэшировать и использовать в будущих результатах.
В этом и заключается сила мемоизации.
Она используется для самых разных вещей.
Ряд Фибоначчи - отличный пример. Когда дело доходит до реального интервью.
Я слышал, как людей просили воспроизвести ряд Фибоначчи.
Это не огромный алгоритм, он сводится к одной строчке и двум случаям: конец равен нулю и единице. Но мой совет - просто запомните эту строчку, потому что она демонстрирует такую вещь как рекурсия.
Статья: https://habr.com/ru/articles/731048/
Платформа: iOS
Хабр
Ряд Фибоначчи и Мемоизация с примерами на Swift языке
Ряд Фибоначчи Чи́сла Фибона́ччи (вариант написания — Фибона́чи [2] ) — элементы числовой последовательности 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597,...
👍1
Circuit-фреймворк для Jetpack Compose и тестирование с Robolectric
Тестирование приложений Jetpack Compose обычно основано на использовании библиотеки Compose UI Test и создании юнит-тестов поверх библиотек мокирования или DI. Однако этот подход требует наличия эмулятора и не всегда применим для использования в конвейере CI/CD, где обычно используется Robolectric вместо настоящего Android Runtime. При этом нередко в тестах используется скриншотное тестирование (например, через использование captureToImage в Compose UI Test) и сравнение рендеров с образцом, что изначально недоступно в Robolectric из-за особенностей рендеринга. В этой статье мы рассмотрим использование библиотеки Roborazzi, которая решает эту проблему, совместно с новым подходом к архитектуре Jetpack Compose приложений, которая была предложена Slack в библиотеке Circuit.
Статья: https://habr.com/ru/companies/otus/articles/731150/
Платформа: Android
Тестирование приложений Jetpack Compose обычно основано на использовании библиотеки Compose UI Test и создании юнит-тестов поверх библиотек мокирования или DI. Однако этот подход требует наличия эмулятора и не всегда применим для использования в конвейере CI/CD, где обычно используется Robolectric вместо настоящего Android Runtime. При этом нередко в тестах используется скриншотное тестирование (например, через использование captureToImage в Compose UI Test) и сравнение рендеров с образцом, что изначально недоступно в Robolectric из-за особенностей рендеринга. В этой статье мы рассмотрим использование библиотеки Roborazzi, которая решает эту проблему, совместно с новым подходом к архитектуре Jetpack Compose приложений, которая была предложена Slack в библиотеке Circuit.
Статья: https://habr.com/ru/companies/otus/articles/731150/
Платформа: Android
Хабр
Circuit-фреймворк для Jetpack Compose и тестирование с Robolectric
Тестирование приложений Jetpack Compose обычно основано на использовании библиотеки Compose UI Test и создании юнит-тестов поверх библиотек мокирования или DI. Однако этот подход требует наличия...
Проектирование с ограничениями — Live Activity и Dynamic Island
Apple запустила виджет Live Activity в iOS 14, а в iPhone 14 Pro добавила Dynamic Island. С помощью этих обновлений Apple пытается переизобрести доставку push-уведомлений на мобильных устройствах. После запуска сразу же стало очевидно, что Swiggy, приложение для доставки еды, которое отправляет множество уведомлений о ходе доставки, идеально подходит для использования этих новых функций. И вот теперь обе функции доступны для пользователей Swiggy.
Мы были потрясены демонстрацией Apple, но, углубившись, мы поняли, что это даже нечто большее. Эта статья рассказывает о том, как мы разрабатывали новейшие виджеты для наших пользователей.
Статья: https://apptractor.ru/info/articles/proektirovanie-s-ogranicheniyami-live-activity-i-dynamic-island.html
Платформа: iOS/Дизайн и прототипирование
Apple запустила виджет Live Activity в iOS 14, а в iPhone 14 Pro добавила Dynamic Island. С помощью этих обновлений Apple пытается переизобрести доставку push-уведомлений на мобильных устройствах. После запуска сразу же стало очевидно, что Swiggy, приложение для доставки еды, которое отправляет множество уведомлений о ходе доставки, идеально подходит для использования этих новых функций. И вот теперь обе функции доступны для пользователей Swiggy.
Мы были потрясены демонстрацией Apple, но, углубившись, мы поняли, что это даже нечто большее. Эта статья рассказывает о том, как мы разрабатывали новейшие виджеты для наших пользователей.
Статья: https://apptractor.ru/info/articles/proektirovanie-s-ogranicheniyami-live-activity-i-dynamic-island.html
Платформа: iOS/Дизайн и прототипирование
This media is not supported in your browser
VIEW IN TELEGRAM
Animated Navigation Bar - панель навигации с несколькими предустановленными анимациями, написанная на Jetpack Compose.
Animated Navigation Bar на GitHub: https://github.com/exyte/AndroidAnimatedNavigationBar
Платформа: Android
⭐️: 55
Animated Navigation Bar на GitHub: https://github.com/exyte/AndroidAnimatedNavigationBar
Платформа: Android
⭐️: 55
👍2
Типизированная обработка ошибок в Kotlin
Обработка ошибок - это не rocket science. Она проста, но не всегда понятна. В этой статье рассматриваются некоторые популярные шаблоны логической обработки ошибок в языке программирования Kotlin. Мы рассмотрим практические примеры и влияние, которое они могут оказать на когнитивную сложность и сопровождаемость программы.
Статья: https://medium.com/@mitchellyuwono/typed-error-handling-in-kotlin-11ff25882880
Платформа: Android
Обработка ошибок - это не rocket science. Она проста, но не всегда понятна. В этой статье рассматриваются некоторые популярные шаблоны логической обработки ошибок в языке программирования Kotlin. Мы рассмотрим практические примеры и влияние, которое они могут оказать на когнитивную сложность и сопровождаемость программы.
Статья: https://medium.com/@mitchellyuwono/typed-error-handling-in-kotlin-11ff25882880
Платформа: Android
👍1
Оптимизация приложения для сетевой доступности
Доступность сети - важный аспект работы приложений, полагающихся на сетевые возможности. Ваши пользователи не всегда будут иметь хорошее подключение к Интернету, поэтому оптимизация приложения для плохих сетевых условий очень важна.
Мы можем использовать несколько методов для соответствующей оптимизации нашего приложения, но очень важно знать о распространенных ошибках, когда вы это делаете. После того как я сам написал несколько сетевых фреймворков и десятки приложений, пришло время поделиться с вами моими лучшими практиками, чтобы уберечь вас от ошибок, которые я совершил в прошлом.
Статья: https://www.avanderlee.com/swift/optimizing-network-reachability/
Платформа: iOS
Доступность сети - важный аспект работы приложений, полагающихся на сетевые возможности. Ваши пользователи не всегда будут иметь хорошее подключение к Интернету, поэтому оптимизация приложения для плохих сетевых условий очень важна.
Мы можем использовать несколько методов для соответствующей оптимизации нашего приложения, но очень важно знать о распространенных ошибках, когда вы это делаете. После того как я сам написал несколько сетевых фреймворков и десятки приложений, пришло время поделиться с вами моими лучшими практиками, чтобы уберечь вас от ошибок, которые я совершил в прошлом.
Статья: https://www.avanderlee.com/swift/optimizing-network-reachability/
Платформа: iOS
👍1
Как нам удалось модернизировать приложение Booking.com изнутри и снаружи
В этой статье мы рассказываем об основных моментах и выводах из нашего путешествия по модернизации кодовой базы и дизайна приложения Booking.com. Статья посвящена механике запуска такой программы, поддержанию ее в рабочем состоянии и оценке эффективности.
Статья: https://medium.com/booking-product/how-we-managed-to-modernize-the-booking-com-app-from-the-inside-and-out-ed24f0e6df0a
Платформа: разработка
В этой статье мы рассказываем об основных моментах и выводах из нашего путешествия по модернизации кодовой базы и дизайна приложения Booking.com. Статья посвящена механике запуска такой программы, поддержанию ее в рабочем состоянии и оценке эффективности.
Статья: https://medium.com/booking-product/how-we-managed-to-modernize-the-booking-com-app-from-the-inside-and-out-ed24f0e6df0a
Платформа: разработка
OpenAI - поддерживаемый сообществом разработчиков пакет Swift для упрощения работы с публичным API от OpenAI. С его помощью вы можете вести чаты, генерировать изображения, транскрибировать аудио в текст, классифицировать тексты и многое другое.
OpenAI на GitHub: https://github.com/MacPaw/OpenAI
Платформа: iOS
⭐️: 549
OpenAI на GitHub: https://github.com/MacPaw/OpenAI
Платформа: iOS
⭐️: 549
❤2👍1
Combine от А до Я
Combine - это мощный Swift-фреймворк, который помогает управлять асинхронными потоками данных, предоставляя декларативный способ обработки сложных асинхронных операций. Он является неотъемлемой частью современной iOS-разработки и может использоваться в различных сценариях, таких как сетевые запросы, пользовательский ввод и многое другое.
Вот руководство по началу работы с Combine в Swift, с примерами кода для тех, у кого нет опыта.
Статья: https://daddycoding.com/2023/04/26/combine-from-a-to-z/
Платформа: iOS
Combine - это мощный Swift-фреймворк, который помогает управлять асинхронными потоками данных, предоставляя декларативный способ обработки сложных асинхронных операций. Он является неотъемлемой частью современной iOS-разработки и может использоваться в различных сценариях, таких как сетевые запросы, пользовательский ввод и многое другое.
Вот руководство по началу работы с Combine в Swift, с примерами кода для тех, у кого нет опыта.
Статья: https://daddycoding.com/2023/04/26/combine-from-a-to-z/
Платформа: iOS
Объекты данных в Kotlin
Объекты данных — это новый функционал, представленный в Kotlin 1.7.20 и планируемый к выпуску в версии 1.9. Разберемся, для чего он нужен.
Статья: https://apptractor.ru/kotlin-objects
Платформа: Android
Объекты данных — это новый функционал, представленный в Kotlin 1.7.20 и планируемый к выпуску в версии 1.9. Разберемся, для чего он нужен.
Статья: https://apptractor.ru/kotlin-objects
Платформа: Android
SwiftLint в деталях
Узнайте, как использовать и настраивать SwiftLint, а также как создавать собственные правила в SwiftLint для своего проекта.
Статья: https://www.kodeco.com/38422105-swiftlint-in-depth
Другая: https://apptractor.ru/info/articles/swiftlint.html
Платформа: iOS
Узнайте, как использовать и настраивать SwiftLint, а также как создавать собственные правила в SwiftLint для своего проекта.
Статья: https://www.kodeco.com/38422105-swiftlint-in-depth
Другая: https://apptractor.ru/info/articles/swiftlint.html
Платформа: iOS
Почему я никогда не стану Senior-разработчиком в Amazon
Удивительно, но.. "многие не обращают на это внимания, но чем выше ваша должность в крупной технологической компании, тем более безумным становится объем работы. Большинство старших разработчиков, с которыми я общался, работают не менее 60 часов в неделю со всеми проектами и встречами, в которых они участвуют. И это еще не считая того количества работы, которое требуется для достижения должности старшего инженера в Amazon".
Статья: https://apptractor.ru/info/articles/pochemu-ya-nikogda-ne-stanu-senior-razrabotchikom-v-amazon.html
Платформа: карьера
Удивительно, но.. "многие не обращают на это внимания, но чем выше ваша должность в крупной технологической компании, тем более безумным становится объем работы. Большинство старших разработчиков, с которыми я общался, работают не менее 60 часов в неделю со всеми проектами и встречами, в которых они участвуют. И это еще не считая того количества работы, которое требуется для достижения должности старшего инженера в Amazon".
Статья: https://apptractor.ru/info/articles/pochemu-ya-nikogda-ne-stanu-senior-razrabotchikom-v-amazon.html
Платформа: карьера
👍1
AppFiles - Mobile Development
Оптимизация приложения для сетевой доступности Доступность сети - важный аспект работы приложений, полагающихся на сетевые возможности. Ваши пользователи не всегда будут иметь хорошее подключение к Интернету, поэтому оптимизация приложения для плохих сетевых…
И мой перевод этой статьи: https://apptractor.ru/info/articles/optimizatsiya-prilozheniya-dlya-setevoy-dostupnosti.html
AppTractor
Оптимизация приложения для сетевой доступности
Ваши пользователи не всегда будут иметь хорошее подключение к Интернету, поэтому оптимизация приложения для плохих сетевых условий очень важна.
👍2
Учебник по Jetpack Compose: Как использовать FlowLayout
Если вы следите за последними обновлениями Jetpack Compose, вы, возможно, слышали о новых composable FlowRow и FlowColumn, недавно добавленных в Jetpack Compose 1.4.1. Конечно, они уже некоторое время были опубликованы в Accompanist (группа библиотек, призванных дополнить Jetpack Compose функциями, часто необходимыми разработчикам, но пока недоступными в основной версии). Но теперь они доступны в базовом фреймворке, и было бы здорово посмотреть, для чего их можно использовать.
Самая важная идея в этой компоновке заключается в том, что мы можем выкладывать элементы в контейнер, когда размер элементов или контейнера неизвестен или динамичен. Например, в примере у нас есть чипсы (теги), которые мы размещаем в случайном порядке. Фишка "Растительная пища" не помещается и переносится на следующую строку.
Статья: https://exyte.com/blog/android-flow-layout
Платформа: Android
Если вы следите за последними обновлениями Jetpack Compose, вы, возможно, слышали о новых composable FlowRow и FlowColumn, недавно добавленных в Jetpack Compose 1.4.1. Конечно, они уже некоторое время были опубликованы в Accompanist (группа библиотек, призванных дополнить Jetpack Compose функциями, часто необходимыми разработчикам, но пока недоступными в основной версии). Но теперь они доступны в базовом фреймворке, и было бы здорово посмотреть, для чего их можно использовать.
Самая важная идея в этой компоновке заключается в том, что мы можем выкладывать элементы в контейнер, когда размер элементов или контейнера неизвестен или динамичен. Например, в примере у нас есть чипсы (теги), которые мы размещаем в случайном порядке. Фишка "Растительная пища" не помещается и переносится на следующую строку.
Статья: https://exyte.com/blog/android-flow-layout
Платформа: Android
👍1
Forwarded from IT Insights
Изучение WebGPU
WebGPU — это один из современных API, предназначенных для работы с компьютерной графикой. В этом учебнике рассказывается об использовании графического API WebGPU для создания собственных 3D-приложений на C++ с нуля для Windows, Linux и macOS.
Руководство: https://eliemichel.github.io/LearnWebGPU/
WebGPU — это один из современных API, предназначенных для работы с компьютерной графикой. В этом учебнике рассказывается об использовании графического API WebGPU для создания собственных 3D-приложений на C++ с нуля для Windows, Linux и macOS.
Руководство: https://eliemichel.github.io/LearnWebGPU/
👍1
Thumb-Key - это интеллектуальная клавиатура, созданная специально для ваших больших пальцев и учитывающая требования конфиденциальности
Она имеет раскладку 3x3 и использует пролистывание для менее распространенных букв. Ее легко освоить, и она разработана для быстрой скорости набора текста.
Вместо того, чтобы полагаться на точность предсказания слов и предложений, как в большинстве популярных телефонных клавиатур, таких как Gboard и Swiftkey, Thumb-Key использует большие клавиши с предсказуемым положением, чтобы ваши глаза не охотились и не искали буквы.
По мере того, как положение клавиш будет закрепляться в вашей мышечной памяти, в конечном итоге вы сможете приблизить скорость набора текста к скорости сенсорного ввода, при этом ваши глаза никогда не должны будут покидать область редактирования текста.
Thumb-Key на GitHub: https://github.com/dessalines/thumb-key
Платформа: Android
⭐️: 268
Она имеет раскладку 3x3 и использует пролистывание для менее распространенных букв. Ее легко освоить, и она разработана для быстрой скорости набора текста.
Вместо того, чтобы полагаться на точность предсказания слов и предложений, как в большинстве популярных телефонных клавиатур, таких как Gboard и Swiftkey, Thumb-Key использует большие клавиши с предсказуемым положением, чтобы ваши глаза не охотились и не искали буквы.
По мере того, как положение клавиш будет закрепляться в вашей мышечной памяти, в конечном итоге вы сможете приблизить скорость набора текста к скорости сенсорного ввода, при этом ваши глаза никогда не должны будут покидать область редактирования текста.
Thumb-Key на GitHub: https://github.com/dessalines/thumb-key
Платформа: Android
⭐️: 268
🤔6
Хочу в iOS-разработку: к чему готовиться на собеседовании в продуктовую команду
Я Серёжа Копытов, iOS TechLead. Веду собесы в Альфе с 2020 года, многие разработчики и техлиды в команде прошли через меня. Уже через полгода интервью я активно включился в настройку подбора и сейчас основное время занимаюсь его развитием.
В статье расскажу, как выглядит наше техническое интервью, как оно стало таким, какие случаи я встречал и какие выводы сделал. Читайте, если сами общаетесь с кандидатами или проходите собеседования в IT и хотите понять, как продуктовые компании принимают решение.
Статья: https://habr.com/ru/companies/alfa/articles/728322/
Платформа: собеседование
Я Серёжа Копытов, iOS TechLead. Веду собесы в Альфе с 2020 года, многие разработчики и техлиды в команде прошли через меня. Уже через полгода интервью я активно включился в настройку подбора и сейчас основное время занимаюсь его развитием.
В статье расскажу, как выглядит наше техническое интервью, как оно стало таким, какие случаи я встречал и какие выводы сделал. Читайте, если сами общаетесь с кандидатами или проходите собеседования в IT и хотите понять, как продуктовые компании принимают решение.
Статья: https://habr.com/ru/companies/alfa/articles/728322/
Платформа: собеседование
Как использовать функциональное программирование в Kotlin для написания более качественного и чистого кода
В этом посте мы поговорим о том, что такое функциональное программирование, каковы его преимущества и потенциальные недостатки, как оно сопоставляется с альтернативной парадигмой императивного программирования, что предоставляет Kotlin разработчикам для использования ФП, а также примеры того, как мы в DoorDash пишем код в стиле ФП на Kotlin.
Статья: https://doordash.engineering/2022/03/22/how-to-leverage-functional-programming-in-kotlin-to-write-better-cleaner-code/
Платформа: программирование/Kotlin
В этом посте мы поговорим о том, что такое функциональное программирование, каковы его преимущества и потенциальные недостатки, как оно сопоставляется с альтернативной парадигмой императивного программирования, что предоставляет Kotlin разработчикам для использования ФП, а также примеры того, как мы в DoorDash пишем код в стиле ФП на Kotlin.
Статья: https://doordash.engineering/2022/03/22/how-to-leverage-functional-programming-in-kotlin-to-write-better-cleaner-code/
Платформа: программирование/Kotlin