Совсем недавно я писал статью Как защитить in-App Purchase от ломалок . Прошло немного времени, а хакеры на месте не сидят. Тот метод защиты оказывается можно обойти, не очень сложно. Под катом метод, который намного надежнее.
Влад @Onmyoji
User
Очередная реализация ActiveRecord на Objective-C
9 min
4KХочу поделиться очередной реализацией паттерна ActiveRecord на Objective-C, а конкретно для iOS.
Когда только начинал использовать CoreData в iOS разработке, то уже тогда появлялись мысли о том, что это взаимодействие можно как-то упростить. Спустя некоторое время я познакомился с ActiveRecord из RubyOnRails, и тогда я понял чего мне не хватает.
Немного поискав на гитхабе нашел массу реализаций, но по разным причинам они мне не понравились. Одни написаны для CoreData, а мне она не нравится, в других нужно создавать таблицы руками, или писать raw sql-запросы. А в каких-то код был до неприличия ужасен, я и сам порой пишу не очень чисто, но огромный забор из вложенных if/switch/if/switch это чересчур.
В конце концов решил написать свой велосипед, без CoreData и без SQL для пользователя.
Главной причиной этой разработки был, есть и, надеюсь, будет — интерес к разработке.
Вот что из этого всего вышло.
А под катом небольшое описание возможностей и реализации (на самом деле много текста и кусков кода, резюме в самом конце статьи).
Когда только начинал использовать CoreData в iOS разработке, то уже тогда появлялись мысли о том, что это взаимодействие можно как-то упростить. Спустя некоторое время я познакомился с ActiveRecord из RubyOnRails, и тогда я понял чего мне не хватает.
Немного поискав на гитхабе нашел массу реализаций, но по разным причинам они мне не понравились. Одни написаны для CoreData, а мне она не нравится, в других нужно создавать таблицы руками, или писать raw sql-запросы. А в каких-то код был до неприличия ужасен, я и сам порой пишу не очень чисто, но огромный забор из вложенных if/switch/if/switch это чересчур.
В конце концов решил написать свой велосипед, без CoreData и без SQL для пользователя.
Главной причиной этой разработки был, есть и, надеюсь, будет — интерес к разработке.
Вот что из этого всего вышло.
А под катом небольшое описание возможностей и реализации (на самом деле много текста и кусков кода, резюме в самом конце статьи).
+13
TOP 7 – за 7 дней. Маркетинг iPad приложений на Apple Store
3 min
9.4KНачну не с самих методов раскрутки, а с подготовки, что является не менее важным, чем сама раскрутка и продвижение приложения. Сразу оговорюсь, что привожу в пример только платные приложения и российский Apple Store.
+35
Наиболее эффективные методы раскрутки iPad и iPhone приложений на Apple AppStore (Часть 2)
4 min
17KВ предыдущей статье, написанной около 2-х месяцев назад мною были описаны некоторые маркетинговые и рекламные методы раскрутки приложений в AppStore, я также обещал написать, как долго наше приложение находилось в ТОП-10 российского апстора, а также какие дополнительные методы раскрутки были применены, итак все по порядку.
+35
Полезные штуки для iOS-разработчика #1
4 min
83KНа Хабре в свое время было несколько статей «Очень много полезных штук для AS3». Автор попытался собрать ссылки на самые полезные и интересные библиотеки. И т.к. в последнее время я разрабатываю под iOS, решил последовать его примеру и сделать то же самое, но для своей платформы. Описания почти прикладывать не буду, все есть на страничках проектов.
+104
Видео SIP клиент в браузере
1 min
14KСейчас почти не осталось препятствий для создания полноценного SIP клиента в браузере. Необходимый для видео конференций WebRTC уже можно протестировать, например, в Chrome Canary. Существует draft-ibc-sipcore-sip-websocket, который добавляет WebSocket в качестве еще одного транспорта для SIP. И уже появляются первые реализации SIP клиентов:
К сожалению, автор представленного на видео клиента еще не определился будет ли открывать исходники и под какой лицензией. Под катом альтернативные решения с демонстрацией передачи видео…
К сожалению, автор представленного на видео клиента еще не определился будет ли открывать исходники и под какой лицензией. Под катом альтернативные решения с демонстрацией передачи видео…
+35
История создания fermer.mobi
3 min
3.5KХочу рассказать вам, как я создал браузерную онлайн игру для мобильных устройств, которая на текущий момент:
— занимает 3-е место в рейтинге waplog.net (это самый крупный счетчик рувапа);
— 4-е место в мобильных одноклассниках (m.odnoklassniki.ru);
— аудитория игры ~300 тысяч хостов в сутки;
— онлайн днем ~12 тысяч;
— количество регистраций уже приближается к 500 тысячам.
Эта история, на мой взгляд, интересна тем, что:
— игру создал, запустил и раскрутил я один, без инвесторов, без партнеров;
— я никогда не был менеджером, бизнесменом, маркетологом, я программист;
— помимо денег на содержание моей семьи я вложил в раскрутку всего 50 тысяч рублей.
— занимает 3-е место в рейтинге waplog.net (это самый крупный счетчик рувапа);
— 4-е место в мобильных одноклассниках (m.odnoklassniki.ru);
— аудитория игры ~300 тысяч хостов в сутки;
— онлайн днем ~12 тысяч;
— количество регистраций уже приближается к 500 тысячам.
Эта история, на мой взгляд, интересна тем, что:
— игру создал, запустил и раскрутил я один, без инвесторов, без партнеров;
— я никогда не был менеджером, бизнесменом, маркетологом, я программист;
— помимо денег на содержание моей семьи я вложил в раскрутку всего 50 тысяч рублей.
+103
Как защитить in-App Purchase от ломалок
2 min
7.6KДо недавнего времени inApp Purchase был достаточно надежным механизмом защиты от взлома приложений. Если разработчик хотел, чтобы его приложение не попадало в список ломаных — он просто выпускал его бесплатным с продажами внутри. Схема работала. Но после появления в Cydia 'iAP Cracker' — ситуация изменилась.
Под катом описан метод, как можно вполне легально обойти эти ломалки.
Под катом описан метод, как можно вполне легально обойти эти ломалки.
+28
Геймдизайнерам об игроках или как программировать игроков?
7 min
13KВступление 1.
Много думал и анализировал информацию на тему разработки игр. И чтобы не потерять, а так же поделиться с людьми, получить подсказки, советы и комментарии — решил оформить и выложить статью. На сегодняшний день “геймдизайн” все больше обретает очертания некой науки, требующей особого подхода и изучения. К сожалению, в общем доступе находится очень мало структурированной информации. Что касается иностранных авторов, имеющих большой опыт и ряд успешных проектов — зачастую их труды так и не попадают на прилавки отечественных магазинов. А изучить их в оригинале многим мешает языковой барьер.
В данной ситуации спасением служат статьи, где люди делятся впечатлениям и личным опытом по разработке игр. Эти статьи не только и не столько доносят до читателей новую информацию, сколько подают ее в новом свете, позволяя более четко осознать и отобразить в жизнь.
Вступление 2
Хочу отметить, что на написание материала оказало влияние выступление на Sociality Rocks 2011 Henric Suuronen — руководитель студии Wooga, разработчика Bubble Island и других хитов. Особого внимания заслуживает статья Андрея Плахова “Геймдизайнерам о программистах или как программировать программистов”. По аналогии с той статьей возникла мысль, что программировать можно и пользователей тоже. Программировать их модель поведения, чтобы их развлекать и извлекать нужные нам ценности — платежи, удержание в игре, привлечение новых игроков. И одним из инструментов удержания служит набор функций в приложении, который можно условно назвать игровым циклом. Об этом мы и поговорим далее
+42
Понимаем декораторы в Python'e, шаг за шагом. Шаг 1
6 min
439KTranslation
На Хабре множество раз обсуждалась тема декораторов, однако, на мой взгляд, данная статья (выросшая из одного вопроса на stackoverflow) описывает данную тему наиболее понятно и, что немаловажно, является «пошаговым руководством» по использованию декораторов, позволяющим новичку овладеть этой техникой сразу на достойном уровне.
Итак, что же такое «декоратор»?
Впереди достаточно длинная статья, так что, если кто-то спешит — вот пример того, как работают декораторы:
def makebold(fn):
def wrapped():
return "<b>" + fn() + "</b>"
return wrapped
def makeitalic(fn):
def wrapped():
return "<i>" + fn() + "</i>"
return wrapped
@makebold
@makeitalic
def hello():
return "hello habr"
print hello() ## выведет <b><i>hello habr</i></b>
+93
Пишем клавиатуру для нестандартного ввода под iOS
5 min
6KСтандартная библиотека предоставляет для
Представим, что в приложении есть поле ввода, могущее принимать числа и арифметические выражения.
Phone клавиатуры нам будет недостаточно — нет точки, нет всех символов операций, и т.д.
Безусловно, все необходимое есть на обычной клавиатуре, однако в данном случае 95% ее использоваться не будет (напомним, нам нужны только цифры + символы арифметических операций).
Вывод напрашивается сам собой: нужно писать свою клавиатуру,ну вы знаете с чем!
UITextField
и UITextView
несколько различных типов клавиатур, среди которых есть обычная, Email, URL (от обычной отличаются несколькими символами) и Phone (цифровая). Для большинства жизненных ситуаций этого достаточно, но не всегда.Представим, что в приложении есть поле ввода, могущее принимать числа и арифметические выражения.
Phone клавиатуры нам будет недостаточно — нет точки, нет всех символов операций, и т.д.
Безусловно, все необходимое есть на обычной клавиатуре, однако в данном случае 95% ее использоваться не будет (напомним, нам нужны только цифры + символы арифметических операций).
Вывод напрашивается сам собой: нужно писать свою клавиатуру,
+15
Ускоряем проверку ваших iOS/Mac приложений в iTunesConnect с недели до одного дня
3 min
42KПроверка приложения, отправленного разработчиком на рассмотрение Apple Review Team в iTunesConnect в среднем занимает около недели, а если вам «повезло» и вы отправили ваше приложение около выходных или праздников, то процесс проверки и появление заветного «In Review» может затянуться на гораздо больший срок.
В данный статье я хочу описать два способа ускорения проверки iOS и Mac приложений в AppStore, работающих на сегодняшний день. Оба способа являются бесплатными.
+56
Изучить C# за 30 дней
1 min
43KДоброго времени суток!
Недавно в сети Tuts+ Premium был анонсирован новый курс под названием "30 Days to Learn C#". Его целью является обучение новоиспечённых программистов языку C#, разработанному компанией Microsoft, а также работе с платформой .NET. Этот курс, разумеется, не сделает из вас настоящего профессионала, а всего-лишь произведёт первое знакомство с языком и платформой в целом. Курс охватывает следующие темы:
Недавно в сети Tuts+ Premium был анонсирован новый курс под названием "30 Days to Learn C#". Его целью является обучение новоиспечённых программистов языку C#, разработанному компанией Microsoft, а также работе с платформой .NET. Этот курс, разумеется, не сделает из вас настоящего профессионала, а всего-лишь произведёт первое знакомство с языком и платформой в целом. Курс охватывает следующие темы:
+27
Адаптируем графику под Retina экран
3 min
51KОчень часто мне встречаются сайты которые отвратительно выглядят на iPhone4, и дело даже не в том, что большинство из них не адаптированы под маленький экран, а в том, что разработчики не учитывают новый тип экранов. На иконки не хочется смотреть, на кнопки не хочется нажимать, а от картинок вообще хочется… закрыть сайт. То, что призвано завлечь пользователя на сайт, вникнуть в его суть, а не покинуть его тут же — теперь работает совершенно наоборот. Но пользователи iPhone в целом привыкли к такой ситуации, т.к. телефон не может заменить полноценного браузинга.
Однако, совсем недавно Apple дала нам
+35
Insurgent Games делает все игры бесплатными и переводит в Open Source
2 min
3KКомпания Insurgent Games опубликовала исходный код всех игр под Android и iOS на Github, и теперь любой разработчик может использовать этот код в своих собственных проектах. Cами игры в Android Market и iOS App Store стали бесплатными.
Студия Insurgent Games основана в 2009 году двумя разработчиками из Сан-Франциско. Несколько лет они с удовольствием занимались любимым делом и создавали замечательные игры. Но за прошедшее время ребята поняли: чтобы хорошо зарабатывать на продаже мобильных приложений, нужен не только талант, но и большая удача. Им так и не удалось выйти на уровень заработка, достаточный для оплаты съёмной квартиры в Сан-Франциско.
Так что друзья решили заняться другими проектами: один пошёл на работу в EFF, а второй ушёл во фриланс как дизайнер. Чтобы окончательно порвать с прошлым, они отдают двухлетнюю работу в общественное достояние, под лицензией GNU GPL. Наверное, это решение было принято не без влияния того, который ушёл в EFF.
Студия Insurgent Games основана в 2009 году двумя разработчиками из Сан-Франциско. Несколько лет они с удовольствием занимались любимым делом и создавали замечательные игры. Но за прошедшее время ребята поняли: чтобы хорошо зарабатывать на продаже мобильных приложений, нужен не только талант, но и большая удача. Им так и не удалось выйти на уровень заработка, достаточный для оплаты съёмной квартиры в Сан-Франциско.
Так что друзья решили заняться другими проектами: один пошёл на работу в EFF, а второй ушёл во фриланс как дизайнер. Чтобы окончательно порвать с прошлым, они отдают двухлетнюю работу в общественное достояние, под лицензией GNU GPL. Наверное, это решение было принято не без влияния того, который ушёл в EFF.
+53
Cocos2D вода на основе SPH
2 min
8K+10
Настройка внешнего вида UIPopoverController
11 min
13KUIPopoverController
или всплывающее окно (далее просто «поповер») элемент далеко не новый. На Хабре есть одна вводная статья на эту тему и несколько упоминаний в других топиках. Чаще всего поповеры используются «как есть» и не требуют каких-либо модификаций, но в некоторых проектах возникает необходимость изменить внешний вид этого элемента. Как раз о том как это сделать и будет эта статья. Статья не просто перевод или пересказ документации Apple. Я столкнулся с проблемой в реальном проекте, пропустил материал сквозь себя (в хорошем смысле слова), приготовил тщательно разжеванное объяснение и, напоследок, приправил все это конкретной реализацией, которая может пригодиться и вам.
+29
+51
Опыт продвижения в русском AppStore
4 min
13KСделать хорошее приложение для iPhone или iPad могут многие. Но далеко не все на этом умудряются заработать денег. Не буду хвастаться – но у меня получается и то, и другое. Хотелось бы поделиться с сообществом хабрачиталей некоторыми тонкостями кухни.
Под катом немного статистики и опыта размещения обзоров и баннерной рекламы рекламы с цифрами.
Под катом немного статистики и опыта размещения обзоров и баннерной рекламы рекламы с цифрами.
+47
Ручное «оффлайн» добавление и обновление поддержки iOS 3.x & 4.x в iOS Simulator SDK 5.x
3 min
3KПриветствую всех уважаемых хабражителей!
Данный хабратопик описывает «механизм» ручной загрузки пакета Xcode 4.2 iOS 4.3 Simulator, его обновлений и дополнений поддержки iOS 3.х & 4.x в iOS 5.x SDK для их последующей установки в оффлайн режиме.
При наличии нескольких рабочих мест, используемых для разработки, и желании экономить время и трафик при обновлении предлагаемая методика может оказаться полезной.
Данный хабратопик описывает «механизм» ручной загрузки пакета Xcode 4.2 iOS 4.3 Simulator, его обновлений и дополнений поддержки iOS 3.х & 4.x в iOS 5.x SDK для их последующей установки в оффлайн режиме.
При наличии нескольких рабочих мест, используемых для разработки, и желании экономить время и трафик при обновлении предлагаемая методика может оказаться полезной.
+2
Information
- Rating
- Does not participate
- Location
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Date of birth
- Registered
- Activity