Правила русского языка для Айфона
С первого же дня сайт «Зерулс» хорошо работал и отображался на Айфоне (скриншот в старой заметке). Но хорошо — не безупречно: вёрстка параграфов не была специально заточена под маленький экран, и, главное, всё работало медленно, потому что мобильный интернет тормозной. Опять же, за интернет надо каждый раз платить, да и где-то он вообще не ловит.
Теперь — так:
Всё до мелочей продумано и оптимизировано под использование на телефоне. Все параграфы полностью перевёрстаны и переоформлены так, чтобы идеально смотреться на экране. Каждая анимация переделана по 100 раз и теперь выглядит идеально. Всё работает очень быстро, гладко и чётко. Безо всякого интернета.
Приложение называется «Правила русского языка». См. также страницу у меня в портфолио со скриншотами и описанием.
Мы сделали это с Шуриком Бабаевым. Дизайн делал я, а программировал он (а ещё мы использовали некоторые наработки Романа Парпалака для сайта). Про процесс разработки я рассчитываю ещё написать подробно, но не могу не отметить, что Шурик — мегакрутой. Он даже не поленился повторить фирменную крутилку с сайта, в которую превращается лупа от поиска! Правда, толком увидят её лишь пользователи старых айфонов, на которых прога успевает её показать. Короче, если вам нужно сделать программу под Айфон, пишите Шурику — alex@touchdev.ru.
Много сил было потрачено на то, чтобы даже на Айфонах первого поколения с джейлбрейком, на которых тормозит вообще всё, программа работала с нормальной скоростью. Мы верим, что быстрые программы — это классно, а медленные — это отстой.
Цена до Нового года составляет бакс, а потом вырастет до трёх. Все нормальные ребята покупают программу себе, детям, жёнам, мужьям, любимым девушкам, парням, мамам и папам, братьям, сёстрам, друзьям и врагам, сотрудникам всех отделов, секретарю и водителю. Кстати, тем, кто был готов купить за 3 доллара и больше, предлагаю дождаться Нового года. Жадинам напомню, что уродские учебники (которые пылятся на полке из-за того, что в них нет умного поиска) стоят дороже.
И ещё: все дизайнеры должны купить себе приложение хотя бы для того, чтобы посмотреть, как надо делать приложения для Айфонов (99,9% всех приложений делают криворукие уроды). Ну и, конечно, все дизайнеры должны знать правила тоже.
Про 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%.
Купил. ;-)
Круто :-) Пишите, чё как.
Готов заплатить доллар Яндекс.Деньгами или кинуть на телефон тому, кто сделает Gift app в Айтюнс-сторе для меня.
А почему так сложно?
Как я понимаю, мою карту нельзя привязать к старому американскому аккаунту.
Так сделайте русский акаунт на другую почту.
Купил с удовольствием. Радует ваша скромность. Хочется поддержки айпада — всем нормальным ребятам необходимо вдумчиво изучать правила на большом, хорошем экране.
Разве не будет проблем с синхронизацией купленного в разных аккаунтах?
У меня два акаунта и нету никаких проблем. Но я не буду вам ничего обещать, а то вдруг у вас будут проблемы, а я окажусь виноват :-)
Во-первых, поздравляю с почином!
Во-вторых, мне всегда казалось лоховством, когда скриншоты с верхней панелькой (там где часы, оператор, батарея и т. д.)
Нет?
В смысле? А чё, надо замазывать их что ли? Эплы-то, как я посмотрю, ваще лошары! :-)
Не-не, я имею в виду те скриншоты, которые в апсторе в описании программы.
Интересно, неужели только одного меня бесит «мигание» интерактивного поиска? Сделайте, будьте добры, возможность его отключить, как в гугле.
Илья, ваша программа оказалась последней вещью, на которую хватило моей бывшей зарплатной карты ;-)
Скачал. Мне всё нравится. Спасибо.
Потайная ссылка 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 не работает кнопка с крестиком очистки поля поиска. Несмотря на эту мелочь, приложением очень удобно пользоваться. Я рад покупке.
Приложение отлично находится по запросу Russian Rules. ;-) [US Store]
А вообще вот: http://appshopper.com/education/russian-language-rules
2 Илья Бирман
Очень нравится ваша с Шуриком работа. Спасибо!
Спасибо :-) Несколько мелких улучшений уже в работе :-)
При переходе к параграфу по поиску «пол» (79) приходится много прокручивать до пункта с нужным правилом, а ещё появляется горизонтальная прокрутка. А в общем, мне нравится, спасибо :-)
Да, мне это тоже не нравится, что долго крутить, но пока не знаю, как быть с этим.
А горизонтальная прокрутка — странно. Какой телефон и какая ОС?
Круто, спасибо! Цена слишком низкая =)
Купи в новом году! :-)
А если серьёзно, то не удивительно, что ты готов за 7 баксов покупать: привык, что у вас столько засохший круассан стоит, оторвался от народа!.. Чё-то не получилось серьёзно :-)
У меня первый Айфон с последней доступной версией ОС 3.1.3.
Скриншот: http://habreffect.ru/files/d90/d71ff64ed/therules.jpg
!!Да, мне это тоже не нравится, что долго крутить, но пока не знаю, как быть с этим.!!
Если текст показывается как обычная ХТМЛ-страничка с помощью браузерного движка, то, наверное, можно использовать что-то типа внутристраничного якоря?
Горизональный скролл отловил, думаю, поправим в следующем апдейте. А есть ещё параграфы, где такая фигня? Похоже, это баг Вебкита в старых Ай-ОСах.
=)
Кстати, свежайший круассан стоит меньше евро. Это в зажравшемся Париже. В других местах и по пол-евро.
Существует способ купить в аппсторе программу заранее ? И после появления телефона её установить ? (тф окажется в собственности после нового года)
Конечно, апстору пофигу на наличие у вас телефона. Я вот для Айпада качаю всё хорошее бесплатное, хотя у меня его нет, просто вдруг потом станет платным :-)
9:41 на скриншотах — клёво :)
Спасибо :-) Круто, что кто-то заметил :-)
Илья, я заметил горизонтальную прокрутку ещё в 26-м и 77-м.
Спасибо. Пишите, если где ещё будет, в 79-м я уже починил локально :-)
айфон 3гс.
набирал в поиске «кофе» быстро. программа застрелилась.
если набирать по буквам и ждать после ввода каждой буквы, пока пройдет поиск, все работает нормально
в остальном — отличная работа
Пришлёте крашлог? Мы хотим это починить.
Гифты в Айтюнсе забавные :-) Получил себе Зерулс.
Илья, экран со справкой, когда в поле уже что-то введено, выглядит странно: две круглые кнопки с крестиком, расположенные очень близко друг к другу, смущают.
Кажется, что было бы лучше вообще скрыть поле поиска на этом экране, а кнопку «Закрыть» заменить на синюю кнопку «Done» или «Готово» (в русской версии интерфейса), все равно содержание экрана не соответствует тому, что указано в поле.