Это приложение мы разрабатывали совместно с другой студией, которая занималась разработкой бэкенда и веб-портала. Дизайн был продуман UX-специалистом со стороны и максимально близко соответствовал гайдам iOS и Android. Мы продумали архитектуру приложений до начала самих работ и задействовали несколько новых для нас компонентов. Например, мы впервые использовали в приложении Android Navigation Component.
Работа с Reactive Extensions.
Бизнес-процессы не были адаптированы для использования на мобильных платформах. Нам пришлось разбираться в бизнес-процессах управляющей компании при совершении операций с ПИФами. Унифицировать логику приложений под iOS и Android получилось при помощи Reactive Extensions. Так как методология, философия и синтаксис RxSwift и RxJava очень похожи, разработчики разных платформ построили код так, чтобы сделать бизнес-логику одинаковой между платформами. Псевдокод всех бизнес-процессов одинаковый на всех платформах, отличается только реализация специфичных для платформы и языка методов.
Формы заполнения
В приложениях очень много сложных форм, с нетривиальной логикой валидации. Android-версию мы писали по архитектуре MVVM с использованием Data Binding. Удобной реализации валидатора форм, подходящего для наших задач, на тот момент не существовало. Поэтому мы написали свою библиотеку, с поддержкой Data Binding, валидацией полей на лету, поддержкой маскированного ввода и возможностью задать текст ошибки на каждое правило проверки.