Pull to refresh
39
0
Дмитрий Исаев @x256

iOS Ninja

Send message

Мобильный банк для iOS: добавляем блочную архитектуру к Cocoa MVC

Reading time 7 min
Views 5.1K
Если вы пишете приложение мобильного банка для iOS, какие у вас приоритеты? Думаю, их два:

  1. Надёжность;
  2. Скорость внесения изменений.

Ситуация такова, что нужно уметь вносить изменения (и в частности выкатывать новые банковские продукты) действительно быстро. Но при этом не скатываться в индусокод и копипаст (см. пункт 1). Всё это при том, что приложение действительно огромное по функционалу, по крайней мере в задумке (банки хотят намного больше, чем умеют). Соответственно, во многих случаях это проекты на десятки человеко-лет. Те, кто участвовал в таких проектах, уже наверно поняли, что задача нетривиальная, и школьные знания тут не помогут.
Что же делать?
Total votes 19: ↑15 and ↓4 +11
Comments 4

Пол-пикселя?

Reading time 3 min
Views 74K
По-русски если гуглить «полпикселя», везде какая-то истерика: пиксель не делится, и всё тут. По-английски всё чинно :) например. Полпикселя существует, но браузеры пока плохо их рендерят. Местами реагируют на доли пикселя (например, в параметрах шрифтов), но чаще любят округлять до целого.

Почему так? Раньше понятно, железо не позволяло прорисовывать «половинки». Сейчас им лень. Но каких-то подвижек можно ожидать: технология Flash уже поддерживает точность до 1/20 пикселя.

Что такое пиксель?


По терминологии Google, у слова «пиксель» есть 3 значения:
1. Элемент матрицы экрана. Например, в LCD-экранах один пиксель — 3 светящихся элемента (RGB).
2. Device-independent pixel (dip) — масштабированный, «кажущийся» размер пикселя, который на любом экране смотрится одинаково. Тут учитывается типичное расстояние от глаз до девайса.
3. CSS-пиксель. Например, width: 20px;

Так бывает ли полпикселя?
Total votes 87: ↑67 and ↓20 +47
Comments 52

Паттерны ООП в примерах для iOS

Reading time 48 min
Views 149K

От переводчика


Искали тут двух русскоязычных разработчиков — на iOS и на C++ под Windows. Видел десятки выполненных тестов. Разница в знании ООП между представителями двух платформ — огромная. На C++ обычно красивый расширяемый код, как само собой разумеющееся. На Objective C картина удручающая. Почти все iOS-кандидаты не знали ООП дальше своего носа NSString'ов и AppDelegate'ов.

Понятно, что плюсы учат по Страуструпу и «банде четырёх», а Objective C — больше по туториалам и Stack Overflow. Фастфуд-обучение не оставляет места на фундаментальные вопросы… Но такой разницы я не ожидал.

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

Качественная разработка ПО — творческий процесс, уникальный для каждой конкретной головы. Поэтому не существует общей инструкции: if (A and (B or C)) then use Pattern_N;
Как это нет инструкции? Что же делать?
Total votes 77: ↑71 and ↓6 +65
Comments 50

ГОСТ по юзабилити

Reading time 4 min
Views 58K
Через неделю на всей территории России вступит в действие национальный стандарт по юзабитили ГОСТ Р ИСО 9241-210-2012 «Эргономика взаимодействия человек-система. Часть 210. Человеко-ориентированное проектирование интерактивных систем».
Эргономика? Фи, это не то! Юзабилити шире эргономики, скажете вы.
Да, понятие «юзабилити» включает в себя эргономику. Но подождите: как они определяют «человеко-ориентированное проектирование», о котором стандарт?

Человеко-ориентированное проектирование (human-centred design) — способ разработки интерактивных систем, направленный на создание пригодных в использовании и полезных систем…

А вот и юзабилити! «Пригодность использования» — не совсем ясная фраза, но именно так они переводят слово «usability». Наверно, когда придёт всеобщий к… минимализм, тогда ГОСТ по юзабилити будет называться «ГОСТ по юзабилити». Но пока так.

Хочу вкратце рассказать, почему этот документ — не пустой звук. Пойдём по порядку.

1. Задачи документа


Кому он нужен?
  • Руководителям — показать место человеческого фактора и эргономики в процессе проектирования.
  • UX-специалистам — рассказать, как происходит проектирование, и каково их участие в этом процессе.
Читать дальше →
Total votes 68: ↑60 and ↓8 +52
Comments 23

Как я сходил на World Usability Day

Reading time 2 min
Views 7K
Вы всё ещё думаете, что юзабилити — это какая-то секретная функция или скилл дизайнера, помноженная на адекватность руководства? Я был в этом уверен до посещения WUD в Москве.



Первый же выступающий dmitrysatin развеял этот миф. Оказывается, human-centred design — это процесс, который очень ясно и современно описан в ISO и (внезапно) в ГОСТ. Это значит: юзабилити — не фантом. Это то, о чём можно говорить, исследовать, улучшать.
Ещё впечатления
Total votes 17: ↑15 and ↓2 +13
Comments 10

Ломаем iOS-приложение! Часть 2

Reading time 21 min
Views 47K
В первой части мы изучили некоторые вопросы безопасности хранения и передачи данных. Теперь переходим к защите исполняемого кода. Мы будем модифицировать функционал iOS-приложения во время выполнения и проделаем реверс-инжиниринг. И снова, помните! Наша цель — не стать гадким взломщиком, а защитить ваше приложение и пользователей от злонамеренных действий. Для этого нужно понять, что может сделать взломщик.

Много текста и картинок
Total votes 38: ↑38 and ↓0 +38
Comments 13

Ломаем iOS-приложение. Часть 1

Reading time 13 min
Views 72K
Вы хорошо поработали, и вот ваше приложение в App Store!

  • Храните учётные записи юзеров?
  • Используете встроенные покупки?
  • Не хотите показывать своё ноу-хау?

Повод задуматься о безопасности кода и данных! Мы будем искать уязвимости в тестовом приложении. В этой статье поговорим о безопасности данных, а в следующей — перейдём к коду.
Много текста и картинок
Total votes 63: ↑51 and ↓12 +39
Comments 22

Востребованность программистов растёт и будет расти?

Reading time 1 min
Views 67K
Code.org — некоммерческая организация, ставящая целью популяризацию программирования под девизом: «Anybody can learn». Британские учёные провели любопытное исследование: оказывается, в ближайшие 7 лет разница между числом вакансий и студентов вырастет во много раз:
Да ну?
Total votes 71: ↑60 and ↓11 +49
Comments 72

Пять правил успешного кросс-платформенного проекта

Reading time 3 min
Views 3.1K
От переводчика: я сейчас по крупицам собираю литературу по проектированию кросс-платформенного ПО. Этот небольшой текст — самое интересное, что я пока нашёл.

Кодеру для реализации конкретной фичи достаточно гугла, но ведь есть особые требования к проектированию? Скажем, ветвление
#ifdef в методах — единственное средство выделения platform-specific частей проекта? (Не много ли макарон?) Есть ли более высокоуровневые подходы, шаблоны, «надстройки» над #ifdef? Надеюсь, этот пост послужит пищей для дальнейшего обсуждения.
Итак, 5 правил
Total votes 15: ↑6 and ↓9 -3
Comments 4

Зачем нужны паттерны ООП?

Reading time 2 min
Views 34K
Эта статья — попытка ответить на вопрос 11-летнего олимпиадника: «Зачем нужны паттерны?» Ещё не отправил, выношу на общий суд и прошу любой критики. Цель — не дать исчерпывающий ответ, а вызвать новые вопросы.

Итак


Как учат программированию в школе? Вам дают формочки и учат делать куличики из песка. Это хорошо, надо ведь с чего-то начинать.
А если куличики - неинтересно?
Total votes 39: ↑17 and ↓22 -5
Comments 54

Поиск утерянного телефона на Windows Phone 7 — на практике

Reading time 2 min
Views 36K
«Поиск телефона облегчает возврат телефона или предотвращает его использование кем-либо без вашего разрешения.»
инструкция к Windows Phone 7

В данной статье описана проблема, которая делает невозможным использование функционала «Поиск телефона» («Find My Phone») для Windows Phone 7. Надеюсь, когда-нибудь она будет описана на сайте Microsoft или в инструкциях к телефонам.
Читать дальше →
Total votes 36: ↑33 and ↓3 +30
Comments 63

Кастомизация Skype для Linux. Оповещение о появлении «избранных» контактов в сети

Reading time 3 min
Views 5.3K
Основное средство общения в нашей компании — это шашлыки чат Skype. Статус «в сети» означает присутствие на рабочем месте. Иногда ждёшь кого-то, начальству не напишешь «зайди плиз срочно» — в общем, уведомление о появлении в сети определённого человека было бы полезно.

В Skype для Linux нет такой «галочки» для отдельных контактов (думаю, что и пользователи других ОС с этим знакомы). Зато есть неоспоримое преимущество — почти безграничные возможности командной строки:
Читать дальше →
Total votes 50: ↑44 and ↓6 +38
Comments 8

Information

Rating
Does not participate
Location
Лимассол, Government controlled area, Кипр
Date of birth
Registered
Activity