Yandex Metrika tracking pixel
Как создавался Personality Compass: 454 вопроса оффлайн | Блог

Как создавался Personality Compass

✍️ Илья Серышев, независимый разработчик из Эстонии

🧭 Personality Compass — это offline-first приложение для самопознания с 454 вопросами по трем психологическим моделям. Оно генерирует профессиональные PDF-отчеты, работает 100% оффлайн и не собирает никаких данных. Вот история его создания.

🧠 Проблема, которую я хотел решить

Я всегда интересовался психологией личности — Эннеаграммой, Big Five и другими моделями. Но меня постоянно раздражали две вещи:

Поэтому я решил создать свое собственное решение. Такое, которое работает 100% оффлайн, хранит все данные на устройстве и предлагает настоящую глубину — 454 вопроса, полностью бесплатно.

🏗️ Приложение в цифрах

Характеристика Детали
Платформа Flutter / Dart
Архитектура Offline-first, только локальные данные
Языки Английский, русский, эстонский (полная локализация)
Всего вопросов 454 во всех тестах
Тесты MindPath 16 (80/20 вопросов), MindPath 5D (120/20 вопросов), Эннеаграмма (254/81 вопросов)
PDF-отчеты Профессиональная выгрузка с графиками, цветами и инсайтами
Хранение Все результаты сохраняются локально, нет облака, нет регистрации

🔧 Технический разбор

Структура проекта

📁 lib/
├── components/ - Переиспользуемые UI компоненты
│ └── enneagram/
│ ├── cards/ - Карточки для отображения результатов эннеаграммы
│ │ ├── action_buttons.dart - Кнопки действий (PDF, история)
│ │ ├── arrows_card.dart - Карточка стрелок развития
│ │ ├── career_card.dart - Карьерные аспекты
│ │ ├── development_card.dart - Личностное развитие
│ │ ├── interactive_chart_card.dart - Интерактивная диаграмма
│ │ └── type_card.dart - Основной тип эннеаграммы
│ └── charts/
│ └── interactive_enneagram_chart.dart - Интерактивная визуализация
├── constants/ - Константы и конфигурации
├── l10n/ - Локализация
├── models/ - Модели данных (19 файлов)
├── screens/ - Виджеты экранов (18 экранов)
├── services/ - Бизнес-логика и обработка данных
├── utils/ - Вспомогательные утилиты
│ ├── enneagram_complete_pdf/ - Генерация PDF
│ │ ├── sections/ - 10 секций PDF-отчета
│ │ └── widgets/ - PDF-виджеты
│ └── pdf_exporter.dart - Утилиты для генерации PDF

📁 assets/
├── content/
│ ├── enneagram/ - Контент эннеаграммы на 3 языках
│ │ ├── descriptions/ - 8 категорий описаний
│ │ └── questions/ - 3 набора вопросов (всего 254)
│ ├── interpretations/ - Интерпретации результатов
│ └── mindpath/ - Вопросы MindPath 16/5D
└── lang/ - Файлы локализации (en.json, et.json, ru.json)
📝 Примечание: Все файлы контента поддерживают три языка (en, et, ru) с языковыми расширениями, например core_descriptions_en.dat, core_descriptions_ru.dat и т.д.

Ключевые технические вызовы и их решения

1. Генерация PDF с графикой на 100% оффлайн

Самая сложная техническая задача: генерация профессиональных PDF-отчетов с интерактивными графиками полностью без интернета.

Решение:

// Пример: захват графика для PDF final boundary = _chartKey.currentContext?.findRenderObject() as RenderRepaintBoundary; final image = await boundary.toImage(pixelRatio: 3.0); final byteData = await image.toByteData(format: ImageByteFormat.png);

2. Создание оригинальных психологических моделей

Я хотел глубину комплексных моделей личности, но столкнулся с двумя проблемами: вопросы приватности (большинство тестов отправляют данные на серверы) и ограничения торговых марок. Поэтому я создал свои собственные модели:

Обе модели полностью оригинальны, работают 100% оффлайн и свободны от каких-либо ограничений интеллектуальной собственности третьих сторон.

3. Полная Эннеаграмма (254 вопроса!)

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

Реализация:

4. Интерактивный график эннеаграммы с "умными" стрелками

Диаграмма эннеаграммы показывает 9 точек с соединительными стрелками. Я хотел сделать ее контекстно-зависимой:

Этот цикл "интерактивность → PDF" гарантирует, что пользователи видят ту же визуализацию в отчетах, что и в приложении.

🎨 Дизайн-система и консистентность

Я создал централизованную систему стилей (EnneagramCardStyles), которая обеспечивает визуальную консистентность на всех экранах и в PDF-отчетах:

// Единый источник истины для стилей import './utils/enneagram_card_styles.dart' as styles; // Использование консистентных компонентов везде styles.EnneagramCardStyles.buildEnhancedCard() styles.EnneagramCardStyles.buildColoredSection()

Каждый тип эннеаграммы имеет свой цветовой профиль, который последовательно применяется в интерфейсе, настройках и PDF-экспорте.

🧪 Тестирование и надежность

Модульные тесты обеспечивают точность психологических расчетов:

flutter test

📊 В цифрах

3
Психологические модели
454
Всего вопросов
3
Языка
4
Магазина приложений

📱 Что получают пользователи

🚀 Что дальше?

Архитектура готова для комбинированных отчетов — кросс-анализа результатов MindPath 16, MindPath 5D и Эннеаграммы в едином PDF "Personality Compass". IntegrationEngine уже на месте, ждет наполнения.

💡 Уроки, которые я извлек

📬 Поделитесь своим мнением

Мне очень важно ваше мнение! Если у вас есть вопросы о разработке, предложения по новым функциям или вы просто хотите поделиться опытом использования приложения — вот как со мной связаться:

💬 Вопросы к сообществу:

  • Вы создавали offline-first приложения? С какими вызовами столкнулись?
  • Использовали бы вы такой инструмент для тимбилдинга, коучинга или личного роста?
  • Насколько важна для вас приватность при прохождении тестов личности?

Делитесь мыслями по email или в LinkedIn — я читаю и отвечаю на каждое сообщение!

🔗 Скачать Personality Compass

Попробуйте Personality Compass сегодня

Узнайте свой тип личности с 454 вопросами по 3 психологическим моделям. 100% оффлайн, полная приватность, профессиональные PDF-отчеты.

Скачать сейчас
"Познай себя — и ты познаешь весь мир"