Открыть список
Как стать автором
Обновить

Комментарии 13

А почему бы просто не сделать Custom View? Программист просто добавляет ваш SDKView к себе в верстку и пользуется. Это создаст меньше ограничений для использования

SDK, которое делаем — это вообще по сути отдельное помещение внутри другого приложения, со сложной логикой, своим стеком экранов и своей архитектурой. Custom view тут не отделаешься.

Я делал SDK, для ввода данных карт. Там тоже было несколько экранов: ввод данных карты, 3DS и некоторые другие. И это все замечательно лежало внутри одной View. Да, мне пришлось написать свой велосипед для стека экранов, но это, на мой взгляд, стоило того.

В целом я примерно представляю, но кажется вы заново изобрели фрагменты, но зачем)?

В те времена моя любовь к велосипедостроению не сдерживалась здравым смыслом. И я сделал свои фрагменты ещё до этого SDK, ну и использовать CustomView все таки удобнее, чем фрагмент. Да и вообще, так инкапсуляция куда более ярко выражена получается.

Все таки наверное я слабо представляю реализацию если вы говорите что это лучше фрагментов и понятнее.

Ну снаружи это просто View, добавляется в верстку, а потом уже в коде добавляется колбэк на добавление карты

В случае с одной view карты, или же пары через viewSwitcher — делал бы также. Прямо полноценное приложение на singleView — видел есть такие наработки, но я что-то таком подходу слабо доверяю, очень новый велосипед.

Я делал приложение с несколькими десятками экранов на самодельном стеке с версткой в коде. Да, это нестандартно, но если бы меня спросили, какой мне подход ближе, я бы сказал, что этот. Но проблема в том, что после меня это сложно будет поддерживать, так что приходится сдерживать свои велосипедные порывы и пользоваться стандартным инструментарием.

Будет ли подход с dimensions работать, если SDK распространяется как .arr или придётся делать свой .aar для каждого из dimension?

В рамках сборки sdk будут собираться все необходимые модули, т.е будут разные артефакты, что кажется логично. Первые тесты показали что вроде работает, будем тестировать дальше.

Activity будет получать onActivityResult, и, вероятно, придется его прокидывать во фрагменты.

Но фрагменты же по-умолчанию получают вызов своего собственного onActivityResult, который можно только сломать, переопределив его в активити и не вызвав super.onActivityResult, разве нет? Так что из минусов можно вычеркнуть
И да и нет. Они получат их ЕСЛИ только будет вызвано startActivityForResult на фрагменте.
Я встречал либы (которые нужно внедрить в конкретно моем случае), которые поддерживают запуск только на Acitivity.

Т.е. в некоторых случаях есть шанс, что при вызове из Fragment придется использовать requireActivity.start… и получать ответ в Activity. Если нужен ответ во фрагменте, придется докинуть.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.