diff --git a/0000 b/0000 index ce1b972..7de27eb 100644 --- a/0000 +++ b/0000 @@ -2,4 +2,5 @@ BO iOS 0.1.0 https://git.opengamestudio.org/kornerr/BOnPOCbI-OTBETbI-iOS +/swiftui.md /кратко.md \ No newline at end of file diff --git a/swiftui.md b/swiftui.md new file mode 100644 index 0000000..a134f5f --- /dev/null +++ b/swiftui.md @@ -0,0 +1,21 @@ +# SwiftUI + +## Минимум + +Для создания своего представления нужно объявить соответствие протокол View, +а в вычисляемом свойстве var body вернуть желаемое представление интерфейса. + + +## Модификаторы + +Протокол View предоставляет набор модификаторов (методов протокола с реализацией +по умолчанию) для настройки вьюх приложения. + +Модификаторы работают путём оборачивания экземпляра view, над которым они +вызваны, в другую вьюху с указанными характеристиками. Например, добавление +модификатора opacity(_:) к тексту вернёт новую вьюху с указанной прозрачностью. + + +## Список + +Элементы должны удовлетворять протоколу Identifiable. \ No newline at end of file diff --git a/кратко.md b/кратко.md index 8eb255d..12fa283 100644 --- a/кратко.md +++ b/кратко.md @@ -43,6 +43,8 @@ часто появляющихся задач. Существуют основные, структурные, поведенческие и пораждающие шаблоны. +Самые часто используемые в iOS: MVC, Singleton, Delegate, Observer. + ## Шаблон одиночки (Singleton) @@ -80,7 +82,6 @@ * Если счётчик 0, то объект удаляется ARC'ом. * Слабая ссылка никак не влияет на счётчик, поэтому она никак не "удерживает" объект от удаления, на который ссылается. * Чаще всего используется для делегатов. - * Ссылки на optional всегда слабые. ## Что такое ARC? @@ -201,11 +202,32 @@ Ref type, capture variables Покрывать тестами в первую очередь нужно ключевую возможность, предоставляемую приложением, например, заказ такси в приложении заказа такси. -Методологии? +Методологии: + +* TDD +* BDD + +* Fakes: часто включают в себя stubs, mocks. а воообще сами по себе просто пустышки без наполнения +* Stubs: пустышки с наполнением, чтобы лишь провести тесты +* Mocks: пустышки с наполнением и внутренними счётчиками, по которым можно проверить клиента + + +## RunLoop + +https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/Multithreading/RunLoopManagement/RunLoopManagement.html#//apple_ref/doc/uid/10000057i-CH16 + +Это цикл обработки событий, используемый для планирования работы и координирования +принятия входящих событий. Целью RunLoop является поддержание потоков в работе, +когда есть работа, либо укладывание потоков спать, если работы нет. +У каждого потока есть ассоциированный с ним RunLoop. +## Functional reactive programming +Декларативная парадигма программирования, объединяющая в себе функциональное +программирование и реактивную (асинхронный потоки) парадигму. В FRP мы +описываем, что мы хотим сделать, а не как.