Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
«Дурак подкидной и переводной» — классика карточных игр! Яркий геймплей, простые правила. Развивайте стратегию, бросайте вызов соперникам и станьте королем карт! Играйте прямо сейчас!

Дурак подкидной и переводной

Карточные, Настольные, Логическая

Играть

Топ прошлой недели

  • AlexKud AlexKud 40 постов
  • unimas unimas 13 постов
  • hapaevilya hapaevilya 2 поста
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
9
user9554111
user9554111
6 дней назад

Продолжение поста «Мессенджер Max - всё работает чётко»⁠⁠21

Написал простой cli p2p мессенджер под GNU/Linux, аналоговнет, нужны 100 миллионов инвестиций https://github.com/Karag0/rustrenger

Мессенджер MAX Деньги Комментарии Скриншот Волна постов Отзыв Linux Открытый код Ответ на пост Текст Короткопост Юмор
6
117
Skyscrew
Skyscrew
7 дней назад
Лига Сисадминов

Превалирование⁠⁠

Превалирование
Картинка с текстом Мемы IT юмор Открытый код Исходный код
22
139
user9554111
user9554111
7 дней назад

Ответ Zl0yUser в «Мессенджер Max - всё работает чётко»⁠⁠21

Как коллега коллеге (только я не на генто (раньше был на нем, я на арче и NixOS) скажу - лучший мессенджер это briar. Оффлайн mesh сеть, полное end2end шифрование, полный открытый исходный код, отсутствие централизованных серверов

Мессенджер MAX Деньги Комментарии Скриншот Волна постов Отзыв Linux Открытый код Ответ на пост Текст Короткопост
109
Партнёрский материал Реклама
specials
specials

Сколько нужно времени, чтобы уложить теплый пол?⁠⁠

Точно не скажем, но в нашем проекте с этим можно справиться буквально за минуту одной левой!

Попробовать

Ремонт Теплый пол Текст
883
Zl0yUser
Zl0yUser
7 дней назад

Ответ на пост «Мессенджер Max - всё работает чётко»⁠⁠21

Я как разработчик и линуксоид (гентушник), никогда не прикоснусь закрытому бинарному софту

Открытость телеграм (исходные коды клиентской части,api) делает его лучшим мессенджером. Проработанность серверной части, монетизация, открытость для ВСЕХ платформ - проекту MAX это не осилить

RuTube как пример - пиар помноженный на ноль реализацией )

Отсутствие сборок для отечественных ОС (linux) Вас не настораживает ?

UPD:

По поводу API от проекта MAX, существует только документация
реальность:

https://habrastorage.org/r/w780/getpro/habr/upload_files/5aa...

Согласно api документации заявлено "Максимальный размер файла: 4 ГБ"
https://dev.max.ru/docs-api/methods/POST/uploads
у телеги около 2Г (при условии локального сервера api)

Подозреваю, что инфраструктура MAX должна быть в разы больше чем у телеграм
Справятся или будут править лимиты ? ))

Мессенджер MAX Деньги Комментарии Скриншот Волна постов Отзыв Linux Открытый код Ответ на пост Текст
358
3497
Skyscrew
Skyscrew
2 месяца назад
Лига Сисадминов

Хотелось бы выразить благодарность⁠⁠

Хотелось бы выразить благодарность Картинка с текстом, Открытый код, IT юмор, Слоны, Мяч, Муравьи
Показать полностью 1
Картинка с текстом Открытый код IT юмор Слоны Мяч Муравьи
183
15
MarkParker.5
MarkParker.5
1 год назад
Лига программистов
Серия Программирование и Туториалы

Делаем нативное мобильное приложение с ИИ и бэкендом (Туториал)⁠⁠

Предыдущие статьи:

  • Как мы построили ИИ-стартап на хакатоне выходного дня в Германии

  • House, MD - AI Diagnostician in Your Phone: Passing the Startup Torch

В этой статье мы рассмотрим все тонкости создания Proof of Concept (PoC) мобильного приложения, построенного с помощью фреймворка SwiftUI и бэкенда с использованием FastAPI. Дополнительно я продемонстрирую эффективные архитектурные паттерны для SwiftUI-приложений, в частности MVVMP в сочетании с принципами SOLID и Dependency Injection (DI). Для android код можно легко перевести на Kotlin с Jetpack Compose.

Зачем нам нужен бэкенд

Кто-то может сказать, что можно просто запихнуть всю логику в приложение, напрямую отправлять запросы в chatgpt и сделать приложение без бэкенда. И я согласен, это действительно возможно, но бэкенд дает несколько важных преимуществ.

Бэкенд служит основой для любого сложного приложения, особенно для тех, которые требуют безопасного управления данными, обработки бизнес-логики и интеграции сервисов. Вот почему надежный бэкэнд имеет решающее значение:

  1. Безопасность: Бэкэнд помогает защитить конфиденциальные данные и токены аутентификации пользователей от атак типа MITM (Man-in-the-Middle). Он выступает в качестве защищенного шлюза между пользовательским устройством и базой данных или внешними службами, обеспечивая шифрование и аутентификацию всех данных.

  2. Контроль над использованием сервисов: Управляя API и взаимодействием с пользователями через бэкэнд, вы можете отслеживать и контролировать использование приложения. Это включает в себя дросселирование для управления нагрузкой, предотвращение злоупотреблений и обеспечение эффективного использования ресурсов.

  3. Интеграция с базой данных: Бэкэнд обеспечивает бесшовную интеграцию с базами данных, позволяя динамически хранить, извлекать и обновлять данные в режиме реального времени. Это важно для приложений, которые требуют учетных записей пользователей, хранят их предпочтения или нуждаются в быстром и безопасном получении больших объемов данных.

  4. Модели подписки и Freemium: Реализация услуг по подписке или модели freemium требует наличия бэкенда для выставления счетов, отслеживания использования и управления уровнями пользователей. Бэкэнд может безопасно обрабатывать платежи и подписки, обеспечивая бесперебойную работу пользователей и соблюдая требования по защите данных.

  5. Масштабируемость и обслуживание: Бэкэнд позволяет более эффективно масштабировать приложение. Логику на стороне сервера можно обновлять без необходимости передавать обновления клиенту, что упрощает обслуживание и ускоряет внедрение новых функций.

По сути, бэкенд — это не только функциональность, но и создание безопасной, масштабируемой и устойчивой среды для процветания вашего приложения.

Объяснение технического стека

  • SwiftUI: Лучший вариант для нативных приложений для iOS после выхода UIKit. Он декларативен и упорядочен, а XCode является незаменимым редактором благодаря эпл. Для android код можно легко перевести на Kotlin с помощью Jetpack Compose.

  • FastAPI: Выбран для бэкенда за его скорость, минимальное количество шаблонов и декларативность, редактируется с помощью превосходного Zed.dev.

  • ChatGPT API: Используется в качестве большой языковой модели (LLM); выбор может меняться в зависимости от необходимости кастомизации.

  • Ngrok: Реализует туннелирование с помощью простой команды CLI для выхода локального сервера в интернет.

Создание приложения для iOS

Теория: Архитектурные паттерны

  1. MVVMP (Model View ViewModel Presenter):

  • Model: Представляет собой структуры данных, используемые в приложении, такие как Question, Answer, Questionary и FilledQuestionary. Эти модели просты и содержат только данные, следуя принципу KISS.

  • View: Отвечают только за представление пользовательского интерфейса и делегируют все данные и логику презентерам. Они не содержат никакой бизнес-логики и спроектированы так, чтобы быть простыми и сосредоточенными на рендере UI.

  • ViewModel: В SwiftUI ViewModel представлена объектом ObservableObject, который служит моделью наблюдения за изменяемыми данными. Здесь нет методов и логики.

  • Presenter: Presenter управляет всей логикой, связанной с модулем (экраном или представлением), но не бизнес-логикой. Он взаимодействует с доменным слоем для выполнения операций бизнес-логики, таких как взаимодействие с API или управление сохранением данных.

  • Domain Layer: Этот слой содержит бизнес-логику приложения и взаимодействует с внешними ресурсами, такими как базы данных, API или другие сервисы. Он состоит из нескольких компонентов, таких как сервисы, провайдеры, менеджеры, репозитории, мапперы, фабрики и т. д.

  • На самом деле, MP в MVVMP является инициалами Марка Паркера, а полная форма — «Model View ViewModel by Mark Parker».

  1. Принципы СОЛИД:

    • Принцип единой ответственности: У каждого класса должна быть только одна причина для изменений.

    • Принцип открытость-закрытость: Компоненты должны быть открыты для расширения, но закрыты для модификации.

    • Принцип замещения Лискова: Объекты суперкласса должны быть заменяемы объектами подклассов.

    • Принцип разделения интерфейсов: Ни один клиент не должен быть вынужден зависеть от интерфейсов, которые он не использует.

    • Принцип инверсии зависимостей: Зависимость от абстракций, а не от конкретики, чему способствует DI.

  2. Инъекция зависимостей (DI): Реализация с использованием DI-контейнера для соблюдения принципа инверсии зависимостей.

Разработка бэкенда

Код бэкенда довольно прост. Эндпоинты (main.py):

Делаем нативное мобильное приложение с ИИ и бэкендом (Туториал) Программирование, Разработка, iOS, Искусственный интеллект, Туториал, Открытый код, Чистый код, Архитектура по, Frontend, Backend, Open Source, Длиннопост

"onboarding" предоставляет список вопросов анамнеза, которые необходимо заполнить при первом запуске приложения. Ответы будут сохранены на устройстве и использованы для персонализированной диагностики в будущем. "doctor" — основной эндпоинт: он генерирует вопросы на основе предыдущих ответов и карты пользователя, либо возвращает результат диагностики.

Модели:

Делаем нативное мобильное приложение с ИИ и бэкендом (Туториал) Программирование, Разработка, iOS, Искусственный интеллект, Туториал, Открытый код, Чистый код, Архитектура по, Frontend, Backend, Open Source, Длиннопост

Промпты:

Делаем нативное мобильное приложение с ИИ и бэкендом (Туториал) Программирование, Разработка, iOS, Искусственный интеллект, Туториал, Открытый код, Чистый код, Архитектура по, Frontend, Backend, Open Source, Длиннопост

Модуль промптов использует GPT-3.5 от OpenAI для генерации ответов на основе пользовательского ввода, анамнеза и заполненных анкет. Он возвращает пользователю соответствующие вопросы и советы по диагностике здоровья. Как видите, ничего сложного здесь нет. Код элементарен, а промпты - просто набор четких инструкций для LLM.

Настройте окружение и запустите сервер с помощью fastapi dev main.py.

Подробности:

  • fastapi.tiangolo.com/tutorial/first-steps

  • pypi.org/project/openai/

Открытие доступа к локальному хосту через Интернет

  1. Зарегистрируйтесь на сайте ngrok.com и получите токен доступа.

  2. Установите ngrok с сайта ngrok.com/download.

  3. Выполните команду ngrok config add-authtoken <TOKEN>.

  4. Запустите с помощью команды ngrok http http://localhost:8080 (при необходимости измените порт).

Подробные инструкции по настройке можно найти в документации ngrok.

Кодим приложение

Я не буду показывать здесь весь исходный код, для этого есть GitHub. Найти его можно по адресу: HouseMDAI iOS App. Вместо этого я остановлюсь только на важных (IMO) моментах.

Начнем с краткого описания задачи: нам нужно приложение с текстовым полем на главном экране, возможностью задавать набор динамических вопросов и показывать ответ. Также нам нужен одноразовый онбординг. Итак, приступим к коду.

Первым делом нам нужны модели, и они довольно просты (принцип KISS).

Делаем нативное мобильное приложение с ИИ и бэкендом (Туториал) Программирование, Разработка, iOS, Искусственный интеллект, Туториал, Открытый код, Чистый код, Архитектура по, Frontend, Backend, Open Source, Длиннопост

Теперь давайте сделаем онбординг. Продолжаем следовать KISS и SRP (Single Responsibility Principle), никакой бизнес-логики в представлениях, только UI. В данном случае - только список вопросов с прокруткой. Все данные и логика делегированы презентеру. Единственное, что здесь интересно, это небольшой вспомогательный метод bindingForQuestion, который, вероятно, должен быть в презентере, но сейчас это не имеет значения.

Делаем нативное мобильное приложение с ИИ и бэкендом (Туториал) Программирование, Разработка, iOS, Искусственный интеллект, Туториал, Открытый код, Чистый код, Архитектура по, Frontend, Backend, Open Source, Длиннопост

Вы будете удивлены, но в презентере также нет никакой бизнес-логики!

Делаем нативное мобильное приложение с ИИ и бэкендом (Туториал) Программирование, Разработка, iOS, Искусственный интеллект, Туториал, Открытый код, Чистый код, Архитектура по, Frontend, Backend, Open Source, Длиннопост

Все по-прежнему simple, stupid и имеет только одну ответственность. Presenter должен содержать только логику своего представления. Бизнес-логика уровня приложения находится вне его юрисдикции, поэтому презентер просто делегирует ее наверх по стэку вызова.

Также можно заметить, что и View, и Presenter не инстанцируют ни одну из зависимостей, а получают их в качестве параметров при инициализации. Это соответствует принципу инверсии зависимостей, согласно которому модули высокого уровня не должны зависеть от модулей низкого уровня, но оба должны зависеть от абстракций. Это обеспечивает гибкость и упрощает тестирование, а также позволяет легко заменять зависимости или внедрять макеты для целей тестирования.

При использовании паттерна Dependency Injection зависимости предоставляются извне класса, а не инстанцируются внутри него. Это способствует развязке и позволяет упростить поддержку и тестирование кода.

Хотя в данном примере протоколы не используются явно, стоит отметить, что протоколы могут играть важную роль в коде, особенно для абстрагирования и облегчения тестирования. Определив протоколы для представлений, презентаторов и зависимостей, становится проще заменять реализации или предоставлять моки во время тестирования.

Если вы рассматриваете возможность использования протоколов в представлениях SwiftUI, необходимо помнить об одном важном моменте. Поскольку View в SwiftUI - это структура, она требует явного указания типов своих свойств. Это означает, что вам придется сделать её дженериком и пробрасывать тип через весь стек вызовов, что приведет к появлению большого количества шаблонного кода.


Однако существует альтернативный подход, предлагаемый MarkParker5/AnyObservableObject.
Эта библиотека работает аналогично родным оберткам свойств SwiftUI, но убирает проверку типа во время компиляции в пользу проверки во время рантайма. Хотя такой подход может внести некоторые риски, их легко снизить, написав элементарные xcode тесты, которые просто инициализируют представления так же, как вы делаете это во время рантайма.

Используя эту альтернативу, вы можете упростить свой код и оптимизировать процесс работы с протоколами в SwiftUI.

Итак, если презентер не содержит бизнес-логику, то где же она? Это задача для доменного слоя, который обычно содержит сервисы, провайдеры и менеджеры. У них всех очень схожее применение, и разница между ними до сих пор является предметом дискуссий. Давайте создадим OnboardingProvider, который будет содержать всю бизнес-логику процесса онбординга.

Делаем нативное мобильное приложение с ИИ и бэкендом (Туториал) Программирование, Разработка, iOS, Искусственный интеллект, Туториал, Открытый код, Чистый код, Архитектура по, Frontend, Backend, Open Source, Длиннопост

Опять же, он выполняет только одну задачу: управление бизнес-логикой процесса onboarding. Такая инкапсуляция позволяет другим классам взаимодействовать с ним без необходимости беспокоиться о деталях его внутренней реализации, что способствует созданию более чистой и удобной кодовой базы.

Теперь давайте соберем все вместе в корне приложения.

Делаем нативное мобильное приложение с ИИ и бэкендом (Туториал) Программирование, Разработка, iOS, Искусственный интеллект, Туториал, Открытый код, Чистый код, Архитектура по, Frontend, Backend, Open Source, Длиннопост

Это приложение SwiftUI устанавливает свое начальное состояние с помощью оберток полей StateObject. Оно инициализирует OnboardingProvider, OnboardingPresenter и HomePresenter в своем методе init. Провайдер OnboardingProvider отвечает за управление данными, связанными с онбордингом, а OnboardingPresenter управляет логикой представления онбординга. HomePresenter управляет главным домашним представлением.

В теле сцены приложения проверяется, нужна ли регистрация на сайте. Если да, то она представляет OnboardingView с OnboardingPresenter. В противном случае она представляет TabView, содержащий HomeView с HomePresenter и, если доступно, ProfileView.

Теперь настало время для домашнего экрана. Логика проста:

  1. Получаем сообщение от пользователя

  2. Используя сообщение, запрашиваем список вопросов из бэкенда

  3. Показываем вопросы по одному, используя встроенную push-навигацию.

  4. Добавляем ответы к запросу и повторяем 2-4, пока бэкенд-доктор не вернет окончательный результат

  5. Показываем финальный результат

Делаем нативное мобильное приложение с ИИ и бэкендом (Туториал) Программирование, Разработка, iOS, Искусственный интеллект, Туториал, Открытый код, Чистый код, Архитектура по, Frontend, Backend, Open Source, Длиннопост

Похоже, я пропустил 4-й пункт... или нет? Поскольку представление не может содержать никакой логики, эту часть выполняет его презентер.

Делаем нативное мобильное приложение с ИИ и бэкендом (Туториал) Программирование, Разработка, iOS, Искусственный интеллект, Туториал, Открытый код, Чистый код, Архитектура по, Frontend, Backend, Open Source, Длиннопост

Он управляет вводом сообщения пользователем и обновляет путь навигации на основе ответов от бэкенда.

При отправке сообщения метод onSend() отправляет его на бэкенд с помощью DoctorProvider и ожидает ответа. В зависимости от типа ответа он обновляет навигационный путь, отображая либо набор вопросов, либо окончательный ответ.

Аналогично, когда заполняется вопросник, метод onQuestionaryFilled() отправляет заполненный вопросник на бэкенд и соответствующим образом обновляет путь навигации.

Здесь есть небольшое дублирование кода между методами onSend() и onQuestionaryFilled(), которое можно было бы отрефакторизовать в один метод для обработки обоих случаев. Однако оставим это как упражнение для дальнейшей доработки.

Модуль Questionary (View+Presenter) почти является копией Onboarding и просто делегирует логику до HomePresenter, поэтому я не вижу необходимости показывать код. Опять же, для этого есть github.

Последнее, что я хочу показать, это две реализации DoctorProvider, единственной обязанностью которых является вызов API и возврат DoctorResponse.

Делаем нативное мобильное приложение с ИИ и бэкендом (Туториал) Программирование, Разработка, iOS, Искусственный интеллект, Туториал, Открытый код, Чистый код, Архитектура по, Frontend, Backend, Open Source, Длиннопост

Первая использует наш бэкенд:

Делаем нативное мобильное приложение с ИИ и бэкендом (Туториал) Программирование, Разработка, iOS, Искусственный интеллект, Туториал, Открытый код, Чистый код, Архитектура по, Frontend, Backend, Open Source, Длиннопост

Вторая вызывает openai api напрямую (подход backendless) и является практически копией модуля подсказок из бэкенда:

Делаем нативное мобильное приложение с ИИ и бэкендом (Туториал) Программирование, Разработка, iOS, Искусственный интеллект, Туториал, Открытый код, Чистый код, Архитектура по, Frontend, Backend, Open Source, Длиннопост

Обе реализации легко взаимозаменяются благодаря инъекции зависимостей:

Делаем нативное мобильное приложение с ИИ и бэкендом (Туториал) Программирование, Разработка, iOS, Искусственный интеллект, Туториал, Открытый код, Чистый код, Архитектура по, Frontend, Backend, Open Source, Длиннопост

Другой пример

Посмотреть пример этой архитектуры в реальном приложении можно в моем проекте TwiTreads на github.com/MarkParker5/TwiTreads

Что делать дальше

  • Интегрируйте аутентификацию и базу данных пользователей в бэкенд. Можете использовать официальный шаблон FastAPI из FastAPI Project Generation.

  • Реализуйте логику аутентификации в приложении.

  • Сосредоточьтесь на улучшении дизайна приложения, чтобы повысить удобство работы с ним. Давайте создавать красивые приложения!

Заключение

Приведенные проекты и ссылки на код служат реальными примерами, чтобы дать толчок вашей собственной разработке. Помните, что красота технологии заключается в итерациях. Начните с простого, создайте прототип и постоянно совершенствуйте его. Каждый шаг вперед приближает вас к овладению искусством разработки программного обеспечения и, возможно, к следующему большому прорыву в технологиях. Счастливого кодинга!

О других интересных проектах периодически пишу в телеграм.

Показать полностью 14
[моё] Программирование Разработка iOS Искусственный интеллект Туториал Открытый код Чистый код Архитектура по Frontend Backend Open Source Длиннопост
0
3
MarkParker.5
MarkParker.5
1 год назад
Лига Новых Технологий
Серия Хакатон и Доктор Хаус

Доктор Хаус — ИИ-диагност в вашем телефоне. Передаем стартап в хорошие руки⁠⁠

Эта статья является продолжением прошлой статьи, уделяя больше внимания итоговому продукту, а не самому процессу хакатона.

Когда вы создаете ИИ-продукт о здоровье, всегда возникает вопрос этики, точности, ответственности и доверия. Именно поэтому важно разделять продукты для здорового образа жизни и настоящие медицинские продукты. Мы долго думали над тем, где проходит грань между ними и насколько близко мы можем к ней подойти. Это сложный вопрос, но мы нашли решение: создать два самостоятельных продукта, которые находятся далеко от этой черты, но по разные стороны.

«Лучший друг»

Первый — о здоровом образе жизни. Это ваш виртуальный лучший друг, и даже больше: помощник, тренер, мотиватор, иногда даже мама или мини-психолог. Собирая важную информацию о вас в чате и имея в памяти ваш анамнез, биографию и историю, лучший друг может просто слушать, как вы проводите день, комментировать его, помогать вам повседневными советами и рекомендациями или даже помогать вам двигаться к вашим целям и мечтам, используя индивидуальную мотивацию, человеческое сочувствие и понимание ваших чувств.

«Доктор Хаус»

Проблема

Второй продукт уже по-настоящему медицинский. Начнем с проблемы:

  • Сложность самого процесса диагностики из-за сложного строения человеческого организма и огромного количества возможных случаев, которые не всегда могут быть полностью вылечены врачом

  • Перегруженность систем здравоохранения и специалистов

  • Неэффективная и несвоевременная диагностика в здравоохранении, приводящая к ухудшению состояния пациентов.

  • Проблемы доступности для удаленных или малообслуживаемых групп населения

  • Нежелание людей посещать больницы, страх перед врачами.

Диагностика — это важно

Почему диагностика так важна? Эйнштейн сказал: «Если бы у меня был час на решение проблемы, я бы потратил 55 минут на обдумывание проблемы и пять минут — на поиск решений». Подготовка имеет огромное значение для решения проблем. То же самое верно и в медицине. Профессионалы говорят: правильный диагноз — это ~70% исцеления. И мы считаем, что можем улучшить 70 % современной медицины с помощью одного приложения.

Внедрение

Познакомьтесь с Dr. House — ИИ-диагностом в вашем телефоне. Мобильное приложение, которое за считанные минуты ставит диагноз.

Как мы собираемся этого добиться? С начала времен и по сей день мы считаем, что лучший способ коммуникации — это речь. Если вы хотите что-то узнать — задавайте вопросы. Задавая вопросы, я имею в виду задавать правильные вопросы. Итак, мы собираемся создать приложение, которое будет иметь полный анамнез вашего заболевания и задавать корректные персонализированные вопросы, и на основе ответов предлагать возможные диагнозы. Звучит довольно просто, но полезно, не так ли? И уж точно лучше, чем гуглить свои симптомы (у меня каждый раз рак).

И это помогает не только обычным людям. Врачи тоже могут использовать это для перепроверки, второго мнения или предварительного прогноза, например, в машине скорой помощи.

Кроме того, когда доктор Хаус рекомендует посетить больницу, процесс значительно ускорится, потому что в приложении уже есть полный анамнез, история болезни и заполненная анкета, так что и клиенту, и врачу нужно потратить значительно меньше времени. И это же приложение можно использовать в качестве карты экстренной помощи, если пользователь находится «вне сети».

Можно ли сделать лучше?

Можно ли сделать еще лучше? Мы говорим "да"! Как? Интеграции! Приложение может учитывать информацию из Apple HealthKit и медицинских устройств. Или наоборот, API может передавать данные в больницу (и обратно) даже без прямого контакта с человеком.

Если приложение будет следить за состоянием здоровья человека, это значит, что его можно будет отправить домой из больницы гораздо раньше и освободить место для того, кто в этом больше нуждается. Врачи будут следить за состоянием здоровья удаленно, а приложение уведомит их, если что-то не так.

Заключение

Как я уже писал, к сожалению, у нашей команды нет возможности работать над этим проектом фулл-тайм, поэтому мы опубликовали все результаты нашей работы в открытый доступ. Слайды вы можете найти здесь (написан по памяти неделю спустя). Полную информацию о проекте, включая все заметки и исходный код, можно найти на GitHub.

Показать полностью
[моё] Программирование Инновации Технологии Искусственный интеллект Медицина Изобретения Стартап Хакатон Открытый код Разработка
1
Партнёрский материал Реклама
specials
specials

Разбираетесь в укладке теплого пола лучше, чем профи?⁠⁠

Проверьте, насколько вы круты в монтаже, и порадуйте котика.

Кот Ремонт Текст
25
Tekhnonacional
Tekhnonacional
1 год назад

Российские разработчики могут потерять доступ к библиотекам открытого кода⁠⁠

Российские IT-компании могут потерять доступ к зарубежным библиотекам открытых кодов. Даже если формальных оснований для этого нет, правообладатели открытых библиотек, подчиняющиеся юрисдикции США, предположительно, прекратят техподдержку и обновление ПО как минимум для компаний из санкционного списка,  а в перспективе вообще для всех российских разработчиков.

Российские  разработчики могут потерять доступ к библиотекам открытого кода IT, Политика, Информационная безопасность, Импортозамещение, Российское производство, Санкции, Запад, Открытый код, Программирование

«Сейчас многие продукты создаются на основе исходного кода, то есть на основе некоего полуфабриката, который в неизменном виде использовать достаточно сложно. И любая компания берет его в том виде, который уже написан, и дальше начинает код улучшать и дорабатывать»  – говорит директор IT-компании Oxygen Павел Кулаков.

Многие российские компании использовали open source в своих программах по лицензии. Теперь им  придется изучить условия соглашений. В них могло быть предусмотрено право на расторжение договора с юрлицом, попавшим под рестрикции. Если такой пункт был, аккаунты отечественных разработчиков в иностранных библиотеках просто заблокируют.

В зоне риска, в частности, компании «Астра», «Ланит» и структуры IBS, попавших в американский SDN-List.  Почти все перечисленные российские компании использовали открытые коды в продуктах, поскольку создание проектов с нуля занимает годы, а также требует крупных вложений и привлечения большого числа  программистов. Впрочем, даже если российские компании не отключат от библиотек, то их точно лишат техобслуживания и обновлений, полагают эксперты.

Российские подсанкционные компании уже теряли доступ  к открытым кодам. В 2022 году крупнейшая open source библиотека GitHub заблокировала аккаунты, в частности, «Сбера» и Альфа-банка. На этом фоне в Минцифры даже задумались о создании собственного хранилища на базе отечественных разработок,  но  пока дальше идей в этом плане не продвинулись.

Сами открытые коды разработчики продолжат использовать в любом случае. Для этого существуют  «серые схемы» обхода санкций.  Но  можно ждать удорожания процесса разработки, появляются дополнительные усилия, которые потребуется приложить. Хотя в краткосрочной перспективе санкции не повлияют на выполнение текущих контрактов внутри России, в долгосрочной — последствия могут оказаться весьма болезненными.

Показать полностью
IT Политика Информационная безопасность Импортозамещение Российское производство Санкции Запад Открытый код Программирование
57
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии