Подписка на блог

В Телеграме помимо ссылок на заметки делюсь околодизайнерскими наблюдениями.

В Твиттере помимо ссылок на заметки пишу всякую чушь.

В Тумблере и Же-же есть автоматические трансляции. Если не работает, напишите мне: ilyabirman@ilyabirman.ru.

По РСС и Джейсон-фиду трансляции для автоматических читалок

Правила русского языка для Айфона

С первого же дня сайт «Зерулс» хорошо работал и отображался на Айфоне (скриншот в старой заметке). Но хорошо — не безупречно: вёрстка параграфов не была специально заточена под маленький экран, и, главное, всё работало медленно, потому что мобильный интернет тормозной. Опять же, за интернет надо каждый раз платить, да и где-то он вообще не ловит.

Теперь — так:

Правила русского языка для Айфона

Всё до мелочей продумано и оптимизировано под использование на телефоне. Все параграфы полностью перевёрстаны и переоформлены так, чтобы идеально смотреться на экране. Каждая анимация переделана по 100 раз и теперь выглядит идеально. Всё работает очень быстро, гладко и чётко. Безо всякого интернета.



Приложение называется «Правила русского языка». См. также страницу у меня в портфолио со скриншотами и описанием.

Мы сделали это с Шуриком Бабаевым. Дизайн делал я, а программировал он (а ещё мы использовали некоторые наработки Романа Парпалака для сайта). Про процесс разработки я рассчитываю ещё написать подробно, но не могу не отметить, что Шурик — мегакрутой. Он даже не поленился повторить фирменную крутилку с сайта, в которую превращается лупа от поиска! Правда, толком увидят её лишь пользователи старых айфонов, на которых прога успевает её показать. Короче, если вам нужно сделать программу под Айфон, пишите Шурику — alex@touchdev.ru.

Много сил было потрачено на то, чтобы даже на Айфонах первого поколения с джейлбрейком, на которых тормозит вообще всё, программа работала с нормальной скоростью. Мы верим, что быстрые программы — это классно, а медленные — это отстой.

Цена до Нового года составляет бакс, а потом вырастет до трёх. Все нормальные ребята покупают программу себе, детям, жёнам, мужьям, любимым девушкам, парням, мамам и папам, братьям, сёстрам, друзьям и врагам, сотрудникам всех отделов, секретарю и водителю. Кстати, тем, кто был готов купить за 3 доллара и больше, предлагаю дождаться Нового года. Жадинам напомню, что уродские учебники (которые пылятся на полке из-за того, что в них нет умного поиска) стоят дороже.

И ещё: все дизайнеры должны купить себе приложение хотя бы для того, чтобы посмотреть, как надо делать приложения для Айфонов (99,9% всех приложений делают криворукие уроды). Ну и, конечно, все дизайнеры должны знать правила тоже.
Подписаться на блог
Поделиться
Отправить
30 комментариев
MyFreeWeb
Про 99,9% не согласен, конечно, дерьма много, но им никто не заставляет пользоваться. Утром меня разбуди — назову офиченно красивые приложения: Twitterrific, Icebird, Weet, Friends, Articles, On this day, Groceries, Take Five, Things, Simplenote, Meebo, Calcbot, Convertbot, Pastebot, Definition, Momento, Droplr, Color Stream, Expenditure, Delibar, Reeder…

Хотя… это примерно 1%.
mimiton
Купил. ;-)
Илья Бирман
Круто :-) Пишите, чё как.
m4rr
Готов заплатить доллар Яндекс.Деньгами или кинуть на телефон тому, кто сделает Gift app в Айтюнс-сторе для меня.
Илья Бирман
А почему так сложно?
m4rr
Как я понимаю, мою карту нельзя привязать к старому американскому аккаунту.
Илья Бирман
Так сделайте русский акаунт на другую почту.
VV
Купил с удовольствием. Радует ваша скромность. Хочется поддержки айпада — всем нормальным ребятам необходимо вдумчиво изучать правила на большом, хорошем экране.
m4rr
Разве не будет проблем с синхронизацией купленного в разных аккаунтах?
Илья Бирман
У меня два акаунта и нету никаких проблем. Но я не буду вам ничего обещать, а то вдруг у вас будут проблемы, а я окажусь виноват :-)
Женя Бакст
Во-первых, поздравляю с почином!
Во-вторых, мне всегда казалось лоховством, когда скриншоты с верхней панелькой (там где часы, оператор, батарея и т. д.)
Нет?
Илья Бирман
В смысле? А чё, надо замазывать их что ли? Эплы-то, как я посмотрю, ваще лошары! :-)
Женя Бакст
Не-не, я имею в виду те скриншоты, которые в апсторе в описании программы.
Юрко
Интересно, неужели только одного меня бесит «мигание» интерактивного поиска? Сделайте, будьте добры, возможность его отключить, как в гугле.
Денис
1. Почему цвет кнопок на верхней панельке отличается от цвета самой панельки и от цвета кнопки «Отменить»?
2. И клеточки на иконке не заменены на полоски, как в тетрадках для русского языка?
Andrew Marcus
Илья, ваша программа оказалась последней вещью, на которую хватило моей бывшей зарплатной карты ;-)
Николай Гурьянов
Скачал. Мне всё нравится. Спасибо.
Николай Гурьянов
Потайная ссылка therules.ru вверху мне тоже нравится. Ей стоит уделить отдельный комментарий.
Отто
А у меня нет аппстора, и вообще, в Молдове с этим проблемы; можно подождать, пока взломают?
Павел Малинников
Ребята, вы молодцы, но все-таки, чтобы попасть в 0,1% по-настоящему крутых приложений, нужно, чтобы программа не закрывалась аварийно от действий пользователя.

Я случайно начал набирать буквы для поиска в то время, когда шел предыдущий и апп вылетел. Достаточно воспроизводимо.

Вот логи с айфона (3g):

Mon Dec 20 07:07:44 iPhone-Name TheRules[1828] <Error>: -[_NSThreadPerformInfo paragraph]: unrecognized selector sent to instance 0x53d4780


Mon Dec 20 07:07:45 iPhone-Name TheRules[1828] <Error>: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[_NSThreadPerformInfo paragraph]: unrecognized selector sent to instance 0x53d4780'
*** Call stack at first throw:
(
0   CoreFoundation                      0x3759dc7b __exceptionPreprocess + 114
1   libobjc.A.dylib                     0x32d9bee8 objc_exception_throw + 40
2   CoreFoundation                      0x3759f3e3 -[NSObject(NSObject) doesNotRecognizeSelector:] + 98
3   CoreFoundation                      0x37544467 ___forwarding___ + 506
4   CoreFoundation                      0x37544220 _CF_forwarding_prep_0 + 48
5   TheRules                            0x0003fc67 0x0 + 261223
6   UIKit                               0x35959d8c -[UISectionRowData refreshWithSection:tableView:tableViewRowData:] + 2880
7   UIKit                               0x359591c0 -[UITableViewRowData numberOfRows] + 116
8   UIKit                               0x359589fc -[UITableView noteNumberOfRowsChanged] + 120
9   UIKit                               0x359583b4 -[UITableView reloadData] + 768
10  CoreFoundation                      0x37538f79 -[NSObject(NSObject) performSelector:withObject:] + 24
11  Foundation                          0x35171e6d __NSThreadPerformPerform + 272
12  CoreFoundation                      0x375518d1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 14
13  CoreFoundation                      0x37521ecd __CFRunLoopDoSources0 + 384
14  CoreFoundation                      0x375216f9 __CFRunLoopRun + 264
15  CoreFoundation                      0x3752150b CFRunLoopRunSpecific + 226
16  CoreFoundation                      0x37521419 CFRunLoopRunInMode + 60
17  GraphicsServices                    0x33e76d24 GSEventRunModal + 196
18  UIKit                               0x3591d57c -[UIApplication _run] + 588
19  UIKit                               0x3591a558 UIApplicationMain + 972
20  TheRules                            0x0002e379 0x0 + 189305
21  TheRules                            0x0002e30c 0x0 + 189196
)


Mon Dec 20 07:07:45 iPhone-Name UIKitApplication:ru.therules.ios.TheRulesApp[0x4d07][1828] <Notice>: terminate called after throwing an instance of '


Mon Dec 20 07:07:45 iPhone-Name UIKitApplication:ru.therules.ios.TheRulesApp[0x4d07][1828] <Notice>: NSException'


Mon Dec 20 07:07:48 iPhone-Name ReportCrash[1831] <Notice>: Formulating crash report for process TheRules[1828]


Mon Dec 20 07:07:49 iPhone-Name com.apple.launchd[1] (UIKitApplication:ru.therules.ios.TheRulesApp[0x4d07][1828]) <Warning>: (UIKitApplication:ru.therules.ios.TheRulesApp[0x4d07]) Job appears to have crashed: Abort trap


Mon Dec 20 07:07:49 iPhone-Name SpringBoard[24] <Warning>: Application 'Правила' exited abnormally with signal 6: Abort trap


Mon Dec 20 07:07:50 iPhone-Name ReportCrash[1831] <Error>: Saved crashreport to /var/mobile/Library/Logs/CrashReporter/TheRules_2010-12-20-070746_iPhone-Name.plist using uid: 0 gid: 0, synthetic_euid: 501 egid: 0

Илья Бирман
На имеющихся у нас дивайсах не воспроизводится. Большое спасибо за лог, будет чинить.
Андрей Богданов
Купил, сейчас потестим. Отзыв оставлю уже в App Store)
Артём
Всё круто, только я приложение не сразу нашёл в Апсторе. По запросу «правила русского языка» 0 результатов. По запросу «the rules» нет нужного. По запросу «правила» его нет в первоначальных suggest’ах, а в списке оно находится на неприметном 9 месте. Однозначно находится только по полному названию — Russian Language Rules. Апстор, если что, не российский.
Илья Бирман
А какой стор?
Артём
Эстонский.
Розенблат Сергей
У меня на 3G не работает кнопка с крестиком очистки поля поиска. Несмотря на эту мелочь, приложением очень удобно пользоваться. Я рад покупке.
mimiton
Приложение отлично находится по запросу Russian Rules. ;-) [US Store]
А вообще вот: http://appshopper.com/education/russian-language-rules

2 Илья Бирман
Очень нравится ваша с Шуриком работа. Спасибо!
Илья Бирман
Спасибо :-) Несколько мелких улучшений уже в работе :-)
Семён Перепелица
При переходе к параграфу по поиску «пол» (79) приходится много прокручивать до пункта с нужным правилом, а ещё появляется горизонтальная прокрутка. А в общем, мне нравится, спасибо :-)
Илья Бирман
Да, мне это тоже не нравится, что долго крутить, но пока не знаю, как быть с этим.

А горизонтальная прокрутка — странно. Какой телефон и какая ОС?
Oleg Andreev
Круто, спасибо! Цена слишком низкая =)
Илья Бирман
Купи в новом году! :-)

А если серьёзно, то не удивительно, что ты готов за 7 баксов покупать: привык, что у вас столько засохший круассан стоит, оторвался от народа!.. Чё-то не получилось серьёзно :-)
Семён Перепелица
У меня первый Айфон с последней доступной версией ОС 3.1.3.
Скриншот: http://habreffect.ru/files/d90/d71ff64ed/therules.jpg
Да, мне это тоже не нравится, что долго крутить, но пока не знаю, как быть с этим.
Если текст показывается как обычная ХТМЛ-страничка с помощью браузерного движка, то, наверное, можно использовать что-то типа внутристраничного якоря?
Илья Бирман
Горизональный скролл отловил, думаю, поправим в следующем апдейте. А есть ещё параграфы, где такая фигня? Похоже, это баг Вебкита в старых Ай-ОСах.
Oleg Andreev
=)

Кстати, свежайший круассан стоит меньше евро. Это в зажравшемся Париже. В других местах и по пол-евро.
chukchatel.livejournal.com
Существует способ купить в аппсторе программу заранее ? И после появления телефона её установить ? (тф окажется в собственности после нового года)
Илья Бирман
Конечно, апстору пофигу на наличие у вас телефона. Я вот для Айпада качаю всё хорошее бесплатное, хотя у меня его нет, просто вдруг потом станет платным :-)
Антон Вернигор
9:41 на скриншотах — клёво :)
Илья Бирман
Спасибо :-) Круто, что кто-то заметил :-)
Семён Перепелица
Илья, я заметил горизонтальную прокрутку ещё в 26-м и 77-м.
Илья Бирман
Спасибо. Пишите, если где ещё будет, в 79-м я уже починил локально :-)
chebur
айфон 3гс.
набирал в поиске «кофе» быстро. программа застрелилась.
если набирать по буквам и ждать после ввода каждой буквы, пока пройдет поиск, все работает нормально

в остальном — отличная работа
Илья Бирман
Пришлёте крашлог? Мы хотим это починить.
m4rr
Гифты в Айтюнсе забавные :-) Получил себе Зерулс.
Сергей
Илья, экран со справкой, когда в поле уже что-то введено, выглядит странно: две круглые кнопки с крестиком, расположенные очень близко друг к другу, смущают.

Кажется, что было бы лучше вообще скрыть поле поиска на этом экране, а кнопку «Закрыть» заменить на синюю кнопку «Done» или «Готово» (в русской версии интерфейса), все равно содержание экрана не соответствует тому, что указано в поле.
Популярное