Dmitrii Cherviakov

GrowDiaries · единственный iOS-разработчик

Статистика разработки

iOS-приложение · SwiftUI + TCA · 2 мая 2025 — 21 августа 2026 · 321 коммитов в main

86 061
строк Swift, которые живут в проекте сегодня — без сгенерированных локализаций и ассетов

Рост продуктивности год к году

Два одинаковых шестимесячных окна: Июнь 2025 — Ноябрь 2025 и Февраль 2026 — Июль 2026. Выросли все три метрики — вывод не опирается на одно число.

Code output
11 006+81%
строк / месяц · было 6 066
Delivery cadence
25.3+48%
shippable builds / месяц · было 17.2
Feature throughput
6.7+38%
фич / месяц · было 4.8

Июль 2026 — рекордный месяц проекта: добавлено 29 125 строк. Август 2026 исключён из сравнения — месяц ещё идёт (данные по 21 августа 2026).

Shippable builds
321
каждый коммит в main — рабочая сборка
Средний коммит
390
строк добавлено за коммит
Лучший месяц
Июль 2026
+29 125 строк — рекорд проекта
Самая длинная серия
6 дней
дней с коммитами подряд, Август 2025

Рост кодовой базы

накопленные строки Swift (добавлено − удалено), по месяцам
Показать таблицу
МесяцНакоплено
апр. 250
май 252 419
июнь 256 748
июль 2510 516
авг. 2516 542
сент. 2518 385
окт. 2520 411
нояб. 2522 319
дек. 2523 263
янв. 2622 594
февр. 2626 541
март 2628 249
апр. 2631 230
май 2637 972
июнь 2648 297
июль 2668 333
авг. 2676 178

Скорость

Месячный выпуск. Приложение написано одним человеком, поэтому растущая кривая отражает рост личной продуктивности, а не численности команды.

Строк добавлено за месяц

только *.swift, до удалений · авг. 26 — неполный месяц
строк добавленосреднее за 3 месяца
Показать таблицу
МесяцДобавленоУдаленоСр. 3 мес.
апр. 25000
май 256 6674 2483 334
июнь 256 4982 1694 388
июль 255 8812 1136 349
авг. 259 9203 8947 433
сент. 254 0292 1866 610
окт. 255 8943 8686 614
нояб. 254 1732 2654 699
дек. 252 8981 9544 322
янв. 262 9903 6593 354
февр. 266 0602 1133 983
март 263 3531 6454 134
апр. 265 9602 9795 124
май 268 4331 6915 915
июнь 2613 1052 7809 166
июль 2629 1259 08916 888
авг. 2610 1332 28817 454

Shippable builds за месяц

каждый коммит в main — рабочая сборка с фичей или фиксом · merge-коммиты исключены · авг. 26 — неполный месяц
Показать таблицу
МесяцСборки
апр. 250
май 2514
июнь 2512
июль 2511
авг. 2521
сент. 2514
окт. 2525
нояб. 2520
дек. 2515
янв. 2625
февр. 2631
март 2620
апр. 2625
май 2626
июнь 2624
июль 2626
авг. 2612

Выпущенные фичи

Фичи извлечены из названий тикетов в истории коммитов — всего 90. Каждый сегмент столбца — одна фича; высота сегмента — строки кода, добавленные по тикету. Тикеты, состоящие только из багфиксов, исключены, так что столбцы недооценивают общий объём работы.

Фичи за месяц

число над столбцом — фич выпущено за месяц · наведите для списка · авг. 26 — неполный месяц
Показать таблицу
МесяцФичаСтрок добавлено
май 25Diary UI revamp3 093
май 25Custom products2 298
май 25Diary week picker619
июнь 25Germination week3 606
июнь 25Custom lamp754
июнь 25Veg week logic552
июнь 25Week cover picker305
июль 25Harvest week UI2 794
июль 25Media manager322
июль 25Veg unit selector129
авг. 25Diary view7 048
авг. 25Diary feed & unfollow2 196
авг. 25Comments view2 147
сент. 25Unit presets1 881
сент. 25Inline week validation499
сент. 25Nutrient errors394
сент. 25Veg/flo autofill221
сент. 25Germination strains rework181
сент. 25Await media upload on save159
окт. 25Search tab979
окт. 25Login flow update494
окт. 25Comments auto height256
окт. 25Custom methods alert239
окт. 25Week value rounding194
окт. 25Diary name as title165
окт. 25Screen class analytics31
нояб. 25Fullscreen mode1 672
нояб. 25Contact form960
нояб. 25Diary setup rework607
нояб. 25Landscape & pinch zoom422
нояб. 25Lamp editing workflow105
нояб. 25Fullscreen video fit4
дек. 25Following section1 223
дек. 25Main menu following582
дек. 25User view on List422
дек. 25Shared video player293
дек. 25User view UI update287
дек. 25Contact form media114
дек. 25Harvest values update85
дек. 25Fullscreen rotation39
дек. 25Fullscreen analytics27
янв. 26Comment media upload905
янв. 26Comment email confirmation201
янв. 26Official user status158
янв. 26Search follow support41
февр. 26Notifications tab2 952
февр. 26Notification settings1 285
февр. 26Context cells421
февр. 26Visible bottom menu376
март 26Social login & sign-up1 738
март 26Deeplink support616
апр. 26Custom context menu1 351
апр. 26Camera capture upload970
апр. 26Comments on List644
апр. 26Custom brand/product editing508
апр. 26Extended setup button358
апр. 26Weeks sorting114
май 26Chat3 375
май 26Question view1 242
май 26Question list1 015
май 26Question tags735
май 26Button hierarchy & P3 colors383
май 26Media upload progress362
май 26Notification service extension71
май 26Week nav centering55
май 26Data model rename7
июнь 26Contest join/withdraw5 271
июнь 26Contest view3 101
июнь 26Create/edit question1 808
июнь 26Questions integration321
июнь 26Awards integration198
июнь 26Message notifications186
июнь 26Guest input prompt115
июнь 26Chat delivery status14
июнь 26Translation removal7
июль 26Brand view13 378
июль 26Ads5 308
июль 26Brand list1 534
июль 26Dark mode1 036
июль 26New skeletons962
июль 26Shipping address validation804
июль 26Scroll to harvest week137
июль 26Diary week navigation131
июль 26Shipping badge animation114
июль 26Contest diary model90
авг. 26Content translation2 772
авг. 26New deeplinks1 592
авг. 26No-internet popup613
авг. 26GDPR update454
авг. 26Diaries section197

Масштаб проекта

Swift-файлов на конец месяца
Показать таблицу
МесяцФайлы
апр. 2531
май 2553
июнь 2569
июль 2594
авг. 25117
сент. 25123
окт. 25132
нояб. 25135
дек. 25139
янв. 26140
февр. 26153
март 26157
апр. 26166
май 26195
июнь 26271
июль 26363
авг. 26391

Автор. Каждая посчитанная строка написана Дмитрием Червяковым, единственным iOS-разработчиком проекта — pure SwiftUI и The Composable Architecture (TCA).

Методология. Источник — git-история ветки main. Считаются только файлы *.swift; сгенерированный Localizable.xcstrings (77 тыс. строк JSON), ассеты и файлы проекта исключены. Накопительная кривая построена по git log --numstat и сверена с точным подсчётом строк на конец каждого месяца — расхождение 0,3%.

Сборки. Проект ведётся по trunk-based development: каждый non-merge коммит в main — shippable build с фичей или фиксом, поэтому число сборок одновременно является delivery cadence.

Фичи. Тикет считается фичей, если хотя бы один его коммит — не фикс; его размер — сумма добавленных строк по коммитам тикета, отнесённая к месяцу, где написана большая часть кода. Идентификаторы тикетов опущены.

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