Ответы пользователя по тегу Android
  • Заменит ли Kotlin Java в Android-разработке?

    Конкретно в мире Android разработки я бы сказал с большой долей вероятности Kotlin заменит Java, но это случится не так быстро. Постепенно, когда уверенность в Котлине закрепится, случится следующее:
    1. Официальная документация и примеры по Android-разработке от Google будут в двух вариантах.
    2. Официальная документация по умолчанию будет показывать примеры на Котлине, аналогично тому, как документация Angular.JS даёт примеры на TypeScript и предлагает опциональный вариант посмотреть вариант на чистом JavaScript.
    3. Android Studio начнёт создавать проект с поддержкой Kotlin по умолчанию
    4. В результате всего этого, новые Android-разработчики будут писать свой первый "Hello World" именно на нём
    5. Многие бывалые Java-разработчики начнут смотреть в сторону Kotlin с любопытством и поймут, что он решает многие проблемы Java и рано или поздно начнут на нём писать.

    Мне кажется, судьба Kotlin/Java в мире Android будет похожа на судьбу TypeScript/JavaScript в AngularJS и Swift/Objective-C в iOS разработке. Важным преимуществов Котлина является то, что он может сосуществовать с Java-кодом. Проекты, уже написанные на Java, не обязательно должны быть переписаны полностью с нуля. Словно по правилам естественного отбора в природе, он будет сосуществовать с Java, но завоевав любовь среди разработчиков у него будет больше шансов выжить и он начнёт внедряться всё больше и больше в проект до момента, когда в нём (проекте) не останется ни единого Java-класса.
    Ответ написан
    1 комментарий
  • React Native Android Firebase. Как задать иконку для уведомлений?

    Это не просто белая точка в белом круге, это та же иконка приложения с наложенным фильтром. Иконка уведомления в новых версиях должна быть одноцветная в соответствии с гайдлайнами. Советую пушить данные через Firebase и создавать уведомление самому, вместо использования их фичи с уведомлениями, таким образом у тебя будет гораздо больше контроля над уведомлениями и ты сможешь выставить другую иконку с помощью метода setSmallIcon в билдере (ищи соответствующие инструменты для этих ваших реактов)
    Ответ написан
  • Для чего нужно подписывать apk файлы?

    В целях безопасности. Если бы APK не подписывались, то злоумышленники могли бы изменить твоё приложение, добавив зловредный код, и распространять модифицированные версии, буд-то оно оригинальное. А если кто-то получит доступ к твоему Google Play аккаунту, то вообще идеально, любой мог бы подменить твоё приложение чем-то левым. С помощью подписи Google Play и Android валидирует обновления приложений. Ключ, которым производится подпись последующих версий, должен совпадать с ключом предыдущих версий приложения.

    Да, тебе нужно подписывать каждый APK перед заливкой в Google Play.

    И для уточнения по поводу этого:
    Ведь при генерации этого файла для подписи я использую абсолютно произвольные данные

    Подпись производится специальным ключом и криптографическими алгоритмами,. Что ты вводишь в полях типа "название организации" не имеет столько значения, сколько сам ключ, который генерируется случайно в момент создания.
    Ответ написан
    Комментировать
  • Как код в тегах textView превратить в нормальный вид??

    TextView слишком ограниченный для таких целей. Есть смысл использовать WebView, заранее подготовить все стили и внедрять в него HTML с помощью JS. Таким образом ты можешь форматировать текст как тебе вздумается и вставлять картинки. Единственный минус - производительность, но если у тебя всего один WebView, который отображает контент, а не в списке, то это не беда.
    Ответ написан
  • Как посмотреть Cookie??

    Если посмотреть на заголовки, которые https://toster.ru/ возвращает, то увидим следующее:
    HTTP/1.1 200 OK
    Connection: keep-alive
    Content-Encoding: gzip
    Content-Type: text/html;charset=utf-8
    Date: Thu, 24 Aug 2017 17:14:51 GMT
    Keep-Alive: timeout=15
    Public-Key-Pins: pin-sha256="klO23nT2ehFDXCfx3eHTDRESMz3asj1muO+4aIdjiuY=";pin-sha256="ATPF8U6AdEXM7aD9/PTAJldZj9jI6NWEvRGMbDJiN3g="; max-age=15552000
    Server: QRATOR
    Strict-Transport-Security: max-age=31536000
    Transfer-Encoding: chunked
    X-Powered-By: PHP/5.6.20-1+deb.sury.org~trusty+1

    Как видишь, Тостер не выставляет куки сразу. Это можно судить по отсутствию заголовка Set-Cookie. Было бы странно, если бы твой код нашёл какие-то куки.

    Замени https://toster.ru и toster.ru на https://github.com, например.
    Ответ написан
    5 комментариев
  • Как открывать различные ссылки в Android 6 в нужных приложениях?

    Тут сам Android не при чём, просто приложение ВК открывает любые ссылки с помощью своего встроенного браузера с некоторых пор, что значит другие приложения не получают сигнал о попытке открыть эту ссылку и не могут его обработать. Ты можешь отключить встроенный браузер ВК в Настройки -> Основные -> Встроенный браузер.
    Ответ написан
  • Будет ли падать приложение из-за xml-аттрибута в layout из более нового API?

    Не будет падать, просто атрибут не будет учтён на старых версиях ОС
    Ответ написан
    Комментировать
  • Существует ли браузер на android с автообновлением страницы?

    Сомневаюсь, браузеры обычно не создаются с расчётом на работу в фоновом режиме. Тут скорее всего требуется своё решение, это должно быть не слишком сложно реализовать, нужен только Android разработчик.
    Ответ написан
    Комментировать
  • Авторизация в android приложение через telegram?

    Алгоритм следующий:
    1. Пользователь нажимает "авторизоваться"
    2. Приложение отправляет запрос на сервер
    3. Сервер генерирует временный код и возвращает его приложению
    4. Приложение генерирует и открывает ссылку http://telegram.me/mybot?start=fe9Uing2sh (заменить название бота и сам код)
    5. Пользователь, перейдя по ссылке, отправит боту код

    После этого бот знает кого авторизовать и пользователь, вернувшись в приложение, должен быть авторизован.
    Ответ написан
    Комментировать
  • Актуальны ли сейчас уроки в Start Android 2011 года?

    Какие-то уроки до сих пор могут быть актуальны, другие нет. Например, не мало уроков на тему ListView, хотя он был практически полностью заменён более эффективным и гибким RecyclerView. Элементы дизайна тоже устаревшие, современные приложения отталкиваются от Material Design guidelines. Уроки по работе с камерой используют устаревший API.
    Ответ написан
    8 комментариев
  • Как сделать обучение в приложении по аналогии как в андроид при первом запуске?

    Смотри готовые решения: https://github.com/sjwall/MaterialTapTargetPrompt#...
    Использовать очень легко, пример есть в README.
    Ответ написан
    Комментировать
  • Как правильно загрузить несколько файлов на сервер?

    Возможно ли организовать загрузку файлов в фоновом режиме, чтобы не зависало мобильное приложение.

    Возможно, любые долгие задачи типа HTTP-запросов, работа с файлами или БД должны происходить асинхронно, т.е. в отдельном потоке. Популярные HTTP-клиенты типа OkHttp позволяют это делать довольно легко. По умолчанию Android не должен разрешать делать HTTP-запросы из основного потока в принципе как раз для того, чтобы ты не допустил ошибку и не залочил интерфейс.

    Второй вопрос если это возможно то как правильно организовать переход на другой экран если например фоновый процесс загрузки файлов еще не завершен.

    Да, тебе нужно производить загрузку в сервисе, он работает в фоне.
    Ответ написан
    Комментировать
  • Как добавить 1 день правильно?

    Используй Calendar для хранения даты. Там есть операции, которые тебе нужны.
    Calendar calendar = new GregorianCalendar(year, monthOfYear, dayOfMonth);
    calendar.add(Calendar.DATE, 1);

    И не советую делать day + "/" + month + "/" + year, для формата даты есть DateFormat, с его помощью можно форматировать в формат зависимый от локали.
    Ответ написан
    1 комментарий
  • MVC / MVP / MVVM / etc.?

    По-моему MVP отлично вписывается в текущее состояние разработки под Android, MVC реализовать сложновато из-за специфики. В целом, можно организовать всё самому, но есть и готовые решения типа Mosby MVP. На сайте библиотеки хорошо описаны принципы MVP и дополнительные полезные фичи, типа реализация LCE (Load-Content-Error) или сохранение данных чтобы не терять их при повороте экрана.

    Не пишут же реально везде findViewById...

    Это никак не относится к паттернам типа MV*, но проблему с этим бойлерплейтом решает Butterknife.
    Ответ написан
    1 комментарий
  • Какой cервис рассылки push уведомлений подойдет в данной ситуации?

    Ещё есть не малоизвестный в рунете сервис PushAll. Можно даже не устанавливать очередное приложение на телефон если пользуешься Телеграмом, сервис умеет присылать уведомления через бота.
    Ответ написан
    1 комментарий
  • Проблема RecyclerView?

    Как то, что находится в логе в onBindViewHolder передать в TextView Который висит в layout над всей конструкцией RecyclerView?

    Ты делаешь что-то явно не то. Адаптер не должен знать и тем более манипулировать с layout, в котором находится RecyclerView. Для этого тебе нужно передать информацию в Activity/Fragment, в котором находится RecyclerView. И он (Activity/Fragment), в свою очередь, уже выставляет текст где тебе нужно на основе полученной информации. Реализовать можно, к примеру, создав специальный интерфейс типа "listener" и передать реализацию интерфейса из Activity/Fragment в адаптер, который вызовет метод интерфейса с необходимыми аргументами (в твоём случае просто текст). См. шаблон.

    И не советую использовать getText() для получения текста из View, как ты это делаешь. Вьюхи должны только отображать информацию пользователю, а не быть контейнером для данных, используемых в коде.
    Ответ написан
    2 комментария
  • Как избавиться дублирования кода в разных активити?

    Можно решить эту проблему с помощью ViewStub:
    <ViewStub
        android:id="@+id/lazy_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    И в зависимости от Activity, инфлейтишь необходимый layout:
    ViewStub lazyLayout = (ViewStub) findViewById(R.id.lazy_layout);
    lazyLayout.setLayoutResource(R.layout.main_activity_body); // Либо R.layout.second_activity_body
    lazyLayout.inflate();
    Ответ написан
    Комментировать
  • Android studio. Как сверстать такую кнопку с счетчиком сообщений (фото внутри)?

    На ум приходят два варианта. Первый сложнее, но наиболее эффективный и правильный. Второй проще, но хрень и подойдёт если нужно просто быстро наклепать что-то.
    1. Перезаписав метод onDraw() в конкретном View кнопки. Добавить окружность, закраску и текст совсем несложно.
    2. Обернув кнопку в какой-нибудь ConstraintLayout/RelativeLayout и позиционировать TextView с числом и соответствующим фоном из res/drawables относительно этой кнопки.

    Единственное проблема с шрифтом, он явно нестандартный и нужно что-то думать по поводу него отдельно. Добавление своих шрифтов в APK обычно негативно сказывается на конечном размере приложения.
    Ответ написан
  • Как работать с In-App Billing (Разработка под Android)?

    UPD 2017-09-28:
    Спустя века Google удосужились упаковать инструменты для работы с биллингом в виде официальной библиотеки, теперь лучше использовать её.

    Предыдущий ответ:
    Нужно скопировать определённые классы где-то из документации (IabHelper и т.д.) для работы с биллингом, в целом процесс не очень удобный. Приложение-пример находится тут. Есть ещё сторонняя библиотека, немного упрощающая работу с биллингом.
    Ответ написан
    7 комментариев