Pull to refresh
0
0
Send message

Айфончик, не лагай. Часть 1: многопоточность для практиков

Reading time 7 min
Views 15K

Меня зовут Максим, и я алкоголик занимаюсь iOS разработкой уже более 7 лет.

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

Среди кандидатов попадаются кадры, которые курят кальян прямо на Skype собеседовании, пытаются гуглить вопросы на ходу, хотят ЗП 180к за 3 месяца опыта, ведут себя так, как будто гоп-стопнули меня на улице (с соответствующей терминологией) и так далее.

Но в большинстве случаев, даже у адекватных middle специалистов, есть общий пробел: непонимание принципов асинхронного выполнения задач и работы аппаратного ускорения в iOS.

В этой статье я решил простыми словами рассказать про применение многопоточности в iOS, чтобы уже после первого прочтения можно было легко и с полным пониманием использовать полученные знания на практике.

(Если лень читать, то прилагается видео)
Читать дальше →
Total votes 15: ↑14 and ↓1 +13
Comments 24

Ловкость рук и никакого мошенничества: практические советы по ускоренному обучению дизайну для разработчиков

Reading time 6 min
Views 52K
Улучшаем дизайн проекта с помощью тактически грамотных действий, а не таланта.

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

Возможно, в компании, в которой вы работаете, нет штатного дизайнера, и вам необходимо реализовать интерфейс для нового функционала. Или, может быть, вы решили подработать на побочном проекте, и хотели бы, чтобы он выглядел лучше, чем «ещё один bootstrap-сайт».

Легко опустить руки и сказать: «Я никогда не смогу сделать это должным образом, я не художник!», Но, оказывается, есть уйма ловких приёмов, которые вы сможете использовать, чтобы поднять свою работу на другой уровень, не имея опыта в графическом дизайне.

Под катом семь простых идей, которые вы сможете использовать для улучшения своих проектов.

1. Для создания иерархии используем цвет и вес вместо размера



Читать дальше →
Total votes 68: ↑67 and ↓1 +66
Comments 28

Автоматизация выдачи AdHoc сборки приложения из Xcode для установки на девайс заказчика

Reading time 10 min
Views 19K
Поясню для начинающих, что при разработке под iOS для установки на девайс большую часть времени вы собираете приложение в development режиме, т.е. только для себя.
Но в какой-то момент требуется начинать выдавать заказчику результат работы на «посмотреть».
Для этого используется особый вид сборки AdHoc Distribution. Нужно сходить к Apple'у и создать distribution provisioning profile. После чего собирать приложение, подписывая его этим профилем. В профиле прописываются все идентификаторы девайсов, на которые планируется это приложение устанавливать на этом этапе. В итоге при билде под AdHoc, XСode создает файл с расширением .ipa, который уже можно установить на все, прописанные в профиле, девайсы. Например через iTunes.

Возникает вопрос как лучше всего передать вашему клиенту получившуюся сборку. Да, можно просто отправить файл по почте например, или выложить на файлообменник и пусть бедняга сам устанавливает его через iTunes на свой девайс. Но если вы цените время своего клиента или вам лень объяснять ему как это сделать, ну или вы просто милый и приятный человек, то вам стоит задуматься, а нет ли другого, более удобного способа.

Об одном из таких способов, с автоматизацией выдачи из Xcode читаем под катом!

Читать дальше →
Total votes 11: ↑8 and ↓3 +5
Comments 11

Рассказ о том, как я ворую номера кредиток и пароли у посетителей ваших сайтов

Reading time 11 min
Views 166K
Продолжение: Рассказ о том, как не дать мне украсть номера кредиток и пароли у посетителей ваших сайтов
Представляем вам перевод статьи человека, который несколько лет воровал имена пользователей, пароли и номера кредитных карт с различных сайтов.


То, о чём я хочу рассказать, было на самом деле. Или, может быть, моя история лишь основана на реальных событиях. А возможно всё это — выдумка.

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

В результате, скрепя сердце, я решил выложить всё начистоту и рассказать всему миру о том, как я в последние несколько лет воровал имена пользователей, пароли и номера кредитных карт с самых разных сайтов. Возможно, вы — администратор или разработчик одного из них.
Читать дальше →
Total votes 319: ↑312 and ↓7 +305
Comments 325

Уменьшаем размер приложения: проверенные способы

Reading time 8 min
Views 9.6K

Введение


Одним из немаловажных аспектов разработки мобильных приложений является оптимизация размера. Мы все по личному опыту знаем, что чем меньше весит приложение, тем охотнее его скачивают, особенно если под рукой нет точки доступа Wi-Fi, а скорость и/или трафик мобильного интернета оставляют желать лучшего. К тому же, нельзя забывать и о том, что некоторые маркеты ставят ограничение на размер выпускаемого приложения. Например, в App Store продукты размером до 100 МБ доступны для скачивания по мобильному интернету, если же вес приложения превышает этот порог, то скачать его можно только через Wi-Fi. На Play Market же приложение, которое вытягивает больше 100 МБ, нельзя загрузить в принципе. В данной статье мы опишем, к каким методам и хитростям прибегали наши разработчики нативных приложений на iOS для того, чтобы уменьшить вес продукта, и добавим к этому несколько дельных советов, найденных в сети.

Читать дальше →
Total votes 4: ↑3 and ↓1 +2
Comments 4

Увольнение – это маленькая смерть. Как сохранить ценного специалиста решившего уволиться?

Reading time 4 min
Views 84K


— Нам нужно срочно поговорить! Примерно так начинаются 90% всех разговоров про увольнение. Причем кто бы не начинал разговор первым, результат обычно предсказуем. Что делать, если от вас уходит нужный человек? Под катом мнение вице-президента Parallels Николая Добровольского.
Читать дальше →
Total votes 148: ↑145 and ↓3 +142
Comments 370

Как объяснить дизайн четырехлетним?

Reading time 5 min
Views 20K
image

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

Я планировал пообщаться со старшими ребятами, рассказать то, что считал действительно крутым в своей работе, поделиться каким-то интересным опытом, но в итоге меня попросили провести урок с учениками подготовительной группы (примерно 4-5 лет). Несмотря на то что сначала я был скорее разочарован, это оказалось очень интересной задачей!

Главная особенность работы с детьми такого возраста в том, что ты не можешь ничего рассказать о брендах с которыми работал. Четырехлетние дети не будут восторженно реагировать на истории о работе на Channel 4, BBC и Disel. «Я получал награды BRIT, и даже разработал веб-сайт, на котором получил запись imdb!» — дети не поймут, о чем я вообще говорю. Поэтому нужно было в самых простых выражениях объяснить то, что я сделал, и почему это так важно. Я подумал: было бы здорово показать детям дизайн во всех его формах.

Что я сделал?

Читать дальше →
Total votes 26: ↑26 and ↓0 +26
Comments 20

Введение в процедурную анимацию

Reading time 11 min
Views 50K
image

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

GIF

Серия будет состоять из следующих частей:

Total votes 48: ↑46 and ↓2 +44
Comments 3

Как магазин в торговом центре узнаёт вас по Wi-Fi (точнее, по MAC-адресу) — на базе обычных хотспотов

Reading time 4 min
Views 68K
Телефоны ищут свои «родные» сети, поэтому время от времени отправляют в окружающее пространство пакеты с их запросами. Обычная Wi-Fi-инфраструктура (хотспот, раздающий сеть для персонала магазина) может слушать эти пакеты — не отвергать их, а записывать в лог MAC-адрес и дальность до терминала (по уровню сигнала).



В случае одной точки это используется как счётчик посетителей на уровне «за вчера 182 человека зашло в магазин, из них 34 уже у нас были», а если точек три или больше — можно уже трассировать потоки людей и видеть наиболее интересные им товары:



Ещё раз: никакого спецоборудования, обычные точки Wi-Fi Cisco и софт для обработки их логов. От модели точки доступа Cisco зависит точность. В нашей схеме нужен ещё аплинк до сервера аналитики, где также развёрнут виртуальный контроллер Cisco — точки сгружают ему логи.
Читать дальше →
Total votes 61: ↑57 and ↓4 +53
Comments 91

Как выигрывать в конкурсах репостов Вконтакте?

Reading time 4 min
Views 143K

Мне захотелось узнать, реально ли выиграть в конкурсах репостов ВКонтакте.

Как это сделать? Ответ очевиден — надо участвовать во всех конкурсах и по теории вероятностей, чем больше конкурсов, тем больше шанс выиграть хоть что-то.

Идея простая, берем модуль vk_api для Python и официальную документацию Vkontakte API отправляем запрос:

pool.method('newsfeed.search', {'q':u'Конкурс репост подарки <мой_город>'})
и репостим через wall.repost все что нашли себе на страницу и вступаем в группы методом groups.join

Что из этого получилось, с какими проблемами я столкнулся, читаем под катом
Читать дальше →
Total votes 123: ↑118 and ↓5 +113
Comments 90

Нечеткий поиск по названиям

Reading time 21 min
Views 35K
Добрый день. Проблема с поиска, услуг или продукта, возникает на подавляющем большинстве сайтов. И в основной свой массе реализация подобной возможности ограничиваются поиском по точному слову, которое ввели в поисковой строке.

Если есть время, и заказчик хочет чуть большего, то гуглят реализацию наиболее популярного алгоритма (коим является «расстояние Левенштейна») и вписывают его.

В данной статье, я опишу сильно доработанный алгоритм, основанный, правда, на расстояния Левенштейна, и приведу примеры кода на C# нечеткого поиска по названиям, например: кафе, ресторанов или неких сервисов… В общем всё, что можно перечислить и имеет от одного до нескольких слов в своем составе:

«Яндекс», «Mail», «ProjectArmata», «world of tanks», «world of warships», «world of warplanes» и т.д.
Читать дальше →
Total votes 45: ↑44 and ↓1 +43
Comments 21

Из инженеров в руководители: сохранение технических навыков

Reading time 7 min
Views 19K


Я стал техническим руководителем около двух лет назад. За это время одной из самых сложных задач оказалось нахождение баланса между обязанностями руководителя и желанием программировать.


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

Читать дальше →
Total votes 34: ↑33 and ↓1 +32
Comments 8

Собираем и используем игровую статистику вместе с Google Player Analytics

Reading time 3 min
Views 4.2K
Привет, Хабр! Правильное использование статистики позволяет легко понять поведение пользователей: как они тратят деньги и в какой момент перестают играть. Сегодня мы хотим предложить вам самим на минутку стать игроками: потестируйте пример игрового приложения в консоли разработчика и освсойте новые возможности бесплатного инструмента «Статистика: Игроки» в консоли разработчика Google Play.



Приложение создано вместе с командой Auxbrain, авторов игры Zombie Highway 2. Внутри вы найдёте обезличенные и произвольно отобранные данные из реально существующей игры. На них вы сможете испытать новые функции, о которых мы вам сегодня расскажем.
Читать дальше →
Total votes 6: ↑5 and ↓1 +4
Comments 0

Видео-курс по Swift на русском языке

Reading time 1 min
Views 115K
Здравствуй, Хабр!

Мы сделали видео-уроки по языку Swift на основе бесплатной книги The Swift Programming Language от Эппл.



Все 32 урока доступны на нашем сайте. Несколько уроков – под катом.
Читать дальше →
Total votes 146: ↑129 and ↓17 +112
Comments 62

Information

Rating
Does not participate
Registered
Activity