Search
Write a publication
Pull to refresh
0
0
Indeego @Indeego

User

Send message

От Дублина до Сингапура: история разработки iPad приложения

Reading time5 min
Views4.7K
Привет хаброчеловек!

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



«Баловаться» с Cocoa я начал примерно полгода спустя после того, как у меня появился белый iMac G5 20" в 2005 году. Тогда я потратил на него я почти всю свою месячную зарплату. После 4-х лет на Slackware и Debian Linux макось (на тот момент Tiger) была как глоток свежего воздуха. Дальше баловства дело не заходило. Написал пару утилит для себя на Cocoa, поэксперементировал с AppleScript и отложил это дело в долгий ящик.

В следующий раз я открыл XCode, когда Apple зарелизил свой SDK. Я был полон энтузиазма, ведь они пошли примерно тем путем, о котором я говорил друзьям. Мне всегда не нравилась «анархия» в J2ME разработке, и казалось, что Apple должен пойти по пути Brew от Qualcomm, только сделать это не так «топорно». Собственно всё — среда разработчика XCode, Instruments и App Store казались мне просто идеалом того, как дожен выглядеть мобильный SDK. У меня был совсем небольшой опыт на заре J2ME, и мы даже не могли мечтать о такой инфраструктуре.

Читать дальше →

Читаем QR код

Reading time5 min
Views1.1M
Иногда возникают такие ситуации, когда нужно прочитать QR код, а смартфона под рукой нет. Что же делать? В голову приходит лишь попробовать прочитать вручную. Если кто-нибудь сталкивался с такими ситуациями или кому просто интересно как же читается QR код машинами, то данная статья поможет вам разобраться в этой проблеме.

В статье рассмотрены базовые особенности QR кодов и методика дешифрирования информации без использования вычислительных машин.

Иллюстраций: 14, символов: 8 510.
Читать дальше →

Авторизация через ВКонтакте, Mail.ru и другие — 3 (ВКонтакте и OAuth)

Reading time3 min
Views33K
В прошлых двух частях мы сделали авторизацию через ВКонтакте, используя предоставленный ими javascript-виджет и через Майл.ру, используя как JS API, так и через взаимодействие сервер-сервер. Сегодня мы исправим наше упущение относительно ВКонтакте и рассмотрим авторизацию через ВКонтакте без использования клиентских javascript'ов.
В качестве ссылки на авторизацию мы можем использовать любой элемент, например картинку

, оформленную аналогичным образом со ссылкой на авторизацию через mail.ru.
Читать дальше →

Apple Developers Community #8. Первый выпуск iOs школы

Reading time2 min
Views7.2K
2 сентября в 19:00 в Санкт-Петербурге состоится восьмая встреча Apple Developers Community.

imageЦель наших встреч — это развитие тех, кто уже разрабатывает под iPhone и iPad, а также привлечение новых разработчиков. Для её реализации мы собираем ежемесячные встречи, нацеленные на получение теоретический и практических знаний.

Если помните, в июне мы рассказывали о наборе людей в бесплатную школу iOs разработчиков. Лето прошло, на носу сентябрь и обучение подходит к концу. Пол дюжины разработчиков уже получили финальные задания, в которых им нужно разработать свое приложение для iPhone. Мы решили, что две наши главные инициативы не стоит разделять и объединили восьмую встречу с выпуском школы.

Итого, на ADCSpb #8, помимо уже привычных докладов, будут выступления выпускников с презентациями своих программ.

Поговорив на предыдущей встрече о продвижении приложений в App Store, мы возвращаемся к техническим докладам.
  • Григорий Бутейко из компании DataArt расскажет об особенностях новой новой операционной системы Mac OS X 10.7 Lion.
  • Андрей Пилюгин из iBearSoft в свою очередь расскажет о новых технологиях, которые он внедряет в свои популярные во всем мире приложения.
Вход свободный, нужно лишь зарегистрироваться.

Подробнее о встрече

Улучшаем производительность HTML5 canvas

Reading time10 min
Views40K
В последнее время мне везет натыкаться на интересные статьи для перевода. На этот раз – статья на HTML5Rocks о производительности HTML5 canvas. Автор пишет о некоей стене, в которую упираются разработчики при создании приложений. Какое-то время назад в нее уперся и я при портировании старой-доброй игры на canvas.

К сожалению, графики в оригинале вставлены через iframe. Я мог бы сделать снимки и разместить их изображения, но сам автор позиционирует графики актуальными и такими, которые будут обновляться, потому я просто разместил на них ссылки. Приятного чтения!


image
  1. Вступление
  2. Тестирование производительности
  3. Предварительно отрисовывайте в виртуальный canvas
  4. Группируйте вызовы
  5. Избегайте ненужных изменений состояния
  6. Отрисовывайте только разницу, а не весь холст
  7. Используйте многослойных canvas для сложных сцен
  8. Избегайте shadowBlur
  9. Различные способы очистить экран
  10. Избегайте нецелых координат
  11. Оптимизируйте анимации с помощью 'requestAnimationFrame'
  12. Большинство мобильных реализаций canvas – медленные
  13. Заключение
  14. Ссылки



Вступление


HTML5 canvas, который начинался, как эксперимент компании Apple, – наиболее широко распространенный стандарт для 2D режима непосредственной графики в интернет. Многие разработчики использую его в широком круге мультимедиа проектов, визуализаций и игр. Как бы то ни было, с ростом сложности приложений, разработчики нечаянно натыкаются на стену производительности.
Читать дальше →

Добавление настроек приложения в Settings

Reading time3 min
Views12K
Если у вас есть неигровое приложение (в игровых принято размещать настройки в самом приложение, хотя нет правил без исключений) с некоторым количеством настроек, то вместо того, чтобы реализовывать выбор и хранение настроек в самом приложении можно добавить их в приложение «Настройки/Settings» самого телефона, причем делается это очень быстро и легко.

Image Hosted by ImageShack.us

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

Backend в проекте на Yii

Reading time4 min
Views13K
В сети очень мало информации по созданию административных страничек в приложениях и наверно каждый использует свои решения. Именно сейчас хотел бы рассказать к чему я дошел за пол года разработки сайтов на Yii (статья только для тех, кто разбирается во фремворке).
Читать дальше →

Cocos2d-x: Пишем первое кроссплатформенное приложение

Reading time3 min
Views69K

Предисловие.


Программирование для мобильных платформ становиться все популярнее. Ежедневно, на свет появляются новые приложения и игры, что, естественно, увеличивает конкуренцию на этом рынке. И каждый, уважающий себя разработчик должен разрабатывать и поддерживать свой программный продукт, как минимум на двух самых популярных платформах, коими, на мой взгляд, являются android и iOS. Еще в недавнем прошлом, для такой поддержки, требовалось разрабатывать две различные программы на разных языках программирования. Но сейчас, появляется много кроссплатформенных движков, помогающих экономить разработчикам драгоценное время.
Читать дальше →

Как избежать коллизий при записи в Memcache из PHP

Reading time2 min
Views7.4K
Обычно программисты используют технологии по прямому назначению, но я решил провести эксперимент и попробовать использовать сервер memcached как масштабируемое временное key=value хранилище.
Memcached предназначен для простого кэширования статических данных, потому в нем не предусмотрена система избежания коллизий.

Запись данных


Стандартная ситуация

Предположим, что наше PHP приложение работает на одном сервере, а memcached работает на удаленной машине. Мы без проблем сможем читать и писать в одну и ту же ячейку, потому как приложение не WEB, так что процесс один. Из-за линейности процесса, ему не удастся одновременно записывать разные данные в одну и ту же ячейку.
Два и более процесса

Сегодня нам понадобилось разделить приложение на два сервера и начались проблемы. Возникли коллизии при записи в memcache. Выяснилось, что в 80% случаев приложения пытаются одновременно записать свои данные в одну ячейку. Идеальным решением было бы использование shared memory, но она не масштабируется в отличие о Memcached. В связи с большим объемом кода и предполагаемым временем на переписывание приложений, было принято решение добавить костыль.
Читать дальше →

Создание приложения на framework Cocos2d под iOS

Reading time5 min
Views11K
Здравствуйте, хабражители!

Первая моя игра была написана iPhone SDK про писающего мальчика, она очень тормозила на 3G и 3GS. Вторую сделал с меньшей нагрузкой на процессор, при этом я уже слышал о cocos2d, прочитав документацию про него, я решил к SDK, больше не возвращаться и начал программировать под эту платформу. В этой статье я не буду описывать как устанавливать cocos2d, это описано здесь, постараюсь не повторяться с этим постом. Могу лишь добавить есть стабильная 1.0.1 версия. В этой статье я расскажу как создать меню, анимацию и переход между слоями.

Итак, к делу.
Читать дальше →

8123 байта хватит каждому

Reading time2 min
Views11K
Сегодня во время перевода одного сайта с таблиц MyISAM на InnoDB, у последних выяснилась одна интересна особенность. Запрос на изменение движка для двух таблиц возвращал странную ошибку «Got error 139 from storage engine». После поиска информации на эту тему, было выяснено, что данная ошибка возникает тогда, когда какая-либо строка таблицы не вмещается в половину страницы памяти, с которыми работает MySQL. Страницы эти равны 16 Кб, а половина, стало быть, 8 Кб.

Само по себе ограничение довольно странное, но на первый взгляд кажется трудно достижимым, ведь как известно, MySQL хранят текстовые данные в хранилище, отдельном от табличных строк. Оказалось, что это верно только на половину. На самом деле InnoDB хранит в отдельном хранилище только «излишки», к коим он не относит первые 768 байтов каждого текстового поля. Т.е. любой текст будет отъедать от длины строки столько байт, сколько он содержит, но не больше 768. Несложно подсчитать, что максимальное число текстовых полей длиной от 768 байт, которое можно безопасно хранить в одной таблице — 10. И действительно, если запустить пример, все пройдет гладко. Но стоит увеличить количество полей хотя бы на одно, и мы получим ту же ошибку, что и в начале.
Читать дальше →

Мой подход к созданию ТЗ на шаблонные сайты

Reading time6 min
Views20K
eyestopper

Вместо эпиграфа.


Поймал дед золотую рыбку. Она ему говорит:
— Чего тебе, дед?
— Хочу чтоб мой аппарат был длиной до колен.
Взяла рыбка и укоротила деду ноги.
Мораль: ставьте корректно техническое задание.

Добрый день великий и могучий Хабр.
Некоторое время назад было несколько постов о технических заданиях (Как поставить задачу для простого (шаблонного) сайта, Почему мы никогда не составляем ТЗ. А что взамен?, Правила технического задания), которые хотелось бы продолжить и рассказать про мой подход к написанию ТЗ на шаблонные сайты.
Читать дальше →

oAuth для iOS приложений

Reading time3 min
Views12K
Экран приветствия клуба Трельяж для iPhone
Вечерело. Теплая августовская суббота предрасполагала к реализации oAuth авторизации на Google и Facebook для iOS клиента клуба интеллектуальных игр.

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

Быстрые ссылки на сами библиотеки: Googlegtm-oauth2, Facebookfacebook-ios-sdk

О нюансах интеграции под катом.
Читать дальше →

Как разместить картинку внутри QR-кода

Reading time2 min
Views141K
Автор блога Hack A Day Брайан Бенчофф (Brian Benchoff) разобрался в алгоритме генерации QR-кодов (стандарт ISO 18004) и составил инструкцию, как можно внедрить в QR-код произвольное изображение. Например, логотип фирмы.

Для работы использовались генератор QR-кодов и Microsoft Paint для попиксельного редактирования.

Шестая версия QR-кодов представляет собой квадрат со стороной 41 пиксел.



На картинке показан шаблон QR. На нём чёрные пикселы всегда обязаны быть чёрными, а белые обязаны быть белыми. Серая зона свободна для творчества.
Читать дальше →

Практика прохождения собеседований или как я переехал в столицу

Reading time4 min
Views20K
Привет, %хаброюзер%!

Сегодня я поделюсь с вами своим опытом прохождения собеседований на вакансии PHP-программиста в «белокаменной»Москве.
Читать дальше →

Книги, видео и другие материалы по разработке под iOS

Reading time4 min
Views114K
«Хочу программировать под iPhone — говори, что почитать...»
Любимая девушка


Когда решаешься заняться разработкой под iOS, то трудно выбрать литературу и ресурсы, которые действительно были бы полезны. Хорошо еще, что Apple предоставляет множество учебных материалов и программ с открытым исходным кодом в своем центре для разработчиков. В остальных книжках можно если и не утонуть, то порядочно захлебнуться. Сейчас я жалею, что потратил время на пару «мануалов». Не буду делать им антирекламу, а лучше порекомендую хорошие материалы по программированию под iOS.

Под катом книги, видеокурсы и блоги, которые будет полезно прочитать/посмотреть.
Читать дальше →

Экспортное разрешение на шифрование для приложений из AppStore

Reading time2 min
Views12K
Сегодня наткнулся на неожиданность при загрузке программы в iTunes Connect для публикации в AppStore. Моя программа использует шифрование для защиты информации от неавторизированного распространения. Распространение приложений с шифрованием ограничено законодательством США и контролируется Департаментом Промышленности и Безопасности Министерства торговли СШАDepartment of Commerce (DOC) Bureau of Industry and Security (BIS). Для тех, кому интересно — что было, и что стало…
смотри подробности

Objective-C с нуля

Reading time23 min
Views442K
У любого желающего писать программы для продукции фирмы Apple в жизни наступает такой момент, когда ему приходиться изучить новый язык программирования — Objective-C. Когда-то этот счастливый момент постиг и меня. А чтобы лучше запомнить основные особенности этого языка, решил законспектировать свои мысли во время осмысления его документации, которыми и делюсь с вами.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity