Как мы создаем мобильное приложение по статистике здоровья населения Health-Radar
Сидя на карантине наверняка многим приходило в голову сделать что-то полезное и не столь отдаленное от жизни. Для кого-то это рисование, для кого-то музыка, кому-то больше всего хочется читать, но времени никогда нет. Давно купленная книга уже заждалась своего читателя... В моем случае было все очень похоже, только вдохновляет меня не только книги, но и мечты, мечты о том, что можно сделать что-то полезное и прекрасное. И вот, волей-не-волей, время нашлось... Карантин... Уж лучше б времени не хватало как до карантина (как в песне Слепакова: «пусть будет все как прежде ...»), но нет же, бери и делай то, о чем так долго мечтал!
Сейчас, спустя 2 месяца карантина уже можно сказать, что он не прошел бесследно. Объединившись друзьями, родственниками и родственниками друзей, их поддержкой и реальной помощью была придумана идея мобильного приложения, и как результат — само приложение Health-Radar. В то время как все на ТВ/youtube рекомендуют книги, сериалы, фильмы мы застряли над реализацией этой чертовой идеи, которая вроде и близко, но по факту так далеко. Бессонные ночи kotlin-га и swift-инга, связывания Firebase App Distribution и Github Actions, кастомная кластеризация Google карт, развертывание CI/CD c использованием Fastlane — все это для того, чтобы в конце получить бан от Google Play и App Store. Не такого результата я ожидал...
А ведь мне жена всегда говорит, что я ловко умею планировать, к сожалению, и в этот раз смысл оказался двояким. Плохое планирование и незнание правил Google и Apple привели к практически бессмысленной работе, вот разве что остается выложить весь код в открытый доступ, ведь проект все равно не предполагал миллионов (но и тут беда — хромает правописание, есть что выложить, но Clean Architecture не простят меня). Так что если кому-то интересно — напишите, я тогда причешу код и таки сделаю репоз публичным.
Ближе к сути, январь-март
Где-то в январе все мы активно начали получать информацию о коронавирусе, и со временем этой информации становилось все больше и больше. И одним из самых хороших, простых и достоверных источников стал сайт института Хопкинса. Достаточно лишь найти свой регион на карте и статистика видна, сам делаешь выводы. Только вот один нюанс, если в развитых странах мы видим картину в миллион заболевших, Китай говорит о том, что может выполнить миллион тестов за один день и адекватно отреагировать на ситуацию, то в Украине вообще непонятно, где, что происходит, и происходит ли вообще. Ведь кто из нас обращается в больницу или к участковому врачу, если симптомы терпимы, ну и пусть, что похожи на грипп. А какое количество людей, которые обратились к терапевту, делает тесты, чтобы определить, что это? Ответ на такую постановку задачи стремится к нулю, ведь финансовая сторона вопроса многим помогает сделать правильное решение.
К февралю уже была более детальная и статистически подтвержденная картина симптомов и длительности заболеваемости. Если опять же смотреть на пример Китая, то можно понять, сколько сил нужно выделить, чтобы локализовать болезнь. К сожалению, Украина не пойдет на такие меры, опять же упираемся в финансы.
В марте уже стало понятно, что Украина будет тоже поражена этим вирусом, а быть может уже давно поражена. И вот тогда возникла идея — опросника состояния здоровья всего населения. Добровольное, анонимное голосование, которое ни к чему не обязывает, но может дать как государству, так и самим голосующим понимание того, как следует действовать в твоем районе или соседнем городе, где живут твои родные...
Ближе к делу, апрель
Длительное время не решались начать, но позже, когда Украина подхватила эстафету хакатонов (hack-corona), суть которого мозговой штурм решений противодействия коронавируса. Мы тоже подали идею, в надежде, но ждать не стали, и стартовали не дожидаясь финала. Больше половины людей нашей команды работали по паре часов в день, после того как возвращались домой с работы. (На тот момент это означало что по истечении 8 часов нужно закрыть рабочий ноутбук и открыть домашний).
Кстати, не могу сдержаться, чтобы не оставить место для холивара. В конечном счете 4 000 000 гривен, разошлись на 22 проекта, судьба которых должна была быть обнародована 10 мая. К слову, 4М гривен не так уж много и на мой взгляд — реальная сумма для
First Delivery, май
Идея нашего приложения заключается в следующем: пользователь, который установил приложение должен иметь быстрый и легкий доступ к статистике здоровья населения в своем районе. Ведь обобщенная статистика по всей стране или области это конечно классно, но живя в селе удаленном от города миллионника, она может оказаться совершенно не релевантной. В то же время и разные районы города также могут быть поражены по-разному и может кому-то стоит больше уделить внимание самозащите, а кому-то в меньшей степени. По опыту уже пережившего карантина можно сказать, что очень сложно находиться длительное время в 4 стенах, поэтому, вероятно, правительство могло бы вести адаптивный карантин не только по областям, а и по районам, или даже улицам/части улиц, где ситуация улучшается или ухудшается...
Используя GPS, приложение определяет текущее местоположение и в заданном радиусе (по умолчанию 1 км) отображает статистику. Статистику тех, кто проголосовал в этом же приложении.
Что может быть проще, просто отвечать на вопрос о том, как ты себя чувствуешь! Но как всегда есть НО — как мотивировать людей голосовать и рассказывать о своем здоровье? К примеру, сбор данных (сиптомы + позиция по индексу проживания) уже производит приложение всемирной организации здравоохранения, у них также добровольно можно пройти и оставить заметку о своем состоянии на текущий момент, в результате, после голосования вы увидите общее количество проголосовавших во всем мире, без понимания, как же себя люди чувствуют хотя бы в вашей стране, то есть база у них закрытая. Привлекают внимание они тем, что дают советы о том, как лучше уберечься от коронавируса, рассказывая симптомы и способы защиты.
Мы же никакая ни мед. организация, какое же право мы имеем постить информацию о том как уберечься, если мы не компетентны в этом вопросе? Значит так делать нельзя, а можно лишь постить то, что имеем по факту, цифры того, что люди чувствуют. С точки зрения пользователя было предусмотрено несколько важных правил:
- так как мы неправительственная организация, нам личные данные пользователя ни к чему, мы решили использовать безличные данные о состоянии здоровья, симптомы, по которым можно в первом приближении понять растет ли количество людей с похожими симптомами. Симптомы разных болезней так же, как и симптомы коронавируса можно найти в интернете. Лично я имею некоторое представление благодаря Е. Комаровскому, считаю, что он проводит отличную информационно-разъяснительную работу, спасибо за это!
- облегчить и ускорить сбор/доступ к данным максимально. «На Android-е» мы добились этого путем отображения релевантной статистики и опросника в локальных уведомлениях (типа пуш уведомлений). Они появляются словно уведомления погоды от Google. Раз в день, в зависимости от состояния заряда вашего телефона, доступности сети и других факторов вам будет предложен опросник с уже подготовленной статистикой по вашему району. Это уведомление можно убрать, тогда ваш голос засчитан не будет, а можно в нем еще и ответить как вы себя чувствуете, и тогда остальные пользователи увидят статистику уже с вашим ответом. Если вы себя чувствуете хорошо, то уведомление просто исчезнет, а если же вдруг чувствуете неважно, то тогда уже откроется окно, где вы сможете указать симптомы того, что ощущаете. Ваша статистика остается актуальной в течение 7 дней, если вы не проголосуете 8 дней подряд, то другие пользователи не увидят ваш голос в статистике. Значит в приложение даже нет необходимости заходить, можно лишь в первый раз разрешить доступ к геопозиции, а дальше дело за нами.
- карта распространения коронавируса. Знаем, что такую карту предлагают многие, даже на украинском сайте RNBO есть вся информация по странам и нашим областям. Однако фишкой нашего приложения является более детальная карта по районам. Тут надо сказать отдельное спасибо участнику за проявленный интерес к сбору таких данных. А с использованием кастомных маркеров и кластеризации эта статистика отображается еще и удобно. Наша карта может содержать информацию не только о коронавирусе, но и о других болезнях, которые могут обширно распространяться (Грипп, ветрянка, краснуха), но это только в планах.
На данном этапе мы имеем идею и хоть она не прекрасна, но может принести практическую пользу. Работа пошла, и спустя полтора месяца, в конце мая наш ждало первое разочарование. Google play приостановил и удалил приложение сразу же из-за упоминания слова Covid-19, предложив предоставить подтверждающие документы о том, что мы являемся либо правительственной организацией, либо публичной организацией здравоохранения. Вот так дела, естественно у нас нет ни одного, ни другого, и даже как-то не понятно, что проще, получить поддержку публичной организации (любой страны) или нашего правительства (вопрос остается открытым).
К нашему счастью был и третий вариант, убрать все упоминания Covid-19. А так как основным в приложении считается возможность отслеживания симптомов, а не болезней, то мы решили уйти от Covid-19 и опубликовать приложение заново. На этот раз все прошло успешно и 15 мая Health-Radar опубликовали.
К первой публикации мы успели сделать все, что требовалось минимально для работы приложения. И была только одна беда, но и радость одновременно, карантин начал затихать, погода начала улучшаться и это только говорило о том, что нам уже не стоит сильно впрягаться в проект, и что стоит дойти до определенной точки и все. Такой точкой или даже точками стало следующее:
- создание промо видео, для возможной рекламы на youtube и для наглядного обоснования надобности приложения, так сказать для обучения;
- публикация iOS версии;
- регистрация на краудфандинговой платформе для сбора средств на рекламу;
- реклама и блог пост.
С такими целями и небольшим разочарованием о том, что паровоз ушел мы принялись за остатки...
Свершения и потери, июнь
Июнь... Ему предшествовала неделя отдыха, и послабление карантина. Какое, нафиг, приложение, когда на улице солнышко, когда наконец разрешили хотя бы сходить в тренажерку а не как последние месяцы в тренажОрку у себя на кухне, когда ребенок пошел в сад и тишина в доме стала по расширенному расписанию (не с 14 до 15, а с 8 до 17), давайте отдохнем. Жизнь потихоньку начала налаживаться.
Повышению настроения еще и сыграла возможность создания промо видео своими руками и достаточно быстро. Правда не бесплатно) За 24 бакса и
И пара гифок портированных из видосов в начале и конце статьи.
К потерям можно отнести сразу 2 пункта: краудфандинговая платформа, на которой ранее удавалось собирать средства, по всей видимости, закрылась, а альтернативы надо проверять. Сначала подумали, а давайте опубликуем на первых 10, которые найдем в интернете, но уже после первой решили отложить в долгий ящик. Нет большого опыта в этом, но начало положено.
iOS версия, которая подоспела в середине месяца также оказалась заблокированной. На первый взгляд ошибка нам показалась похожей:
Вырезки ответа от Apple:
- We found your app’s metadata contains inappropriate content. Specifically, your app includes inappropriate references to the COVID-19 pandemic in keywords.
- For this reason, in addition to Guideline 2.3.7, your app is potentially in violation of Guideline 5.6 — Developer Code of Conduct.
- Per section 5.1.1 (ix) of the App Store Review Guidelines, apps that provide services or collect sensitive user information in highly-regulated fields, such as healthcare, should be submitted by a legal entity that provides these services, and not by an individual developer.
Изначально мы даже не обратили внимание на пункт 5.1.1 и действовали по уже накатанной схеме, удалили упоминание о Covid-19 и на всякий случай карту Covid-19, но повторный запрос был отклонен и тогда пункт 5.1.1 проявился и стало понятно, что без организации мы вряд ли, что решим. Разве что сможем как-то доказать, что оно не относится к здравоохранению (healthcare). А это достаточно сложно, хотя бы из-за названия Health-Radar.
Выхлоп июня оказался достаточно тихим, ждали версию для второй платформы, ждали ревью этой самой версии, но пока не знаем, что делать. Очень ждем ваших отзывов, как много раз вы подавали приложение на проверку? Имели ли вы похожий опыт и как решался вопрос?
Реклама и блог пост, ну или статья на доу, что для меня одно и тоже, наконец подошел к концу, 30 июня, можно завершать.
Команда
Команда состояла из 8 человек, плотно поладивших друг с другом. Вероника Загребельная — очень положительный и отзывчивый дизайнер, фрилансер, всегда прислушивается к команде и полна своими мыслями. Очень удивило ее вовлеченность в дизайн и стили, кастомизация карты для светлой и темной темы заслуживает отдельной похвалы, молодец! Виталий Рубан — достанет всех и все, очень нужный человек, доставший детальную карту статистики по Codiv-19! Мария Нильга (особые заслуги — кластеризация карт), Дмитрий Глазунов, Сергей Макаренко, Дмитрий Русин, Александр Сергиенко, Дарья Ерофеева — дэвы Android, iOS и Devops можно сказать в одном флаконе.
Выводы и планы
У нас были планы по расширению приложения: добавления возможности голосовать за родных и близких. Добавить рекапчу для этих целей. Так же создать режим, где можно было бы отмечать места, в которых бывал приболевший человек (супермаркеты, садики, школы), с уведомлением подписавшихся на апдейт по этим местам.
Также возможна блютуз интеграция, чтобы собирать сведения о том, контактировал ли ты с приболевшим человеком на основании оценки его собственного здоровья. В нашем понимании это выглядеть должно безлично, и анонимно, то есть сбор данных будет проходить целый день, а отчет о контактах можно будет увидеть 1 раз в конце дня, где может быть рассказано о том, что вы находились поблизости (в радиусе до 10 м) с человеком с температурой и болью в горле или с тремя людьми с насморком. Такая информация не должна обрабатываться на серверах, она может оставаться локальной для телефона.
Также была идея добавления отдельной сущности для создания дневника самочувствия, для отслеживания своих сезонных негодований, каждый может найти в этом свои преимущества.
Идей много, но двигаться дальше не можем, ожидаем на помощь с iOS версией. А пока занялись сайтом, чтобы покрыть iOS хотя бы так.
Все комментарии очень приветствуются, только желательно в рамках приличия, первая моя публичная статья, не судите строго.
Чек лист для коментария:
«Заходит» ли вам идея приложения?
Можете ли порекомендовать знакомого из общественной организации здравоохранения или контакты самой организации?
Можете ли посоветовать контакты правительственных организаций, которые смогут нас выслушать и помочь?
Другие варианты публикаций для iOS?
Понравилось ли промо видео?
Стоит ли продолжать проект?
Ожидаете ли вы вторую волну? Как бороться с карантином?
Google Play.
Telegram support.
Желающим присоединится пишите в LinkedIn.
25 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів