1 of 17

Сказ о том, как мы

из Xamarin в Swift мигрировали

Ильнур Назмутдинов

#НесухиеДоклады #силацвт

2 of 17

Ильнур Назмутдинов

iOS-разработчик

Spark

Образование�ИжГТУ, Software Engineer

Опыт

разработка кроссплатформенных, гибридных (а теперь еще нативных) приложений 9 лет

3 of 17

О проекте

Приложение�Dose Medbox

2,5 разработчика

Шведский заказчик

4 of 17

О проекте

20�страниц

150 000 строк кода

Нет опыта нативной разработки

5 of 17

Причины переезда. �UI

  • Xamarin.Forms
  • Медленный UI
  • Нет ощущения нативного приложения
  • Сложно добавлять нативные контролы и менять поведение
  • Сложно использовать сгенерированные нативные анимации

6 of 17

Причины переезда. Зависимости

  • Биндинги обновляются �раз 6 месяцев
  • Исправление ошибок в нативных библиотеках до нас не доходит
  • Некоторых биндингов �не существует

7 of 17

Причины переезда.�Прочее

  • Размер приложения 125 мб
  • Желание быть ближе �к целевой платформе
  • Сложности с UI тестами
  • Интерес попробовать�что-то новое

8 of 17

Задача

Перенести�всю бизнес логику ничего не сломав

Перенести�UI

Перенести�Unit тесты

CI/CD

9 of 17

Процесс переезда.

Прототип

Базовая навигация

Одна страница �с редактированием данных

Работа �с зависимостями

срок 3 недели

10 of 17

Процесс переезда.

XCode

11 of 17

Процесс переезда. �Swift

  • C# → Swift
  • ReactiveExtensions → Combine
  • Protocol vs interface, generics, enums, extensions
  • Меньше готовых решений
  • Управление памятью

на изучение 2 недели

12 of 17

Процесс переезда. SwiftUI

  • XAML → Swift UI
  • Декларативный подход
  • Preview в XCode

13 of 17

Процесс переезда. �SwiftUI

  • Кастомная навигация �с переносом текущей логики
  • Keyboard avoidance

14 of 17

Процесс переезда.

Другие аспекты

Локализация

Unit тесты

CI/CD

Выпуск версий �для тестировщиков

Выпуск финальной версии

15 of 17

Результаты переезда

Время сборки увеличилось �до 15 мин

Размер �уменьшен в 5 раз!

и ощущается нативной

Скорость UI увеличилась

01.

Решены проблемы

со сторонними библиотеками

02.

до 25 мб

03.

Android- приложение повторит �те же этапы

с 3 мин

04.

Переезд

провели �за 4 месяца

05.

06.

планировали �за 3

16 of 17

Готовы к челленджам?

Пишите: hrteam@htc-cs.ru �Звоните: +7 (3412) 93-88-61

#НесухиеДоклады

#силацвт

Спасибо�за внимание!

Вопросы?

17 of 17

recommend.htc-cs.ru