Anonymous
Нажал. Установил. Все равно выведет ошибку
‍Yap
Sync project
Anonymous
В гугле ни чего не нашел. Есть. Но не помогло.
Ivan
Здраствуйте. Один репозитроий ( гит ) содержит один проект да? Или неправильно понял.
Если что-то крупное из нескольких разных модулей - часто бывает каждый модуль под гитом
Anonymous
Я скачал фотку. Щяс свой отправлю
Ivan
Попробуйте клин сделать после установки
Paul
Приветствую. Есть GridView, заполняющийся при созданиии активити данными, которые опять же при создании активити берутся из бд на сервере. Это занимает порядочное время, поэтому при переходе из предыдущего активити в это создается полное ощущение зависания. Что можно сделать в такой ситуации? Я хотел сделать какую-нибудь анимацию подобия загрузки, но ведь до выполнения onCreate и onResume ничего увидеть все равно не получится, а коллбэков для запихивания данных в Gridview больше не остается.
EG
вам
Artem
Крутить прогресс бар
Paul
Делать все это в отдельном потоке
Ну так я asynctask'ом и делаю, но ведь для gridview нужны данные на момент onCreate или на крайняк onResume, а пока они не вызвались, никакого кручения прогрессбара не видно
Artem
Там кажись есть тайбл лейаут
Artem
Или как там
Darya
сколько читаю, все равно не врубаюсь в цели использования интерфейсов... помогите на доступном примере, без всяких сложных терминов.
Проксимов
Ну джава не могёт в множественное наследование
Darya
это понятно. в чем прикол не реализованных методов
Osip
сколько читаю, все равно не врубаюсь в цели использования интерфейсов... помогите на доступном примере, без всяких сложных терминов.
Я для себя окончательно осознал для чего нужно разделение на интерфейс и реализацию после прочтения книги Clean Code от дядюшки Боба.
Darya
ну а если от себя? попробуй объяснить
Darya
Проксимов
Вот хорошее
Darya
спасибо большое. Но блин книги и вот эти статьи сложно воспринять. Хочется чтобы на русском на примере попроще без заумных слов типа инстанс и т.д.
Darya
Вот хорошее
да я в сша живу. с этим норм. уже даже нет отвращения к индусскому акценту. В интерфейсах сложности нет, просто не включается мозг типа "А ВОТ ТУТ НАДО ИНТЕРФЕЙС" потому что нет ясной картины
Osip
Если кратко, то прикол в заменяемости модулей и инкапсуляции реализации. То есть если более простым языком, то тебе не важно как именно реализован этот интерфейс, ты просто знаешь, что должны быть "такие-то" методы и должны возвращать "вот это". Тогда, например у тебя есть интерфейс DataStorage у которого есть метод получения информации, записи информации и сохранения этого всего. И в базовой реализации FileDataStorage ты можешь хранить инфу просто в файлах и прекрасно себя чувствовать, но когда появится нужда хранить в другм месте или по другому алгоритму, то всё что тебе нужно это просто по другому реализовать интерфейс и подсунуть его куда надо.
Aldres
Доброго времени суток. Что можете посоветовать для реализации WebSocket. Socket.io?
Osip
Часто все интерфейсы отделяют в отдельный модуль, который называют API и выкидывают в паблик и любой разработчик может использовать сущности описанные в интерфейсах, не зная как они устроены и при этом, при вживлении его кода в реальную систему он будет работать.
Darya
Да, туплю. Не врубаюсь в их ценности и предназначении, кроме как просто сделать какой то порядок и мелкой подсказки, что тут надо делать то то и то то.
Osip
ну все равно самой реализации то нет. То есть это же не статический метод, который обрабатывает где то там. Это просто название и всё?
В этом и суть. Это шаблон, который описывает "внешнюю" сторону класса, о которой должен знать разработчик, использующий этот класс.
Darya
В этом и путаюсь. Код пишу. Код работает. Но полной картины нет.
Osip
Тут нужен другой пример, сейчас напишу.
Darya
Тут нужен другой пример, сейчас напишу.
удобнее на примерах из жизни. типа вот ты устроился юристом, тебе дали договор и ты должен по нему работать
Проксимов
Edit
Проксимов
Интерфейс это шаблон поведения
Osip
удобнее на примерах из жизни. типа вот ты устроился юристом, тебе дали договор и ты должен по нему работать
Хорошо. Есть два разных пекаря. Пекарь - это профессия, в аналогии с кодом - это интерфейс. И пекари могут быть разные, и печь булочки по разному, но ты точно знаешь, что на выходе ты от них получишь булочку, а не самокат.
Osip
Суть в том, что реализаций одного интерфейса может быть много
Aldres
Наверное - пример с пекарем лучше подходит для класса. В интерфейсах скорее описывают то, что должен делать объект - void cook(), void addSalt() и.т.д
Darya
Edit
это понятно. кроме как указать то какие методы тут должны быть и подсказать, никакой другой цели не преследует*
Darya
?
Darya
Ок спасибо всем, что подключились. Но главный вопрос: Это просто для подсказки программисту и держания порядка в коде и в программе и все?
Osip
Ок спасибо всем, что подключились. Но главный вопрос: Это просто для подсказки программисту и держания порядка в коде и в программе и все?
Это для правильно архитектуры. Чтобы уменьшить связанность модулей, увеличить переиспользуемость, сделать публичный API, в конце концов.
Osip
кароче говоря для порядка?
Если хочется нормально понять, то без книги никак не обойтись. Тут в чатике не объяснят за один вечер так чтоб вообще всё понять.
Osip
Просто надо проникнуться этой идеей и понять насколько мощный инструмент абстракция.
Darya
Если хочется нормально понять, то без книги никак не обойтись. Тут в чатике не объяснят за один вечер так чтоб вообще всё понять.
это все уже проходилось. и по книге и по курсам, и с учителем... просто интуитивного восприятия еще нет , потому что нет видения полной картины. Вот ты знаешь, чтобы перейти в другой активити ты используешь интент, это понятно и ты это используешь, но вот интерфейс нет.
Проксимов
Фу, си шарп
Проксимов
Холи тут джава и котлин))
Osip
это все уже проходилось. и по книге и по курсам, и с учителем... просто интуитивного восприятия еще нет , потому что нет видения полной картины. Вот ты знаешь, чтобы перейти в другой активити ты используешь интент, это понятно и ты это используешь, но вот интерфейс нет.
Я могу только еще раз посоветовать книгу "Clean Code" R. Martin До неё у меня и самого не было нормального понимания "зачем это мне дублировать методы пустышками" Да и вообще после нее меня осенило какой я дерьмовый код писал :D
Проксимов
Предлагаю это)
Osip
Не сказал бы что книга про паттерны от GoF прояснит новичку для чего нужна абстракция, там вроде как даже в начале книги пишут, что предполагается, что вы понимаете зачем нужна абстракция.
Osip
Классика это да, но для себя я её использую больше как справочник.
Osip
@ndk_ru
Osip
Хз, я только на С/С++ писал да и то только один раз
Osip
В NDK, в смысле
Artem
Да
Artem
Ждём kotlin native
Osip
Уже 0.4 ^_^
Artem
Ото бомба будет)) меня напрягает что для того что б кодить под iOS нужен мак
Artem
Возьми свой и нажми контрл альт шифт K
Artem
Не подумал. Зато один язык для андроид и ios
Artem
Да...безвозвратно
Artem
Назад не конвертит)))
Osip
И некрасиво зачастую
Osip
Но терпимо
Artem
Смотря как ты кодишь))
Artem
Он просто указывает на нечитабельные места
Osip
Обычно косяки, что все типы nullable если не было аннотаций, говорящих об обратном
Aldres
Всем привет. А чего посоветуете для работы с WebSocket, в частности для создания реал-тайм чата? Есть какие-либо библиотеки, упрощающие в этом плане жизнь?
Aldres
Благодарю.