• Как контролировать одновременный запуск фрагментов по клику на элемент списка?

    @IceJOKER
    Web/Android developer
    у списка сделать CHOICE_MODE SINGLE?
    у фрагмент менеджера вызвать replace вместо add ?
    Ответ написан
    5 комментариев
  • Как сформировать байт данных с одного бита другого байта?

    alsopub
    @alsopub
    char inbyte = 0b00100101;
    char data = 0b01100010;
    data = (data & 0b01111111) | ((inbyte & 0b00000100) << 5);

    результат - 0b11100010;
    Ответ написан
    2 комментария
  • Для использования SQLite обязательно использовать ContentProvider?

    gadfi
    @gadfi
    https://gamega.org
    ContentProvider не обязателен для работы с бд, но очень стабилен и удобен (да удобен, не смотря на отвратительный интерфейс)
    пример работы:
    в каком то потоке меняются даные, например что то подгружаются с сервера
    это информацию нужно выводить в актуальном виде
    с использованием связки ContentProvider + CursorLoader избавляет вас от головной боли, вы не думаете какой у вас счас экран виден, что происходит в другом потоке, вы просто отображаете данные, если надо они сами обновляются

    из минусов ужасный апи - кучу нулов в параметрах оскорбляют мое чувство прекрасного
    CursorAdapter не поддерживает RecyеclerView (решение гуглится за пять минут)
    А, что использовать если доступ другим приложениям не требуется? Есть то, что не устарело?

    SQLiteOpenHelper, различные orm ... да и сам ContentProvider не помечен как @Deprecated
    Ответ написан
    Комментировать
  • Java, куда именно податься?

    AlPsc
    @AlPsc
    Java/high load/big data
    Во-первых, не забудьте после Шилдта прочесть книгу Джошуа Блоха "Effective Java" (в одном из соседних вопросов упоминается её русский перевод, так что он, видимо, существует) – по моему скромному мнению, это обязательное чтиво для любого Java-программиста.
    Во-вторых, если уж выбирать между Android и чем-то ещё, то надо понимать плюсы и минусы обоих путей. Напишу то, что пришло мне в голову, на полноту и истину в последней инстанции не претендую.

    Android:
    Плюсы:
    • Работы много. Очень. В том числе и удалённой.
    • Получить начальные навыки довольно легко – сейчас есть огромное количество статей, пошаговых руководств и прочих материалов, которые как позволяют учиться новому, так и быстро решать типовые задачи/проблемы.

    Минусы:
    • С точки зрения изучения Java эта среда довольно специфическая. Во-первых, используется довольно старый диалект (Java 6). (В комментариях справедливо поправили, что сейчас на Android доступна Java 7.) Во-вторых, набор библиотечных классов несколько отличается от Java SE, и это значит, что при необходимости писать приложения на "настоящей" Java просто взять и переключиться по щелчку пальцев не получится, а какая-то часть "мобильных" навыков и практик окажется бесполезной.
    • Хорошо программировать на Java значит не только знать язык, но и уметь выбирать прочие инструменты (дополнительные библиотеки и т.п.), которыми, конечно, тоже надо уметь пользоваться. В этом смысле Android тоже довольно далёк от того, к чему привыкли разработчики Java SE/EE: всякие вещи типа JDBC/Hibernate/you-name-it на Android либо отсутствуют в принципе, либо не могут быть использованы из-за ограничений среды (тот же нестандартный набор библиотечных классов). Это опять же означает, что, научившись писать на Java под Android, вы не сможете просто взять и начать разрабатывать, скажем, enterprise/backend приложения, и конкуренцию в этой области с кандидатами, у которых есть соответствующий опыт, выдержать вряд ли сможете. (Я бы ничего этого не писал, но у вопроса есть метка "карьера", так что вы сами напросились :) )
    • Большая часть компаний, занятых мобильной разработкой – сервисные, со всеми вытекающими. Лично для меня это минус, т.к. мне продуктовые компании больше по вкусу.
    Java SE/EE
    Плюсы:
    • Работы много. Очень. В том числе и удалённой.
    • Более широкие возможности применения своих навыков

    Минусы:
    • Более высокий порог вхождения
    • Несколько сложнее наработать портфолио, потому что жизненный цикл "больших" приложений зачастую всё же гораздо длиннее, чем в случае мобильной разработки, где очень большую часть работы составляют проекты для сторонних заказчиков, где изначально задана конкретная конечная цель, сразу оговариваются сроки, и т.п. (Сужу по собственному опыту работы в компании, которая занималась как раз разработкой мобильных приложений для заморских заказчиков.) Конечно, в случае с удалённой работой/сервисными компаниями это может оказаться правдой для приложений любых типов.

    Итак, выбирая Android, вы раньше сможете начать зарабатывать деньги, но "чистая" Java, на мой взгляд, даёт больше перспектив. И по сути Android-программист и Java-программист – совсем не одно и то же. Так что выбор профессионального пути зависит от того, как вы вообще видите себя в ближайшем будущем в этой профессии: хотите ли вы быстро освоиться и получить способ зарабатывать деньги, не сильно задумываясь о смене деятельности в перспективе, либо же вам интересны разные области программирования, и вам хочется многое попробовать.
    Ответ написан
    4 комментария
  • Где лучше сохранять небольшой словарь?

    @IceJOKER
    Web/Android developer
    Но SharedPreferences точно не прокатит для словаря, тогда остается один вариант - файлы, теперь выбор за вами.
    Возиться с файлами или все же SQLite.

    Конечно если мало операций нужно и словарь действительно простой, то можно и в файл сохранить данные и работать с файлом.

    Но у БД больше преимуществ над получением данных и т.д.
    Ответ написан
    2 комментария