Ответы пользователя по тегу Android
  • Как лучше реализовать приложение "Расписание ВУЗа"?

    LeEnot
    @LeEnot
    Енот-андроид
    Вы замахиваетесь на создание программного комплекса.
    Для создания функционального продукта вам нужно обеспечить создание и редактирование расписания, его хранение и доставку до конечного пользователя (преподаватели и студенты).
    1. Для хранения вам нужно спроектировать и реализовать базу данных.
    В БД нужно реализовать поддержку различных факультетов/групп, разграничение прав доступа на создание/редактирование, группы пользователей (студенты-преподаватели-декан-админы). Наиболее простой и доступный вариант - MySQL
    2. Для передачи данных на мобильный телефон вам нужно спроектировать и реализовать REST Api. Реализуется в виде отдельного приложения для той ОС, на которой работает университетский сервер.
    3. Собственно приложение занимается отображением данных.

    Однако тут я вижу пару сложностей.
    1. Человеческий фактор. Для того, чтобы вашей системой пользовались, она должна быть удобна. То есть, не только вам, но и тем, кто будет смотреть расписание, а так же тем, кто его будет создавать/редактировать.
    Word вы в формат БД не переведете автоматом, а учиться работать с БД только для заполнения расписания никто не захочет. Вывод - нужно делать интерфейс работы с БД для обслуживающего персонала.
    Так же, далекто не у всех Android смартфоны, так что iOS вы оставляете "в пролете". Для обеспечения доступности расписания желательно сделать веб-интерфейс. Тогда можно будет заходить и с ПК, но этим вы добавляете еще одно звено в ваш комплекс.
    2. Сложность системы для реализации. В отсутствие опыта и силами одного человека невозможно изучить все представленные темы, а уж сделать качественный продукт - тем более.
    3. Неочевидный, но очень важный фактор - UI/UX, то есть, дизайн и юзабилити. Это отдельная и достаточно объемная задача, когда для каждой части комплекса, имеющей интерфейс нужно делать дизайн-макет, тестировать его на контрольной группе конечных пользователей, исправлять и так далее.
    Ответ написан
    Комментировать
  • Toolbar как расположить item'ы?

    LeEnot
    @LeEnot
    Енот-андроид
    1. Это стандартный способ, он расположит элементы только стандартным способом, т.е. только как задумал Google
    2. Чтобы расположить элементы кастомно, вам нужно переделать layout самой Toolbar примерно так
    3. Поскольку это крайне против гайдлайнов Google, подумайте, действительно ли это вам нужно
    Ответ написан
    Комментировать
  • Dagger 2 inject в ContentProvider?

    LeEnot
    @LeEnot
    Енот-андроид
    onCreate()провайдера вызывается раньше, чем соответствующий метод у Application. Полагаю, можно попробовать вынести создание компонента в другой метод Application, например, конструктор или attachBaseContext
    Ответ написан
    3 комментария
  • Какие плюсы и минусы профессии программист Android, iOS?

    LeEnot
    @LeEnot
    Енот-андроид
    Под Android впечатления очень хорошие:
    1. Документации доверять можно только частично: что-то уже устарело, что-то неверно описано. Все это провоцирует на активный поиск информации и эксперименты. Улучшается коммуникабельность и знание языка.
    2. Подходы и средства разработки стремительно устаревают, вследствие чего постоянно нужно обрабатывать большие массивы информации, читать блоги и смотреть записи различных конвентов тематических. Не дает расслабиться и тренирует мозг.
    3. Если будете работаь в небольшой конторе, вам, скорее всего, придется освоить так же ремесло бэкенд разработчика, дизайнера и верстальщика. Будете и швец, и жнец, как говорится :)
    4. В iOS тоже не соскучишься, придется сразу 2 языка разбирать, Obj C и Swift, т.к. на одном легаси, на другом требуют уже писать новые приложения. Хотя тут гайдлайны построже, столько гуглить не нужно.
    5. Перспективы - такие же, как для PHP. Сейчас готовится большой наплыв "молодого поколения", окончивших организованные Google и некоторыми другими компаниями курсы. Т.е. зряплата будет падать, но не для тех, кто фанат своего дела и старается быть в тренде.

    Так что мобильная разработка - замечательная область деятельности.
    Ответ написан
    4 комментария
  • Возможно ли сохранять коллекции объектов в Bundle (onSaveInstanceState(Bundle))?

    LeEnot
    @LeEnot
    Енот-андроид
    Используйте `putSerializable(String, Serializable)` метод.
    Ваша Queue должна имплементировать интерфейс Serializable и тогда ее можно пихнуть в Bundle.
    Насколько я помню, объект в очереди тоже должен быть Serializable.
    Bundle bundle = new Bundle();
    Queue<Word> queue = new LinkedBlockingQueue();
    bundle.putSerializable("my_queue", queue);

    Однако затраты на сериализацию "тяжелых" объектов могут быть достаточно высоки.
    Ответ написан
    Комментировать
  • Как вывести символ рубля ₽ в TextView?

    LeEnot
    @LeEnot
    Енот-андроид
    Попробуйте так:
    tvCost.setText(orderCost + Html.fromHtml(" &#x20bd"));

    UPD:
    Дело в том, что на некоторых шрифтах в Android символа рубля нет.
    Вам нужно задать кастомный шрифт, где этот символ присутствует примерно так:
    Typeface myFont = Typeface.createFromAsset(getAssets(),"fonts/NotoSans-Regular.ttf");
    tvCost.setTypeface(myFont);
    Ответ написан
  • Почему для разработки под Android выбрана Java?

    LeEnot
    @LeEnot
    Енот-андроид
    На Basic4Android, Delphi XE, разработка, извините, через задницу.
    1. Java вариант поддерживается производителем (Google)
    2. Комьюнити гораздо, гораздо больше
    Этих двух пунктов должно быть достаточно. Тут может быть их гораздо больше, но я с Basic4Android иDelphi XE не работал и не знаю всех косяков, которые из-за них вылезают )
    Ответ написан
    Комментировать
  • Как обойти ошибку при выгрузке изображения из БД размером больше 2mb?

    LeEnot
    @LeEnot
    Енот-андроид
    Вы можете хранить фотографии в защищенном хранилище, в которое есть доступ только у пользователей с root.
    Ответ написан
    Комментировать
  • Как реализовать чат как whatsapp?

    LeEnot
    @LeEnot
    Енот-андроид
    Вам нужно при регистрации в чате присваивать каждому юзеру и конференции уникальный идентификатор.
    1. Когда юзер будет посылать сообщение, он (неявно) будет посылать и идентификатор цели сообщения - другого юзера или конференции.
    2. Получив сообщение, сервер должен проверить, кому оно предназначается и разослать только нужным целям.
    3. Приложение, приняв сообщение, по идентификатору определит, в какой вкладке его отображать
    Ответ написан
  • Стоит инвестировать в архитектуре Android приложений?

    LeEnot
    @LeEnot
    Енот-андроид
    Безусловно, стоит использовать хоть какую-то архитектуру.
    Если она отвечает вашим требованиям: прозрачности, чистоты, масштабирования, тестирования - используйте то, что вам нравится.
    Нужно найти ту грань, когда наступает пресловутая "преждевременная оптимизация" и начинать работу с тем, что есть )
    Ответ написан
    2 комментария
  • Из-за чего может появляться NullPointerException при setAdapter в разных версиях Android?

    LeEnot
    @LeEnot
    Енот-андроид
    Проверьте enames. Что это за переменная?
    UPD: поясняю для упрямых и скрытных:
    Что у вас происходит?
    В методе ArrayAdapter.createViewFromResource() вызывается метод toString() на null объекте.
    Конкретно в этом месте:
    List<T> mObjects;
    ...
    T item = getItem(position);
    if (item instanceof CharSequence) {
        text.setText((CharSequence)item);
    } else {
        text.setText(item.toString());
    }

    Где T есть String.

    Соответственно, если item == null, то (null instanceof CharSequence) дает false и у вас NullPointer.
    Так понятнее? Смотрите, что вы передаете в конструктор ArrayAdapter.
    Ответ написан
    3 комментария
  • Android: Как актуализировать deviceId в GCM?

    LeEnot
    @LeEnot
    Енот-андроид
    Используйте XMPP сервер. В таком случае он автоматически вернет вам новый registration_id, при попытке послать сообщение со старым.
    См. документацию
    Ответ написан
    Комментировать
  • ВКонтакте API для Android: почему вместо photo_big приходит camera_b.gif или null?

    LeEnot
    @LeEnot
    Енот-андроид
    Ну Так вы их и не запрашиваете...
    private final static String FIELDS = "photo, photo_50, photo_100, photo_200, city, sex";
    Ответ написан
    1 комментарий
  • Как отправить POST json data в body через WebView?

    LeEnot
    @LeEnot
    Енот-андроид
    Т.е. вот так:
    HttpPost httpost = new HttpPost("http://...");
    httpost.setEntity(new StringEntity("{\"param_name\":\"param\"}"));
    httpost.setHeader("Accept", "application/json");
    httpost.setHeader("Content-type", "application/json; charset=UTF-8");
    HttpResponse response = httpClient.execute(httpPost);

    у вас не работает?
    Ответ написан
    7 комментариев
  • Как защитить android-приложение при фриланс-разработке?

    LeEnot
    @LeEnot
    Енот-андроид
    Простейший способ - при каждом запуске проверяйте дату на смартфоне. Если дата больше условленного срока оплаты - приложение отказывается работать.
    Можно ограничивать функционал - реализовать все заказанное, но при демонстрации вырезать часть функций.
    После оплаты отдаете полнофункциональное приложение.
    Ответ написан
    2 комментария
  • Какого размера делать персонажа для разных экранов Android?

    LeEnot
    @LeEnot
    Енот-андроид
    Ну логично, что если на mdpi у вас спрайт 100*100px, то на hdpi будет 150*150px, на xhdpi - 200*200px и так далее. Возьмите какое-нибудь базовое разрешение, посмотрите, как на нем будет смотреться и отмасштабируйте под остальные...
    Ответ написан
    1 комментарий
  • Как подгрузить данные в ListView из SQLite при прокрутке списка?

    LeEnot
    @LeEnot
    Енот-андроид
    Используйте CursorAdapter. Он такие операции (подгрузка данных из БД окном) выполняет "под капотом".
    Ответ написан
    Комментировать