В данной статье мы кратко расскажем о том, как можно защитить свою программу от взлома, не интегрируя стандартное решение от Google и предоставим пример рабочего кода. Интересно? Просим под кат!
Данил Терновых @palmut
Пользователь
PushSharp — простая работа с Push Notifications
3 мин
29KК сожалению, топиков-ссылок на Хабре давно нет, так что придётся что-то написать о замечательной библиотеке PushSharp.
+27
Темы оформления. С блэк-джеком и WeakReference
10 мин
15KКак-то раз передо мной встала задача сделать в приложении на Android поддержку тем оформления. Что хотелось получить:
О том, чего удалось добиться и как это было реализовано — под катом.
- Возможность переключить оформление — изменить некоторые цвета и графику
- Смена должна происходить “на лету”, для пользователя должно измениться только оформление, все остальное (содержание полей ввода, позиция элементов в списке и т.п.) меняться не должно
- В перспективе хотелось бы, чтобы тема могла изменяться и без участия пользователя, например по времени суток
- Не хотелось бы в значительной степени изменять уже существующий код или разметку. В идеале хотелось бы просто как-то пометить элементы в разметке
- Было бы здорово уметь подгружать новые темы без обновления приложения.
О том, чего удалось добиться и как это было реализовано — под катом.
+43
Основы Android NDK на примере работы с OpenAL
8 мин
37KRecovery Mode
День добрый, уважаемые Хабраюзеры!
С недавних пор занимаюсь разработкой приложений под Android, в частности разработкой игр. Так сложилось, что для одного проекта пришлось работать с Android ndk. Все трудности и нюансы работы с native рассмотреть в принципе невозможно в рамках одной статьи, решил в данной статье небольшое введение в ndk написать.
А чтобы статья была интересна не только новичкам, покажу как работать с OpenAL и форматами WAV, OGG.
С недавних пор занимаюсь разработкой приложений под Android, в частности разработкой игр. Так сложилось, что для одного проекта пришлось работать с Android ndk. Все трудности и нюансы работы с native рассмотреть в принципе невозможно в рамках одной статьи, решил в данной статье небольшое введение в ndk написать.
А чтобы статья была интересна не только новичкам, покажу как работать с OpenAL и форматами WAV, OGG.
+44
Ресурсы, о которых должен знать каждый Android-разработчик
6 мин
189KПеревод
Сегодня я хочу поделиться с вами моим вольным переводом статьи, написанной Сергеем Повзнером (Sergey Povzner). Сергей ведёт блог bongizmo.com и занимается разработкой туристических гидов под общим названием Citybot.
В то время как Android продолжает свой невероятный рост, всё больше и больше программистов начинают разрабатывать приложения на этой платформе. Если ты начинаешь свой путь сегодня, то ты определенно — счастливчик. За последние годы Android значительно повзрослел и избавился от множества детских болезней. Информации по платформе более чем достаточно. Я же расскажу о самых важных ресурсах.
Статья будет полезна как новичкам, так и опытным разработчикам. Это гид по миру Android-разработки.
В то время как Android продолжает свой невероятный рост, всё больше и больше программистов начинают разрабатывать приложения на этой платформе. Если ты начинаешь свой путь сегодня, то ты определенно — счастливчик. За последние годы Android значительно повзрослел и избавился от множества детских болезней. Информации по платформе более чем достаточно. Я же расскажу о самых важных ресурсах.
Статья будет полезна как новичкам, так и опытным разработчикам. Это гид по миру Android-разработки.
+123
Методы решения судоку
5 мин
687KТуториал
1. Основы
Большинство из нас, хабражителей, знает, что такое судоку. Не буду рассказывать про правила, а сразу перейду к методикам.
Для решения головоломки, не важно сложной или простой, изначально ищутся ячейки очевидные для заполнения.
+59
Облачная поддержка для приложений на Android
2 мин
10KХорошие новости для разработчиков мобильных приложений для платформы Android. В облачной платформе Windows Azure Mobile Services добавлена инструментальная поддержка Android к уже существующей поддержке Windows 8, Windows Phone и iOS. Выпущенный Android SDK распространяется с открытым исходным кодом и доступен на GitHub вместе со всеми другими SDK.
Теперь разработчики приложений для Android могут воспользоваться Windows Azure Mobile Services для получения поддержки следующих функций бесплатно (до 10 мобильных приложений) и без вложений в собственную инфраструктуру:
Используя Windows Azure Mobile Services сегодня можно получить единый облачный бэкенд для поддержки всех популярных мобильных платформ без вложений в инфраструктуру для максимально быстрого старта и последующего масштабирования.
Теперь разработчики приложений для Android могут воспользоваться Windows Azure Mobile Services для получения поддержки следующих функций бесплатно (до 10 мобильных приложений) и без вложений в собственную инфраструктуру:
- доступ к реляционному хранилищу с динамической схемой данных;
- интегрированная система аутентификации на базе Microsoft Account, Facebook, Google и Twitter;
- пуш-уведомления для ваших приложений для Android (и всех других платформ одновременно);
- отправка SMS и почтовых сообщений из облака через сервисы SendGrid и Twilio;
- облачное масштабирование от бесплатного уровня до высоких нагрузок.
Используя Windows Azure Mobile Services сегодня можно получить единый облачный бэкенд для поддержки всех популярных мобильных платформ без вложений в инфраструктуру для максимально быстрого старта и последующего масштабирования.
+23
Ускорение криптоопераций или опыт портирования под Android
9 мин
12KВ состав платформы Android входит фреймворк Bouncycastle, предназначенный для выполнения криптоопераций, например, шифрования или проверки цифровой подписи. Отличительной чертой данного фреймворка является то, что он целиком написан на Java, без применения нативного кода. Это увеличивает его переносимость, однако значительно уменьшает быстродействие. В первом приближении реализация криптофункций с помощью нативного кода может дать значительный прирост производительности. Это может существенно увеличить быстродействие приложения, использующего криптографию. Посмотрим, подтвердится ли это предположение.
Данным постом я хочу начать серию статей о создании модуля, выполняющего криптооперации на примере шифрования/расшифровки симметричным алгоритмом AES. Для начала необходимо понять, какой прирост производительности может дать применение нативного кода по сравнению со встроенной в ОС реализацией.
Данным постом я хочу начать серию статей о создании модуля, выполняющего криптооперации на примере шифрования/расшифровки симметричным алгоритмом AES. Для начала необходимо понять, какой прирост производительности может дать применение нативного кода по сравнению со встроенной в ОС реализацией.
+27
Инструменты студии мобильной разработки
4 мин
38KДля разработчиков мобильных приложений существует много сервисов и веб-инструментов. Продвинутые компании и разработчики-одиночки знакомы со всеми этими сервисами не понаслышке. А вот новичок может запутаться и сделать неправильный выбор. Перейти на другой сервис можно без проблем, но ведь классно с самого начала пользоваться лучшим и удобным.
В нашей компании используется много подобных сервисов и инструментов, поэтому я решил рассказать вам кратко о лучших из них. О базовых вещах на подобии Basecamp, GitHub и т.п. речи не будет, т.к. это не сугубо специфические вещи для мобильной разработки.
Пройдемся по дизайну, серверным решениям, тестированию и аналитике.
+36
Портирование Android приложения на BlackBerry 10
6 мин
16KТуториал
30 января компания Research In Motion представила смартфоны на новой ОС BlackBerry 10. Приложений в BlackBerry App World пока существенно меньше, чем в Google Play или App Store, например. Можно успеть занять нишу, выпустив версию своего замечательного приложения и под эту ОС. Тем более, что это не требует больших трудозатрат.
Итак, как становится ясно из информации для разработчиков, существует несколько способов создания приложений под BlackBerry 10:
Для превращения Android-приложения в BlackBerry-версию также существует несколько способов: использование re-packaging tools, для переупаковки уже имеющегося apk, или использование непосредственно исходников Android-приложения для более вдумчивого и тщательного портирования с последующей сборкой под BlackBerry с помощью BlackBerry Native SDK. Рассмотрим первый вариант, как наиболее быстрый и простой.
Итак, как становится ясно из информации для разработчиков, существует несколько способов создания приложений под 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. Рассмотрим первый вариант, как наиболее быстрый и простой.
+4
Используем векторные изображения SVG в приложениях Android, или как убить фрагментацию экранов и не потерять в качестве (плюсы, минусы, особенности)
7 мин
62KДостаточно долгое время мы занимаемся разработкой детских приложений под Android, постепенно постигая множество нюансов этой платформы. Есть одни грабли, которые подстерегают нас в каждом приложении, – это фрагментация экранов. Если делать одно изображение только под телефон маленького размера, то на планшете оно выглядит мягко говоря “не очень”. А если делать изображение высокого разрешения для планшетов и пытаться использовать его на телефонах, то с очень большой вероятность приложение вывалится с OutOfMemory.
Приходится готовить несколько экземляров одного и того же изображения под разные экраны. Еще сильнее облака сгущает новый монстр Galaxy Nexus 10 с безумным разрешением 2560х1600.
В общем, неплохо бы что-то изменить, решили мы. А что если использовать в приложениях не растровые изображения, а векторные? Такие изображения легко масштабируются под разные разрешения экранов, при этом не теряя в качестве. Можно использовать всего одно изображение под разные разрешения и размеры.
Сказано — сделано. Итак, под катом история внедрения векторных изображений в одно из наших приложений. В статье мы поделимся опытом и особенностями использования векторных изображений в формате SVG в приложениях Android.
Приходится готовить несколько экземляров одного и того же изображения под разные экраны. Еще сильнее облака сгущает новый монстр Galaxy Nexus 10 с безумным разрешением 2560х1600.
В общем, неплохо бы что-то изменить, решили мы. А что если использовать в приложениях не растровые изображения, а векторные? Такие изображения легко масштабируются под разные разрешения экранов, при этом не теряя в качестве. Можно использовать всего одно изображение под разные разрешения и размеры.
Сказано — сделано. Итак, под катом история внедрения векторных изображений в одно из наших приложений. В статье мы поделимся опытом и особенностями использования векторных изображений в формате SVG в приложениях Android.
+54
Новый паттерн UI — боковая навигация
7 мин
49KПеревод
Занимаюсь редизайном приложения 10tracks для Android, и решил позаимствовать красивый интерфейсный ход старших братьев — Facebook и других. На эту тему нашлась хорошая статья, переводом которой спешу поделиться с вами. Между тем эта статья — больше платформа для дискуссии, чем нерушимые устоявишеся правила.
За последний год интерфейс Android улучшался с феноменальной скоростью (я подобрал небольшую галерею приложений, которые мне нравятся в Google+). Много изменений являлись лишь косметическими (тема Holo в ICS, шрифт Roboto, и т.д.). Мы не увидели больших качественных изменений в принципах проектирования интерфейсов. Но, возможно, как раз сейчас происходит одно такое.
Почти одновременно несколько приложений внедрили у себя боковую навигацию как в приложении Facebook. Сначала мы увидели, как она используется в новом дизайне Spotify, а затем почти сразу решение переняли Evernote. Не прошло и года, в новом дизайне приложения Google+ представили аналогичный паттерн.
За последний год интерфейс Android улучшался с феноменальной скоростью (я подобрал небольшую галерею приложений, которые мне нравятся в Google+). Много изменений являлись лишь косметическими (тема Holo в ICS, шрифт Roboto, и т.д.). Мы не увидели больших качественных изменений в принципах проектирования интерфейсов. Но, возможно, как раз сейчас происходит одно такое.
Почти одновременно несколько приложений внедрили у себя боковую навигацию как в приложении Facebook. Сначала мы увидели, как она используется в новом дизайне Spotify, а затем почти сразу решение переняли Evernote. Не прошло и года, в новом дизайне приложения Google+ представили аналогичный паттерн.
+75
Реализуем боковую навигацию в Android
12 мин
11KТуториал
В последнее время среди паттернов проектирования мобильных приложений наблюдается устойчивая тенденция к упрощению взаимодействия пользователя с конечным приложением. В частности, особый упор начал делаться на распознавание жестов. Жесты интуитивно понятны и естественны, они удобны и позволяют избавиться от лишних элементов интерфейса, упрощая приложение.
Хороший пример правильного использования жестов — набирающая популярность боковая навигация. На Хабре ранее публиковалась статья о боковой навигации как паттерне, но в ней ничего не было сказано о реализации.
К сожалению, проектов, реализующих боковую навигацию, крайне мало, да и большая часть из них работает медленно и неудобно. Мне повезло: спустя некоторое время после начала поиска я наткнулся на проект ActionsContentView, который, на мой взгляд, работал хорошо и быстро. В проекте были решены все те проблемы, с которым я столкнулся когда-то сам. После внимательного изучения проекта он был немного переписан мною под собственные нужды.
Изначально я хотел в этой статье расписать как и способ открытия бокового меню по клику, так и способ открытия меню жестом. Однако ближе к концу статьи стало очевидно, что обработка жестов и открытие навигации по ним достаточно объемный вопрос, в котором также следует учесть множество особенностей. Статья в таком случаем получается настолько огромная, что читать ее просто неудобно.
Поэтому я решил описать пока лишь реализацию бокового меню по клику.
Хороший пример правильного использования жестов — набирающая популярность боковая навигация. На Хабре ранее публиковалась статья о боковой навигации как паттерне, но в ней ничего не было сказано о реализации.
К сожалению, проектов, реализующих боковую навигацию, крайне мало, да и большая часть из них работает медленно и неудобно. Мне повезло: спустя некоторое время после начала поиска я наткнулся на проект ActionsContentView, который, на мой взгляд, работал хорошо и быстро. В проекте были решены все те проблемы, с которым я столкнулся когда-то сам. После внимательного изучения проекта он был немного переписан мною под собственные нужды.
Изначально я хотел в этой статье расписать как и способ открытия бокового меню по клику, так и способ открытия меню жестом. Однако ближе к концу статьи стало очевидно, что обработка жестов и открытие навигации по ним достаточно объемный вопрос, в котором также следует учесть множество особенностей. Статья в таком случаем получается настолько огромная, что читать ее просто неудобно.
Поэтому я решил описать пока лишь реализацию бокового меню по клику.
+20
Коммуникация между Activity и Service
4 мин
14KКак-то возникла у меня задача передавать данные из сервиса в активити. Начались поиски решения в стандартном SDK, но так как времени не было, то сваял плохое решение в виде использования базы данных. Но вопрос был открыт и спустя некоторое время я разобрался с более верным способом, который есть в SDK — использование классов Message, Handler, Messenger.
+11
Как мы в Parcsis разрабатываем программы под Android
5 мин
24K21 июня у нас в Parcsis состоялся день открытых дверей, на котором я в числе прочих докладчиков рассказал, как мы разрабатываем программы под Android. Под катом текст моего выступления, несколько дополненный и переработанный с учётом заданных вопросов.
Конечно, начать рассказ о разработке ПО следует с описания бизнес-процессов. Итак, начнем!
+31
Маленькая хитрость для отображения большого объёма данных в ListView
4 мин
41KТуториал
В этой статье я хочу поделиться недавно найденным решением, позволяющем отображать, а главное легко скролить большие объёмы данных в стандартном ListView.
Проблема
Стандартный механизм отображения списков из базы данных в Android выглядит примерно так:
- Activity содержит ListView
- ListView обращается к экземпляру CursorAdapter
- CursorAdapter получает данные из объекта, реализующего интерфейс Cursor
- Cursor получен либо из ContentProvider, либо сразу из SQLiteDatabase
Всё работает нормально ровно да тех пор, пока количество строк в Cursor сравнительно небольшое. Но если в нём 50 тысяч, 100 тысяч и более строк (хотя дело не только в количестве строк, но об этом чуть позже), время от времени список будет притормаживать. Особенно это заметно при «быстрой прокрутке», если у ListView установлено в true свойство fastScrollEnabled.
+43
Обзор VPN-клиентов для Android 4.x
5 мин
168KАктуальность темы
Не секрет, что последние тенденции в области регулирования сети Internet пугают любителей свободы и анонимности ( например блокировка YouTube в Дагестане). Даже на хабре с завидной постоянностью появляются топики с информацией как настроить VPN сервер для личных нужд . Добавляем сюда то, что существует большое количество ресурсов, которые недоступны с определенных территорий, но которые представляют определенный интерес для пользователей, например интернет кинотеатр Hulu.com, интернет-радио Spotify и Pandora. И даже интернет-кинотеатр ivi.ru не дает пользователям не из России получить доступ к своему контенту.
+6
KPI, или пособие по командному самоубийству
11 мин
448KДля написания этой заметки  было затрачено:
Много денег и времени. Пожалуй, самым затратным (по нервам, времени и деньгам) был эксперимент над собственной командой, о котором мне безумно неловко вспоминать. Но об этом — ниже.
Рано или поздно, наверное, у каждого директора возникает желание платить по справедливости. За выполенную работу. И очень многие сейчас пытаются внедрять KPI (ключевые показатели эффективности). Работает так: вы, как владелец бизнеса, назначаете конкретные цели для сотрудников. Они достигают или не достигают поставленных целей в процессе работы. Тем, кто достиг — выдается плюшка (денежная премия).
Ну, логично же, что:
А вот с творческими единицами (дизайнерами, программистами) — все значительно сложнее.
Мы недавно провели опрос руководителей ведущих диджитал-агентств и веб-студий страны на тему «а как вы используете KPI по отношению к труду творческих единиц», в результате получили вот такую картинку:
Некоторые компании (15%) применяют KPI для оценки эффективности труда программистов и дизайнеров.
- 68338 километров на поездки.
- 72 человеко-часа на почтовую переписку.
- 423 человеко-часа на эксперименты с коллективом в 30 человек.
- 88 часов на подготовку докладов и выступления на конференциях.
- 17 чашек кофе на беседу с мудрыми людьми на афтепати.
- Порядка 25 часов на набор этого текста и правку багов в нем :).
- До смерти замученный копирайтер, который был вынужден разбирать мои черновики, аудиозаписи и вообще ему спасибо.
Много денег и времени. Пожалуй, самым затратным (по нервам, времени и деньгам) был эксперимент над собственной командой, о котором мне безумно неловко вспоминать. Но об этом — ниже.
Рано или поздно, наверное, у каждого директора возникает желание платить по справедливости. За выполенную работу. И очень многие сейчас пытаются внедрять KPI (ключевые показатели эффективности). Работает так: вы, как владелец бизнеса, назначаете конкретные цели для сотрудников. Они достигают или не достигают поставленных целей в процессе работы. Тем, кто достиг — выдается плюшка (денежная премия).
Смысл такого подхода: платить по справедливости. На сколько наработал — столько и получил. Это честно, это логично, это — прекрасно!
Ну, логично же, что:
- Продажникам нужно назначать процент с оборота. Волки должны быть голодными. (Да, есть альтернативное мнение, что применить такой подход — значит «обложить себя дополнительным налогом». Но как по мне — тут все справедливо :-)).
- Офисному планктону — ставить оклад. Стабильность для них — ооочень важное условие существования.
А вот с творческими единицами (дизайнерами, программистами) — все значительно сложнее.
Мы недавно провели опрос руководителей ведущих диджитал-агентств и веб-студий страны на тему «а как вы используете KPI по отношению к труду творческих единиц», в результате получили вот такую картинку:
Некоторые компании (15%) применяют KPI для оценки эффективности труда программистов и дизайнеров.
+98
MVC умер, пришло время MOVE
3 мин
76KПеревод
MVC феноменальная идея. У вас есть модели, самостоятельные кусочки состояний, представления которые самостоятельные кусочки UI, и контроллеры которые самостоятельные кусочки… эм?
Я конечно не первый кто это замечает, но проблема с MVC в том что в контроллеры пихают слишком много кода.
Чтобы исправить это, я использую новый паттерн: MOVE. Models, Operations, Views и Events.
Что?
Я конечно не первый кто это замечает, но проблема с MVC в том что в контроллеры пихают слишком много кода.
Чтобы исправить это, я использую новый паттерн: MOVE. Models, Operations, Views и Events.
+35
О создании персональных рейтингов. Вроде IMHO.net
4 мин
7.1KВ прошлых статьях я затрагивал тему простых рейтингов. В комментариях меня попросили расписать тему рейтингов, которые выдают для каждого пользователя свои.
+23
Информация
- В рейтинге
- Не участвует
- Откуда
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Дата рождения
- Зарегистрирован
- Активность