Задать вопрос
  • Почему координаты на плоскости начинаются с XY а не YX?

    Ocelot
    @Ocelot
    Сначала рассмотрим одномерный случай - ось. Для западной культуры, с письменностью слева направо, логично выбрать положительным направление слева направо. Обозначим эту ось как-нибудь. Например, X.
    Теперь добавим вторую координату. Вторая ось ортогональна первой. Логично выбрать положительным направление вверх. Трава, деревья и люди растут вверх. Ну и ось пусть тоже вверх. Обозначим эту ось как-нибудь. Возьмем следующую букву - Y.
    Вот так примерно и получили то, что получилось.
    Ответ написан
    Комментировать
  • Как писать приложения 24/7?

    GavriKos
    @GavriKos
    Обычно это связано с криво написанным приложением.
    Во первых - интерфейс отдельно - мониторинг отдельно. Интерфейс можно закрыть - демон/служба мониторинга останется
    Во вторых - куда пишутся данные? В оперативу? Сколько приложение выжрало? Какие структуры данных использовали? Пробовали писать в БД?
    Ответ написан
    3 комментария
  • Android. Как правильно реализовать смену контента на экране?

    @itdroid
    Для Вашей задачи нет универсального и "правильного" решения, все зависит от UI и бизнес логики приложения. Для простых View, Ваше решение вполне рабочее. Единственное, можно использовать View.GONE вместо View.INVISIBLE, чтобы невидимые View не участвовали в процессе измерений контейнера.
    Если у Вас сложный UI для errorBlock, допустим это форма отправки сообщения об ошибке по email или еще что-то этом роде, то можно подумать об отдельном фрагменте для errorBlock.
    А так, просто не значит плохо!
    Ответ написан
    Комментировать
  • Какие есть фреймворки для разработки приложений под android?

    @aol-nnov
    это мобильный мир. тут выстраивание многоуровневых бутербродов "как спринг для джава" чревато внезапно непойми на что потраченной памятью, стремительно севшей батарейкой и прочим негативным опытом для конечного пользователя.
    Android skd хорош, его надо изучить. Потом почитать android support library. Библиотеки есть удобные для сети, например, OkHttp и прочие штуки от Square (см. на гитхабе у них)
    Ответ написан
    Комментировать
  • Почему не видит ID в XML?

    +id
    Ответ написан
    Комментировать
  • Когда вызывается malloc() или new, то на самом деле вызывается какая-то win api функция?

    Nipheris
    @Nipheris Куратор тега C++
    Когда вызывается malloc() или new, то на самом деле вызывается какая-то win api функция?

    Нет, не всегда. В большинстве случаев не вызывается. Системный вызов осуществляется только если текущий блок, управляемый сишной кучей (т.е. сишным рантаймом) исчерпывается. Если б каждый раз делался системный вызов, вы б не дождались результатов работы вашей программы.

    И при удалении тоже?

    См. выше.

    И вот интересно, а как сделать маленькую кучу, чтобы память выделялась в пределах этой маленькой кучи только?

    Выделяете блок памяти любым из известных вам способов, декларируете функции а-ля myalloc и myfree, и реализуете один из алгоритмов управления свободным пространством в куче (например, двоичного разбиения).

    В C++ можно переопределить операторы new и delete.
    Ответ написан
    8 комментариев
  • Возможно ли управлять string.xml программно?

    @LenLord
    android reverse
    Нет. Такое невозможно.
    https://developer.android.com/reference/android/co... - изучайте
    Либо другие способы хранения данных (SQLite etc)
    Ответ написан
    Комментировать
  • Как оповестить устройство о изменениях на сервере?

    gadfi
    @gadfi
    https://gamega.org
    самый простой и наименее трудозатратный это gcm
    Ответ написан
    5 комментариев
  • Выйти из Collection.forEach() по условию?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Если вам такое нужно, то вы неправильно понимаете природу потокового API. forEach() - это не цикл в обычном его императивном понимании. Правильным решением является предварительная фильтрация потока, чтобы в forEach() поступили только нужные значения. Или одно нужное. Если уж очень надо, то из потока можно получить итератор и обойти его в классическом while(iterator.hasNext()).
    Ответ написан
    Комментировать
  • RxJava в Android - все таки "мода" или "острая необходимость"?

    thelongrunsmoke
    @thelongrunsmoke
    Программист
    Во-первых, элементы реактивного программирования в андроиде были и есть. Вспомните о DataSetObserver.
    Если вы современный разработчик, то используя RecyclerView, создаёте для него адаптер содержащий имплементацию этого интерфейса, а значит поток данных управляет выполнение программы - это элементы Rx.
    Во-вторых, когда вы обрабатываете данные, хочется оперативно знать об их изменении, здесь реакт на своём месте. Но, часто из Rx пытаются создать двухстороннюю связь модель-представление, а это нарушает принципы MVC.
    Об асинхронности. Java изначально многонитевый язык. Вы можете создавать нити сколько угодно и где угодно. И не забывайте Service - не асинхронен!
    Ответ написан
    1 комментарий
  • Площадь треугольника. Разные результаты, данные одни. Почему?

    alsopub
    @alsopub
    Ну пусть будет:

    Треугольник однозначно задается либо тремя сторонами, либо двумя сторонами и углом.
    Вы свой треугольник задали тремя сторонами и углом одновременно?
    Ответ написан
    9 комментариев
  • Стоит ли сейчас изучать Kotlin?

    artemgapchenko
    @artemgapchenko
    Начните лучше с Java, мой вам совет. Kotlin очень хорош (я как раз сейчас на нём проект для себя разрабатываю), но смущает меня отсутствие официальной поддержки со стороны Google.
    Мотивация JetBrains в плане адаптации Kotlin к Android понятна - они хотят зайти на рынок языков под JVM через Android-разработчиков, которые давно уже стонут и плачут от Java 6/7. Непонятно, будет ли эта мотивация такой же сильной через пару лет, когда, например, Google определится с тем, что у них будет вместо Java, и определится не в пользу Котлина (если ещё определится, что, скажем так, вилами на воде написано). Или же Бреслав как главный идеолог проекта потеряет к нему интерес. Или же в JetBrains посчитают расходы/доходы, и решат зарезать поддержку Android. Много чего может произойти, а вам потом проект на нём поддерживать.
    Плюс, как правильно отметил в этом треде Денис Загаевский, вакансий мало, и неизвестно, будет ли их больше. А со знанием Java вы себе в обозримом будущем работу Android-разработчика точно найдёте, тут проектов как грязи - выбирай, не хочу.

    Update от 17.05.2017: Google объявил об официальной поддержке Kotlin для разработки под Android, так что теперь точно можно начинать вкладываться в него.
    Ответ написан
    1 комментарий
  • Android. Оправдано ли использование фрагментов в RecyclerView?

    artemgapchenko
    @artemgapchenko
    Не нужно объединять три View в один фрагмент, так как у RecyclerView уже есть следующие методы для создания и привязки ViewHolder'a:
    public abstract void onBindViewHolder(VH holder, int position);

    и
    public abstract VH onCreateViewHolder(ViewGroup parent, int viewType);

    Параметр viewType - это то, что вам нужно. Переопределяете метод

    public int getItemViewType(int position);

    так, чтобы для каждого элемента адаптера он возвращал нужный тип (видео/слайдер/изображение), в onCreateViewHolder() инфлейтите нужную вьюху в зависимости от типа вьюхи, и создаёте ViewHolder, а в onBindViewHolder() привязываете нужный элемент к вьюхолдеру, в зависимости от того, какой тип у элемента.
    Ответ написан
    6 комментариев
  • Зачем скачивать git?

    ManWithBear
    @ManWithBear
    Swift Adept, Prague
    Похоже вы путаете причину и следствие.
    Github существует, потому что существует git, и является одним из инструментов облегченной и урезанной работы с ним.
    В свою очередь git вообще никак не зависит от github'a, и по сути ничего о нем не знает.
    Ответ написан
    Комментировать
  • Как грамотно выделить память?

    petermzg
    @petermzg
    Самый лучший программист
    У вас
    while (input[i] != '\n') i++;
    А если этого '\n' нету, то вы пропуская '\0' вылетаете за строку.
    Ответ написан
    2 комментария
  • Asynctask или loader для сетевых запросов?

    TranE91
    @TranE91
    Senior Android Engineer
    Retrofit + RxJava = масшатбируемость, удобство в саппорте и прочие плюшки. Как по мне, это лучшая спарка, на сегодняшний день, для работы в REST.

    А по поводу AsyncTask, то эта приблуда, вроде уже устаревшей является, возможно вскоре ее пометят и выкосят.
    Ответ написан
    2 комментария
  • Почему vector::end() возвращает const_iterator?

    @MiiNiPaa
    А с чего вы взяли, что end возвращает const_iterator? Если бы он возвращал константный итератор, то типы в ошибке были бы 'const AnotherType' and 'const AnotherType'

    Поправьте оператор сравнения, чтобы он брал объекты по константной ссылке.
    Ответ написан
    2 комментария
  • Как сделать многопоточный чат?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    у вас должен быть один основной поток, где вы ожидаете подключения. При подключении у вас создается сокет, который вы кидаете в отдельный тред.

    Socket clientSocket = serverSocket.accept();

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

    Хочу отдельно отметить, что при увеличении количества потоков производительность будет падать. При достижении отметки в пару сотен клиентов например. В этом случае лучше переключаться на event loop/микротреды/корутины.
    Ответ написан
    1 комментарий
  • Правильно ли создавать много POJO классов, для формирования json ответа?

    @guras256
    Да, это нормально. У вашего приложения есть api в состав которого входят сущности, с которыми вы работаете и которые вы возвращаете клиенту (причем внутреннее представление и внешняя модель могут отличаться).

    Чтобы избавиться от бойлерплейта с геттерами, сеттерами и прочим, используйте lombok

    /**
     * аннотация @Data добавит в байткод методы 
     * getString, setString, 
     * getAnotherString, setAnotherString, 
     * equals, hashcode, toString
     */
    @Data
    public class App {
        private String string;
        private String anotherString;
    }


    В этой библиотеке очень много удобных аннотаций. Для поддержки в среде idea можно установить lombok plugin
    Ответ написан
    Комментировать