Модульное тестирование в 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
Forwarded from IT Insights
OpenAI выпустил бесплатный курс по разработке подсказок (Prompt Engineering) для ChatGPT
Курс: https://www.deeplearning.ai/short-courses/chatgpt-prompt-engineering-for-developers/
Курс: https://www.deeplearning.ai/short-courses/chatgpt-prompt-engineering-for-developers/
www.deeplearning.ai
ChatGPT Prompt Engineering for Developers - DeepLearning.AI
Level up your use of LLMs with prompt engineering best practices. Learn to automate workflows, chain LLM calls, and build a custom chatbot.
Queryable - библиотека асинхронных представления View в SwiftUI. Это property wrapper, который может инициировать представление View и ожидать завершения от асинхронной функции, при этом полностью скрывая обработку состояния от самого представления.
Это не только освобождает View от любого вида контекста (оно просто предоставляет ответ на запрос), но вы также можете передать buttonConfirmation вниз по иерархии представлений, чтобы любое дочернее представление могло удобно вызвать подтверждение без необходимости иметь дело с фактически отображаемым пользовательским интерфейсом. Он работает с оповещениями, диалогами подтверждения, sheets, fullScreenCover и кастомными оверлеями.
Queryable на GitHub: https://github.com/SwiftedMind/Queryable
Платформа: iOS
⭐️: 67
Это не только освобождает View от любого вида контекста (оно просто предоставляет ответ на запрос), но вы также можете передать buttonConfirmation вниз по иерархии представлений, чтобы любое дочернее представление могло удобно вызвать подтверждение без необходимости иметь дело с фактически отображаемым пользовательским интерфейсом. Он работает с оповещениями, диалогами подтверждения, sheets, fullScreenCover и кастомными оверлеями.
Queryable на GitHub: https://github.com/SwiftedMind/Queryable
Платформа: iOS
⭐️: 67
❤1
5-этапный процесс рефакторинга вашей старой, не поддающейся тестированию кодовой базы и улучшения ее качества
Вы застряли в замкнутом круге, когда у вас есть старая кодовая база, не поддающаяся тестированию, но вы не можете ее рефакторить из-за отсутствия тестового покрытия?
Это распространенная проблема, с которой сталкиваются многие команды разработчиков программного обеспечения, но выход есть.
В этой статье мы рассмотрим 5-шаговый процесс, позволяющий разорвать этот цикл и улучшить качество вашей кодовой базы.
Статья: https://kotlintesting.com/5-step-process-to-refactor-legacy/
Платформа: Android
Вы застряли в замкнутом круге, когда у вас есть старая кодовая база, не поддающаяся тестированию, но вы не можете ее рефакторить из-за отсутствия тестового покрытия?
Это распространенная проблема, с которой сталкиваются многие команды разработчиков программного обеспечения, но выход есть.
В этой статье мы рассмотрим 5-шаговый процесс, позволяющий разорвать этот цикл и улучшить качество вашей кодовой базы.
Статья: https://kotlintesting.com/5-step-process-to-refactor-legacy/
Платформа: Android
CoreData для базовых задач одним методом
В этой статье я поделюсь своим опытом работы с CoreData, и предложу решение, упрощающее работу с ней практически до вызова одного универсального метода для базовых нужд изменения и сохранения данных, попутно рассказав, какие фишки CoreData рассматривались как вариант достижения этой цели.
Статья: https://habr.com/ru/companies/cleverpumpkin/articles/733038/
Платформа: iOS
В этой статье я поделюсь своим опытом работы с CoreData, и предложу решение, упрощающее работу с ней практически до вызова одного универсального метода для базовых нужд изменения и сохранения данных, попутно рассказав, какие фишки CoreData рассматривались как вариант достижения этой цели.
Статья: https://habr.com/ru/companies/cleverpumpkin/articles/733038/
Платформа: iOS
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
SpinDot - анимации загрузки для Android-приложения. Есть 10 разных видов, полностью совместимо с Jetpack Compose и XML, ручное управление анимацией. Работает все начиная с API 21.
SpinDot на GitHub: https://github.com/hristogochev/spindot
Платформа: Android
⭐️: 9
SpinDot на GitHub: https://github.com/hristogochev/spindot
Платформа: Android
⭐️: 9
Как оптимизировать приложение для Android для больших экранов (и чего НЕ делать!)
Большие раскладушки, планшеты и настольные устройства типа Chromebooks - с каждым годом количество активных устройств Android с большими экранами увеличивается, поэтому сейчас как никогда важно, чтобы приложения обеспечивали своим пользователям беспроблемную работу на больших экранах. Например, эти устройства предлагают больше места на экране, и пользователи ожидают от приложений большего. Мы заметили, что на этих устройствах приложения получают более высокие бизнес-показатели, если они работают над их поддержкой.
Статья от Google: https://android-developers.googleblog.com/2023/05/optimizing-your-android-app-for-large-screens.html
Платформа: Android
Большие раскладушки, планшеты и настольные устройства типа Chromebooks - с каждым годом количество активных устройств Android с большими экранами увеличивается, поэтому сейчас как никогда важно, чтобы приложения обеспечивали своим пользователям беспроблемную работу на больших экранах. Например, эти устройства предлагают больше места на экране, и пользователи ожидают от приложений большего. Мы заметили, что на этих устройствах приложения получают более высокие бизнес-показатели, если они работают над их поддержкой.
Статья от Google: https://android-developers.googleblog.com/2023/05/optimizing-your-android-app-for-large-screens.html
Платформа: Android
👍2
Аксиоматическое программирование в Swift для создания систем любого масштаба
В этой статье я хочу познакомить вас с тем, что я называю "аксиоматическим кодированием", в результате которого получается простой для понимания код и используется стиль, который легко масштабировать до любого размера - от небольших игр до полнофункциональных приложений с множеством функций.
Я буду использовать Swift, поскольку его система типов и вывод типов позволяют создавать код, который очень похож на разговорный английский. Но самое главное: такой код можно писать молниеносно быстро.
Статья: https://betterprogramming.pub/axiomatic-and-brain-sized-coding-in-swift-for-creating-systems-of-any-scale-ec352e7d87a9
Платформа: iOS/Swift
В этой статье я хочу познакомить вас с тем, что я называю "аксиоматическим кодированием", в результате которого получается простой для понимания код и используется стиль, который легко масштабировать до любого размера - от небольших игр до полнофункциональных приложений с множеством функций.
Я буду использовать Swift, поскольку его система типов и вывод типов позволяют создавать код, который очень похож на разговорный английский. Но самое главное: такой код можно писать молниеносно быстро.
Статья: https://betterprogramming.pub/axiomatic-and-brain-sized-coding-in-swift-for-creating-systems-of-any-scale-ec352e7d87a9
Платформа: iOS/Swift
Medium
Axiomatic and Brain-sized Coding in Swift for Creating Systems of Any Scale
In this article, I want to introduce you to what I call “Axiomatic Coding” which results in easy-to-understand code and uses a style that is simple to scale to any size — from small games to…
Видео и подкасты за неделю:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Посмотрели какое-то другое интересное видео? Отправьте боту -> 🧑🏻💻
•
(iOS En)
SwiftUI Animated Sticky Header•
(iOS En)
dump() in Swift•
(iOS En)
Learning SwiftUI, when you already know UIKit – Mixing SwiftUI and UIKit•
(iOS En)
Discover how @MainActor works•
(And Ru)
ChatGPT vs TDD: я пишу юнит тесты, а он выдает код•
(And Ru)
Собеседование в Android-команду Тинькофф•
(And En)
Now in Android: 82 - Google I/O, Spatial Audio, automatic update prompts for crashing apps and more!•
(And En)
Custom Layouts In Jetpack Compose - Crash Course•
(And En)
Все видео KotlinConf'23•
(Crs En)
Food delivery app made with Flutter•
(Dev En)
Бэкенд, мобилки, ремесло и гвозди•
(Dev En)
Accessibility митап•
(Dev En)
Правильно оцениваем задачи. Топовые ошибки программистов•
(Dev En)
Podlodka #318: Backend Driven UI•
(Dsg En)
Ultimate Guide to Midjourney V5 for UI DesignersПосмотрели какое-то другое интересное видео? Отправьте боту -> 🧑🏻💻
👍1
SwiftUI предоставляет отличную встроенную поддержку для работы с состоянием, но объектно-ориентированный подход может сделать разделение кода сложным. Именно здесь могут помочь атомы.
Atoms - это мощная и гибкая библиотека управления атомарными состояниями для Swift, предназначенная для создания компактных, независимых глобальных компонентов состояния с легкой адаптацией и композицией.
Atoms обеспечивают более гранулированный уровень управления состоянием, позволяя вам сосредоточиться на том, что вам нужно, не беспокоясь о том, куда что поместить. Избегая больших наблюдаемых объектов с большим количеством публикуемых свойств, атомы помогают избежать узких мест в производительности из-за рендеринга, сохраняя единый источник истины в архитектуре вашего приложения.
Atoms на GitHub: https://github.com/bangerang/swift-atoms
Платформа: iOS
⭐️: 79
Atoms - это мощная и гибкая библиотека управления атомарными состояниями для Swift, предназначенная для создания компактных, независимых глобальных компонентов состояния с легкой адаптацией и композицией.
Atoms обеспечивают более гранулированный уровень управления состоянием, позволяя вам сосредоточиться на том, что вам нужно, не беспокоясь о том, куда что поместить. Избегая больших наблюдаемых объектов с большим количеством публикуемых свойств, атомы помогают избежать узких мест в производительности из-за рендеринга, сохраняя единый источник истины в архитектуре вашего приложения.
Atoms на GitHub: https://github.com/bangerang/swift-atoms
Платформа: iOS
⭐️: 79
GitHub
GitHub - bangerang/swift-atoms: Atoms is a powerful and flexible atomic state management library for Swift, designed to create…
Atoms is a powerful and flexible atomic state management library for Swift, designed to create compact, independent global state components with seamless adaptability and composition. - bangerang/s...
Как я получил сертификат Associate Android Developer
Хотите, чтобы Google официально подтвердил ваши скиллы разработчика Android? Все не так уж трудно: рассказываю, как это делается.
Статья: https://habr.com/ru/articles/733932/
Платформа: Android
Хотите, чтобы Google официально подтвердил ваши скиллы разработчика Android? Все не так уж трудно: рассказываю, как это делается.
Статья: https://habr.com/ru/articles/733932/
Платформа: Android
👍2❤1
Двойное соответствие протоколу
Иногда исправление проблем в вашей базе данных может иметь побочные эффекты, о которых вы даже не думали. Вы полагаете, что все, что может пойти не так, было учтено, но после слияния происходят странные вещи. У меня именно так было на прошлой неделе. Я исправлял ошибку, связанную с двойным соответствием протоколу, что в итоге привело к тому, что приложение вело себя странно и не распознавало данные, которые были сохранены заранее.
В этой небольшой статье я хочу поделиться тем, чему я научился.
Статья: https://alexanderweiss.dev/blog/2023-04-23-double-protocol-conformance
Платформа: iOS/Swift
Иногда исправление проблем в вашей базе данных может иметь побочные эффекты, о которых вы даже не думали. Вы полагаете, что все, что может пойти не так, было учтено, но после слияния происходят странные вещи. У меня именно так было на прошлой неделе. Я исправлял ошибку, связанную с двойным соответствием протоколу, что в итоге привело к тому, что приложение вело себя странно и не распознавало данные, которые были сохранены заранее.
В этой небольшой статье я хочу поделиться тем, чему я научился.
Статья: https://alexanderweiss.dev/blog/2023-04-23-double-protocol-conformance
Платформа: iOS/Swift
Compose Rich Editor - библиотека редактора для Jetpack Compose и Compose Multiplatform, полностью настраиваемая и поддерживающая общие функции rich text редактора. Она построена на основе TextField и поможет вам легко создать текстовый редактор.
Compose Rich Editor на GitHub: https://github.com/MohamedRejeb/Compose-Rich-Editor
Платформа: Android
⭐️: 241
Compose Rich Editor на GitHub: https://github.com/MohamedRejeb/Compose-Rich-Editor
Платформа: Android
⭐️: 241
Новинки Google I/O 2023
• Что нового в Jetpack Compose
• Вышла альфа Compose for TV
• Что нового в Jetpack
• Вторая бета Android 14
• Машинное обучение на Android-устройстве
• Что нового в Google Play
• Что нового в Android Health
• Чат-бот в Android Studio
• Новый логотип Android Studio
• Watch Face Format для Wear OS
• Что нового в Android for Cars
• Что нового в Android Performance
Платформа: Android
• Что нового в Jetpack Compose
• Вышла альфа Compose for TV
• Что нового в Jetpack
• Вторая бета Android 14
• Машинное обучение на Android-устройстве
• Что нового в Google Play
• Что нового в Android Health
• Чат-бот в Android Studio
• Новый логотип Android Studio
• Watch Face Format для Wear OS
• Что нового в Android for Cars
• Что нового в Android Performance
Платформа: Android
Реализуем Универсальные ссылки на iOS
Вы можете использовать универсальные ссылки для создания интегрированного пользовательского опыта, открывая веб-адреса непосредственно в вашем мобильном приложении. В отличие от глубоких ссылок, пользователи будут перенаправлены на веб-страницу, если приложение не установлено. Entitlement внутри вашего приложения в сочетании с файлом, связанным с доменом, обеспечивает связь между вашим сайтом и приложением.
Статья: https://apptractor.ru/info/articles/realizuem-universalnye-ssylki-na-ios.html
Платформа: iOS
Вы можете использовать универсальные ссылки для создания интегрированного пользовательского опыта, открывая веб-адреса непосредственно в вашем мобильном приложении. В отличие от глубоких ссылок, пользователи будут перенаправлены на веб-страницу, если приложение не установлено. Entitlement внутри вашего приложения в сочетании с файлом, связанным с доменом, обеспечивает связь между вашим сайтом и приложением.
Статья: https://apptractor.ru/info/articles/realizuem-universalnye-ssylki-na-ios.html
Платформа: iOS