Pull to refresh
0
0
Send message

Тонкости продвижения в FaceBook

Reading time6 min
Views11K
Facebook совсем недавно пришел в Россию, однако с каждым днем он все больше набирает популярность. На данный момент в социальной сети Марка Цукерберга насчитывается около 5 000 000 русских пользователей. В сравнении с 35 000 000 ежедневной аудитории ВКонтакте и 27 000 000 в Одноклассниках это очень мало, однако если вы все-таки решите продвигать свой бренд или стартап в Facebook, то это статья для вас.
Читать дальше →
Total votes 57: ↑47 and ↓10+37
Comments19

Переход с Google Maps на OpenStreetMap

Reading time2 min
Views31K
В нашем проекте так сложилось, что мы для нашей гео-вики стали использовать OSM а не GM. В ходе написания мобильного клиента под андроид был использован стандартный компонент MapView. Но, в ходе тестирования выявились расхождения в координатах OSM и GM, которые, в некоторых случаях, достигали 30 метров. Таким образом было решено переходить с карт гугла на OSM для чего и была найдена соответствующая библиотека osmdroid. О том, как переехать на эту библиотеку, расскажу под катом.
Читать дальше →
Total votes 29: ↑25 and ↓4+21
Comments11

Re: Собеседование разработчика (альтернатива/дополнение)

Reading time6 min
Views57K
Не мог пройти мимо топика "Вопросы на собеседование middle/senior iOS Developer" и статьи "Собеседование разработчика". Хочу предложить альтернативный или дополнительный подход к собеседованию разработчиков.

Разбор говнокода или сотня разношерстных вопросов на листочке — это, конечно, прекрасно, но если это единственный этап собеседования, то это вызывает желание спросить что-то вроде: «Вы серьезно?»

Вы не устали от того, что на собеседованиях на конкретную позицию разработчика вас спрашивают достаточно сильно оторванную от жизни фигню, которую хочется поскорее забыть после такого собеседования (режим nightmare — это тест на 150+ вопросов и психолог в конце)? Я не отрицаю, что оценивать качество кода — это очень важно, но оценивать качество какого-то конкретного куска и делать по нему большие выводы — это точно неправильно.

К тому же, слишком много так называемых разработчиков не имеют никакого понятия о том, как строить архитектуру приложения, как грамотно разделить компоненты на модули, как внести гибкость для последующих изменений проекта. А вопросы подобные вопросам из топика "Вопросы на собеседование middle/senior iOS Developer" не дадут вам понять, насколько человек хорошо применяет свои знания при реализации проекта.

Что ты предлагаешь, чувак?

Давайте рассмотрим на примере android разработчика (адаптировать можно для любой области, но вы же понимаете, что без конкретики эту статью просто раскритиковали бы, так что поговорим об android).

Что я предлагаю: берем популярное, большое (в плане функционала) и сложное (в плане реализации) приложение и беседуем насчет того, как кандидат бы его сделал!

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

Разбор листочка с кодом или заученные ответы на подковыристые вопросы не дадут вам понять, как потом этот человек справится с реальными задачами на реальном проекте (но я не говорю, что не надо спрашивать этого, можно, но это не должно быть основой собеседования).

Для примера, возьмем приложение Вконтакте для android (оно большое, сложное и многим знакомое).
Читать дальше →
Total votes 65: ↑55 and ↓10+45
Comments35

Сериализация в Java: как заглянуть внутрь черного ящика

Reading time9 min
Views16K
Испокон веку в Java есть чудесный механизм сериализации, который позволяет, не прилагая особых умственных усилий, сохранять в виде последовательности байт сколь угодно сложные графы объектов. Формат хранения хорошо документирован, есть куча примеров, сериализованные объекты «весят» вполне себе немного, пересылаются по сети на раз, есть куча возможностей для кастомизации… Все это звучит прекрасно, но только до тех пор, пока вы не останетесь один на один каким-нибудь многомегабайтным бинарным файлом, содержащим очень-очень ценные и нужные именно сейчас данные.

Как голыми руками залезть в этот файл, и понять, что же хранится внутри этого огромного сериализованного графа объектов, не имея исходного кода? На эти и многие другие вопросы может ответить Serialysis – библиотека, которая позволит вам детально проанализировать сериализованные java-объекты (сериализованная форма — это мой вариант перевода выражения serial forms, решил не уходить далеко от оригинала). Таким образом можно получить информацию об объекте, которая не доступна через его публичный API. Библиотека также является полезным инструментом при тестировании сериализации ваших собственных классов.
Читать дальше →
Total votes 24: ↑22 and ↓2+20
Comments1

Алгоритм генерации судоку

Reading time9 min
Views134K
sudoku250title
Доброго времени суток!

Думаю, головоломка Судоку не нуждается в представлении. Многие из нас проводят за её решением достаточно много времени. Например, когда нужно убить время в дороге или просто поворочать мозги, чтобы не сохли. На хабре есть довольно много постов о решении головоломки. Но когда человек решает с десяток, а может и сотню головоломок, то найдётся пытливый ум, который задаст себе вопрос «А как же получается таблица Судоку, имеющая единственное решение? И как можно описать алгоритм для сетки 9x9?».

Приведённый алгоритм является вполне логичным. Но моей задачей было описание и реализация. Обо всём этом написано под катом.

Читать дальше →
Total votes 60: ↑54 and ↓6+48
Comments23

Несколько интересностей и полезностей для веб-разработчика (выпуск 2)

Reading time3 min
Views82K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Webflow



С помощью данного сервиса вы сможете сверстать кроссбраузерный отзывчивый макет за 55 минут. Очень красивый и удобный интерфейс. Идеальное решение для веб-дизайнеров, 26 000 из которых уже используют Webflow. Для создания двух проектов сервис бесплатный, а в дальнейшей перспективе вас ждут вполне демократичные цены. Инструмент реально «крутой».

Если Вам GUI для верстки не комильфо сам по себе как для меня, все равно рекомендую зарегистрироваться и экспортировать парочку responsive макетов. А еще есть простой генератор отзывчивого лэйаута и Responsive Patterns.

Parallax.js


Функциональный и простой инструмент для создания параллакс эффекта.

Читать дальше →
Total votes 124: ↑114 and ↓10+104
Comments27

Записки iOS разработчика: Делимся опытом, часть 1

Reading time6 min
Views46K
imageЗдравствуйте, дорогие читатели Хабра!

Я разрабатываю приложения под iOS и Mac OS. Уже около года занимаюсь фрилансом и, переходя от клиента к клиенту, начал замечать, что в задаче разбираюсь одиножды; а при появлении похожего заказа, просто использую уже разработанные ранее модули. В серии статей «Записки iOS разработчика» я постараюсь осветить некоторые часто встречающиеся в заказах аспекты; напишу подобие шпаргалки, прочитав которую, вы сможете быстро и безболезненно внедрить новую технологию в свой проект. Мои заметки ни в коем случае не претендуют на глубокое понимание процессов, но описывают легкий способ закончить заказ в срок.

Содержание:

  1. Часть 1: Работа с Файлами; Шаблон Singleton; Работа с Аудио; Работа с Видео; In-App Purchases
  2. Часть 2: Собственные всплывающие окна (Popups); Как использовать Modal Segue в Navigation Controller; Core Graphics; Работа с UIWebView и ScrollView
  3. Часть 3: Жизнь без Autolayout; Splash Screen; Работа с ориентацией девайса в iOS 6+; Сдвиг содержимого UITextField
  4. Часть 4: Google Analytics; Push Notifications; PSPDFKit; Вход в приложение через Facebook; Рассказать друзьям — Facebook, Twitter, Email
  5. Часть 5: Core Data; UITableView и UICollectionView
Читать дальше →
Total votes 52: ↑40 and ↓12+28
Comments30

[Перевод] Различия в разработке под BlackBerry и Android

Reading time6 min
Views15K
От переводчика: данный текст должен помочь комментаторам из этой и этой тем, желающим узнать, как обстоят дела с разработкой для BlackBerry 10.



Я хочу поделиться с вами собственным опытом разработки для Android и BlackBerry. Речь пойдёт не только о, собственно, программировании, но также об анализе статистики и получаемой прибыли.

Я ни в коем случае не хочу судить о платформах, лишь делюсь своими впечатлениями и фактами.
Читать дальше →
Total votes 23: ↑21 and ↓2+19
Comments15

Pixel-perfect верстка Android макетов

Reading time7 min
Views56K
Разрабатывать интерфейс Android приложений — непростая задача. Приходится учитывать разнообразие разрешений и плотностей пикселей (DPI). Под катом практические советы о верстке макетов дизайна Android приложений в Layout, который совпадает с макетом на одном устройстве а на остальных растягивается без явных нарушений дизайна: выхода шрифтов за границы; огромных пустых мест и других артефактов.

UPD: Пост спорный, но много ценных советов в комментариях


Читать дальше →
Total votes 87: ↑60 and ↓27+33
Comments83

Android компонент с нуля — 2 — Лупа для изображения

Reading time6 min
Views17K
Время от временя в интернете, в основном на сайтах различных магазинов и торговых площадок, мы сталкиваемся с программной лупой, позволяющей рассмотреть более детально фотографии различных товаров (что то подобное реализовано на сайте www.ebay.com). Созданием такой лупы для платформы Android мы и займёмся (специально для новичков).
Читать дальше →
Total votes 30: ↑27 and ↓3+24
Comments11

Custom layout. Выплывающая панель + параллаксный скроллинг

Reading time7 min
Views19K
Привет, коллеги.

Сегодня я хотел рассказать, как можно создать нестандартный менеджер разметки (layout manager) и вдохнуть в него жизнь при помощи анимаций.
Нам в DataArt часто требуется реализовывать нестандартные компоненты для приложений заказчика, поэтому у меня накопился определенный опыт в этом деле, которым решил поделиться.
В качестве примера решил реализовать аналог часто встречающейся в социальных сетях выплывающей снизу панели. Обычно этот прием используется при необходимости показать контент, например, фото, и добавить возможность комментировать на дополнительной панельке, которую пользователь может вытянуть снизу. При этом основной контент обычно тоже уплывает наверх, но немного медленнее, чем основная панель. Это называется «параллаксный скроллинг».
Специально для этой статьи я решил с нуля реализовать подобный компонент. Сразу хочу заметить, что это не полноценный, стабильный и готовый для продакшен код, а всего лишь демонстрация, написанная за пару часов, чтобы показать основные приемы.

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

Функциональное программирование в Java

Reading time5 min
Views61K
Эта статья о:
  • О применении функционального стиля программирования в языке Java.
  • О некоторых базовых паттернах для работы с коллекциями данных из функционального программирования в примерах на Java.
  • Немного о библиотеке Google Collections.

Если вы программируете на языках Java, C#, C++, PHP, или любом другом ОО языке, хотели бы познакомиться с функциональным программированием, но не имеет возможности/желания изучать Haskell/Scala/Lisp/Python, — эта статья специально для вас.

Тем, кто знаком с функциональным программированием, но никогда не применял его в Java, думаю, это будет тоже интересно.
Читать дальше →
Total votes 84: ↑79 and ↓5+74
Comments143

История плохого старта — вариант «Все сам»

Reading time5 min
Views57K
Заглавная картинка Некоторое время назад промелькнула на Хабре вот эта статья о запуске игры. В ней автор делится своим опытом создания первой игры и публикации ее через издателя. На тот момент моя игра уже была выпущена и находилась в GooglePlay около месяца. Правда, я выбрал самостоятельный вариант публикации без какой-либо помощи издателей. А поскольку опыта в этой области у меня не было совсем никакого, то я сделал целый ряд ошибок, которые, по-моему, снизили и так небольшие результаты. Вот об этих ошибках, а также о детальной статистике на текущий момент, я и хотел бы рассказать…
Поучиться на чужих ошибках
Total votes 71: ↑62 and ↓9+53
Comments30

Способы создания navicon

Reading time2 min
Views30K
Navicon — это иконка для появляющегося меню на адаптивных сайтах при просмотре на мобильных устройствах. Обычно представляет собой три горизонтальный полоски. Пример можно видеть на множестве сайтов, например:



Существует несколько способов создания такой иконки. Ниже представлены несколько.
Читать дальше →
Total votes 25: ↑18 and ↓7+11
Comments5

Google предлагает начинать разрабатывать приложения для Google Glass до выпуска Glass Development Kit

Reading time1 min
Views9.8K
image

Похоже, что Google собирается дать толчок волне более мощных приложений для Google Glass, пишет TechCrunch. В настоящее время разработчики Glass могут создавать только приложения, которые по сути являются веб-сервисами, взаимодействующими с очками через набор относительно ограниченных API.

На конференции I/O в начале этого года Google объявил, что скоро выпустит Glass Development Kit (GDK), который позволит создавать Android-приложения для Glass, работающие непосредственно на устройстве. Пока что, однако, Google не выпустил GDK. Вместо этого Google вчера призвал разработчиков, которые ждут GDK, начать работу над Android-приложениями для Glass, используя стандартный Android SDK (API Level 15), чтобы опробовать свои идеи.
Читать дальше →
Total votes 9: ↑6 and ↓3+3
Comments10

Android компонент с нуля

Reading time7 min
Views37K
Всем привет! Создание собственных компонентов интерфейса часто является необходимостью чтобы выделиться из общей массы похожих программ. В этой статье как раз рассматривается создание простого, нестандартного компонента на примере кнопки-таймера.
Читать дальше →
Total votes 52: ↑44 and ↓8+36
Comments20

5 «хаков» для уменьшения накладных расходов при сборке мусора

Reading time6 min
Views17K

В этом посте будут рассмотрены пять путей повышения эффективности кода, помогающие сборщику мусора проводить меньше времени за выделением и освобождением памяти. Долгая процедура сборки мусора может привести к явлению, известному как «Stop the world».

Общие сведения


Сборщик мусора (Garbage Collector, GC) существует для обработки большого количества выделений памяти под короткоживущие объекты (например, объекты выделенные в процессе рендеринга веб-страницы, устаревают сразу как только страница показана).

GC в этом случае использует так называемое «молодое поколение» («young generation») — сегмент кучи, где размещаются новые объекты. Каждый объект имеет поле «возраст» («age», находится в заголовке объекта), который определяет сколько сборок мусора он пережил. Как только достигнут определенный возраст, объект копируется в другую область кучи, называемую «старым» («old») поколением.

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

Ниже определены пять путей, которые можно использовать в повседневной разработке для повышения эффективности работы с памятью, при этом не особо тратят наше время и не снижают читаемость кода.
Читать дальше →
Total votes 37: ↑24 and ↓13+11
Comments27

Игра «морской бой»: расстановка кораблей

Reading time5 min
Views43K
Доброго времени суток, уважаемые! К сожалению, из-за больничного режима, я не мог последний месяц опубликовать своё очередное изыскание на тему игры «Морской бой». Надеюсь, моя заметка окажется для кого-то полезной, и, даже если и будет частичным повторением, то в новой интерпретации.
Итак, сегодня я хотел бы обсудить вопрос расстановки (не оптимальной, а произвольной) кораблей перед боем. Слева вы видите пример результата работы рассматриваемого далее алгоритма: корабли в форме букв «R», «A», «H», «B» расставлены на игровом поле размером 5х15 с несколькими запрещёнными к использованию клетками (помечены зелёным цветом). Заинтересовавшихся прошу под кат.
Читать дальше →
Total votes 32: ↑26 and ↓6+20
Comments10

Работа с сетью в Android: трафик, безопасность и батарейка

Reading time8 min
Views83K
На сегодняшний день в Google Play насчитывается более 800 тысяч приложений. Многие из них реализованы на основе клиент-серверного общения. При разработке таких приложений нужно учесть три основных момента, о которых пойдет речь в этой статье.

Читать дальше →
Total votes 69: ↑63 and ↓6+57
Comments19

Создаем ListView с Context Action Bar как в новом Gmail

Reading time7 min
Views23K


Что хотим получить


Сделать плавно работающий список с возможностью выделения рядов как кликом на иконку ряда, так и долгим нажатием на него. Также, дабы выделение не пропало даром, мы должны дать возможность пользователю производить некие действия с выделенными объектами.

Читать дальше →
Total votes 29: ↑26 and ↓3+23
Comments6

Information

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