Добавить в корзинуПозвонить
Найти в Дзене

Приложение Darts Score Keeper

Всё началось с обычного отпуска в Египте. Как и многие туристы, мы проводили время в отеле, участвуя в различных развлечениях. Одним из самых запоминающихся стал турнир по дартсу, который организовывал аниматор. Игра захватывала, но был один существенный недостаток — постоянная путаница с подсчётом очков. Нужно было помнить: В основном всей этой головной болью занимался аниматор, который вручную вёл учёт на бумаге. И тогда пришла мысль: «Почему бы не сделать удобное приложение для подсчёта очков в дартс?» Так появилась идея Darts Score Keeper — приложения, которое упростит игру как для аниматоров, так и для всех любителей дартса. Первым делом нужно было понять, какой функционал необходим: Для разработки было решено использовать: Описание: Главный экран приложения, где пользователь выбирает режим игры (301, 501 или 701 очков). Здесь же можно переключить язык интерфейса (русский/английский) и ознакомиться с правилами. Особенности: Описание: На этом экране происходит добавление и редактир
Оглавление

От египетского отдыха до собственного приложения: история создания Darts Score Keeper

Предыстория: как всё начиналось

Всё началось с обычного отпуска в Египте. Как и многие туристы, мы проводили время в отеле, участвуя в различных развлечениях. Одним из самых запоминающихся стал турнир по дартсу, который организовывал аниматор.

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

  • У кого сколько очков осталось
  • Кто сейчас ходит
  • Правильно ли посчитали сумму бросков
  • Не «перебрал» ли игрок

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

Так появилась идея Darts Score Keeper — приложения, которое упростит игру как для аниматоров, так и для всех любителей дартса.

Разработка: от идеи к реальности

Этап 1: Проектирование

Первым делом нужно было понять, какой функционал необходим:

  • Поддержка популярных режимов (301, 501, 701)
  • Возможность добавлять несколько игроков
  • Быстрый ввод очков
  • Автоматический подсчёт
  • Определение победителя

Этап 2: Выбор технологий

Для разработки было решено использовать:

  • Kotlin — современный язык для Android
  • Jetpack Compose — декларативный UI-фреймворк
  • Material Design 3 — для красивого и современного интерфейса

Этап 3: Реализация основных функций

Скриншоты приложения

📱 Экран выбора режима игры

Описание: Главный экран приложения, где пользователь выбирает режим игры (301, 501 или 701 очков). Здесь же можно переключить язык интерфейса (русский/английский) и ознакомиться с правилами.

Особенности:

  • Простой и понятный интерфейс
  • Кнопка информации с правилами игры
  • Выбор языка одним кликом

👥 Ввод имён игроков

-2

Описание: На этом экране происходит добавление и редактирование имён игроков. Можно:

  • Добавлять неограниченное количество участников
  • Менять порядок игроков (перемещать вверх/вниз)
  • Удалять лишних игроков
  • Редактировать имена прямо в списке

Техническое решение: Используется LazyColumn для эффективной работы с большими списками.

🎯 Игровой процесс

-3

Описание: Основной экран игры отображает:

  • Текущий режим игры
  • Таблицу с очками всех игроков (активный игрок выделен цветом)
  • Три поля для ввода отдельных бросков
  • Автоматический подсчёт суммы
  • Информацию о текущем ходе

Умный подсчёт: Приложение автоматически суммирует три броска и проверяет, не превышает ли сумма 180 очков.

Быстрый ввод очков

-4

Описание: Одна из ключевых фишек приложения — система быстрого ввода, имитирующая реальную мишень для дартса:

  • Сектора мишени (20, 1, 18, 4, 13, 6, 10, 15 и т.д.)
  • Кнопки удвоения (x2) и утроения (x3)
  • Быстрый доступ к 25 и 50 очкам (внешний и внутренний круг)
  • История ввода — можно отменить последний бросок
  • Автоматический подсчёт с учётом множителей

Цветовая схема повторяет реальную мишень:

  • Чёрные и белые сектора
  • Зелёные кнопки для удвоения
  • Красные кнопки для утроения

🏆 Определение победителя

-5

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

Правила проверки:

  • Очки должны быть ровно 0
  • Последний бросок должен быть в «дабл» (удвоение)
  • Нельзя «уйти в минус»

Проблемы, с которыми пришлось столкнуться

1. Конфликт интерфейсов

Проблема: При размещении кнопки информации («i») внутри поля выбора режима, она конфликтовала с выпадающим списком — при нажатии на «i» открывался и список режимов.

Решение: Использовали Box с наложением элементов. Кнопка информации была визуально размещена внутри поля, но программно отделена от логики выпадающего меню.

-6

2. Сохранение языка

Проблема: При выборе языка приложение перезапускалось (recreate()), что приводило к потере состояния и возврату к русскому языку.

Решение: Отказались от автоматического перезапуска Activity. Вместо этого язык сохраняется в SharedPreferences и применяется динамически через LaunchedEffect:

-7

3. Адаптация под разные экраны

Проблема: На устройствах с высоким соотношением сторон (например, Samsung S25 Ultra) нижние элементы перекрывались системной панелью навигации.

Решение: Добавили модификаторы navigationBarsPadding() и imePadding() для учёта системных элементов:

-8

4. Быстрый ввод с историей

Проблема: Нужно было реализовать возможность отмены последнего ввода в быстром режиме.

Решение: Создали список history, который хранит все введённые значения. При отмене просто вычитаем последнее значение из суммы:

-9

Дополнительные возможности

🌍 Двуязычность

Приложение поддерживает русский и английский языки. Переключение происходит мгновенно без перезапуска приложения. Выбранный язык сохраняется между сессиями.

💾 Сохранение данных

Имена игроков сохраняются между играми. Не нужно вводить их заново каждый раз.

🎨 Современный дизайн

Использован Material Design 3 с тёмной темой, что делает приложение приятным для глаз и соответствующим современным стандартам.

📱 Адаптивность

Интерфейс корректно отображается на устройствах с разным размером экрана и соотношением сторон.

Где скачать?

Приложение Darts Score Кeeper уже доступно для скачивания!

📲 RuStore (официальный магазин)

Ссылка: https://www.rustore.ru/catalog/app/com.example.dartsapp

-10

💾 Прямая ссылка (для тех, кто не хочет скачивать с RuStore)

Яндекс Диск: https://disk.yandex.ru/d/hvwZaA9qUCB5ng

Заключение

Создание Darts Score Кeeper было интересным путешествием от простой идеи до полноценного приложения. Теперь не нужно мучиться с подсчётом очков — всё сделает приложение!

Приложение будет полезно:

  • ✅ Аниматорам в отелях и развлекательных центрах
  • ✅ Любителям дартса для домашних турниров
  • ✅ Тем, кто хочет играть без головной боли с подсчётом

Скачивайте, играйте, наслаждайтесь! 🎯

Если у вас есть вопросы или предложения по улучшению приложения — пишите в комментариях!