Pull to refresh
0
0
Send message

Несколько полезных шаблонов для Android-разработки под eclipse

Reading time3 min
Views29K

Вступление


Привет, коллеги.

Сегодня я хочу поделиться с вами несколькими полезными шаблончиками (templates) для IDE Eclipse, которые помогут вам ускорить некоторые рутинные операции при разработке под Android. Я пока что использую Eclipse для разработки, но, я уверен, что Idea позволит создавать совершенно аналогичные шаблоны.

Что такое шаблоны? Это заранее заготовленные кусочки кода, которые IDE может быстро подставлять для вас при нажатии на Ctrl+Space. Например, введите «syso» в eclipse, нажмите Ctrl+Space. Бац, у вас появился System.out.println(), или «fore» — у вас появится готовый шаблон для цикла for each. Более того, данные кусочки параметризированы, и IDE предложит вам ввести имена для нужных переменных.

Если вам это интересно, приступим.
Читать дальше →
Total votes 42: ↑38 and ↓4+34
Comments22

Простой каркас Android приложения

Reading time3 min
Views44K

Самым сложным этапом в любом деле, пожалуй, является поиск точки старта. При создании приложений для android эту задачу приходится делить на несколько и определять, например, для каких версий android должно быть будущее приложение.
Не буду разводить демагогию и перейду к самой сути. Для создания, с Вашего позволения, стандартно-шаблонного приложения (левое слайдинг-меню, actionbar), которое будет одинаково смотреться как на android-2.2 так и на android-4 я предлагаю не изобретать велосипеды и использовать готовые решения actionbar-sherlock и sliding-menu.
В этой статье я нарочно опущу процесс установки среды разработки, но буду подразумевать, что разработка ведется в eclipse android sdk.
Читать дальше →
Total votes 51: ↑26 and ↓25+1
Comments15

Как бороться с низкокачественными Android приложениями

Reading time5 min
Views58K
Все согласны, что Google Play переполнен некачественными приложениями, но никто не хочет брать вину на себя — принято винить абстрактный Android или просто Google, который выпустил систему без строгих гайдланов, создал маркет без модерации и дал возможность производителям делать свои оболочки с разноцветными иконками и градиентами.

Но каждый день выходят новые приложения с дизайном из iOS, темами из 2.3, не адаптированные для планшетов и с размытыми картинками на HD-экранах. И в этом виноват не Google, а разработчики. Кто-то не пытается спорить, когда заказчик присылает макеты от iOS версии, кто-то пытается, но сдается. Кто-то разрабатывает приложение ради опыта, откладывая «неважное» на потом, и так оно и остается. Стартапы делают приложения «за день», а потом лихорадочно фиксят баги, создавая снежный ком, который уже никто не перепишет с нуля. Крупные социальные сети, имея деньги и время, каким-то образом умудряются выпускать ужасные клиенты…
Читать дальше →
Total votes 139: ↑119 and ↓20+99
Comments125

Ресурсы, о которых должен знать каждый Android-разработчик

Reading time6 min
Views189K
Сегодня я хочу поделиться с вами моим вольным переводом статьи, написанной Сергеем Повзнером (Sergey Povzner). Сергей ведёт блог bongizmo.com и занимается разработкой туристических гидов под общим названием Citybot.

В то время как Android продолжает свой невероятный рост, всё больше и больше программистов начинают разрабатывать приложения на этой платформе. Если ты начинаешь свой путь сегодня, то ты определенно — счастливчик. За последние годы Android значительно повзрослел и избавился от множества детских болезней. Информации по платформе более чем достаточно. Я же расскажу о самых важных ресурсах.

Статья будет полезна как новичкам, так и опытным разработчикам. Это гид по миру Android-разработки.
Читать дальше →
Total votes 133: ↑128 and ↓5+123
Comments33

Эффективное клиент-серверное взаимодействие в Android

Reading time6 min
Views5.9K

StrictMode и борьба с ANR


Начиная с версии Gingerbread, Google добавил в Android механизм, который позволяет отслеживать долгосрочные операции, выполняемые в UI потоке. Имя этому механизму StrictMode. Для чего же это было сделано?

Каждый из вас, вероятно, сталкивался в приложениях с диалоговым окном «Application Not Responding» (приложение не отвечает) или ANR. Это происходит когда приложение не отвечает на события ввода (нажатие клавиш, тач по экрану) в течение 5 секунд. Для отслеживания процессов, блокирующих UI поток, и был введен механизм StrictMode. И, начиная с Android 3.0, StrictMode пресекает попытки выполнить сетевой запрос в UI потоке.

Итак, какие же механизмы предоставляет Android для обращения к сети вне UI потока?
Читать дальше →
Total votes 9: ↑6 and ↓3+3
Comments9

Портирование Android приложения на BlackBerry 10

Reading time6 min
Views16K
30 января компания Research In Motion представила смартфоны на новой ОС BlackBerry 10. Приложений в BlackBerry App World пока существенно меньше, чем в Google Play или App Store, например. Можно успеть занять нишу, выпустив версию своего замечательного приложения и под эту ОС. Тем более, что это не требует больших трудозатрат.

Итак, как становится ясно из информации для разработчиков, существует несколько способов создания приложений под BlackBerry 10:
  • нативные приложения на C/C++;
  • веб-приложения на HTML5;
  • Adobe AIR и ActionScript;
  • Android API 2.3.3 runtime;
  • Java BlackBerry runtime.

Для превращения Android-приложения в BlackBerry-версию также существует несколько способов: использование re-packaging tools, для переупаковки уже имеющегося apk, или использование непосредственно исходников Android-приложения для более вдумчивого и тщательного портирования с последующей сборкой под BlackBerry с помощью BlackBerry Native SDK. Рассмотрим первый вариант, как наиболее быстрый и простой.

Читать дальше →
Total votes 32: ↑18 and ↓14+4
Comments21

Реализация системы скинов в Android-приложении или смена цветовой гаммы в один клик

Reading time6 min
Views14K
Приветствую всех хабравчан!

Совсем недавно реализовывала интересную, на мой взгляд, задачу в андроид приложении и решила поделится опытом с вами.
Задача заключается в следующем: смена цветовой гаммы приложения по одному клику. Так называемая реализация скинов для приложения.

Читать дальше →
Total votes 33: ↑23 and ↓10+13
Comments24

Делаем OpenGL ES LiveWallpaper на Linderdaum Engine под Android

Reading time4 min
Views11K
Привет Хабр!

Тема создания LiveWallpaper под Android уже хорошо обкатана: есть туториалы на чистой Java, есть туториалы на Java с OpenGL ES 1.0/2.0, есть… да чего только нет!

Сегодня мы посмотрим, как быстро сделать LiveWallpaper под Android на С++ используя Linderdaum Engine и GLSL.

Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments2

Как стать миллионером в AppStore или немного формул про продвижение и продажи. Часть 2

Reading time5 min
Views61K

Great Appeal или девушка на миллион



Девушка на миллион

Итак, в прошлой статье мы закончили на том, что разобрались с тем, как получить «показы» нашего приложения в AppStore.

Иногда ошибочно считается, что запуск – это самое сложное. Это, мягко скажем, не так. Настоящая работа начинается после запуска.

Команда, искренне уверенная в качестве своего проекта, ждет вертикального взлета продаж с асимптотой к бесконечности… Но обычно получается больше похоже на новогодний фейерверк – короткий взлет, стремительное падение и забытье.

Кто виноват и что делать?
Total votes 116: ↑102 and ↓14+88
Comments27

Ключевые люди по тегу #AndroidDev

Reading time3 min
Views16K
image
Часто замечаю, что большинство программистов, разрабатывающих приложения для Android, не в курсе последних новостей Android Community. Если о появлении новой версии ОС знают практически все, то выход различных полезных библиотек или интересных для разработчиков статей часто остается незамеченным.

За последний год у меня сформировался список контактов в соц. сетях наиболее известных личностей из Android Community. Эти люди регулярно пишут статьи, публикуют библиотеки, отвечают на StackOverflow и т.д. Подобный список помогает одному из первых узнавать новости сообщества Android Developers, поэтому решил поделиться им здесь.
Читать дальше →
Total votes 47: ↑43 and ↓4+39
Comments7

Реализуем боковую навигацию в Android

Reading time12 min
Views11K
В последнее время среди паттернов проектирования мобильных приложений наблюдается устойчивая тенденция к упрощению взаимодействия пользователя с конечным приложением. В частности, особый упор начал делаться на распознавание жестов. Жесты интуитивно понятны и естественны, они удобны и позволяют избавиться от лишних элементов интерфейса, упрощая приложение.

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

К сожалению, проектов, реализующих боковую навигацию, крайне мало, да и большая часть из них работает медленно и неудобно. Мне повезло: спустя некоторое время после начала поиска я наткнулся на проект ActionsContentView, который, на мой взгляд, работал хорошо и быстро. В проекте были решены все те проблемы, с которым я столкнулся когда-то сам. После внимательного изучения проекта он был немного переписан мною под собственные нужды.

Изначально я хотел в этой статье расписать как и способ открытия бокового меню по клику, так и способ открытия меню жестом. Однако ближе к концу статьи стало очевидно, что обработка жестов и открытие навигации по ним достаточно объемный вопрос, в котором также следует учесть множество особенностей. Статья в таком случаем получается настолько огромная, что читать ее просто неудобно.
Поэтому я решил описать пока лишь реализацию бокового меню по клику.
Читать дальше →
Total votes 28: ↑24 and ↓4+20
Comments17

Custom Themes для Custom Widgets

Reading time3 min
Views7.5K
Разрабатывая HoloEverywhere столкнулся с тем, что большинство присылаемых мне вопросов так или иначе относятся к тому, как стилизовать какие-либо виджеты.

То-есть народ особо не понимает сам принцип работы тем и аттрибутов.
Попробуем немного разжевать эту тему.

Для начала: что такое вообще стили? Набор значений для аттрибутов.
А где список этих аттрибутов, как получить их значения?
Styleable-ресурсы.

Давайте пока по старинке: создадим свою вьюху:
Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments4

ListView в Android: Кастомизация списков

Reading time15 min
Views218K
Продолжение статьи о ListView в Android, в котором мы рассмотрим более сложные примеры его использования, такие, как иконки на элементах списка и добавление чекбоксов к этим элементам. Так же мы рассмотрим возможности по оптимизации кода.
Читать дальше →
Total votes 47: ↑38 and ↓9+29
Comments16

AnnotatedSQL lib — автоматическая генерация базы данных в Android

Reading time7 min
Views8.6K
При разработке приложения под Android мы часто пишем руками скрипты для создания схемы.
Все бы ничего когда это надо сделать одни раз, но когда приложение развивается, то часто приходится менять базу.
И когда это размазано по нескольким классам — то возникают проблемы, где-то забыл добавить/удалить колонку, изменить тип и прочее. Еще и копипаст «помогает»: добавлял колонку — забыл поставить запятую.

Как раз для решения этих проблем и была придумана эта библиотека.

Читать дальше →
Total votes 31: ↑30 and ↓1+29
Comments15

Battle City на unity за 1 день?

Reading time2 min
Views60K

Возможно ли сделать простенькую игру за один день на unity, не имея опыта в этом?
Вопрос был риторическим, пока мы не попробовали.
Есть такой проект — 2niversity. Появился этот проект недавно, но их цель мне очень понравилась — собирать молодежь и абсолютно бесплатно организовывать для нее однодневный интенсив с целью повышения навыков в какой-либо технологии

Когда мне позвонил менеджер этого проекта и предложил попробовать провести подобное мероприятие на unity, я задумался.
С одной стороны лично мне все казалось просто — 5-7 часов на простенькую игру и все готово, с другой стороны люди, которые участвуют в роли учеников, должны будут впервые использовать этот движок. Возможно им вообще впервые придется попробовать себя в роли создателя игр. Если интересно, чем закончился данный эксперимент, прошу под кат
Читать дальше →
Total votes 79: ↑75 and ↓4+71
Comments27

Асинхронная загрузка рисунков в TextView

Reading time3 min
Views11K
Ни для кого не секрет, что TextView в Android поддерживает HTML-теги. Среди них поддерживается и тег , а для его обработки используется класс ImageGetter. И если с отображением локальных графических файлов никаких проблем не возникает, то при попытке программно подгрузить удаленный рисунок в TextView мы получаем NetworkOnMainThreadException на Android версии 3.0 и выше. Как выяснилось, в поисковиках информации для решения этой проблемы находится мало, да и далеко не все из предлагаемых решений работоспособны. Тем не менее, рабочее решение существует.
Читать дальше →
Total votes 20: ↑15 and ↓5+10
Comments18

AndroidAnnotations — упрощаем и укорачиваем код без вреда для здоровья проекта (I часть)

Reading time4 min
Views32K

Уже несколько лет существует и совершенствуется открытая библиотека для Android — Android Annotations
Она похожа на RoboJuice по возможностям, но если изучить ее тщательнее, то станет ясно — она гораздо обильнее по возможностям и реализована более удобным для использования в проекте способом.
Об этой библиотеке уже писали на Хабре, но кратко, да и она сама обновилась.
Что ж, пройдемся по AndroidAnnotations подробно, тем более она вошла в джентельменский набор разработки под Android.
Читать дальше →
Total votes 50: ↑37 and ↓13+24
Comments34

Рекомендации по интерфейсу форм

Reading time6 min
Views33K

Проектирование форм может оказаться настоящей проблемой. Чтобы получилось что-то стоящее и удобное для пользователей необходимо принять во внимание кучу разных рекомендаций и правил. В данной статье я постарался составить полезный список таких рекомендаций. Для его составления я использовал свой опыт и статьи экспертов.

Основные рекомендации и ввод данных


  • Стремитесь к краткости.
  • Убедитесь, что в форме используется один язык (обороты, термины).
  • Если на странице находится только форма и ничего кроме нее, то при загрузке страницы стоит ставить фокус на первое поле формы, это позволит сэкономить немного времени (страница поиска, входа, регистрации).
  • Поддерживайте ясный путь заполнения формы.
  • Избегайте вторичных действий, если это возможно.
  • В противном случае четко разделяйте основное и дополнительные действия.
  • Выравнивайте основное действие так же как и поля формы, это упрощает восприятие формы.
  • Цветная подложка у главной кнопки сделает её более видимой.
  • Отключайте кнопку «Отправить» после того как пользователь на нее нажал, это позволит избежать двойной отправки данных.
  • Еще лучше — показывайте индикатор отправки.

Читать дальше →
Total votes 29: ↑22 and ↓7+15
Comments14

“АвтоУскорение”: как попасть без денег в Топ-100 Google Play и что делать дальше?

Reading time10 min
Views35K
Все началось 19 мая 2011 года, когда друзья на день рождения подарили мне новенький смартфон Google Nexus S. До этого я долгое время я работал программистом, потом специфика моей деятельности поменялась, но «руки то помнят». Поэтому я сразу задумал что-нибудь запрограммировать для моего нового классного смартфона, и написал приложение Авто-ускорение. Сегодня хочу рассказать, что я узнал, понял и сделал за два месяца с момента старта.
Читать дальше →
Total votes 60: ↑49 and ↓11+38
Comments46

Маленькая хитрость для отображения большого объёма данных в ListView

Reading time4 min
Views41K


В этой статье я хочу поделиться недавно найденным решением, позволяющем отображать, а главное легко скролить большие объёмы данных в стандартном ListView.

Проблема


Стандартный механизм отображения списков из базы данных в Android выглядит примерно так:
  • Activity содержит ListView
  • ListView обращается к экземпляру CursorAdapter
  • CursorAdapter получает данные из объекта, реализующего интерфейс Cursor
  • Cursor получен либо из ContentProvider, либо сразу из SQLiteDatabase


Всё работает нормально ровно да тех пор, пока количество строк в Cursor сравнительно небольшое. Но если в нём 50 тысяч, 100 тысяч и более строк (хотя дело не только в количестве строк, но об этом чуть позже), время от времени список будет притормаживать. Особенно это заметно при «быстрой прокрутке», если у ListView установлено в true свойство fastScrollEnabled.
Читать дальше →
Total votes 49: ↑46 and ↓3+43
Comments26

Information

Rating
Does not participate
Location
Днепр, Днепропетровская обл., Украина
Date of birth
Registered
Activity