Мартин Куванджиев e Founder и CEO на GoStartups, Chief Executive Officer в Assetify и co-founder на Bitcoin Gold. Разберете от него как се създава правилна iOS структура и какво е future-proof development
Г-н Куваджиев, миналата година участвахте в конференциите Java2Days и CodeMonsters, които се проведоха виртуално за първи път…
Аз съм голям фен на всички виртуални и дистанционни неща. Още когато бях ученик, а аз съм от Бургас, съм се чудил защо зимата ни карат да ставаме в 6 сутринта да ходим за първи час, вместо да гледаме уроците виртуално. Зимите в Бургас са около -15, духа силен вятър и е много студено. След това, когато дойдох в София, вече имаше виртуални срещи и уроци, лекции. Колкото до събитията, от гледна точка на организатор вероятно е по-лесно, а и евтино, когато нещата не се случват физически и на живо. Разбира се, хората все още свикват с тези платформи, но вярвам че предстои още по-голямо подобряване на хардуерната част на лаптопите, като микрофона и звука, например.
Можете ли да ми разкажете за лекцията Ви, а и самата тема “Creating the right iOS application structure for future-proof development”? Какво представлява future proof development?
Във времето не оставяш едно приложение да стои на едно и също място. Ти го провемяш. В началото пишеш 10 000 реда код, но след това ти хрумва още нещо или пък клиента ти казва, че иска ново допълнение или функционалност. Когато започваш да променяш, ако нямаш хубава архитектура от самото начало, вътре в кода става изключителен хаос или както някои го наричат – спагети код. Едно нещо взето от едно място, поставено на второ, но не принадлежи там – много объркано. Тук има нещо друго – ако е един разработчик, то той знае какво е направил преди и някак може да има последователност. Но с растежа на компанията идват още и още нови хора, които започват да търсят в кода един ред, който никой не знае къде е, но трябва да се намери, защото някъде там има грешка.
Как се създава правилна iOS структура и какво е по-различното при iOS отколкото при Android?
Структурата се отличава с това, че е проста. Има отделни компоненти, които си комуникират помежду си. Старая се да пиша код като приказка – имаш функции, променливи, всяко едно нещо трябва да си казва как се използва и за къде се използва. Много е важна подредеността. Ако отворите всеки един мой код, ще видите, че имам няколко общи компоненти, които винаги използвам. Колкото до разликата между iOS и Android – то тя е огромна. За iOS в момента се използва model view controller, докато в Android е model view viewmodel. Самият начин, по който се осъществява комуникацията между данните в приложението и UI/UX е доста различен.
Какво очакваш в технологичен план за 2021 г.? Предстои ли нещо голямо?
Зависи от гледната точка и сферата в която работиш. За хора, които се занимават с healthcare, като част от хората в моята компания, ще е важно ако Apple Watch пуснат нов модел с много нови функционалности. За хората, които се занимават с ML и AI, при тях ще е разтърсващо ако някой е направил платформа, с която да се оптимизира probability-то на това ML да успее да си разпознае нещо от дадена задача. Нещата се развиват с много бързи темпове и това е сигурно. Цялата машина на ИТ се засили много и в момента всеки от колегите, които се занимават с някакъв тип програмиране, трябва да чете много и да се подобрява. Затова и в лекцията, за която говорихме, направих едно и също демо по стандартен начин, както бих го направил ако работя за компания, която развива продукт. Но го направих и по най-оптимизирания начин, който е представен от Apple. Така хората успяха да видят каква е разликата между стандартните сторибордове, класове и closure-и и между това да се използва SwiftUI Combine.
Каква е разликата?
Доста е голяма и в SwiftUI Combine най-вече си спестяваш голяма част от писането на код.