Denis
создавать разные Parcelable
Кроме parcelable нет более изящного способа?
Mike
Кроме parcelable нет более изящного способа?
Есть Bundle и Serializable. Но всё отстой, конечно.
Sergey
А вообще че посоветуете? У меня есть несколько секторов в приложении. Сектор 1: загрузочный экран и несколько экранов с логином и регистрацией. Сектор 2: основное приложение. Сектор 3: экран настройки и несколько переходов. У меня идея была такова, чтобы создать 1 активити для каждого сектора и менять фрагменты. Второй варик, есть создать переходы из активити, поскольку экраны в принципе не очень завязаны друг на друге, кроме Сектора 2. Какой лучше использовать?
Sergey F
Почему в DialogFragment ловиться нул на getDialog при установке всяких анимаций transactions на переходы? Андройд автоматически кастит диалог фрагмент?
Sergey
Я не про хранение данных
Denis
Shared preferences подойдёт?
Sergey
Ну то есть. Идет сплеш скрин. Дальше идет экран логина. Там можно еще создать аккаунт, тогда новый экран с вводом данных. Можешь восстановить пароль, тогда другой экран с вводом имейла. Есть еще "помощь", тогда опять новый экран с текстом. Вот я ща решил делать 1 активити и менять фрагменты. Второй варик - для каждого экрана сделать New Intent и стартовать новые активити.
Sergey
Просто я раньше делал по такому принципу. Если экраны разные и связь между ними минимальна, то использовал активити. Фрагменты, если только там есть внутри несколько переходов или ViewPager. Но потом попалось приложение, где вот для всего этого использовалось Активити, унаследованное от другого активити, которое в фоне пингует на устаревший токен и имеет методы для смены фрагментов т.е. контейнер один, но меняются фрагменты, в данном случае, все эти окна с восстановлением пароля, регистрацией или входом.
Sergey
И я вот с одной стороны, считаю архитектуру с 1 активити и несколькими фрагментами нормальной, но на собеседке чел доказывает, что это полная хуйня и что можно с активити все делать, ибо с фрагментами запутаешься
я до сих пор не шарю, всегда перечитываю когда надо
дичь такая
кто это вообще понимает...
Кирилл
Там для него завезли обёрточку в android ktx
Sergey
Ну вот и я о том же. Когда требуется что-то сделать. я проверяю на свежесть свои знания - делаю я как обычно, или вышел новый паттерн, библиотека или новые способы реализации конкретной задачи. Но часто случается, что твое мнение не совпадает с мнением тех, кто уже начал делать проект, или кто собеседует. Полагаю, что они привыкли делать по старинке, а о новых способах пингуют довольно редко, вот и считают всё, что "другое", не верным.
Dmitry
И я вот с одной стороны, считаю архитектуру с 1 активити и несколькими фрагментами нормальной, но на собеседке чел доказывает, что это полная хуйня и что можно с активити все делать, ибо с фрагментами запутаешься
он просто так научился, привык. во время заявления Гугла об одном активити на приложение - у аудитории, если мне не изменяет память тоже была реакция как минимум разочарования
Sergey
И вопросец такой. Вообще, что лучше - делать с использованием стандартных Андроидских либ, или использовать еще сторонние, вроде RxJava, Dagger 2, Blade, ButterKnife. По сути, без них можно обойтись и работать приложение будет быстрее, но с другой стороны, будет ли эта скорость работы реально заметна на современных мощных телефонах? Ведь даже если ресурсов требуется больше, то мощности телефонов могут позволить выполнять с такой скоростью, что разница будет минимальна и еле заметна.
Кирилл
Зря.))
Sergey
Кстати, на Котлине имеет смысл сейчас начинать приложения делать? Все таки, документация скудноватая пока, да и ответов на конкретные вопросы не так часто встречаются, как на Джаве. Я хоть и изучил его частично, но чем заменить привычные либы, которые использовал на Джава, хз даже.
Sergey
Ну он от Джавы вроде не сильно отличается. Синтаксис другой, меньше кода с findViewById, проще до айдишников в XML добираться, Дата объекты удобней, но вроде все методы и классы - те же.
Sergey
Ну это да, но когда я на Джава апы делаю, то всегда на Null проверяю объекты. Не понимаю, почему говорят, что это спасение.
Sergey
Если от объекта должен взяться какой-то метод, то всегда на нулл проверяю. Не догоняю в чем тут траблина
Sergey
Ну это понятно. В основном, это ответы с сервера или с базы данных.
Sergey
Ну про БД я имею ввиду, когда данные с сервака сохраняешь в БД на случай, если инет пропадет и ты повторно зайдешь в апликуху
Кирилл
Если от объекта должен взяться какой-то метод, то всегда на нулл проверяю. Не догоняю в чем тут траблина
В большом проекте забываешь какие объекты могут null по логике а какие нет. И не нужно все проверять, когда есть явное разделение
Кирилл
Не так удобно.)
Sergey
Ну можно кстати @NotNull прописать
Sergey
Или @Nullable
Mike
как аннотацией укажешь, нуллабельны ли элементы массива?
Кирилл
А зачем статическая типизация, если всё можно в голове держать?)
Кирилл
С чего?)
Mike
лолшто?
а чо свифт?
он же как котлин отдалённо
Mike
все хотят знать, что ты имел в виду
Sergey
По моему всегда эффективнее и приятнее пользоваться инструментом из 2018 года, чем из 1990-х.
Ну я рассматриваю язык программирования именно как инструмент, а не как какую-то вещь, которая нравится. Нужен Юнити? Тогда С#, нужен Андроид? Тут можно выбрать. Нужен iOS, Тогда наверное Свифт.
главное не xamarin
никогда
Mike
жопаговн... ой, не так прочитал
Impossible
Благодарочка)
Mike
А че Android SDK вызывает боль?
Я только хотел прийти с вопросом: как сократить этот типичный, тривиальный код?
Mike
но посмотри сколько шаблонного плохокода
Mike
Anko
продолжай)
Кирилл
продолжай)
https://github.com/Kotlin/anko/wiki/Anko-Commons-%E2%80%93-Dialogs#alerts
Mike
https://github.com/Kotlin/anko/wiki/Anko-Commons-%E2%80%93-Dialogs#alerts
Ну хорошо, станет onCreateDialog короче на три строчки
Mike
фрагмент будет заботиться, чтобы при повороте диалог остался на экране
Sergey
Так а чем не нравится количество строк? Там же все понятно - на каждый жизненный цикл контролится сервис, создается диалог... Любой чел, прочитавший документацию по Котлину этот код поймет. Зачем усложнять?
Кирилл
Ну хорошо, станет onCreateDialog короче на три строчки
Ну хз, как по мне - всё остальное норм. :)
заглушки { } get () перенести на верхнюю строку убрать двойные пробелы
+ anko dialogs
Кирилл
Я только хотел прийти с вопросом: как сократить этот типичный, тривиальный код?
Кстати помнится мне как ты очень плохо отзывался о lateinit var. :))
Mike
рили, не вижу никакой пользы от Anko Dialogs
ну как минимум builder бойлерплейт
Mike
Кстати помнится мне как ты очень плохо отзывался о lateinit var. :))
Так и есть :) Пока не придумал, как это исправить. Первый раз в жизни приаязываю сервисы.
alert(R.string.bla) { yesButton { }. noButton { } }
Mike
alert(R.string.bla) { yesButton { }. noButton { } }
методов нагенерирует...
да ну, не юзать это псевдооптимизация
имхо
Mike
да ну, не юзать это псевдооптимизация
Мне просто неприятно осознавать, что генерятся анонимные класы, которые можно было бы не генерить. Может, я больной.
Кирилл
Выразительность и лаконичность кода на первом месте, имхо.)
Кирилл
Ну почти то же самое ведь