blob: 797cd5160495d217d04aab44a97f235f4aa12c10 [file] [log] [blame]
{
"name": "iCharts",
"version": "1.0.0",
"summary": "The solution for Telegram \"March Coding Competition\". Completely implemented using Core Animation and Auto Layout (NSLayoutAnchor).",
"swift_version": "4.2",
"description": "Architecture\nTL;DR\n\n- fully implemented on CALayers\n- preferred composition over inheritance\n- fully data-driven UI\n- render only visible part of a chart\n\nDetails\n\nThe implementation of iCharts framework is highly motivated by Core Animaton CALayers capabilities and classes composition instead of inheritance in order to have flexible, extendable and easy-maintainable code base with SRP principle in the head.\n\nNote: of course in competition situation with time boundaries it is very hard to find trade offs between speed and quality, that's why some principles of SOLID are violated sometime.\n\nAlso it should be remarked that all parts of UI are data-driven. Props is used as a dumb representation of UI state at each point of time. This approach makes possible to implement time-traveling debugging feature in future.",
"homepage": "https://github.com/specialfor/iCharts",
"license": {
"type": "MIT",
"file": "LICENSE"
},
"authors": {
"Volodymyr Hryhoriev": "volodja.grigoriev@gmail.com"
},
"source": {
"git": "https://github.com/specialfor/iCharts.git",
"tag": "1.0.0"
},
"social_media_url": "https://twitter.com/specialfor_ios",
"platforms": {
"ios": "10.0"
},
"source_files": "iCharts/Classes/**/*"
}