Останні коментарі

  1. Цього я також, ще не зробив

    Оскільки ви помітили, то доведеться виправити 😄

  2. Щойно змінив коментар, мені видалось повідомлення, що коментар змінено, але зразу цього не показало. Прийшлось перезавантажувати сторінку щоб побачити зміни.

  3. Це баг. Забув додати оповіщення до цього розділу :)

    Виправлю.

  4. До речі, лист не прийшов про ваш коментар. Це баг чи фіча?

  5. Це ви про мене? То не я на відео.

    В цьому розділі я поширюю цікаві матеріали які знаходжу.

  6. Ага, так ось хто такий Alex ))

  7. Виправив обрізку тегів, тепер в блоках з кодом нічого не має обрізатися.

  8. Проблема в не тільки в тому що конструктор видаляється. Вона ще і в тому, що AOT не може генерувати код в рантаймі(Reflection.Emit), а це прямо необхідна штука для нормальної швидкодії. Є контейнери які можуть працювати з АОТ і без Reflection.Emit, але вони не такі зручні як звичайні. Наприклад, Splat(https://github.com/reactiveui/splat) він працює за рахунок того, що розробник повиннен самостійно передати делегат який створить інстанс. Це виглядає наступним чином:

    Locator.CurrentMutable.Register(() => new Toaster(Locator.Current.Resolve()), typeof(IToaster));

    P.S. Помітив що обрізаються \< >. @Admin, ти вкурсі про це?)

  9. Дякую за пояснення. Якщо суть в тому, що AOT викидає конструктори, то чи не можна реєструвати залежності викликаючи new самостійно і обійтись вже існуючими IoC контейнерами і без кодогенераціі?

  10. Тут більша проблема Reflection.Emit. На AOT платформах він відсутній як класс.

    В Xamarin є режим AOT компіляції і лінковка під час якої викидують методи/класси/збірки. В результаті, може виявитися що конструктор сервісу, який зареєстрований в звичайному ІоС контейнері, був просто викинутить оскільки ніхто явно його не визивав. Всі ці оптимізації можуть значно покращити швидкість холодного старту. https://docs.microsoft.com/en-us/xamarin/mac/internals/aot

    https://docs.microsoft.com/en-us/xamarin/android/deploy-test/linker

    В Unity є IL2CPP (Intermediate Language To C++) - це штука яка компілить IL код в С++ і потім білдить його уже як С++ застосунок. Цей спосіб вимушені міра, оскільки iOS дозволяє тільки AOT компіляцію от вони і викручуються.

    https://docs.unity3d.com/Manual/IL2CPP.html

  11. А які проблеми з рефлексією в Xamarin, Unity?

  12. Nice catch! Здається воно залишилось після моїх старих експереметнів. Звідти уже нічого не використовується. Запустив cleanup всього проекту щоб прибрати подібні штуки.