• Библиотека Android Data Processor для легкого построения REST запросов и их обработки

      В повседневной работе постоянно сталкиваюсь с разработкой приложений использующих REST сервисы. Существующие библиотеки помогающие в построении запросов и их обработку не слишком меня устраивали по ряду причин. Возникла мысль о создании простого инструмента наподобие Universal Image Loader позволяющего быстро строить запросы и парсить полученные данные. В результате появился Android Data Processor

      Процессор данных предназначен для выполнения REST запросов к сервисам или локально к файлам.
      Запросы могут выполнятьс синхронно или асинхронно. Процессор не содержит парсеров. Для обработки результатов вы используете свои любимые парсеры данных и передаете им полученные данные в виде InputStream, String.
      Читать дальше →
    • Изменение вида выдачи данных в LogCat

        Стандартный логгер не совсем удобен, по крайней мере для меня. Ниже приведен пример логера переделанного под себя. Пользуюсь им уже более полутора лет. Позволяет быстрее визуально локализировать найденные проблемы, облегчает логирование. Легко перерабатывается для своих нужд. При работе не требует постоянного прописывания тега или создания тега в виде отдельной константы так как форматированный тег выдается автоматически в виде

        > Класс: функция: номер строки

        Используем так — Log.w("SUCCESS download")

        > DownloadCharts:downloadSongs:322: SUCCESS download

        Иногда необходимо узнать быстро не только место конкретной ошибки, но и класс родительский. Тогда на помощь приходит вызов логгера с указанием родителя, например Log.w(this, "Предупреждение") тогда мы получаем строку в виде

        > (Родитель) Класс: функция: номер строки

        > (ChartsLibrary) DownloadCharts:downloadSongs:322: Предупреждение

        Впрочем легче один раз попробовать его и посмотреть на результаты.

        Под катом приведен код.

        Читать дальше →
      • Самиздат — библиотека в кармане. Версия 2.0.1 Beta

          Добрый день всем!

          Большое спасибо всем кто нашел время и написал замечания на программу. Самое главное, что интерес к приложению есть, а недостатки буду устранять по мере наличия свободного времени.

          Итак, что нового в версии 2.0.1 Beta:

          1. Самое главное — добавлен поиск по автору.
          В работе поиск по многочисленным параметрам, надеюсь выпустить до Нового Года.

          2. Переделан механизм отображения произведений, оптимизирована работа с памятью.
          К сожалению на слабых моделях телефонов с маленькой памятью остались проблемы с отображением очень больших текстов размером более 6Мб. Иногда не хватает памяти для загрузки и приложение может выдать ошибку. Повторное чтение произведения как ни странно проходит.

          Если кто знаком с проблемой отображения больших текстов под Андроид — буду рад совету. Кеширование с дозагрузкой и тормозами прикручивать не хочется, нужно плавное прокручивание всего текста. Ранее пробовал TextView, сейчас ListView — использует меньше памяти.

          "Самиздат" — чтение произведений с портала http://samlib.ru/.

          Beta версия доступна по ссылке или воспользуйтесь приведенным ниже QR кодом:

          image image

          image
        • Самиздат — библиотека в кармане. Версия 2.0.0 Beta

            Добрый день всем!

            Наконец то нашлось немного времени и полностью переписана бесплатная программа «Самиздат» для чтения произведений с моего любимого портала http://samlib.ru/. Программа работает с телефонами Андроид. Beta версия доступна по ссылке или воспользуйтесь QR кодом:

            image image

            image
          • Android: Вращаем на все четыре стороны AndEngine

              Однажды мне пришлось решать задачу — запускать четыре разные игры написанные на andengine в зависимости от ориентации экрана. Обычные положения — landscape и portrait вопросов не вызывали. Вопросы возникли для остальных положений — противоположных для указанных. Четыре варианта переворота устройства. Пришлось обратиться к работе с сенсорами. Указанный ниже подход применим не только к AndEngine, но и к обычным Activity.
              Читать дальше...
            • Удаление иконки приложения из лаунчера

                Перевод заметки когда то найденной на страницах Интеренета.

                Создать приложение которое не появляется в списке запускаемых приложений вместе с иконкой легко. Достаточно поместить в файл манифеста следующие строки:

                <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>


                Задача удаления иконки приложения после инсталляции дело немного более хитрое.
                Читать далее...
              • Автоматическое генерирование APK с различными данными из командной строки с помощью Ant

                  Недавно столкнулся с проблемой — нужно было на удаленном сервере генерировать apk файл для загрузки, причем в зависимости от передаваемого адреса сервера программа должна была по умолчанию при установке соединяться с различными серверами.

                  Итак задача — дать пользователю возможность загрузить из интернета динамически генерируемое Андроид приложение которые буду вести себя по разному в зависимости от переданных параметров (в данном случае разные сервера загрузки данных).

                  Подробности
                  • +27
                  • 5,3k
                  • 2
                • Стандарт разработки приложений под Android

                    Разработчик Андроида сталкивается с большим количеством файлов и ресурсов предназначенных для разных частей программы. Даже он сам через месяц не может вспомнить, какой файл или ресурс к чему относится.
                    Предлагаемый ниже материал основан на моем опыте разработок многих проектов для Андроида и опробован уже в нескольких проектах. В результате простых правил нагромождение файлов и ресурсов превращается в удобочитаемый проект, экономит время и нервы. Особенно оказалось удобным при работе в команде, когда к проекту могут присоединяться новые программисты. В Eclipse вы легко находите любые ресурсы, поскольку они становятся уникальными, легко находимыми и сортируются в понятном порядке в любых списках. Общие удобные правила позволяют легко читать чужой код и находить нужные ресурсы.

                    Большинство из указанного является моими личным мнением.

                    Читать дальше →
                  • Работа с прогресс диалогами

                    У начинающих работать с андроидом возникают вопросы по поводу создания прогресс диалогов. Моя заметка возможно поможет им.

                    Создать и запустить диалог можно несколькими способами, но всех их объединяет одно: все изменения видимой части пользовательского интерфейса после создания Activity должны происходить в специальном потоке. Многие об этом забывают и потом удивляются, почему не происходит видимых изменений. Простейший вариант это вызов следующей конструкции:

                    вашаАктивити.runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            // Изменение видимой части
                        }
                    });


                    или для View:

                    вашеВию.post(new Runnable() {
                        @Override
                        public void run() {
                            // Изменение видимой части
                        }
                    });


                    Ваши команды на изменение ставятся в очередь и в определенный момент вызываются Activity. Преимущество есть, хотя на первый взгляд не очевидно. Программа перестает тормозить при каждом изменении интерфейса, все перерисовки проходят как бы фоново, программа не подвисает при исполнении каких то вычислительных задач связанных одновременно с рассчетами/загрузкой и с отображение хода процесса. С другой стороны это немного усложняет код.

                    Читать дальше →
                    • +36
                    • 3,7k
                    • 3