Comments 13
А почему бы просто не сделать Custom View? Программист просто добавляет ваш SDKView к себе в верстку и пользуется. Это создаст меньше ограничений для использования
SDK, которое делаем — это вообще по сути отдельное помещение внутри другого приложения, со сложной логикой, своим стеком экранов и своей архитектурой. Custom view тут не отделаешься.
Я делал SDK, для ввода данных карт. Там тоже было несколько экранов: ввод данных карты, 3DS и некоторые другие. И это все замечательно лежало внутри одной View. Да, мне пришлось написать свой велосипед для стека экранов, но это, на мой взгляд, стоило того.
В целом я примерно представляю, но кажется вы заново изобрели фрагменты, но зачем)?
В те времена моя любовь к велосипедостроению не сдерживалась здравым смыслом. И я сделал свои фрагменты ещё до этого SDK, ну и использовать CustomView все таки удобнее, чем фрагмент. Да и вообще, так инкапсуляция куда более ярко выражена получается.
Все таки наверное я слабо представляю реализацию если вы говорите что это лучше фрагментов и понятнее.
Ну снаружи это просто View, добавляется в верстку, а потом уже в коде добавляется колбэк на добавление карты
Я делал приложение с несколькими десятками экранов на самодельном стеке с версткой в коде. Да, это нестандартно, но если бы меня спросили, какой мне подход ближе, я бы сказал, что этот. Но проблема в том, что после меня это сложно будет поддерживать, так что приходится сдерживать свои велосипедные порывы и пользоваться стандартным инструментарием.
Будет ли подход с dimensions работать, если SDK распространяется как .arr или придётся делать свой .aar для каждого из dimension?
Activity будет получать onActivityResult, и, вероятно, придется его прокидывать во фрагменты.
Но фрагменты же по-умолчанию получают вызов своего собственного onActivityResult, который можно только сломать, переопределив его в активити и не вызвав super.onActivityResult, разве нет? Так что из минусов можно вычеркнуть
Я встречал либы (которые нужно внедрить в конкретно моем случае), которые поддерживают запуск только на Acitivity.
Т.е. в некоторых случаях есть шанс, что при вызове из Fragment придется использовать requireActivity.start… и получать ответ в Activity. Если нужен ответ во фрагменте, придется докинуть.
Создание SDK под Android в стиле Single-Activity