Zlatoslav

На Пикабу
Дата рождения: 23 октября
103 рейтинг 0 подписчиков 14 подписок 1 пост 0 в горячем
Награды:
5 лет на Пикабу
4

Опыт с AI-ассистированной разработкой аналога Strava / Runtastic

Итак, я недавно начал осваивать программирование с ассистированием от AI.
Ну что... Я впечатлён! А теперь чуть поподробнее.

Я решил написать нативное приложение для андроид на kotlin.
Суть приложения: запись трека тренировки (бег / вело / прогулка).
Но к этому есть предыстория.

На просторах интернета я встретил одну библиотеку для записи GPS-трекинга в бэкграунде, с весьма любопытной идеей: когда мы останавливаемся - GPS на телефоне отключается (для экономии батареи). Далее GPS включается только в момент, когда детектировано начало движения. Детекция движения происходит через одно гугловое API, отслеживающее данные с датчиков телефона, а именно: акселерометр, гигрометр, магнетометр.
API называется "Activity Recognition Transition API", и оно, кстати, использует machine learning, для обработки данных с датчиков.
Для тех кому прям интересно, здесь есть коротенькая видео презентация: https://developers.google.com/location-context/activity-recognition
Так вот, я скачал упомянутую библиотечку, в версии для react-native (ну, для меня так проще), быстро набросал приложение (благо там в комплекте есть демо-приложение, так что много кодить не пришлось).
Ну и - пошёл в поля. Тестировать.
Оказалось, что в реальности детекция начала активности происходит... как бы это сказать... гораздо и гораздо медленнее, чем я этого ожидал. Вплоть до того, что: сел на вел, поехал, а событие "on_bicycle" произошло через 500-700 метров. Ну иногда быстрее, но в целом... неудовлетворительно.
Мне стало интересно - действительно гугловое API работает так хреновастенько... или может автор библиотеки намудрил там что-то.
Это, собственно, была предыстория, почему я решил написать своё приложение на эту тему :)

Сначала я поискал библиотеку для react-native, которая была бы чисто обёрткой и позволяла бы воспользоваться упомянутым API. И она даже нашлась... Но репозиторий не обновлялся 7 лет. Что в современном мире означает, что мне пришлось бы использовать очень старые версии всего, чтобы её заюзать. Не хотелось копаться в старом, поэтому решил набросать нативное приложение на kotlin. А с учётом того, что до этого момента я вообще ничего не знал о kotlin, то, конечно же, я решил прибегнуть к помощи AI.

Какой AI использовать - я долго не выбирал, прибегнул к "попсовому" варианту - тупо chat-GPT. Что хочу сказать - он помог мне довольно быстро написать рабочее приложение и заодно чуток приобщиться к android studio и kotlin. На это ушёл всего один вечер (ну ладно, это длилось до середины ночи). Я считаю это успешный успех, т.к. без него я ковырялся бы, даже не знаю сколько.... как минимум несколько дней точно.
В общем, вышло прикольное приложение... В полях я его тоже уже потестировал. Про гугловое API детекции активностей могу сказать следующее: если GPS включен, то детекция происходит довольно быстро, приемлемо быстро. И довольно точно - я тестировал велосипед, ходьбу, бег. А вот если GPS выключен, и ему приходится полагаться только на акселерометр-гирометр-магнетометр.... Всё гораздо печальней. В принципе, детекция тоже срабатывает... Но неприемлемо долго. Поэтому от главной идеи автора упомянутой библиотеки, видимо, придётся отказаться. Ну или не полагаться на API гугла... но самому анализировать данные с датчиков - мне пока что не хочется.

Образец трека, записанного разработанным приложением:
https://zvp.ru/misc/maps/out2025-03-12.html
(Хостится на raspberry, да и интернет убогий, надеюсь, не заддосят :))
Разными цветами отображаются разные виды activity, как они были задетектированы google-api.
Это - велопокатушка, поэтому, в основном, синий цвет.

А на картинках сегодня - маленький баттл между chat-gpt (последняя картинка) и deepseek (идёт первее, на скриншоте есть лого дипсика).

Собственно, промпт

Собственно, промпт

Ответ от DeepSeek

Ответ от DeepSeek

Ответ от Chat-GPT

Ответ от Chat-GPT

Вы, кстати, за кого? Напишите в комментариях :)

Также буду рад увидеть советы, на тему, как можно оптимизировать всё описанное, в частности - процесс разработки (ассистирование от AI), да и по возможной оптимизации технических моментов тоже интересно.

Несмотря на то, что зарегистрирован здесь более 6 лет, это мой первый пост, так что прошу сильно не пинать :)

Всем хорошего дня!

Показать полностью 3
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества