Как нам удалось модернизировать приложение 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
Видео и подкасты за неделю:
•
•
•
•
•
•
•
•
•
•
•
Посмотрели какое-то другое интересное видео? Отправьте боту -> 🧑🏻💻
•
(iOS En)
Firebase Analytics for iOS: Track User Behavior With Data-Driven Insights•
(iOS En)
Firebase Performance for iOS: Optimizing Your App's Speed•
(iOS En)
SwiftUI: Environment property. You should use it•
(iOS En)
SwiftUI Custom Video Player - YouTube Video Player•
(And Ru)
3-дюймовый смартфон: тестируем приложения как PRO•
(And En)
How to Save & Restore the Scroll Position of a LazyColumn Persistently•
(And En)
THIS Compose-State Mistake Leads to Problems In Your Code•
(Dev Ru)
Как мы запускали мобильное приложение Финуслуги•
(Dev Ru)
Podlodka #316: зачем айтишнику уметь писать?•
(Dev Ru)
Podlodka #317: делегирование•
(Dev Ru)
Виджеты: Android vs iOSПосмотрели какое-то другое интересное видео? Отправьте боту -> 🧑🏻💻
YouTube
Firebase Analytics for iOS: Track User Behavior With Data-Driven Insights | Firebase Bootcamp #21
Unlock valuable insights about your iOS app users with Firebase Analytics. In this tutorial, you'll learn how to set up and use Analytics to track user behavior, measure app performance, and make data-driven decisions. Watch now to get started!
🤙 WELCOME…
🤙 WELCOME…
Конец программирования, каким мы его знаем
Читая комментарии, я поймал себя на мысли, что критики упускают суть. ИИ все еще находится в зачаточном состоянии. Это означает, что, как и в случае с новорожденным человеком, мы должны начать думать о том, как он повлияет на нашу жизнь и средства к существованию, уже сейчас, пока его потребности не превзошли наши возможности. На данный момент у нас еще есть время, чтобы сформировать будущее, которого мы действительно хотим. Рано или поздно может наступить день, когда мы уже не сможем этого сделать.
Статья: https://apptractor.ru/info/articles/konets-programmirovaniya-kakim-my-ego-znaem.html
Платформа: ИИ/программирование
Читая комментарии, я поймал себя на мысли, что критики упускают суть. ИИ все еще находится в зачаточном состоянии. Это означает, что, как и в случае с новорожденным человеком, мы должны начать думать о том, как он повлияет на нашу жизнь и средства к существованию, уже сейчас, пока его потребности не превзошли наши возможности. На данный момент у нас еще есть время, чтобы сформировать будущее, которого мы действительно хотим. Рано или поздно может наступить день, когда мы уже не сможем этого сделать.
Статья: https://apptractor.ru/info/articles/konets-programmirovaniya-kakim-my-ego-znaem.html
Платформа: ИИ/программирование
👍3
Charts - красивые графики для iOS/tvOS/OSX, аналог MPAndroidChart.
Charts на GitHub: https://github.com/danielgindi/Charts
Платформа: iOS
⭐️: 26.6K
Charts на GitHub: https://github.com/danielgindi/Charts
Платформа: iOS
⭐️: 26.6K
Модульное тестирование в iOS: все, что надо знать.
Меня зовут Евгений Плёнкин. Я iOS разработчик компании СберЗдоровье. В этом материале я расскажу, что такое автоматизированное тестирование, в чём его польза в iOS-разработке и не только, сколько и каких тестов должно быть, а также какой инструмент для автотестов в iOS есть.
Статья: https://habr.com/ru/companies/docdoc/articles/732102/
Платформа: iOS/тестирование
Меня зовут Евгений Плёнкин. Я iOS разработчик компании СберЗдоровье. В этом материале я расскажу, что такое автоматизированное тестирование, в чём его польза в iOS-разработке и не только, сколько и каких тестов должно быть, а также какой инструмент для автотестов в iOS есть.
Статья: https://habr.com/ru/companies/docdoc/articles/732102/
Платформа: iOS/тестирование
Firebase Firestore: основные правила безопасности
В этой статье мы рассмотрим основные правила обеспечения безопасности базы данных Firestore.
Применяя эти меры безопасности, вы сможете обеспечить безопасность и конфиденциальность ваших данных и защитить ваше приложение от потенциальных уязвимостей.
Перевод: https://apptractor.ru/info/articles/firebase-firestore-osnovnye-pravila-bezopasnosti.html
Платформа: Firebase
В этой статье мы рассмотрим основные правила обеспечения безопасности базы данных Firestore.
Применяя эти меры безопасности, вы сможете обеспечить безопасность и конфиденциальность ваших данных и защитить ваше приложение от потенциальных уязвимостей.
Перевод: https://apptractor.ru/info/articles/firebase-firestore-osnovnye-pravila-bezopasnosti.html
Платформа: Firebase
Производительность Android приложений Kotlin в сравнении с С++
В целом можно с уверенностью сказать, что существуют случаи, когда производительность нативного кода колоссально превосходит производительность JVM и, несмотря на некоторое усложнение проекта, имеет смысл реализовать с помощью NDK те модули программы, которые требуют сложных вычислений, особенно если необходимо проводить вычисления не с примитивными типами, а с объектами.
Статья: https://habr.com/ru/articles/732746/
Платформа: программирование/Kotlin
В целом можно с уверенностью сказать, что существуют случаи, когда производительность нативного кода колоссально превосходит производительность JVM и, несмотря на некоторое усложнение проекта, имеет смысл реализовать с помощью NDK те модули программы, которые требуют сложных вычислений, особенно если необходимо проводить вычисления не с примитивными типами, а с объектами.
Статья: https://habr.com/ru/articles/732746/
Платформа: программирование/Kotlin
👍2
PlainApp - это приложение с открытым исходным кодом, которое позволяет управлять телефоном через веб-браузер. Доступ к файлам, видео, музыке, контактам, смс, звонкам и многому другому с вашего рабочего стола с помощью безопасного и простого в использовании веб-интерфейса.
PlainApp на GitHub: https://github.com/ismartcoding/plain-app
Платформа: Android
⭐️: 457
PlainApp на GitHub: https://github.com/ismartcoding/plain-app
Платформа: Android
⭐️: 457
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Как я разрабатывал кастомный Segmented Control на SwiftUI
Привет, меня зовут Тёма Загоскин, я разрабатываю крутые штуки в Авиасейлс - сервисе по покупке дешевых авиабилетов. Год назад мы начали с нуля разрабатывать новый модуль, что позволило нам использовать модный молодежный SwiftUI. Казалось бы, идеальный инструмент для легкой верстки и красивых анимаций, поэтому очередная задача написать кастомный Segmented Control казалась тривиальной, тем более, что стандартный компонент кастомизируется буквально никак.
Статья: https://habr.com/ru/articles/732640/
Платформа: iOS
Привет, меня зовут Тёма Загоскин, я разрабатываю крутые штуки в Авиасейлс - сервисе по покупке дешевых авиабилетов. Год назад мы начали с нуля разрабатывать новый модуль, что позволило нам использовать модный молодежный SwiftUI. Казалось бы, идеальный инструмент для легкой верстки и красивых анимаций, поэтому очередная задача написать кастомный Segmented Control казалась тривиальной, тем более, что стандартный компонент кастомизируется буквально никак.
Статья: https://habr.com/ru/articles/732640/
Платформа: iOS
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Типы Диалогов в Jetpack Compose и как их использовать
Сегодня мы погрузимся в Диалоги. Мы начнем с технических аспектов, с того, как использовать их в Jetpack Compose, и со всех сочных моментов. Затем мы рассмотрим, какие существуют различные типы диалогов и как их использовать.
Простой туториал: https://www.composables.com/tutorials/dialogs
Платформа: Android
Сегодня мы погрузимся в Диалоги. Мы начнем с технических аспектов, с того, как использовать их в Jetpack Compose, и со всех сочных моментов. Затем мы рассмотрим, какие существуют различные типы диалогов и как их использовать.
Простой туториал: https://www.composables.com/tutorials/dialogs
Платформа: Android